diff options
| author | Brad Lewis <22850972+BradLewis@users.noreply.github.com> | 2025-07-27 21:05:50 -0400 |
|---|---|---|
| committer | Brad Lewis <22850972+BradLewis@users.noreply.github.com> | 2025-07-29 15:49:12 -0400 |
| commit | 65adde811fedf1fd3054a736e9d2faf63fcfad31 (patch) | |
| tree | d913a46215a374ceaf723c067add2c3b1e92d814 | |
| parent | ca1e78574de49aa5b73df422736cdf4b0f093ecd (diff) | |
Update signature information
| -rw-r--r-- | src/server/documentation.odin | 4 | ||||
| -rw-r--r-- | src/server/signature.odin | 23 | ||||
| -rw-r--r-- | tests/completions_test.odin | 6 | ||||
| -rw-r--r-- | tests/signatures_test.odin | 2 |
4 files changed, 20 insertions, 15 deletions
diff --git a/src/server/documentation.odin b/src/server/documentation.odin index 9767a9d..9d72043 100644 --- a/src/server/documentation.odin +++ b/src/server/documentation.odin @@ -339,7 +339,7 @@ get_short_signature :: proc(ast_context: ^AstContext, symbol: Symbol) -> string append_type_information(&sb, ast_context, symbol, pointer_prefix) strings.write_string(&sb, " :: ") } - write_procedure_symbol_signature(&sb, v, detailed_signature=false) + write_procedure_symbol_signature(&sb, v, detailed_signature=true) return strings.to_string(sb) case SymbolAggregateValue: return "proc (..)" @@ -686,7 +686,6 @@ concatenate_raw_symbol_information :: proc(ast_context: ^AstContext, symbol: Sym symbol.name, symbol.signature, symbol.type, - symbol.comment, ) } @@ -696,7 +695,6 @@ concatenate_raw_string_information :: proc( name: string, signature: string, type: SymbolType, - comment: string, ) -> string { pkg := path.base(pkg, false, context.temp_allocator) diff --git a/src/server/signature.odin b/src/server/signature.odin index 03634d5..f333b61 100644 --- a/src/server/signature.odin +++ b/src/server/signature.odin @@ -134,11 +134,14 @@ get_signature_information :: proc(document: ^Document, position: common.Position parameters[i].label = node_to_string(arg) } - build_documentation(&ast_context, &call) - + call.doc = construct_symbol_docs(call.doc, call.comment) + sb := strings.builder_make(context.temp_allocator) + write_procedure_symbol_signature(&sb, value, detailed_signature = false) + call.signature = strings.to_string(sb) + info := SignatureInformation { - label = concatenate_symbol_information(&ast_context, call), - documentation = call.doc, + label = concatenate_raw_string_information(&ast_context, call.pkg, call.name, call.signature, call.type), + documentation = construct_symbol_docs(call.doc, call.comment), parameters = parameters, } append(&signature_information, info) @@ -160,11 +163,15 @@ get_signature_information :: proc(document: ^Document, position: common.Position parameters[i].label = node_to_string(arg) } - build_documentation(&ast_context, &symbol) - + symbol.doc = construct_symbol_docs(symbol.doc, symbol.comment) + sb := strings.builder_make(context.temp_allocator) + write_procedure_symbol_signature(&sb, value, detailed_signature = false) + symbol.signature = strings.to_string(sb) + info := SignatureInformation { - label = concatenate_symbol_information(&ast_context, symbol), - documentation = symbol.doc, + label = concatenate_raw_string_information(&ast_context, symbol.pkg, symbol.name, symbol.signature, symbol.type), + documentation = construct_symbol_docs(symbol.doc, symbol.comment), + parameters = parameters, } append(&signature_information, info) diff --git a/tests/completions_test.odin b/tests/completions_test.odin index b704af3..b69ed42 100644 --- a/tests/completions_test.odin +++ b/tests/completions_test.odin @@ -3391,9 +3391,9 @@ ast_completion_vtable_using :: proc(t: ^testing.T) { &source, "->", { - `IUnknown.QueryInterface: proc(This: ^IUnknown, riid: REFIID, ppvObject: ^rawptr) -> HRESULT`, - `IUnknown.AddRef: proc(This: ^IUnknown) -> ULONG`, - `IUnknown.Release: proc(This: ^IUnknown) -> ULONG`, + `IUnknown.QueryInterface: proc "system" (This: ^IUnknown, riid: REFIID, ppvObject: ^rawptr) -> HRESULT`, + `IUnknown.AddRef: proc "system" (This: ^IUnknown) -> ULONG`, + `IUnknown.Release: proc "system" (This: ^IUnknown) -> ULONG`, }, ) } diff --git a/tests/signatures_test.odin b/tests/signatures_test.odin index 4362d32..32e5e17 100644 --- a/tests/signatures_test.odin +++ b/tests/signatures_test.odin @@ -401,7 +401,7 @@ ast_index_builtin_len_proc :: proc(t: ^testing.T) { test.expect_signature_labels( t, &source, - {"@(builtin)\n$builtin.len: proc(array: Array_Type) -> int"}, + {"$builtin.len: proc(array: Array_Type) -> int"}, ) } |