Merge remote branch 'origin/master'

This commit is contained in:
Andrey Breslav
2011-12-01 16:55:14 +03:00
3 changed files with 29 additions and 2 deletions
@@ -3,6 +3,12 @@ package org.jetbrains.jet.plugin.completion;
import com.intellij.codeInsight.completion.*;
import com.intellij.codeInsight.lookup.LookupElementBuilder;
import com.intellij.patterns.PlatformPatterns;
import com.intellij.patterns.PsiElementPattern;
import com.intellij.psi.PsiElement;
import com.intellij.psi.filters.NotFilter;
import com.intellij.psi.filters.TextFilter;
import com.intellij.psi.filters.position.FilterPattern;
import com.intellij.psi.filters.position.LeftNeighbour;
import com.intellij.util.ProcessingContext;
import org.jetbrains.annotations.NotNull;
@@ -14,7 +20,7 @@ import org.jetbrains.annotations.NotNull;
*/
public class JetKeywordCompletionContributor extends CompletionContributor {
private static class JetKeywordCompletionProvider extends CompletionProvider<CompletionParameters> {
private static class JetTopKeywordCompletionProvider extends CompletionProvider<CompletionParameters> {
private final static String[] COMPLETE_KEYWORD = new String[] {
"namespace", "as", "type", "class", "this", "super", "val", "var", "fun", "for", "null", "true",
@@ -43,6 +49,12 @@ public class JetKeywordCompletionContributor extends CompletionContributor {
}
public JetKeywordCompletionContributor() {
extend(CompletionType.BASIC, PlatformPatterns.psiElement(), new JetKeywordCompletionProvider());
PsiElementPattern.Capture<PsiElement> notDotPlace =
PlatformPatterns.psiElement().and(new FilterPattern(new NotFilter(new LeftNeighbour(new TextFilter(".")))));
extend(CompletionType.BASIC,
notDotPlace,
new JetTopKeywordCompletionProvider());
}
}
@@ -0,0 +1,9 @@
fun foo() {
val str : String
str.<caret>
}
// ABSENT: namespace, as, type, class, this, super, val, var, fun, for, null, true
// ABSENT: false, is, in, throw, return, break, continue, object, if, try, else, while
// ABSENT: do, when, trait, This
@@ -0,0 +1,6 @@
fun foo() {
val str : String
str. <caret>
}
// ABSENT: public, val, in