diff options
| author | DanielGavin <danielgavin5@hotmail.com> | 2024-06-12 22:36:30 +0200 |
|---|---|---|
| committer | DanielGavin <danielgavin5@hotmail.com> | 2024-06-12 22:36:30 +0200 |
| commit | 3c05ab67cd6b811a0993e49f2ca1ed75e0aca8e3 (patch) | |
| tree | 16d3174851a33ae290d77fa3baae94512e61ec27 /src/server/references.odin | |
| parent | a66e2ef9bc46f3332d458895a74299ebb122dfed (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.odin | 11 |
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, |