diff options
| author | Daniel Gavin <danielgavin@Daniels-MacBook-Air.local> | 2023-06-11 12:42:52 +0200 |
|---|---|---|
| committer | Daniel Gavin <danielgavin@Daniels-MacBook-Air.local> | 2023-06-11 12:42:52 +0200 |
| commit | 4b43b21b502764f0eb7cbdbb5401ae3de15b81ea (patch) | |
| tree | 435749ea5afb030f910993b023cc666d5dde4884 /src/server | |
| parent | 1e3ee20840e706752d97576175c5758c1b92192a (diff) | |
Add workspace symbol types
Diffstat (limited to 'src/server')
| -rw-r--r-- | src/server/document_symbols.odin | 1 | ||||
| -rw-r--r-- | src/server/requests.odin | 14 | ||||
| -rw-r--r-- | src/server/types.odin | 11 |
3 files changed, 25 insertions, 1 deletions
diff --git a/src/server/document_symbols.odin b/src/server/document_symbols.odin index bed5734..1219413 100644 --- a/src/server/document_symbols.odin +++ b/src/server/document_symbols.odin @@ -53,7 +53,6 @@ get_document_symbols :: proc(document: ^Document) -> []DocumentSymbol { children_symbols := make([dynamic]DocumentSymbol, context.temp_allocator) for k, global in ast_context.globals { - symbol: DocumentSymbol symbol.range = common.get_token_range( global.expr, diff --git a/src/server/requests.odin b/src/server/requests.odin index 191f850..0d4b2c0 100644 --- a/src/server/requests.odin +++ b/src/server/requests.odin @@ -20,6 +20,7 @@ import "core:time" import "shared:common" + Header :: struct { content_length: int, content_type: string, @@ -276,6 +277,7 @@ call_map: map[string]proc( "textDocument/rename" = request_rename, "textDocument/references" = request_references, "window/progress" = request_noop, + "workspace/symbol" = request_workspace_symbols, } notification_map: map[string]bool = { @@ -675,6 +677,7 @@ request_initialize :: proc( save = {includeText = true}, }, renameProvider = config.enable_rename, + workspaceSymbolProvider = true, referencesProvider = config.enable_references, definitionProvider = true, completionProvider = CompletionOptions{ @@ -1430,6 +1433,17 @@ request_references :: proc( return .None } +request_workspace_symbols :: proc( + params: json.Value, + id: RequestId, + config: ^common.Config, + writer: ^Writer, +) -> common.Error { + + + return .None +} + request_noop :: proc( params: json.Value, id: RequestId, diff --git a/src/server/types.odin b/src/server/types.odin index e39bd7b..b0e4a9b 100644 --- a/src/server/types.odin +++ b/src/server/types.odin @@ -98,6 +98,7 @@ ServerCapabilities :: struct { inlayHintProvider: bool, renameProvider: bool, referencesProvider: bool, + workspaceSymbolProvider: bool, documentLinkProvider: DocumentLinkOptions, } @@ -472,3 +473,13 @@ TextDocumentEdit :: struct { WorkspaceEdit :: struct { documentChanges: []TextDocumentEdit, } + +WorkspaceSymbolParams :: struct { + query: string, +} + +WorkspaceSymbol :: struct { + name: string, + kind: SymbolKind, + location: common.Location, +} |