diff --git a/CHANGELOG.md b/CHANGELOG.md index ceeb3e3..7f2f171 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,10 @@ ## [Unreleased] +### Fixed + +- Fixed auto suggest of property ([issue 72](https://github.com/kizeevov/slint-idea-plugin/issues/72)) + ## [1.4.1] - 2025-01-18 ### Features diff --git a/gradle.properties b/gradle.properties index 07e4ea6..c782d18 100644 --- a/gradle.properties +++ b/gradle.properties @@ -9,7 +9,7 @@ pluginRepositoryUrl = https://github.com/kizeevov/slint-idea-plugin pluginGroup = dev.slint pluginName = SlintPlugin -pluginVersion = 1.4.1 +pluginVersion = 1.4.2 platformType = IU platformVersion = 2024.1 pluginSinceBuild = 241 diff --git a/src/main/grammars/SlintLexer.flex b/src/main/grammars/SlintLexer.flex index fe6d1c4..675bf33 100644 --- a/src/main/grammars/SlintLexer.flex +++ b/src/main/grammars/SlintLexer.flex @@ -97,7 +97,6 @@ DOC_COMMENT="/"\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+"/" {NUMERIC_LITERAL} { return NUMERIC_LITERAL; } {COLOR_LITERAL} { return COLOR_LITERAL; } {IDENTIFIER} { return IDENTIFIER; } - {PROPERTY_IDENTIFIER} { return PROPERTY_IDENTIFIER; } {WHITE_SPACE} { return WHITE_SPACE; } {LINE_COMMENT} { return LINE_COMMENT; } {DOC_COMMENT} { return DOC_COMMENT; } diff --git a/src/main/grammars/SlintParser.bnf b/src/main/grammars/SlintParser.bnf index fb6338f..2e1e91d 100644 --- a/src/main/grammars/SlintParser.bnf +++ b/src/main/grammars/SlintParser.bnf @@ -81,7 +81,6 @@ NUMERIC_LITERAL = 'regexp:-?\d+(\.\d+)?' COLOR_LITERAL = 'regexp:#([A-Fa-f0-9]{6,8}|[A-Fa-f0-9]{3,4})' IDENTIFIER = 'regexp:[a-zA-Z][a-zA-Z0-9\-_]*' - PROPERTY_IDENTIFIER = 'regexp:([a-zA-Z][a-zA-Z0-9\-_]*[\\.])+[a-zA-Z0-9\-_]*' WHITE_SPACE = 'regexp:\s+' LINE_COMMENT = 'regexp://.*' @@ -446,7 +445,9 @@ TernaryExpression ::= Expression '?' TernaryExpressionThen { pin=2 } private TernaryExpressionThen ::= Expression ':' TernaryExpressionElse private TernaryExpressionElse ::= Expression -PropertyExpression ::= IDENTIFIER | PROPERTY_IDENTIFIER +PropertyExpression ::= PropertyExpressionComposite | Identifier +PropertyExpressionComposite ::= Identifier '.' Identifier { pin=3 } + LiteralExpression ::= LengthLiteral | PhysicalLengthLiteral diff --git a/src/main/kotlin/dev/slint/ideaplugin/ide/highlighting/SlintSyntaxHighlighter.kt b/src/main/kotlin/dev/slint/ideaplugin/ide/highlighting/SlintSyntaxHighlighter.kt index 70169d8..224c5eb 100644 --- a/src/main/kotlin/dev/slint/ideaplugin/ide/highlighting/SlintSyntaxHighlighter.kt +++ b/src/main/kotlin/dev/slint/ideaplugin/ide/highlighting/SlintSyntaxHighlighter.kt @@ -21,7 +21,6 @@ class SlintSyntaxHighlighter : SyntaxHighlighterBase() { put(SlintElementTypes.STRING_LITERAL, SlintColors.STRING_LITERAL) put(SlintElementTypes.COLOR_LITERAL, SlintColors.NUMBER) - // put(SlintElementTypes.COLONEQ, SlintColors.OPERATION_SIGN) put(SlintElementTypes.EQ, SlintColors.OPERATION_SIGN) fillMap(this, SLINT_KEYWORDS, SlintColors.KEYWORD) diff --git a/src/main/kotlin/dev/slint/ideaplugin/ide/lsp/SlintLspCompletionSupport.kt b/src/main/kotlin/dev/slint/ideaplugin/ide/lsp/SlintLspCompletionSupport.kt index 10f5c35..f1d6a1e 100644 --- a/src/main/kotlin/dev/slint/ideaplugin/ide/lsp/SlintLspCompletionSupport.kt +++ b/src/main/kotlin/dev/slint/ideaplugin/ide/lsp/SlintLspCompletionSupport.kt @@ -15,16 +15,4 @@ class SlintLspCompletionSupport : LspCompletionSupport() { override fun getIcon(item: CompletionItem): Icon { return super.getIcon(item) ?: SlintIcons.SLINT } - - override fun createLookupElement(parameters: CompletionParameters, item: CompletionItem): LookupElement? { - val lookupElement = super.createLookupElement(parameters, item) as LookupElementBuilder - - if (item.kind == CompletionItemKind.Property) { - return lookupElement.withInsertHandler { context, _ -> - EditorModificationUtil.insertStringAtCaret(context.editor, ": ;", false, 2) - } - } - - return lookupElement - } } \ No newline at end of file