From 63fd34ef37a8ba977e6bfcdcb72cd890aafac2a8 Mon Sep 17 00:00:00 2001 From: DanielGavin Date: Wed, 17 Mar 2021 17:03:43 +0100 Subject: semantic token fix on package selector, more union completion --- src/server/completion.odin | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) (limited to 'src/server/completion.odin') diff --git a/src/server/completion.odin b/src/server/completion.odin index 40f633c..e19bd0a 100644 --- a/src/server/completion.odin +++ b/src/server/completion.odin @@ -242,12 +242,22 @@ get_selector_completion :: proc (ast_context: ^AstContext, position_context: ^Do case index.SymbolUnionValue: list.isIncomplete = false; - for name in v.names { - symbol: index.Symbol; - symbol.name = fmt.aprintf("(%v)", name); - symbol.pkg = selector.name; - symbol.type = .EnumMember; - append(&symbols, symbol); + for name, i in v.names { + + if symbol, ok := resolve_type_expression(ast_context, v.types[i]); ok { + + if symbol.pkg == ast_context.document_package { + symbol.name = fmt.aprintf("(%v)", name); + } + + else { + symbol.name = fmt.aprintf("(%v.%v)", path.base(symbol.pkg, false, context.temp_allocator), name); + } + + symbol.pkg = selector.name; + symbol.type = .EnumMember; + append(&symbols, symbol); + } } case index.SymbolEnumValue: -- cgit v1.2.3