Skip to content

Commit d116151

Browse files
committed
fix(jcef): use official JCEF builder and handle exceptions #51
1 parent 25e2604 commit d116151

File tree

5 files changed

+14
-9
lines changed

5 files changed

+14
-9
lines changed

src/main/kotlin/cc/unitmesh/devti/counit/view/WebViewWindow.kt

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,16 @@ import java.awt.Component
1313
* for custom webview can refs: https://github.com/mucharafal/jcef_example
1414
*/
1515
class WebViewWindow {
16-
private val browser: JBCefBrowser = JBCefBrowser().also {
16+
// offical doc: https://plugins.jetbrains.com/docs/intellij/jcef.html#executing-javascript
17+
private val browser: JBCefBrowser
1718

19+
init {
20+
browser = try {
21+
JBCefBrowser.createBuilder()
22+
.build()
23+
} catch (e: Exception) {
24+
JBCefBrowser()
25+
}
1826
}
1927

2028
val component: Component = browser.component

src/main/kotlin/cc/unitmesh/devti/gui/chat/AutoDevInputSection.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@ import com.intellij.util.ui.JBEmptyBorder
3434
import com.intellij.util.ui.JBUI
3535
import com.intellij.util.ui.UIUtil
3636
import com.intellij.util.ui.components.BorderLayoutPanel
37-
import kotlinx.serialization.decodeFromString
3837
import kotlinx.serialization.json.Json
3938
import java.awt.Color
4039
import java.awt.Component
@@ -147,7 +146,7 @@ class AutoDevInputSection(private val project: Project, val disposable: Disposab
147146
}
148147
})
149148

150-
tokenizer = TokenizerImpl.INSTANCESupplier.get()
149+
tokenizer = TokenizerImpl.INSTANCE
151150
}
152151

153152

src/main/kotlin/cc/unitmesh/devti/llms/tokenizer/TokenizerImpl.kt

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
11
package cc.unitmesh.devti.llms.tokenizer
22

33
import com.intellij.openapi.application.ApplicationManager
4-
import com.intellij.openapi.application.CachedSingletonsRegistry
54
import com.intellij.openapi.components.Service
65
import com.knuddels.jtokkit.Encodings
76
import com.knuddels.jtokkit.api.Encoding
87
import com.knuddels.jtokkit.api.EncodingRegistry
98
import com.knuddels.jtokkit.api.EncodingType
10-
import java.util.function.Supplier
119

1210
@Service(Service.Level.APP)
1311
class TokenizerImpl(private val maxTokenLength: Int = 8192) : Tokenizer {
@@ -22,7 +20,7 @@ class TokenizerImpl(private val maxTokenLength: Int = 8192) : Tokenizer {
2220
}
2321

2422
companion object {
25-
val INSTANCESupplier: Supplier<TokenizerImpl> =
26-
CachedSingletonsRegistry.lazy { ApplicationManager.getApplication().getService(TokenizerImpl::class.java) }
23+
val INSTANCE =
24+
ApplicationManager.getApplication().getService(TokenizerImpl::class.java)
2725
}
2826
}

src/main/kotlin/cc/unitmesh/devti/provider/PromptStrategy.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ abstract class PromptStrategy : LazyExtensionInstance<PromptStrategy>() {
2626
@Attribute("implementationClass")
2727
var implementationClass: String? = null
2828

29-
private val tokenizer: Tokenizer = TokenizerImpl.INSTANCESupplier.get()
29+
private val tokenizer: Tokenizer = TokenizerImpl.INSTANCE.get()
3030

3131
override fun getImplementationClassName(): String? = implementationClass
3232

src/main/kotlin/com/intellij/temporary/error/ErrorMessageProcessor.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ object ErrorMessageProcessor {
7171
extractErrorPlaces(project, description.consoleLineFrom, description.consoleLineTo, description.editor)
7272

7373
val errorPromptBuilder =
74-
ErrorPromptBuilder(AutoDevSettingsState.maxTokenLength, TokenizerImpl.INSTANCESupplier.get())
74+
ErrorPromptBuilder(AutoDevSettingsState.maxTokenLength, TokenizerImpl.INSTANCE)
7575
return errorPromptBuilder.buildPrompt(extractedText, extractedErrorPlaces)
7676
}
7777

0 commit comments

Comments
 (0)