mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-10 13:17:09 +07:00
fixed PY-14433 Fill Paragraph: Invalid range specified: (504,502); Throwable at com.intellij.openapi.util.TextRange.assertProperRange
This commit is contained in:
+3
-2
@@ -4,6 +4,7 @@ import com.intellij.openapi.command.CommandProcessor;
|
||||
import com.intellij.openapi.editor.Document;
|
||||
import com.intellij.openapi.editor.Editor;
|
||||
import com.intellij.openapi.util.TextRange;
|
||||
import com.intellij.openapi.util.UnfairTextRange;
|
||||
import com.intellij.openapi.util.text.CharFilter;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.psi.*;
|
||||
@@ -82,7 +83,7 @@ public class ParagraphFillHandler {
|
||||
private TextRange getTextRange(@NotNull final PsiElement element, @NotNull final Editor editor) {
|
||||
int startOffset = getStartOffset(element, editor);
|
||||
int endOffset = getEndOffset(element, editor);
|
||||
return TextRange.create(startOffset, endOffset);
|
||||
return new UnfairTextRange(startOffset, endOffset);
|
||||
}
|
||||
|
||||
private int getStartOffset(@NotNull final PsiElement element, @NotNull final Editor editor) {
|
||||
@@ -105,7 +106,7 @@ public class ParagraphFillHandler {
|
||||
}
|
||||
lineNumber -= 1;
|
||||
}
|
||||
final int lineStartOffset = document.getLineStartOffset(lineNumber);
|
||||
final int lineStartOffset = lineNumber == document.getLineNumber(elementTextOffset) ? elementTextOffset : document.getLineStartOffset(lineNumber);
|
||||
final String lineText = document
|
||||
.getText(TextRange.create(lineStartOffset, document.getLineEndOffset(lineNumber)));
|
||||
int shift = StringUtil.findFirst(lineText, CharFilter.NOT_WHITESPACE_FILTER);
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
a = """
|
||||
<caret>
|
||||
"""
|
||||
@@ -0,0 +1,3 @@
|
||||
a = """
|
||||
|
||||
"""
|
||||
@@ -20,7 +20,6 @@ import com.intellij.ide.DataManager;
|
||||
import com.intellij.openapi.actionSystem.ActionManager;
|
||||
import com.intellij.openapi.actionSystem.AnActionEvent;
|
||||
import com.intellij.openapi.command.CommandProcessor;
|
||||
import com.intellij.psi.codeStyle.CodeStyleSettings;
|
||||
import com.intellij.psi.codeStyle.CodeStyleSettingsManager;
|
||||
import com.intellij.psi.codeStyle.CommonCodeStyleSettings;
|
||||
import com.jetbrains.python.fixtures.PyTestCase;
|
||||
@@ -62,6 +61,10 @@ public class PyFillParagraphTest extends PyTestCase {
|
||||
doTest();
|
||||
}
|
||||
|
||||
public void testEmptyMultilineString() {
|
||||
doTest();
|
||||
}
|
||||
|
||||
public void testEnter() {
|
||||
final CommonCodeStyleSettings settings =
|
||||
CodeStyleSettingsManager.getInstance(myFixture.getProject()).getCurrentSettings().getCommonSettings(PythonLanguage.getInstance());
|
||||
|
||||
Reference in New Issue
Block a user