diff options
| author | DanielGavin <danielgavin5@hotmail.com> | 2020-12-14 13:40:00 +0100 |
|---|---|---|
| committer | DanielGavin <danielgavin5@hotmail.com> | 2020-12-14 13:40:00 +0100 |
| commit | 514f40fc4c8e7c3ff778c39ada4e1f3b1d5ce85c (patch) | |
| tree | 5d2d9b9b070d5fc4a9981e0e70283995008bc24c /src/index | |
| parent | bcd7fef9d786d455af886a45f575e82ede46fd32 (diff) | |
show better signatures + work on hover
Diffstat (limited to 'src/index')
| -rw-r--r-- | src/index/collector.odin | 3 | ||||
| -rw-r--r-- | src/index/symbol.odin | 2 |
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); } |