Skip to content

Commit af25d73

Browse files
committed
refactor(devins-lang): init agent library to use variable in agent #100
1 parent ab76784 commit af25d73

File tree

3 files changed

+46
-3
lines changed

3 files changed

+46
-3
lines changed
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package cc.unitmesh.devti.language.completion
2+
3+
import cc.unitmesh.devti.language.DevInIcons
4+
import com.intellij.codeInsight.completion.CompletionParameters
5+
import com.intellij.codeInsight.completion.CompletionProvider
6+
import com.intellij.codeInsight.completion.CompletionResultSet
7+
import com.intellij.codeInsight.completion.PrioritizedLookupElement
8+
import com.intellij.codeInsight.lookup.LookupElementBuilder
9+
import com.intellij.util.ProcessingContext
10+
11+
class AgentToolLibraryCompletion : CompletionProvider<CompletionParameters>() {
12+
override fun addCompletions(
13+
parameters: CompletionParameters,
14+
context: ProcessingContext,
15+
result: CompletionResultSet
16+
) {
17+
val command = PrioritizedLookupElement.withPriority(
18+
LookupElementBuilder.create("commands")
19+
.withIcon(DevInIcons.DEFAULT)
20+
.withTypeText("DevIns all commands for AI Agent to call", true),
21+
0.0
22+
)
23+
24+
val agent = PrioritizedLookupElement.withPriority(
25+
LookupElementBuilder.create("agents")
26+
.withIcon(DevInIcons.DEFAULT)
27+
.withTypeText("DevIns all agent for AI Agent to call", true),
28+
0.0
29+
)
30+
31+
result.addElement(command)
32+
result.addElement(agent)
33+
}
34+
35+
}

exts/devins-lang/src/main/kotlin/cc/unitmesh/devti/language/completion/DevInCompletionContributor.kt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,10 @@ import com.intellij.psi.PsiElement
1515
class DevInCompletionContributor : CompletionContributor() {
1616
init {
1717
extend(CompletionType.BASIC, PlatformPatterns.psiElement(DevInTypes.LANGUAGE_ID), CodeFenceLanguageCompletion())
18-
extend(CompletionType.BASIC, PlatformPatterns.psiElement(DevInTypes.VARIABLE_ID), CustomVariableCompletion())
18+
19+
extend(CompletionType.BASIC, PlatformPatterns.psiElement(DevInTypes.VARIABLE_ID), VariableCompletionProvider())
20+
extend(CompletionType.BASIC, PlatformPatterns.psiElement(DevInTypes.VARIABLE_ID), AgentToolLibraryCompletion())
21+
1922
extend(CompletionType.BASIC, PlatformPatterns.psiElement(DevInTypes.COMMAND_ID), BuiltinCommandCompletion())
2023
extend(CompletionType.BASIC, PlatformPatterns.psiElement(DevInTypes.AGENT_ID), CustomAgentCompletion())
2124

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,22 @@ import cc.unitmesh.devti.custom.compile.CustomVariable
44
import com.intellij.codeInsight.completion.CompletionParameters
55
import com.intellij.codeInsight.completion.CompletionProvider
66
import com.intellij.codeInsight.completion.CompletionResultSet
7+
import com.intellij.codeInsight.completion.PrioritizedLookupElement
78
import com.intellij.codeInsight.lookup.LookupElementBuilder
89
import com.intellij.util.ProcessingContext
910

10-
class CustomVariableCompletion: CompletionProvider<CompletionParameters>() {
11+
class VariableCompletionProvider : CompletionProvider<CompletionParameters>() {
1112
override fun addCompletions(
1213
parameters: CompletionParameters,
1314
context: ProcessingContext,
1415
result: CompletionResultSet,
1516
) {
1617
CustomVariable.all().forEach {
17-
val withTypeText = LookupElementBuilder.create(it.variable).withTypeText(it.description, true)
18+
val withTypeText =
19+
PrioritizedLookupElement.withPriority(
20+
LookupElementBuilder.create(it.variable).withTypeText(it.description, true),
21+
99.0
22+
)
1823
result.addElement(withTypeText)
1924
}
2025
}

0 commit comments

Comments
 (0)