From 12264e54a18c9b73708cdd11a54ecc06e64e5229 Mon Sep 17 00:00:00 2001 From: Brad Lewis <22850972+BradLewis@users.noreply.github.com> Date: Tue, 10 Feb 2026 21:17:53 +1100 Subject: Add documentation to package completions --- src/server/completion.odin | 6 ++++++ tests/completions_test.odin | 28 ++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/src/server/completion.odin b/src/server/completion.odin index 5bbbcf8..072d21b 100644 --- a/src/server/completion.odin +++ b/src/server/completion.odin @@ -1812,6 +1812,12 @@ get_identifier_completion :: proc( symbol := Symbol { name = pkg.base, type = .Package, + pkg = pkg.name, + value = SymbolPackageValue{}, + } + try_build_package(symbol.pkg) + if resolved, ok := resolve_symbol_return(ast_context, symbol); ok { + symbol = resolved } if score, ok := common.fuzzy_match(matcher, symbol.name); ok == 1 { diff --git a/tests/completions_test.odin b/tests/completions_test.odin index 56553c3..bf05f6a 100644 --- a/tests/completions_test.odin +++ b/tests/completions_test.odin @@ -5500,3 +5500,31 @@ ast_completion_fake_method_proc_group_single_arg_cursor_position :: proc(t: ^tes // The proc group 'negate' should have cursor AFTER parentheses since no additional args test.expect_completion_edit_text(t, &source, ".", "negate", "methods.negate(n)$0") } + +@(test) +ast_completion_package_docs :: proc(t: ^testing.T) { + packages := make([dynamic]test.Package, context.temp_allocator) + + append( + &packages, + test.Package { + pkg = "my_package", + source = `// Package docs + package my_package + Foo :: struct{} + `, + }, + ) + + source := test.Source { + main = `package test + import "my_package" + main :: proc() { + my_pack{*} + } + `, + packages = packages[:], + } + + test.expect_completion_docs(t, &source, "", {"my_package: package\n---\nPackage docs"}) +} -- cgit v1.2.3