aboutsummaryrefslogtreecommitdiff
path: root/src/server/requests.odin
diff options
context:
space:
mode:
authorDaniel Gavin <danielgavin5@hotmail.com>2022-04-28 00:04:10 +0200
committerDaniel Gavin <danielgavin5@hotmail.com>2022-04-28 00:04:10 +0200
commit485285ee58c3c3ef3bd09a1d8cd4232d2dfa1917 (patch)
treee7ff6cccf501a1f7098af6a4ce6e18d2d3681ee9 /src/server/requests.odin
parent02d0c0bec7a51dfa2dbdb87c9f34b8216ba83676 (diff)
remove the lower case for windows.
Diffstat (limited to 'src/server/requests.odin')
-rw-r--r--src/server/requests.odin42
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
+}