mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
CompletionContributorForTextField must work in Dumb mode.
This commit is contained in:
@@ -3,25 +3,26 @@ package com.intellij.util;
|
||||
import com.intellij.codeInsight.completion.CompletionContributor;
|
||||
import com.intellij.codeInsight.completion.CompletionParameters;
|
||||
import com.intellij.codeInsight.completion.CompletionResultSet;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.project.DumbAware;
|
||||
import com.intellij.openapi.project.DumbService;
|
||||
import com.intellij.psi.PsiFile;
|
||||
import com.intellij.psi.PsiPlainTextFile;
|
||||
|
||||
/**
|
||||
* @author sergey.evdokimov
|
||||
*/
|
||||
public class CompletionContributorForTextField extends CompletionContributor {
|
||||
public class CompletionContributorForTextField extends CompletionContributor implements DumbAware {
|
||||
|
||||
@Override
|
||||
public void fillCompletionVariants(CompletionParameters parameters, CompletionResultSet result) {
|
||||
PsiFile file = parameters.getOriginalFile();
|
||||
if (!(file instanceof PsiPlainTextFile)) return;
|
||||
|
||||
ApplicationManager.getApplication().assertReadAccessAllowed();
|
||||
|
||||
TextFieldCompletionProvider field = file.getUserData(TextFieldCompletionProvider.COMPLETING_TEXT_FIELD_KEY);
|
||||
if (field == null) return;
|
||||
|
||||
if (!(field instanceof DumbAware) && DumbService.isDumb(file.getProject())) return;
|
||||
|
||||
String text = file.getText();
|
||||
int offset = Math.min(text.length(), parameters.getOffset());
|
||||
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
package com.intellij.util;
|
||||
|
||||
import com.intellij.openapi.project.DumbAware;
|
||||
|
||||
/**
|
||||
* @author sergey.evdokimov
|
||||
*/
|
||||
public abstract class TextFieldCompletionProviderDumbAware extends TextFieldCompletionProvider implements DumbAware {
|
||||
|
||||
}
|
||||
@@ -35,6 +35,7 @@ import com.intellij.ui.EditorTextField;
|
||||
import com.intellij.ui.EditorTextFieldProvider;
|
||||
import com.intellij.util.Consumer;
|
||||
import com.intellij.util.TextFieldCompletionProvider;
|
||||
import com.intellij.util.TextFieldCompletionProviderDumbAware;
|
||||
import git4idea.history.NewGitUsersComponent;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
@@ -151,7 +152,7 @@ public class UsersFilterAction extends BasePopupAction {
|
||||
myEditorField.setOneLineMode(false);
|
||||
panel.add(myEditorField, BorderLayout.CENTER);
|
||||
|
||||
myTextFieldCompletionProvider = new TextFieldCompletionProvider() {
|
||||
myTextFieldCompletionProvider = new TextFieldCompletionProviderDumbAware() {
|
||||
@NotNull
|
||||
@Override
|
||||
protected String getPrefix(@NotNull String currentTextPrefix) {
|
||||
|
||||
@@ -28,6 +28,7 @@ import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.ui.*;
|
||||
import com.intellij.util.ArrayUtil;
|
||||
import com.intellij.util.TextFieldCompletionProvider;
|
||||
import com.intellij.util.TextFieldCompletionProviderDumbAware;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.plugins.groovy.mvc.util.ModuleCellRenderer;
|
||||
import org.jetbrains.plugins.groovy.mvc.util.MvcTargetDialogCompletionUtils;
|
||||
@@ -148,7 +149,7 @@ public class MvcRunTargetDialog extends DialogWrapper {
|
||||
myFakePanel = new JPanel(new BorderLayout());
|
||||
myFakePanel.add(myTargetField, BorderLayout.CENTER);
|
||||
|
||||
TextFieldCompletionProvider vmOptionCompletionProvider = new TextFieldCompletionProvider() {
|
||||
TextFieldCompletionProvider vmOptionCompletionProvider = new TextFieldCompletionProviderDumbAware() {
|
||||
@NotNull
|
||||
@Override
|
||||
protected String getPrefix(@NotNull String currentTextPrefix) {
|
||||
@@ -164,7 +165,7 @@ public class MvcRunTargetDialog extends DialogWrapper {
|
||||
};
|
||||
myVmOptionsField = vmOptionCompletionProvider.createEditor(myModule.getProject());
|
||||
|
||||
new TextFieldCompletionProvider() {
|
||||
new TextFieldCompletionProviderDumbAware() {
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user