aboutsummaryrefslogtreecommitdiff
path: root/src/server
diff options
context:
space:
mode:
Diffstat (limited to 'src/server')
-rw-r--r--src/server/analysis.odin10
-rw-r--r--src/server/completion.odin3
2 files changed, 12 insertions, 1 deletions
diff --git a/src/server/analysis.odin b/src/server/analysis.odin
index 4a1980c..2dfed25 100644
--- a/src/server/analysis.odin
+++ b/src/server/analysis.odin
@@ -3267,6 +3267,16 @@ get_using_packages :: proc(ast_context: ^AstContext) -> []string {
return usings
}
+// Returns whether the provided package is being used with a `using` statement
+is_using_package :: proc(ast_context: ^AstContext, pkg: string) -> bool {
+ for u in ast_context.usings {
+ if strings.compare(pkg, u.pkg_name) == 0 {
+ return true
+ }
+ }
+ return false
+}
+
get_symbol_pkg_name :: proc(ast_context: ^AstContext, symbol: ^Symbol) -> string {
return get_pkg_name(ast_context, symbol.pkg)
}
diff --git a/src/server/completion.odin b/src/server/completion.odin
index 2d249bd..44916d7 100644
--- a/src/server/completion.odin
+++ b/src/server/completion.odin
@@ -934,7 +934,8 @@ get_selector_completion :: proc(
if symbol.pkg == ast_context.document_package ||
base == "runtime" ||
base == "$builtin" ||
- is_selector {
+ is_selector ||
+ is_using_package(ast_context, symbol.pkg) {
item.label = fmt.aprintf(
"(%v%v)",
repeat("^", symbol.pointers, context.temp_allocator),