diff options
| author | Daniel Gavin <danielgavin5@hotmail.com> | 2022-04-28 00:04:10 +0200 |
|---|---|---|
| committer | Daniel Gavin <danielgavin5@hotmail.com> | 2022-04-28 00:04:10 +0200 |
| commit | 485285ee58c3c3ef3bd09a1d8cd4232d2dfa1917 (patch) | |
| tree | e7ff6cccf501a1f7098af6a4ce6e18d2d3681ee9 /src/server/requests.odin | |
| parent | 02d0c0bec7a51dfa2dbdb87c9f34b8216ba83676 (diff) | |
remove the lower case for windows.
Diffstat (limited to 'src/server/requests.odin')
| -rw-r--r-- | src/server/requests.odin | 42 |
1 files changed, 37 insertions, 5 deletions
diff --git a/src/server/requests.odin b/src/server/requests.odin index 3aaff45..ca78c08 100644 --- a/src/server/requests.odin +++ b/src/server/requests.odin @@ -261,6 +261,7 @@ call_map : map [string] proc(json.Value, RequestId, ^common.Config, ^Writer) -> "odin/inlayHints" = request_inlay_hint, "textDocument/documentLink" = request_document_links, "textDocument/rename" = request_rename, + "textDocument/references" = request_references, } notification_map: map [string] bool = { @@ -502,6 +503,7 @@ request_initialize :: proc (params: json.Value, id: RequestId, config: ^common.C }, }, renameProvider = true, + referencesProvider = true, definitionProvider = true, completionProvider = CompletionOptions { resolveProvider = false, @@ -545,11 +547,7 @@ request_initialize :: proc (params: json.Value, id: RequestId, config: ^common.C */ if core, ok := config.collections["core"]; ok { - when ODIN_OS == .Windows { - append(&indexer.builtin_packages, path.join(strings.to_lower(core, context.temp_allocator), "runtime")) - } else { - append(&indexer.builtin_packages, path.join(core, "runtime")) - } + append(&indexer.builtin_packages, path.join(core, "runtime")) } log.info("Finished indexing") @@ -1090,3 +1088,37 @@ request_rename :: proc (params: json.Value, id: RequestId, config: ^common.Confi return .None } + +request_references :: proc (params: json.Value, id: RequestId, config: ^common.Config, writer: ^Writer) -> common.Error { + params_object, ok := params.(json.Object) + + if !ok { + return .ParseError + } + + reference_param: ReferenceParams + + if unmarshal(params, reference_param, context.temp_allocator) != nil { + return .ParseError + } + + document := document_get(reference_param.textDocument.uri) + + if document == nil { + return .InternalError + } + + locations: []common.Location + + locations, ok = get_references(document, reference_param.position) + + if !ok { + return .InternalError + } + + response := make_response_message(params = locations, id = id) + + send_response(response, writer) + + return .None +} |