aboutsummaryrefslogtreecommitdiff
path: root/src/index
diff options
context:
space:
mode:
authorDanielGavin <danielgavin5@hotmail.com>2020-12-14 13:40:00 +0100
committerDanielGavin <danielgavin5@hotmail.com>2020-12-14 13:40:00 +0100
commit514f40fc4c8e7c3ff778c39ada4e1f3b1d5ce85c (patch)
tree5d2d9b9b070d5fc4a9981e0e70283995008bc24c /src/index
parentbcd7fef9d786d455af886a45f575e82ede46fd32 (diff)
show better signatures + work on hover
Diffstat (limited to 'src/index')
-rw-r--r--src/index/collector.odin3
-rw-r--r--src/index/symbol.odin2
2 files changed, 4 insertions, 1 deletions
diff --git a/src/index/collector.odin b/src/index/collector.odin
index b69d5eb..30150a7 100644
--- a/src/index/collector.odin
+++ b/src/index/collector.odin
@@ -215,14 +215,17 @@ collect_symbols :: proc(collection: ^SymbolCollection, file: ast.File, uri: stri
token = v;
token_type = .Struct;
symbol.value = collect_struct_fields(collection, v, package_map);
+ symbol.signature = "struct";
case ast.Enum_Type:
token = v;
token_type = .Enum;
symbol.value = collect_enum_fields(collection, v.fields, package_map);
+ symbol.signature = "enum";
case ast.Union_Type:
token = v;
token_type = .Enum;
symbol.value = collect_union_fields(collection, v, package_map);
+ symbol.signature = "union";
case: // default
break;
}
diff --git a/src/index/symbol.odin b/src/index/symbol.odin
index a94da21..2950bb9 100644
--- a/src/index/symbol.odin
+++ b/src/index/symbol.odin
@@ -87,7 +87,7 @@ SymbolType :: enum {
free_symbol :: proc(symbol: Symbol, allocator: mem.Allocator) {
- if symbol.signature != "" {
+ if symbol.signature != "" && symbol.signature != "struct" && symbol.signature != "union" && symbol.signature != "enum" {
delete(symbol.signature, allocator);
}