aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrad Lewis <22850972+BradLewis@users.noreply.github.com>2025-09-17 14:07:31 -0400
committerBrad Lewis <22850972+BradLewis@users.noreply.github.com>2025-09-17 14:07:31 -0400
commit1e4f8a48819da450a73023f565c1bedfda33afd7 (patch)
tree78e3b10241d36d6448bda4eed3eeaaeaeee9b125
parent447384838549d4f4e68db9cc229ae7f4eb232c4e (diff)
Add proc arg tags to hover documentation
-rw-r--r--src/server/documentation.odin12
-rw-r--r--tests/hover_test.odin10
2 files changed, 22 insertions, 0 deletions
diff --git a/src/server/documentation.odin b/src/server/documentation.odin
index 0dc058f..25d9de3 100644
--- a/src/server/documentation.odin
+++ b/src/server/documentation.odin
@@ -478,6 +478,18 @@ get_bit_field_field_signature :: proc(
write_proc_param_list_and_return :: proc(sb: ^strings.Builder, value: SymbolProcedureValue) {
strings.write_string(sb, "(")
for arg, i in value.orig_arg_types {
+ if .Any_Int in arg.flags {
+ strings.write_string(sb, "#any_int ")
+ }
+ if .By_Ptr in arg.flags {
+ strings.write_string(sb, "#by_ptr ")
+ }
+ if .C_Vararg in arg.flags {
+ strings.write_string(sb, "#c_vararg ")
+ }
+ if .No_Alias in arg.flags {
+ strings.write_string(sb, "#no_alias ")
+ }
build_string_node(arg, sb, false)
if i != len(value.orig_arg_types) - 1 {
strings.write_string(sb, ", ")
diff --git a/tests/hover_test.odin b/tests/hover_test.odin
index 071bcba..f348447 100644
--- a/tests/hover_test.odin
+++ b/tests/hover_test.odin
@@ -4834,6 +4834,16 @@ ast_hover_if_ternary_expr :: proc(t: ^testing.T) {
}
test.expect_hover(t, &source, "test.bar: int")
}
+
+@(test)
+ast_hover_proc_param_tags :: proc(t: ^testing.T) {
+ source := test.Source {
+ main = `package test
+ f{*}oo :: proc (#by_ptr a: int, #any_int b: int) {}
+ `,
+ }
+ test.expect_hover(t, &source, "test.foo: proc(#by_ptr a: int, #any_int b: int)")
+}
/*
Waiting for odin fix