aboutsummaryrefslogtreecommitdiff
path: root/src/server/references.odin
diff options
context:
space:
mode:
authorDanielGavin <danielgavin5@hotmail.com>2024-06-12 22:36:30 +0200
committerDanielGavin <danielgavin5@hotmail.com>2024-06-12 22:36:30 +0200
commit3c05ab67cd6b811a0993e49f2ca1ed75e0aca8e3 (patch)
tree16d3174851a33ae290d77fa3baae94512e61ec27 /src/server/references.odin
parenta66e2ef9bc46f3332d458895a74299ebb122dfed (diff)
Fix issues with references now showing the definition itself if in another package.
Diffstat (limited to 'src/server/references.odin')
-rw-r--r--src/server/references.odin11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/server/references.odin b/src/server/references.odin
index 0fa739e..d56ae62 100644
--- a/src/server/references.odin
+++ b/src/server/references.odin
@@ -69,8 +69,6 @@ resolve_references :: proc(
pkg := ""
when !ODIN_TEST {
- filepath.walk(common.get_executable_path(), walk_directories, document)
-
for workspace in common.config.workspace_folders {
uri, _ := common.parse_uri(workspace.uri, context.temp_allocator)
filepath.walk(uri.path, walk_directories, document)
@@ -79,7 +77,10 @@ resolve_references :: proc(
reset_ast_context(ast_context)
- if position_context.struct_type != nil {
+
+ if position_context.label != nil {
+ return {}, true
+ } else if position_context.struct_type != nil {
found := false
done_struct: for field in position_context.struct_type.fields.list {
for name in field.names {
@@ -223,6 +224,8 @@ resolve_references :: proc(
if !ok {
return {}, true
}
+ } else {
+ return {}, true
}
arena: runtime.Arena
@@ -310,7 +313,7 @@ resolve_references :: proc(
}
}
- if in_pkg {
+ if in_pkg || symbol.pkg == document.package_name {
symbols_and_nodes := resolve_entire_file(
&document,
resolve_flag,