diff options
| author | Brad Lewis <22850972+BradLewis@users.noreply.github.com> | 2025-09-07 16:49:59 -0400 |
|---|---|---|
| committer | Brad Lewis <22850972+BradLewis@users.noreply.github.com> | 2025-09-08 21:09:30 -0400 |
| commit | 0b0ed964435bdd5b89e8df525e20e86cc332f573 (patch) | |
| tree | de3664b608834728e2e3fc7004c345cea16f4aae /src/server/completion.odin | |
| parent | 6a10502edbc83373344ac252869a1e33e8032e0e (diff) | |
Remove completions when entering bit_field or struct field names
Diffstat (limited to 'src/server/completion.odin')
| -rw-r--r-- | src/server/completion.odin | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/server/completion.odin b/src/server/completion.odin index 88bdfdd..aceff60 100644 --- a/src/server/completion.odin +++ b/src/server/completion.odin @@ -1661,6 +1661,28 @@ get_identifier_completion :: proc( lookup_name := "" is_incomplete := true + if position_context.value_decl != nil { + for value in position_context.value_decl.values { + if struct_type, ok := value.derived.(^ast.Struct_Type); ok { + if struct_type.fields != nil { + for field in struct_type.fields.list { + for name in field.names { + if position_in_node(name, position_context.position) { + return false + } + } + } + } + } else if bit_field_type, ok := value.derived.(^ast.Bit_Field_Type); ok { + for field in bit_field_type.fields { + if position_in_node(field.name, position_context.position) { + return false + } + } + } + } + } + if position_context.identifier != nil { if ident, ok := position_context.identifier.derived.(^ast.Ident); ok { lookup_name = ident.name |