From 5c27b12714c294d51fe687c3bf6925f12bd34a7f Mon Sep 17 00:00:00 2001 From: Jochem Pouwels Date: Tue, 16 Feb 2021 12:48:14 +0100 Subject: [PATCH] Fixed wrong endType symbol in UnmatchedBraceHandler The current handler sometimes entered the wrong endType, this should fix it. Previously the following code would add a '}' instead of end ``` local test = { fun = function() if true then[CARET_IS_HERE] end } ``` --- .../java/com/tang/intellij/lua/braces/LuaBraceMatcher.kt | 4 ++-- .../lua/editor/LuaEnterAfterUnmatchedBraceHandler.kt | 5 +++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/tang/intellij/lua/braces/LuaBraceMatcher.kt b/src/main/java/com/tang/intellij/lua/braces/LuaBraceMatcher.kt index 98dc729d4..44fde08ed 100644 --- a/src/main/java/com/tang/intellij/lua/braces/LuaBraceMatcher.kt +++ b/src/main/java/com/tang/intellij/lua/braces/LuaBraceMatcher.kt @@ -37,8 +37,8 @@ class LuaBraceMatcher : PairedBraceMatcher { return true } - override fun getCodeConstructStart(psiFile: PsiFile, i: Int): Int { - return i + override fun getCodeConstructStart(psiFile: PsiFile, openingOffset: Int): Int { + return openingOffset } companion object { diff --git a/src/main/java/com/tang/intellij/lua/editor/LuaEnterAfterUnmatchedBraceHandler.kt b/src/main/java/com/tang/intellij/lua/editor/LuaEnterAfterUnmatchedBraceHandler.kt index b4203ea5e..cd206c358 100644 --- a/src/main/java/com/tang/intellij/lua/editor/LuaEnterAfterUnmatchedBraceHandler.kt +++ b/src/main/java/com/tang/intellij/lua/editor/LuaEnterAfterUnmatchedBraceHandler.kt @@ -67,6 +67,7 @@ class LuaEnterAfterUnmatchedBraceHandler : EnterHandlerDelegate { var shouldClose = false var range: PsiElement? = null var cur: PsiElement = lElement + val endTypeAtCaret = getEnd(cur.parent.node.elementType) while (true) { val searched = cur.parent if (searched == null || searched is PsiFile) break @@ -86,9 +87,9 @@ class LuaEnterAfterUnmatchedBraceHandler : EnterHandlerDelegate { val endType = getEnd(range.node.elementType) val document = editor.document if (rElement !is PsiWhiteSpace) - document.insertString(caretOffset, "$endType ") + document.insertString(caretOffset, "$endTypeAtCaret ") else - document.insertString(caretOffset, "$endType") + document.insertString(caretOffset, "$endTypeAtCaret") editorActionHandler?.execute(editor, editor.caretModel.currentCaret, dataContext) val project = lElement.project