Skip to content

Commit ec7e984

Browse files
committed
feat(devins-lang): add logging to handle commit loading errors #101
Add a logger to handle errors when loading Git commits in RevisionReferenceLanguageProvider. This prevents exceptions from breaking the completion functionality.
1 parent e8530f6 commit ec7e984

File tree

1 file changed

+11
-1
lines changed

1 file changed

+11
-1
lines changed

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

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import com.intellij.codeInsight.completion.CompletionProvider
66
import com.intellij.codeInsight.completion.CompletionResultSet
77
import com.intellij.codeInsight.lookup.LookupElementBuilder
88
import com.intellij.icons.AllIcons
9+
import com.intellij.openapi.diagnostic.logger
910
import com.intellij.openapi.progress.ProgressIndicator
1011
import com.intellij.openapi.progress.ProgressManager
1112
import com.intellij.openapi.progress.Task
@@ -21,6 +22,8 @@ import java.util.concurrent.CompletableFuture
2122

2223

2324
class RevisionReferenceLanguageProvider : CompletionProvider<CompletionParameters>() {
25+
private val logger = logger<RevisionReferenceLanguageProvider>()
26+
2427
override fun addCompletions(
2528
parameters: CompletionParameters,
2629
context: ProcessingContext,
@@ -37,7 +40,14 @@ class RevisionReferenceLanguageProvider : CompletionProvider<CompletionParameter
3740
val future = CompletableFuture<List<GitCommit>>()
3841
val task = object : Task.Backgroundable(project, AutoDevBundle.message("devin.ref.loading"), false) {
3942
override fun run(indicator: ProgressIndicator) {
40-
val commits: List<GitCommit> = GitHistoryUtils.history(project, repository.root, branchName)
43+
val commits: List<GitCommit> = try {
44+
// in some case, maybe not repo or branch, so we should handle it
45+
GitHistoryUtils.history(project, repository.root, branchName)
46+
} catch (e: Exception) {
47+
logger.error("Failed to load commits", e)
48+
emptyList()
49+
}
50+
4151
future.complete(commits)
4252
}
4353
}

0 commit comments

Comments
 (0)