From 09a400ca6c238eada7c101569764c5a475a375d6 Mon Sep 17 00:00:00 2001 From: Brad Lewis <22850972+BradLewis@users.noreply.github.com> Date: Thu, 30 Oct 2025 04:16:39 -0400 Subject: Correctly provide completions for proc default args that are a selector expr --- src/server/completion.odin | 2 ++ tests/completions_test.odin | 20 ++++++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/src/server/completion.odin b/src/server/completion.odin index f1bd9a8..f3c0d56 100644 --- a/src/server/completion.odin +++ b/src/server/completion.odin @@ -1535,6 +1535,8 @@ get_implicit_completion :: proc( if type == nil { if comp_lit, ok := arg_type.default_value.derived.(^ast.Comp_Lit); ok { type = comp_lit.type + } else if selector, ok := arg_type.default_value.derived.(^ast.Selector_Expr); ok { + type = selector.expr } } diff --git a/tests/completions_test.odin b/tests/completions_test.odin index 7b12828..a4e8ab0 100644 --- a/tests/completions_test.odin +++ b/tests/completions_test.odin @@ -4846,3 +4846,23 @@ ast_completion_fixed_array_enum :: proc(t: ^testing.T) { } test.expect_completion_docs(t, &source, "", {"A", "B", "C"}) } + +@(test) +ast_completion_proc_enum_default_value :: proc(t: ^testing.T) { + source := test.Source { + main = `package test + Foo :: enum { + A, + B, + C, + } + + bar :: proc(foo := Foo.A) {} + + main :: proc() { + bar(.{*}) + } + `, + } + test.expect_completion_docs(t, &source, "", {"A", "B", "C"}) +} -- cgit v1.2.3