mirror of
https://github.com/JetBrains/intellij-sdk-code-samples.git
synced 2025-07-30 02:07:50 +08:00
55 lines
1.6 KiB
Markdown
55 lines
1.6 KiB
Markdown
---
|
|
layout: editable
|
|
title: Completion Contributor
|
|
---
|
|
|
|
|
|
The easiest way to provide completion is to use a completion contributor.
|
|
|
|
### 1. Define a completion contributor
|
|
|
|
Let's provide custom completion for values in property files.
|
|
|
|
```java
|
|
package com.simpleplugin;
|
|
|
|
import com.intellij.codeInsight.completion.*;
|
|
import com.intellij.codeInsight.lookup.LookupElementBuilder;
|
|
import com.intellij.patterns.PlatformPatterns;
|
|
import com.intellij.util.ProcessingContext;
|
|
import com.simpleplugin.psi.SimpleTypes;
|
|
import org.jetbrains.annotations.NotNull;
|
|
|
|
public class SimpleCompletionContributor extends CompletionContributor {
|
|
public SimpleCompletionContributor() {
|
|
extend(CompletionType.BASIC,
|
|
PlatformPatterns.psiElement(SimpleTypes.VALUE).withLanguage(SimpleLanguage.INSTANCE),
|
|
new CompletionProvider<CompletionParameters>() {
|
|
public void addCompletions(@NotNull CompletionParameters parameters,
|
|
ProcessingContext context,
|
|
@NotNull CompletionResultSet resultSet) {
|
|
resultSet.addElement(LookupElementBuilder.create("Hello"));
|
|
}
|
|
}
|
|
);
|
|
}
|
|
}
|
|
```
|
|
|
|
### 2. Register the completion contributor
|
|
|
|
```xml
|
|
<completion.contributor language="Simple" implementationClass="com.simpleplugin.SimpleCompletionContributor"/>
|
|
```
|
|
|
|
### 3. Run the project
|
|
|
|

|
|
|
|
[Previous](line_marker_provider.html)
|
|
[Top](cls_tutorial.html)
|
|
[Next](reference_contributor.html)
|
|
|
|
|
|
|