add kotlin support for key completion and modularize completion providers
This commit is contained in:
parent
6c0a0c21ce
commit
6f4f6aa92a
@ -1,18 +0,0 @@
|
|||||||
package de.marhali.easyi18n.editor;
|
|
||||||
|
|
||||||
import com.intellij.codeInsight.completion.CompletionContributor;
|
|
||||||
import com.intellij.codeInsight.completion.CompletionType;
|
|
||||||
import com.intellij.patterns.*;
|
|
||||||
import com.intellij.psi.PsiLiteralValue;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Show i18n key completion for literal values.
|
|
||||||
* @author marhali
|
|
||||||
*/
|
|
||||||
public class I18nCompletionContributor extends CompletionContributor {
|
|
||||||
|
|
||||||
public I18nCompletionContributor() {
|
|
||||||
extend(CompletionType.BASIC, PlatformPatterns.psiElement().inside(PsiLiteralValue.class),
|
|
||||||
new I18nCompletionProvider());
|
|
||||||
}
|
|
||||||
}
|
|
@ -20,10 +20,12 @@ import java.util.List;
|
|||||||
* I18n translation key completion provider.
|
* I18n translation key completion provider.
|
||||||
* @author marhali
|
* @author marhali
|
||||||
*/
|
*/
|
||||||
public class I18nCompletionProvider extends CompletionProvider<CompletionParameters> {
|
public class KeyCompletionProvider extends CompletionProvider<CompletionParameters> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void addCompletions(@NotNull CompletionParameters parameters, @NotNull ProcessingContext context, @NotNull CompletionResultSet result) {
|
protected void addCompletions(@NotNull CompletionParameters parameters,
|
||||||
|
@NotNull ProcessingContext context, @NotNull CompletionResultSet result) {
|
||||||
|
|
||||||
Project project = parameters.getOriginalFile().getProject();
|
Project project = parameters.getOriginalFile().getProject();
|
||||||
String previewLocale = SettingsService.getInstance(project).getState().getPreviewLocale();
|
String previewLocale = SettingsService.getInstance(project).getState().getPreviewLocale();
|
||||||
|
|
@ -10,7 +10,7 @@ import de.marhali.easyi18n.editor.KeyAnnotator;
|
|||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Translation key annotator.
|
* Translation key annotator for generic languages which support {@link PsiLiteralValue}.
|
||||||
* @author marhali
|
* @author marhali
|
||||||
*/
|
*/
|
||||||
public class GenericKeyAnnotator extends KeyAnnotator implements Annotator {
|
public class GenericKeyAnnotator extends KeyAnnotator implements Annotator {
|
||||||
|
@ -0,0 +1,19 @@
|
|||||||
|
package de.marhali.easyi18n.editor.generic;
|
||||||
|
|
||||||
|
import com.intellij.codeInsight.completion.CompletionContributor;
|
||||||
|
import com.intellij.codeInsight.completion.CompletionType;
|
||||||
|
import com.intellij.patterns.*;
|
||||||
|
import com.intellij.psi.PsiLiteralValue;
|
||||||
|
import de.marhali.easyi18n.editor.KeyCompletionProvider;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Translation key completion for generic languages which support {@link PsiLiteralValue}.
|
||||||
|
* @author marhali
|
||||||
|
*/
|
||||||
|
public class GenericKeyCompletionContributor extends CompletionContributor {
|
||||||
|
|
||||||
|
public GenericKeyCompletionContributor() {
|
||||||
|
extend(CompletionType.BASIC, PlatformPatterns.psiElement().inside(PsiLiteralValue.class),
|
||||||
|
new KeyCompletionProvider());
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,20 @@
|
|||||||
|
package de.marhali.easyi18n.editor.kotlin;
|
||||||
|
|
||||||
|
import com.intellij.codeInsight.completion.CompletionContributor;
|
||||||
|
import com.intellij.codeInsight.completion.CompletionType;
|
||||||
|
import com.intellij.patterns.PlatformPatterns;
|
||||||
|
|
||||||
|
import de.marhali.easyi18n.editor.KeyCompletionProvider;
|
||||||
|
import org.jetbrains.kotlin.psi.KtLiteralStringTemplateEntry;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Kotlin specific translation key completion contributor.
|
||||||
|
* @author marhali
|
||||||
|
*/
|
||||||
|
public class KotlinKeyCompletionContributor extends CompletionContributor {
|
||||||
|
|
||||||
|
public KotlinKeyCompletionContributor() {
|
||||||
|
extend(CompletionType.BASIC, PlatformPatterns.psiElement().inside(KtLiteralStringTemplateEntry.class),
|
||||||
|
new KeyCompletionProvider());
|
||||||
|
}
|
||||||
|
}
|
@ -1,5 +1,8 @@
|
|||||||
<idea-plugin>
|
<idea-plugin>
|
||||||
<extensions defaultExtensionNs="com.intellij">
|
<extensions defaultExtensionNs="com.intellij">
|
||||||
<annotator language="kotlin" implementationClass="de.marhali.easyi18n.editor.kotlin.KotlinKeyAnnotator" />
|
<annotator language="kotlin" implementationClass="de.marhali.easyi18n.editor.kotlin.KotlinKeyAnnotator" />
|
||||||
|
|
||||||
|
<completion.contributor language="kotlin"
|
||||||
|
implementationClass="de.marhali.easyi18n.editor.kotlin.KotlinKeyCompletionContributor" />
|
||||||
</extensions>
|
</extensions>
|
||||||
</idea-plugin>
|
</idea-plugin>
|
@ -14,7 +14,7 @@
|
|||||||
<projectService serviceImplementation="de.marhali.easyi18n.service.SettingsService" />
|
<projectService serviceImplementation="de.marhali.easyi18n.service.SettingsService" />
|
||||||
|
|
||||||
<completion.contributor language="any"
|
<completion.contributor language="any"
|
||||||
implementationClass="de.marhali.easyi18n.editor.I18nCompletionContributor" />
|
implementationClass="de.marhali.easyi18n.editor.generic.GenericKeyCompletionContributor" />
|
||||||
|
|
||||||
<annotator language="" implementationClass="de.marhali.easyi18n.editor.generic.GenericKeyAnnotator" />
|
<annotator language="" implementationClass="de.marhali.easyi18n.editor.generic.GenericKeyAnnotator" />
|
||||||
</extensions>
|
</extensions>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user