aboutsummaryrefslogtreecommitdiff
path: root/src/server/semantic_tokens.odin
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/semantic_tokens.odin')
-rw-r--r--src/server/semantic_tokens.odin28
1 files changed, 25 insertions, 3 deletions
diff --git a/src/server/semantic_tokens.odin b/src/server/semantic_tokens.odin
index f930530..8733be4 100644
--- a/src/server/semantic_tokens.odin
+++ b/src/server/semantic_tokens.odin
@@ -262,7 +262,6 @@ visit_node :: proc(
if symbol_and_node, ok := builder.symbols[cast(uintptr)node]; ok {
if .Distinct in symbol_and_node.symbol.flags &&
symbol_and_node.symbol.type == .Constant {
- log.error(symbol_and_node.symbol)
write_semantic_node(
builder,
node,
@@ -273,8 +272,7 @@ visit_node :: proc(
return
}
- if symbol_and_node.symbol.type == .Variable ||
- symbol_and_node.symbol.type == .Constant {
+ if symbol_and_node.symbol.type == .Variable {
write_semantic_node(
builder,
node,
@@ -350,6 +348,14 @@ visit_node :: proc(
.Type,
.None,
)
+ case SymbolMatrixValue:
+ write_semantic_node(
+ builder,
+ node,
+ ast_context.file.src,
+ .Type,
+ .None,
+ )
case:
//log.errorf("Unexpected symbol value: %v", symbol.value);
//panic(fmt.tprintf("Unexpected symbol value: %v", symbol.value));
@@ -386,6 +392,22 @@ visit_node :: proc(
visit(n.stmts, builder, ast_context)
case ^Expr_Stmt:
visit(n.expr, builder, ast_context)
+ case ^Matrix_Type:
+ write_semantic_string(
+ builder,
+ n.tok_pos,
+ "matrix",
+ ast_context.file.src,
+ .Keyword,
+ .None,
+ )
+ visit(n.row_count, builder, ast_context)
+ visit(n.column_count, builder, ast_context)
+ visit(n.elem, builder, ast_context)
+ case ^ast.Matrix_Index_Expr:
+ visit(n.expr, builder, ast_context)
+ visit(n.row_index, builder, ast_context)
+ visit(n.column_index, builder, ast_context)
case ^Branch_Stmt:
write_semantic_token(
builder,