disable autocompletion for live/postfix templates

This commit is contained in:
Andrey Starovoyt
2014-12-01 16:42:07 +03:00
parent fcc9af14a8
commit af6e705092
9 changed files with 51 additions and 20 deletions

View File

@@ -0,0 +1,7 @@
import java.lang.Object;
public class Foo {
void m() {
new Object().instan<caret>
}
}

View File

@@ -0,0 +1,7 @@
import java.lang.Object;
public class Foo {
void m() {
new Object().instan<caret>
}
}

View File

@@ -126,6 +126,13 @@ public class TemplatesCompletionTest extends CompletionAutoPopupTestCase {
doAutoPopupTest("instanceof", null);
}
public void testDoNotAutoCompleteCompletionElementIfTemplateUnique() {
LiveTemplateCompletionContributor.ourShowTemplatesInTests = true;
configureByFile();
myFixture.completeBasic();
checkResultByFile();
}
public void testDoNotCompleteTemplateInMultiCaretMode() {
LiveTemplateCompletionContributor.ourShowTemplatesInTests = true;
configureByFile();

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2000-2009 JetBrains s.r.o.
* Copyright 2000-2014 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -55,13 +55,13 @@ public enum AutoCompletionPolicy {
return new PolicyDecorator(element, this);
}
/**
* @deprecated use direct call {@link LookupElement#getAutoCompletionPolicy()} instead
*/
@Nullable
@Deprecated
public static AutoCompletionPolicy getPolicy(LookupElement element) {
final PolicyDecorator decorator = element.as(PolicyDecorator.CLASS_CONDITION_KEY);
if (decorator != null) {
return decorator.myPolicy;
}
return null;
return element.getAutoCompletionPolicy();
}
private static class PolicyDecorator extends LookupElementDecorator<LookupElement> {
@@ -73,5 +73,9 @@ public enum AutoCompletionPolicy {
myPolicy = policy;
}
@Override
public AutoCompletionPolicy getAutoCompletionPolicy() {
return myPolicy;
}
}
}

View File

@@ -80,6 +80,10 @@ public abstract class LookupElement extends UserDataHolderBase {
public void handleInsert(InsertionContext context) {
}
public AutoCompletionPolicy getAutoCompletionPolicy() {
return AutoCompletionPolicy.SETTINGS_DEPENDENT;
}
@Override
public String toString() {
return getLookupString();

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2000-2009 JetBrains s.r.o.
* Copyright 2000-2014 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -64,6 +64,11 @@ public abstract class LookupElementDecorator<T extends LookupElement> extends Lo
myDelegate.handleInsert(context);
}
@Override
public AutoCompletionPolicy getAutoCompletionPolicy() {
return myDelegate.getAutoCompletionPolicy();
}
@Override
public String toString() {
return myDelegate.toString();

View File

@@ -390,17 +390,7 @@ public class CodeCompletionHandlerBase {
@Nullable
private static AutoCompletionPolicy getAutocompletionPolicy(LookupElement element) {
final AutoCompletionPolicy policy = AutoCompletionPolicy.getPolicy(element);
if (policy != null) {
return policy;
}
final LookupItem item = element.as(LookupItem.CLASS_CONDITION_KEY);
if (item != null) {
return item.getAutoCompletionPolicy();
}
return null;
return element.getAutoCompletionPolicy();
}
private static boolean isInsideIdentifier(final OffsetMap offsetMap) {

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2000-2009 JetBrains s.r.o.
* Copyright 2000-2014 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -293,6 +293,7 @@ public class LookupItem<T> extends MutableLookupElement<T> implements Comparable
return this;
}
@Override
public AutoCompletionPolicy getAutoCompletionPolicy() {
return myAutoCompletionPolicy;
}

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2000-2013 JetBrains s.r.o.
* Copyright 2000-2014 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,6 +15,7 @@
*/
package com.intellij.codeInsight.template.impl;
import com.intellij.codeInsight.lookup.AutoCompletionPolicy;
import com.intellij.codeInsight.lookup.LookupElement;
import com.intellij.codeInsight.lookup.LookupElementPresentation;
import com.intellij.codeInsight.lookup.RealLookupElementPresentation;
@@ -84,6 +85,11 @@ abstract public class LiveTemplateLookupElement extends LookupElement {
}
}
@Override
public AutoCompletionPolicy getAutoCompletionPolicy() {
return AutoCompletionPolicy.NEVER_AUTOCOMPLETE;
}
@Override
public boolean isWorthShowingInAutoPopup() {
return myWorthShowingInAutoPopup;