From 72319b29c610e318c3133fa00ed5f925e6b4abea Mon Sep 17 00:00:00 2001 From: James Westman Date: Sat, 3 May 2025 14:44:13 -0500 Subject: [PATCH] completions: Don't suggest "null" where not allowed --- blueprintcompiler/completions.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/blueprintcompiler/completions.py b/blueprintcompiler/completions.py index ca32eac..81dd03d 100644 --- a/blueprintcompiler/completions.py +++ b/blueprintcompiler/completions.py @@ -32,6 +32,7 @@ from .completions_utils import ( get_sort_key, new_statement_patterns, ) +from .language.contexts import ValueTypeCtx from .language.types import ClassName from .lsp_utils import Completion, CompletionItemKind, TextEdit, get_docs_section from .parser import SKIP_TOKENS @@ -320,6 +321,8 @@ def prop_value_completer(ctx: CompletionContext): ) if (vt := ctx.ast_node.value_type) is not None: + assert isinstance(vt, ValueTypeCtx) + if isinstance(vt.value_type, gir.Enumeration): for name, member in vt.value_type.members.items(): yield Completion( @@ -345,11 +348,12 @@ def prop_value_completer(ctx: CompletionContext): elif isinstance(vt.value_type, gir.Class) or isinstance( vt.value_type, gir.Interface ): - yield Completion( - "null", - CompletionItemKind.Constant, - sort_text=get_sort_key(CompletionPriority.KEYWORD, "null"), - ) + if vt.allow_null: + yield Completion( + "null", + CompletionItemKind.Constant, + sort_text=get_sort_key(CompletionPriority.KEYWORD, "null"), + ) yield from get_object_id_completions(ctx, vt.value_type)