Skip to content

Commit

Permalink
fix: try to fix for auto crud issues
Browse files Browse the repository at this point in the history
  • Loading branch information
phodal committed Jul 31, 2023
1 parent 76b698c commit 22828b6
Show file tree
Hide file tree
Showing 3 changed files with 46 additions and 45 deletions.
Expand Up @@ -85,7 +85,7 @@ class JvmAutoDevFlow : DevFlowProvider() {
val result = executePrompt(promptText)

parseCodeFromString(result).forEach { dto ->
processor.let { createCodeByType(dto) }
createCodeByType(dto)
}
}

Expand Down Expand Up @@ -264,7 +264,7 @@ class JvmAutoDevFlow : DevFlowProvider() {
storyDetail: String,
isNewController: Boolean
): String {
val allModels = processor.modelList()?.map { it } ?: emptyList()
val allModels = processor.modelList().map { it }
val relevantName = targetEndpoint.replace("Controller", "")

// filter *Request, *Response
Expand All @@ -290,7 +290,7 @@ class JvmAutoDevFlow : DevFlowProvider() {
}

private fun executePrompt(promptText: String): String {
ui.addMessage(promptText, true)
ui.addMessage(promptText, false, promptText)
// for answer
ui.addMessage(AutoDevBundle.message("devti.loading"))

Expand Down
Expand Up @@ -9,6 +9,7 @@ import com.intellij.openapi.application.runReadAction
import com.intellij.openapi.editor.Document
import com.intellij.openapi.editor.Editor
import com.intellij.openapi.editor.EditorFactory
import com.intellij.openapi.editor.EditorKind
import com.intellij.openapi.editor.ex.EditorEx
import com.intellij.openapi.editor.ex.EditorMarkupModel
import com.intellij.openapi.editor.ex.FocusChangeListener
Expand Down Expand Up @@ -53,9 +54,7 @@ class CodeBlockView(private val block: CodeBlock, private val project: Project,

override fun initialize() {
if (editorInfo == null) {
ApplicationManager.getApplication().invokeLater() {
updateOrCreateCodeView()
}
updateOrCreateCodeView()
}
}

Expand Down Expand Up @@ -98,7 +97,7 @@ class CodeBlockView(private val block: CodeBlock, private val project: Project,
document: Document,
disposable: Disposable
): EditorEx {
val editor: Editor = EditorFactory.getInstance().createViewer(document, project);
val editor: Editor = EditorFactory.getInstance().createViewer(document, project, EditorKind.PREVIEW)
(editor as EditorEx).setFile(file)
editor.setCaretEnabled(true)
val highlighter = EditorHighlighterFactory.getInstance().createEditorHighlighter(project, file)
Expand Down
Expand Up @@ -16,9 +16,9 @@ import com.intellij.execution.Executor
import com.intellij.execution.configurations.RunProfileState
import com.intellij.execution.runners.ExecutionEnvironment
import com.intellij.execution.runners.ProgramRunner
import com.intellij.openapi.application.ApplicationManager
import com.intellij.openapi.diagnostic.Logger
import com.intellij.openapi.diagnostic.logger
import com.intellij.openapi.diagnostic.logger
import com.intellij.openapi.progress.ProgressIndicator
import com.intellij.openapi.progress.ProgressManager
import com.intellij.openapi.progress.Task
Expand All @@ -39,69 +39,71 @@ class AutoDevRunProfileState(
}

override fun execute(executor: Executor?, runner: ProgramRunner<*>): ExecutionResult? {
val toolWindowManager = ToolWindowManager.getInstance(project).getToolWindow(DevtiFlowToolWindowFactory.Util.id)
val contentManager = toolWindowManager?.contentManager

val gitHubIssue = GitHubIssue(options.githubRepo(), githubToken)

val openAIRunner = ConnectorFactory.getInstance().connector(project)
val chatCodingService = ChatCodingService(ChatActionType.REVIEW, project)

val chatCodingService = ChatCodingService(ChatActionType.CHAT, project)
val contentPanel = ChatCodingComponent(chatCodingService)

val toolWindowManager = ToolWindowManager.getInstance(project).getToolWindow(DevtiFlowToolWindowFactory.Util.id)
val contentManager = toolWindowManager?.contentManager

val content = contentManager?.factory?.createContent(contentPanel, chatCodingService.getLabel(), false)

contentManager?.removeAllContents(true)
contentManager?.addContent(content!!)

// TODO: support other language
val flowProvider = DevFlowProvider.flowProvider("java")
if (flowProvider == null) {
logger.error("current Language don't implementation DevFlow")
return null
}

flowProvider.initContext(gitHubIssue, openAIRunner, contentPanel, project)

val content = contentManager?.factory?.createContent(contentPanel, chatCodingService.getLabel(), false)
toolWindowManager?.activate {
flowProvider.initContext(gitHubIssue, openAIRunner, contentPanel, project)
ProgressManager.getInstance().run(executeCrud(flowProvider))
}

contentManager?.removeAllContents(true)
contentManager?.addContent(content!!)
toolWindowManager?.activate(null)
return null
}

ProgressManager.getInstance().run(
object : Task.Backgroundable(project, "Loading retained test failure", true) {
override fun run(indicator: ProgressIndicator) {
indicator.isIndeterminate = false
indicator.fraction = 0.0
private fun executeCrud(flowProvider: DevFlowProvider) =
object : Task.Backgroundable(project, "Loading retained test failure", true) {
override fun run(indicator: ProgressIndicator) {
indicator.isIndeterminate = false
indicator.fraction = 0.0

indicator.text = AutoDevBundle.message("devti.progress.creatingStory")
indicator.text = AutoDevBundle.message("devti.progress.creatingStory")

// todo: check create story
val storyId = options.storyId()
val storyDetail = flowProvider.getOrCreateStoryDetail(storyId)
// todo: check create story
val storyId = options.storyId()
val storyDetail = flowProvider.getOrCreateStoryDetail(storyId)

indicator.fraction = 0.2
indicator.fraction = 0.2

indicator.text = AutoDevBundle.message("devti.generatingDtoAndEntity")
flowProvider.updateOrCreateDtoAndEntity(storyDetail)
indicator.text = AutoDevBundle.message("devti.generatingDtoAndEntity")
flowProvider.updateOrCreateDtoAndEntity(storyDetail)

indicator.fraction = 0.4
indicator.fraction = 0.4

indicator.text = AutoDevBundle.message("devti.progress.fetchingSuggestEndpoint")
val target = flowProvider.fetchSuggestEndpoint(storyDetail)
indicator.text = AutoDevBundle.message("devti.progress.fetchingSuggestEndpoint")
val target = flowProvider.fetchSuggestEndpoint(storyDetail)

indicator.fraction = 0.6
indicator.fraction = 0.6

indicator.text = AutoDevBundle.message("devti.progress.updatingEndpointMethod")
flowProvider.updateOrCreateEndpointCode(target, storyDetail)
indicator.text = AutoDevBundle.message("devti.progress.updatingEndpointMethod")
flowProvider.updateOrCreateEndpointCode(target, storyDetail)

indicator.fraction = 0.8
indicator.fraction = 0.8

indicator.text = AutoDevBundle.message("devti.progress.creatingServiceAndRepository")
flowProvider.updateOrCreateServiceAndRepository()
indicator.text = AutoDevBundle.message("devti.progress.creatingServiceAndRepository")
flowProvider.updateOrCreateServiceAndRepository()

indicator.fraction = 1.0
}
indicator.fraction = 1.0
}
)

return null
}
}

companion object {
private val logger: Logger = logger<AutoDevRunProfileState>()
Expand Down

0 comments on commit 22828b6

Please sign in to comment.