aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrad Lewis <22850972+BradLewis@users.noreply.github.com>2025-10-07 05:45:23 -0400
committerBrad Lewis <22850972+BradLewis@users.noreply.github.com>2025-10-07 05:45:23 -0400
commita095e713d59339e5f8fdccc3297881f0bcf0f0e5 (patch)
treedac6934affe7d2166e6263ae64e5576e6adc8c7c
parente419397cfcebfa4097b2496e37d8cc4ec3ae13b2 (diff)
Enable auto import completion for all collections
-rw-r--r--src/server/completion.odin30
1 files changed, 15 insertions, 15 deletions
diff --git a/src/server/completion.odin b/src/server/completion.odin
index febf76f..6a4dc89 100644
--- a/src/server/completion.odin
+++ b/src/server/completion.odin
@@ -4,16 +4,13 @@ package server
import "base:runtime"
import "core:fmt"
import "core:log"
-import "core:mem"
import "core:odin/ast"
-import "core:odin/parser"
import "core:odin/tokenizer"
import "core:os"
import "core:path/filepath"
import path "core:path/slashpath"
import "core:reflect"
import "core:slice"
-import "core:sort"
import "core:strconv"
import "core:strings"
@@ -334,7 +331,8 @@ convert_completion_results :: proc(
}
if config.enable_completion_matching {
- if s, ok := target_symbol.(Symbol); ok && (completion_type == .Selector || completion_type == .Identifier) {
+ if s, ok := target_symbol.(Symbol);
+ ok && (completion_type == .Selector || completion_type == .Identifier) {
handle_matching(ast_context, position_context, result.symbol, s, &item, completion_type)
}
}
@@ -1425,7 +1423,10 @@ get_implicit_completion :: proc(
}
if len(position_context.assign.lhs) > rhs_index {
- if enum_value, unwrapped_super_enum, ok := unwrap_enum(ast_context, position_context.assign.lhs[rhs_index]); ok {
+ if enum_value, unwrapped_super_enum, ok := unwrap_enum(
+ ast_context,
+ position_context.assign.lhs[rhs_index],
+ ); ok {
for name in enum_value.names {
item := CompletionItem {
label = name,
@@ -2086,10 +2087,6 @@ append_non_imported_packages :: proc(
}
for collection, pkgs in build_cache.pkg_aliases {
- //Right now only do it for core and builtin
- if collection != "core" && collection != "base" {
- continue
- }
for pkg in pkgs {
fullpath := path.join({config.collections[collection], pkg})
found := false
@@ -2115,13 +2112,16 @@ append_non_imported_packages :: proc(
additionalTextEdits[0] = import_edit
item := CompletionItem {
- label = pkg,
- kind = .Module,
- detail = pkg,
- insertText = path.base(pkg),
+ label = pkg,
+ kind = .Module,
+ documentation = MarkupContent {
+ kind = "markdown",
+ value = fmt.tprintf("```odin\n%v\n```", import_edit.newText),
+ },
+ insertText = path.base(pkg),
additionalTextEdits = additionalTextEdits,
- insertTextFormat = .PlainText,
- InsertTextMode = .adjustIndentation,
+ insertTextFormat = .PlainText,
+ InsertTextMode = .adjustIndentation,
}
append(items, item)