Skip to content

Commit 26b2581

Browse files
committed
fix(devins-language): use List instead of Iterable for lookup result #101
Changed return type in JavaCustomDevInsSymbolProvider and DevInsSymbolProvider functions from Iterable to List to improve type safety and readability. Updated execute function in SymbolInsCommand to return String instead of nullable.
1 parent ef24e71 commit 26b2581

File tree

3 files changed

+9
-7
lines changed

3 files changed

+9
-7
lines changed

exts/devins-lang/src/main/kotlin/cc/unitmesh/devti/language/compiler/DevInsCompiler.kt

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -196,9 +196,11 @@ class DevInsCompiler(private val myProject: Project, val file: DevInFile, val ed
196196

197197
class SymbolInsCommand(val myProject: Project, val prop: String) :
198198
InsCommand {
199-
override fun execute(): String? {
200-
val result = DevInsSymbolProvider.all().map {
201-
it.resolveSymbol(myProject, prop).joinToString("\n")
199+
override fun execute(): String {
200+
val result = DevInsSymbolProvider.all().mapNotNull {
201+
val found = it.resolveSymbol(myProject, prop)
202+
if (found.isEmpty()) return@mapNotNull null
203+
"```${it.language}\n${found.joinToString("\n")}\n```\n"
202204
}
203205

204206
if (result.isEmpty()) {

java/src/main/kotlin/cc/unitmesh/idea/provider/JavaCustomDevInsSymbolProvider.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ class JavaCustomDevInsSymbolProvider : DevInsSymbolProvider {
2525
project: Project,
2626
parameters: CompletionParameters,
2727
result: CompletionResultSet,
28-
): Iterable<LookupElement> {
28+
): List<LookupElement> {
2929
val lookupElements: MutableList<LookupElement> = SmartList()
3030
val searchScope = ProjectScope.getProjectScope(project)
3131
val javaFiles = FileTypeIndex.getFiles(JavaFileType.INSTANCE, searchScope)
@@ -51,7 +51,7 @@ class JavaCustomDevInsSymbolProvider : DevInsSymbolProvider {
5151
return lookupElements
5252
}
5353

54-
override fun resolveSymbol(project: Project, symbol: String): Iterable<String> {
54+
override fun resolveSymbol(project: Project, symbol: String): List<String> {
5555
val scope = GlobalSearchScope.allScope(project)
5656

5757
if (symbol.isEmpty()) return emptyList()

src/main/kotlin/cc/unitmesh/devti/provider/devins/DevInsSymbolProvider.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ interface DevInsSymbolProvider {
2222
project: Project,
2323
parameters: CompletionParameters,
2424
result: CompletionResultSet
25-
): Iterable<LookupElement>
25+
): List<LookupElement>
2626

2727
/**
2828
* Resolves the symbol for different programming languages.
@@ -33,7 +33,7 @@ interface DevInsSymbolProvider {
3333
*
3434
* Format: `java.lang.String#length`, means: `<package>.<class>#<method>`
3535
*/
36-
fun resolveSymbol(project: Project, symbol: String): Iterable<String>
36+
fun resolveSymbol(project: Project, symbol: String): List<String>
3737

3838
companion object {
3939
private val EP_NAME: ExtensionPointName<DevInsSymbolProvider> =

0 commit comments

Comments
 (0)