Skip to content

Commit

Permalink
fix(python): fix runtime issues
Browse files Browse the repository at this point in the history
  • Loading branch information
phodal committed Jul 18, 2023
1 parent 7262287 commit f32ab66
Show file tree
Hide file tree
Showing 4 changed files with 30 additions and 9 deletions.
1 change: 1 addition & 0 deletions build.gradle.kts
Expand Up @@ -126,6 +126,7 @@ project(":plugin") {
implementation(project(":"))
implementation(project(":idea"))
implementation(project(":pycharm"))
implementation(project(":webstorm"))
}

// Collects all jars produced by compilation of project modules and merges them into singe one.
Expand Down
@@ -1,41 +1,47 @@
package cc.unitmesh.ide.idea.provider

import cc.unitmesh.devti.provider.TechStackProvider
import cc.unitmesh.devti.gui.chat.ChatBotActionType
import cc.unitmesh.devti.prompting.CommitPrompting
import cc.unitmesh.devti.provider.ContextPrompter
import cc.unitmesh.devti.prompting.model.PromptConfig
import cc.unitmesh.devti.provider.ContextPrompter
import cc.unitmesh.devti.provider.TechStackProvider
import cc.unitmesh.devti.settings.AutoDevSettingsState
import cc.unitmesh.ide.idea.java.MvcContextService
import com.intellij.openapi.application.runReadAction
import com.intellij.openapi.components.service
import com.intellij.openapi.project.Project
import com.intellij.openapi.vcs.changes.ChangeListManager
import com.intellij.openapi.vcs.changes.ChangeListManagerImpl
import com.intellij.openapi.vfs.LocalFileSystem
import com.intellij.psi.PsiFile
import com.intellij.psi.PsiManager

class JavaContextPrompter() : ContextPrompter {
class JavaContextPrompter : ContextPrompter {
private var additionContext: String = ""
private val autoDevSettingsState = AutoDevSettingsState.getInstance()
private var promptConfig: PromptConfig? = null

lateinit var action: ChatBotActionType
lateinit var prefixText: String
var file: PsiFile? = null
private var file: PsiFile? = null
lateinit var project: Project
lateinit var mvcContextService: MvcContextService
private val lang: String = file?.language?.displayName ?: ""
private val fileName = file?.name ?: ""
private var lang: String = ""
private var fileName = ""
private val isController = fileName.endsWith("Controller.java")
private val isService = fileName.endsWith("Service.java") || fileName.endsWith("ServiceImpl.java")
private lateinit var changeListManager: ChangeListManager

override fun initContext(actionType: ChatBotActionType, prefixText: String, file: PsiFile?, project: Project) {
this.action = actionType
this.prefixText = prefixText
this.file = file
this.project = project
changeListManager = ChangeListManagerImpl.getInstance(project)
mvcContextService = project.service<MvcContextService>()

lang = file?.language?.displayName ?: ""
fileName = file?.name ?: ""
}

init {
Expand Down Expand Up @@ -172,7 +178,6 @@ examples:
return prompt
}

private val changeListManager = ChangeListManagerImpl.getInstance(project)
private fun prepareVcsContext() {
val changes = changeListManager.changeLists.flatMap {
it.changes
Expand Down
@@ -1,7 +1,9 @@
package cc.unitmesh.ide.pycharm.provider

import cc.unitmesh.devti.context.ClassContextProvider
import cc.unitmesh.devti.gui.chat.ChatBotActionType
import cc.unitmesh.devti.provider.ContextPrompter
import com.intellij.openapi.diagnostic.Logger
import com.intellij.openapi.project.Project
import com.intellij.psi.PsiFile

Expand All @@ -10,28 +12,42 @@ class PythonContextPrompter : ContextPrompter {
private var selectedText: String = ""
private var file: PsiFile? = null
private var project: Project? = null
private val classProvider = ClassContextProvider(false)
private var lang: String = ""

private val lang: String = file?.language?.displayName ?: ""
override fun initContext(actionType: ChatBotActionType, prefixText: String, file: PsiFile?, project: Project) {
this.action = actionType
this.selectedText = prefixText
this.file = file
this.project = project
this.lang = file?.language?.displayName ?: ""
}

override fun getUIPrompt(): String {
val classInfo = classProvider.from(file!!).toQuery()
logger.warn("classInfo: $classInfo")

return """$action for the code:
$classInfo
```${lang}
$selectedText
```
""".trimIndent()
}

override fun getRequestPrompt(): String {
val classInfo = classProvider.from(file!!).toQuery()
logger.warn("classInfo: $classInfo")

return """$action for the code:
$classInfo
```${lang}
$selectedText
```
""".trimIndent()
}

companion object {
val logger = Logger.getInstance(PythonContextPrompter::class.java)
}
}
Expand Up @@ -19,6 +19,5 @@ interface ContextPrompter {

fun prompter(): ContextPrompter? = EP_NAME.extensionList.firstOrNull()
}

}

0 comments on commit f32ab66

Please sign in to comment.