mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-04-19 21:11:28 +07:00
CreateSwitchIntention removed all operations with Document to exclude possible problems
This commit is contained in:
@@ -42,20 +42,12 @@ public class CreateSwitchIntention extends BaseElementAtCaretIntentionAction {
|
||||
final PsiExpressionStatement expressionStatement = resolveExpressionStatement(element);
|
||||
final PsiElementFactory elementFactory = JavaPsiFacade.getInstance(project).getElementFactory();
|
||||
PsiSwitchStatement switchStatement = (PsiSwitchStatement)elementFactory
|
||||
.createStatementFromText(String.format("switch (%s) {\n$MARKER$\n}", expressionStatement.getExpression().getText()), null);
|
||||
.createStatementFromText(String.format("switch (%s) {}", expressionStatement.getExpression().getText()), null);
|
||||
switchStatement = (PsiSwitchStatement)expressionStatement.replace(switchStatement);
|
||||
CodeStyleManager.getInstance(project).reformat(switchStatement);
|
||||
|
||||
for (final PsiStatement psiStatement : switchStatement.getBody().getStatements()) {
|
||||
if (psiStatement.getText().equals("$MARKER$")) {
|
||||
final Document document = editor.getDocument();
|
||||
PsiDocumentManager.getInstance(project).doPostponedOperationsAndUnblockDocument(document);
|
||||
final int textOffset = psiStatement.getTextOffset();
|
||||
editor.getCaretModel().moveToOffset(textOffset);
|
||||
document.deleteString(textOffset, textOffset + psiStatement.getTextLength());
|
||||
return;
|
||||
}
|
||||
}
|
||||
final PsiJavaToken lBrace = switchStatement.getBody().getLBrace();
|
||||
editor.getCaretModel().moveToOffset(lBrace.getTextOffset() + lBrace.getTextLength());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -5,8 +5,7 @@ class X {
|
||||
}
|
||||
|
||||
void m(MyEnum e) {
|
||||
switch (e) {
|
||||
<caret>
|
||||
switch (e) {<caret>
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -5,8 +5,7 @@ class X {
|
||||
}
|
||||
|
||||
void m(MyEnum e) {
|
||||
switch (e) {
|
||||
<caret>
|
||||
switch (e) {<caret>
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -3,8 +3,7 @@ class X {
|
||||
void m() {
|
||||
|
||||
int foo = 10;
|
||||
switch (foo) {
|
||||
<caret>
|
||||
switch (foo) {<caret>
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -3,8 +3,7 @@ class X {
|
||||
void m() {
|
||||
|
||||
String s = getStr();
|
||||
switch (s) {
|
||||
<caret>
|
||||
switch (s) {<caret>
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user