mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
more realistic \n\t typing in tests
This commit is contained in:
+12
-10
@@ -21,7 +21,6 @@ import com.intellij.codeInsight.lookup.LookupManager;
|
||||
import com.intellij.codeInsight.lookup.impl.LookupImpl;
|
||||
import com.intellij.codeInsight.template.impl.TemplateSettings;
|
||||
import com.intellij.openapi.actionSystem.DataContext;
|
||||
import com.intellij.openapi.actionSystem.Presentation;
|
||||
import com.intellij.openapi.editor.Editor;
|
||||
import com.intellij.openapi.editor.actionSystem.EditorAction;
|
||||
import com.intellij.openapi.editor.actionSystem.EditorActionHandler;
|
||||
@@ -37,16 +36,19 @@ public class ChooseItemAction extends EditorAction {
|
||||
assert lookup != null;
|
||||
lookup.finishLookup(Lookup.NORMAL_SELECT_CHAR);
|
||||
}
|
||||
}
|
||||
|
||||
public void update(Editor editor, Presentation presentation, DataContext dataContext){
|
||||
LookupImpl lookup = (LookupImpl)LookupManager.getActiveLookup(editor);
|
||||
if (lookup != null) {
|
||||
lookup.refreshUi(); // to bring the list model up to date
|
||||
presentation.setEnabled(lookup.isFocused() &&
|
||||
!ChooseItemReplaceAction.hasTemplatePrefix(lookup, TemplateSettings.ENTER_CHAR));
|
||||
} else {
|
||||
presentation.setEnabled(false);
|
||||
@Override
|
||||
public boolean isEnabled(Editor editor, DataContext dataContext) {
|
||||
LookupImpl lookup = (LookupImpl)LookupManager.getActiveLookup(editor);
|
||||
if (lookup != null) {
|
||||
if (ChooseItemReplaceAction.hasTemplatePrefix(lookup, TemplateSettings.ENTER_CHAR)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return lookup.isFocused();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+7
-6
@@ -16,13 +16,12 @@
|
||||
|
||||
package com.intellij.codeInsight.lookup.impl.actions;
|
||||
|
||||
import com.intellij.codeInsight.completion.CodeCompletionFeatures;
|
||||
import com.intellij.codeInsight.lookup.Lookup;
|
||||
import com.intellij.codeInsight.lookup.LookupManager;
|
||||
import com.intellij.codeInsight.lookup.impl.LookupImpl;
|
||||
import com.intellij.codeInsight.completion.CodeCompletionFeatures;
|
||||
import com.intellij.featureStatistics.FeatureUsageTracker;
|
||||
import com.intellij.openapi.actionSystem.DataContext;
|
||||
import com.intellij.openapi.actionSystem.Presentation;
|
||||
import com.intellij.openapi.editor.Editor;
|
||||
import com.intellij.openapi.editor.actionSystem.EditorAction;
|
||||
import com.intellij.openapi.editor.actionSystem.EditorWriteActionHandler;
|
||||
@@ -39,10 +38,12 @@ public class ChooseItemCompleteStatementAction extends EditorAction {
|
||||
LookupImpl lookup = (LookupImpl)LookupManager.getActiveLookup(editor);
|
||||
lookup.finishLookup(Lookup.COMPLETE_STATEMENT_SELECT_CHAR);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isEnabled(Editor editor, DataContext dataContext) {
|
||||
LookupImpl lookup = (LookupImpl)LookupManager.getActiveLookup(editor);
|
||||
return lookup != null && lookup.isFocused();
|
||||
}
|
||||
}
|
||||
|
||||
public void update(Editor editor, Presentation presentation, DataContext dataContext){
|
||||
LookupImpl lookup = (LookupImpl)LookupManager.getActiveLookup(editor);
|
||||
presentation.setEnabled(lookup != null && lookup.isFocused());
|
||||
}
|
||||
}
|
||||
+20
-11
@@ -26,7 +26,6 @@ import com.intellij.codeInsight.template.impl.TemplateImpl;
|
||||
import com.intellij.codeInsight.template.impl.TemplateSettings;
|
||||
import com.intellij.featureStatistics.FeatureUsageTracker;
|
||||
import com.intellij.openapi.actionSystem.DataContext;
|
||||
import com.intellij.openapi.actionSystem.Presentation;
|
||||
import com.intellij.openapi.editor.Editor;
|
||||
import com.intellij.openapi.editor.actionSystem.EditorAction;
|
||||
import com.intellij.openapi.editor.actionSystem.EditorWriteActionHandler;
|
||||
@@ -45,6 +44,26 @@ public class ChooseItemReplaceAction extends EditorAction {
|
||||
assert lookup != null;
|
||||
lookup.finishLookup(Lookup.REPLACE_SELECT_CHAR);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isEnabled(Editor editor, DataContext dataContext) {
|
||||
LookupImpl lookup = (LookupImpl)LookupManager.getActiveLookup(editor);
|
||||
if (lookup != null) {
|
||||
if (hasTemplatePrefix(lookup, TemplateSettings.TAB_CHAR)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (lookup.isFocused()) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (lookup.isCompletion()) {
|
||||
lookup.refreshUi(); // to bring the list model up to date
|
||||
return !lookup.getItems().isEmpty();
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
static boolean hasTemplatePrefix(LookupImpl lookup, char shortcutChar) {
|
||||
@@ -60,14 +79,4 @@ public class ChooseItemReplaceAction extends EditorAction {
|
||||
return template != null && shortcutChar == TemplateSettings.getInstance().getShortcutChar(template);
|
||||
}
|
||||
|
||||
public void update(Editor editor, Presentation presentation, DataContext dataContext){
|
||||
LookupImpl lookup = (LookupImpl)LookupManager.getActiveLookup(editor);
|
||||
if (lookup != null) {
|
||||
lookup.refreshUi(); // to bring the list model up to date
|
||||
presentation.setEnabled((lookup.isFocused() || lookup.isCompletion() && !lookup.getItems().isEmpty()) &&
|
||||
!hasTemplatePrefix(lookup, TemplateSettings.TAB_CHAR));
|
||||
} else {
|
||||
presentation.setEnabled(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+23
-9
@@ -55,6 +55,7 @@ import com.intellij.openapi.editor.Document;
|
||||
import com.intellij.openapi.editor.Editor;
|
||||
import com.intellij.openapi.editor.EditorFactory;
|
||||
import com.intellij.openapi.editor.RangeMarker;
|
||||
import com.intellij.openapi.editor.actionSystem.EditorActionHandler;
|
||||
import com.intellij.openapi.editor.actionSystem.EditorActionManager;
|
||||
import com.intellij.openapi.editor.ex.DocumentEx;
|
||||
import com.intellij.openapi.editor.ex.util.EditorUtil;
|
||||
@@ -613,8 +614,7 @@ public class CodeInsightTestFixtureImpl extends BaseFixture implements CodeInsig
|
||||
return;
|
||||
}
|
||||
if (c == '\n') {
|
||||
if (LookupManager.getActiveLookup(getEditor()) != null) {
|
||||
performEditorAction(IdeActions.ACTION_CHOOSE_LOOKUP_ITEM);
|
||||
if (_performEditorAction(IdeActions.ACTION_CHOOSE_LOOKUP_ITEM)) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -622,8 +622,7 @@ public class CodeInsightTestFixtureImpl extends BaseFixture implements CodeInsig
|
||||
return;
|
||||
}
|
||||
if (c == '\t') {
|
||||
if (LookupManager.getInstance(getProject()).getActiveLookup() != null) {
|
||||
performEditorAction(IdeActions.ACTION_CHOOSE_LOOKUP_ITEM_REPLACE);
|
||||
if (_performEditorAction(IdeActions.ACTION_CHOOSE_LOOKUP_ITEM_REPLACE)) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -643,9 +642,19 @@ public class CodeInsightTestFixtureImpl extends BaseFixture implements CodeInsig
|
||||
@Override
|
||||
public void performEditorAction(final String actionId) {
|
||||
assertInitialized();
|
||||
_performEditorAction(actionId);
|
||||
}
|
||||
|
||||
private boolean _performEditorAction(String actionId) {
|
||||
final DataContext dataContext = DataManager.getInstance().getDataContext();
|
||||
EditorActionManager actionManager = EditorActionManager.getInstance();
|
||||
actionManager.getActionHandler(actionId).execute(getEditor(), dataContext);
|
||||
EditorActionHandler handler = actionManager.getActionHandler(actionId);
|
||||
if (!handler.isEnabled(myEditor, dataContext)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
handler.execute(getEditor(), dataContext);
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -872,10 +881,15 @@ public class CodeInsightTestFixtureImpl extends BaseFixture implements CodeInsig
|
||||
}
|
||||
|
||||
@Override
|
||||
public void checkResult(String text, boolean stripTrailingSpaces) {
|
||||
PsiDocumentManager.getInstance(getProject()).commitAllDocuments();
|
||||
EditorUtil.fillVirtualSpaceUntilCaret(myEditor);
|
||||
checkResult("TEXT", stripTrailingSpaces, SelectionAndCaretMarkupLoader.fromText(text, getProject()), myFile.getText());
|
||||
public void checkResult(final String text, final boolean stripTrailingSpaces) {
|
||||
new WriteCommandAction(getProject()) {
|
||||
@Override
|
||||
protected void run(Result result) throws Throwable {
|
||||
PsiDocumentManager.getInstance(getProject()).commitAllDocuments();
|
||||
EditorUtil.fillVirtualSpaceUntilCaret(myEditor);
|
||||
checkResult("TEXT", stripTrailingSpaces, SelectionAndCaretMarkupLoader.fromText(text, getProject()), myFile.getText());
|
||||
}
|
||||
}.execute();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user