aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/position_context.odin16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/server/position_context.odin b/src/server/position_context.odin
index aad3d0e..d5e7d33 100644
--- a/src/server/position_context.odin
+++ b/src/server/position_context.odin
@@ -474,7 +474,7 @@ get_desired_expr :: proc(node: ^ast.Expr, position: common.AbsolutePosition) ->
return n.key
}
if position_in_node(n.value, position) {
- return n.key
+ return n.value
}
case ^ast.Dynamic_Array_Type:
if position_in_node(n.tag, position) {
@@ -487,6 +487,20 @@ get_desired_expr :: proc(node: ^ast.Expr, position: common.AbsolutePosition) ->
if position_in_node(n.elem, position) {
return n.elem
}
+ case ^ast.Matrix_Type:
+ if position_in_node(n.elem, position) {
+ return n.elem
+ }
+ if position_in_node(n.row_count, position) {
+ return n.row_count
+ }
+ if position_in_node(n.column_count, position) {
+ return n.column_count
+ }
+ case ^ast.Bit_Field_Type:
+ if position_in_node(n.backing_type, position) {
+ return n.backing_type
+ }
}
return node