package com.github.masahirosuzuka.PhoneGapIntelliJPlugin.javascriptDependency.codecompletion;
import com.github.masahirosuzuka.PhoneGapIntelliJPlugin.PhoneGapUtil;
import com.intellij.codeInsight.completion.*;
import com.intellij.codeInsight.lookup.LookupElementBuilder;
import com.intellij.lang.javascript.JSTokenTypes;
import com.intellij.openapi.project.Project;
import com.intellij.patterns.PlatformPatterns;
import com.intellij.util.ProcessingContext;
import org.jetbrains.annotations.NotNull;
/**
* PhoneGapCodeCompletion.java
* <p/>
* Created by Masahiro Suzuka on 2014/05/25.
*/
public class PhoneGapEventLiteralsCompletionContributor extends CompletionContributor {
public PhoneGapEventLiteralsCompletionContributor() {
extend(CompletionType.BASIC, PlatformPatterns.psiElement(JSTokenTypes.STRING_LITERAL), getProvider());
}
private static CompletionProvider<CompletionParameters> getProvider() {
return new CompletionProvider<CompletionParameters>() {
@Override
protected void addCompletions(@NotNull CompletionParameters completionParameters,
ProcessingContext processingContext,
@NotNull CompletionResultSet completionResultSet) {
Project project = completionParameters.getEditor().getProject();
if (null == project || !PhoneGapUtil.isPhoneGapProject(project)) {
return;
}
completionResultSet.addElement(LookupElementBuilder.create("deviceready"));
completionResultSet.addElement(LookupElementBuilder.create("pause"));
completionResultSet.addElement(LookupElementBuilder.create("resume"));
completionResultSet.addElement(LookupElementBuilder.create("online"));
completionResultSet.addElement(LookupElementBuilder.create("offline"));
completionResultSet.addElement(LookupElementBuilder.create("backbutton"));
completionResultSet.addElement(LookupElementBuilder.create("menubutton"));
completionResultSet.addElement(LookupElementBuilder.create("searchbutton"));
completionResultSet.addElement(LookupElementBuilder.create("startcallbutton"));
completionResultSet.addElement(LookupElementBuilder.create("endcallbutton"));
completionResultSet.addElement(LookupElementBuilder.create("volumedownbutton"));
completionResultSet.addElement(LookupElementBuilder.create("volumeupbutton"));
}
};
}
}