[vcs]: provide full completion for move to another changelist panel including combobox model and tasks from task plugin

This commit is contained in:
Nadya Zabrodina
2016-06-24 15:14:07 +03:00
committed by Nadya Zabrodina
parent 873214c889
commit 8900f469e1
2 changed files with 16 additions and 2 deletions
@@ -18,6 +18,7 @@ package com.intellij.codeInsight.completion;
import com.intellij.codeInsight.lookup.LookupElement;
import com.intellij.codeInsight.lookup.LookupElementBuilder;
import com.intellij.openapi.editor.Document;
import com.intellij.openapi.util.Key;
import com.intellij.psi.PsiDocumentManager;
import com.intellij.psi.PsiFile;
import com.intellij.ui.StringComboboxEditor;
@@ -30,6 +31,8 @@ import javax.swing.*;
*/
public class ComboEditorCompletionContributor extends CompletionContributor{
public static final Key<Boolean> CONTINUE_RUN_COMPLETION = Key.create("CONTINUE_RUN_COMPLETION");
@Override
public void fillCompletionVariants(@NotNull final CompletionParameters parameters, @NotNull final CompletionResultSet result) {
if (parameters.getInvocationCount() == 0) {
@@ -60,7 +63,9 @@ public class ComboEditorCompletionContributor extends CompletionContributor{
}), count-i));
}
}
result.stopHere();
if (!Boolean.TRUE.equals(document.getUserData(CONTINUE_RUN_COMPLETION))) {
result.stopHere();
}
}
}
}
@@ -15,6 +15,7 @@
*/
package com.intellij.openapi.vcs.changes.ui;
import com.intellij.openapi.editor.ex.EditorEx;
import com.intellij.openapi.fileTypes.FileTypes;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.ui.ComboBox;
@@ -37,6 +38,8 @@ import java.util.Collection;
import java.util.Collections;
import java.util.List;
import static com.intellij.codeInsight.completion.ComboEditorCompletionContributor.CONTINUE_RUN_COMPLETION;
public class ChangeListChooserPanel extends JPanel {
private final MyEditorComboBox myExistingListsCombo;
@@ -185,7 +188,13 @@ public class ChangeListChooserPanel extends JPanel {
public MyEditorComboBox(Project project) {
super();
setEditor(new StringComboboxEditor(project, FileTypes.PLAIN_TEXT, this));
setEditor(new StringComboboxEditor(project, FileTypes.PLAIN_TEXT, this) {
@Override
protected void onEditorCreate(EditorEx editor) {
super.onEditorCreate(editor);
getDocument().putUserData(CONTINUE_RUN_COMPLETION, true);
}
});
}
@NotNull