diff options
| -rw-r--r-- | builtin/builtin.odin | 8 | ||||
| -rw-r--r-- | src/server/analysis.odin | 2 | ||||
| -rw-r--r-- | src/server/references.odin | 7 |
3 files changed, 15 insertions, 2 deletions
diff --git a/builtin/builtin.odin b/builtin/builtin.odin index 8a7c773..ec7f400 100644 --- a/builtin/builtin.odin +++ b/builtin/builtin.odin @@ -6,11 +6,17 @@ package ols_builtin size_of :: proc($T: typeid) -> int --- @builtin align_of :: proc($T: typeid) -> int --- -@builtin offset_of :: proc($T: typeid) -> uintptr --- @builtin type_of :: proc(x: expr) -> type --- @builtin type_info_of :: proc($T: typeid) -> ^runtime.Type_Info --- @builtin typeid_of :: proc($T: typeid) -> typeid --- +offset_of_selector :: proc(selector: $T) -> uintptr --- +offset_of_member :: proc($T: typeid, member: $M) -> uintptr --- + +@builtin offset_of :: proc{offset_of_selector, offset_of_member} + +@builtin offset_of_by_string :: proc($T: typeid, member: string) -> uintptr --- + @builtin swizzle :: proc(x: [N]T, indices: ..int) -> [len(indices)]T --- complex :: proc(real, imag: Float) -> Complex_Type --- diff --git a/src/server/analysis.odin b/src/server/analysis.odin index db41ad7..98716ca 100644 --- a/src/server/analysis.odin +++ b/src/server/analysis.odin @@ -5285,6 +5285,6 @@ get_document_position_node :: proc( case ^ast.Or_Return_Expr: get_document_position(n.expr, position_context) case: - log.errorf("Unhandled node kind: %T", n) + log.warnf("Unhandled node kind: %T", n) } } diff --git a/src/server/references.odin b/src/server/references.odin index efa993d..4c08998 100644 --- a/src/server/references.odin +++ b/src/server/references.odin @@ -77,6 +77,11 @@ resolve_references :: proc( nil, ) + for workspace in common.config.workspace_folders { + uri, _ := common.parse_uri(workspace.uri, context.temp_allocator) + filepath.walk(uri.path, walk_directories, nil) + } + reset_ast_context(ast_context) if position_context.struct_type != nil && @@ -154,6 +159,8 @@ resolve_references :: proc( for fullpath in fullpaths { data, ok := os.read_entire_file(fullpath, context.allocator) + log.error("looking: ", fullpath, "\n") + if !ok { log.errorf("failed to read entire file for indexing %v", fullpath) continue |