Skip to content

Commit

Permalink
feat(co): init basic actions
Browse files Browse the repository at this point in the history
  • Loading branch information
phodal committed Aug 7, 2023
1 parent c180711 commit d9b0d08
Show file tree
Hide file tree
Showing 3 changed files with 47 additions and 1 deletion.
@@ -0,0 +1,36 @@
package cc.unitmesh.comp.actions

import cc.unitmesh.devti.AutoDevBundle
import cc.unitmesh.devti.intentions.AbstractChatIntention
import com.intellij.ide.highlighter.JavaFileType
import com.intellij.openapi.editor.Editor
import com.intellij.openapi.progress.ProgressIndicator
import com.intellij.openapi.progress.ProgressManager
import com.intellij.openapi.progress.Task
import com.intellij.openapi.progress.impl.BackgroundableProcessIndicator
import com.intellij.openapi.project.Project
import com.intellij.psi.PsiFile
import com.intellij.psi.PsiManager
import com.intellij.psi.search.FileTypeIndex
import com.intellij.psi.search.GlobalSearchScope

class TalkWithApiAction : AbstractChatIntention() {
override fun getText(): String = AutoDevBundle.message("intentions.companion.api.name")
override fun getFamilyName(): String = AutoDevBundle.message("intentions.companion.api.family.name")

override fun invoke(project: Project, editor: Editor?, file: PsiFile?) {
val task: Task.Backgroundable = object : Task.Backgroundable(project, "Collect context") {
override fun run(indicator: ProgressIndicator) {
// search all Controller file from project stub
val psiManager = PsiManager.getInstance(project)
val virtualFiles = FileTypeIndex.getFiles(JavaFileType.INSTANCE, GlobalSearchScope.projectScope(project))
val psiFiles = virtualFiles.mapNotNull { psiManager.findFile(it) }
val controllerFiles = psiFiles.filter { it.name.endsWith("Controller.java") }

// todo: convert by chapi
}
}

ProgressManager.getInstance().runProcessWithProgressAsynchronously(task, BackgroundableProcessIndicator(task))
}
}
8 changes: 8 additions & 0 deletions companion/src/main/resources/META-INF/plugin.xml
Expand Up @@ -23,4 +23,12 @@
<content>
<module name="cc.unitmesh.idea"/>
</content>

<extensions defaultExtensionNs="cc.unitmesh">
<autoDevIntention>
<className>cc.unitmesh.comp.actions.TalkWithApiAction</className>
<bundleName>messages.AutoDevBundle</bundleName>
<categoryKey>intention.category.llm</categoryKey>
</autoDevIntention>
</extensions>
</idea-plugin>
4 changes: 3 additions & 1 deletion src/main/resources/messages/AutoDevBundle.properties
Expand Up @@ -39,4 +39,6 @@ chat.too.long.user.message=Message has is {0} tokens, it's too loooooooooooooooo
tooltip.thanks=Thanks for like, but we don't support this
label.submit.issue=Want new feature?
intentions.explain.business.new.name=Explain business
intentions.explain.business.family.name=Explain business with this
intentions.explain.business.family.name=Explain business with this
intentions.companion.api.name=Talk with API
intentions.companion.api.family.name=AutoDev: Talk with API

0 comments on commit d9b0d08

Please sign in to comment.