Skip to content

Commit d78a46a

Browse files
committed
feat(dependencies): add action to check dependencies #308
Introduce a new action `AutoDevDependenciesCheck` to verify and check for issues in project dependencies. The action is added to the `AutoDev.ToolWindow.Snippet.Toolbar` group. Removed unused import `BuildFileProvider` from `DependenciesFunctionProvider`.
1 parent 5953d61 commit d78a46a

File tree

3 files changed

+47
-2
lines changed

3 files changed

+47
-2
lines changed
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
package cc.unitmesh.dependencies
2+
3+
import com.intellij.openapi.actionSystem.ActionUpdateThread
4+
import com.intellij.openapi.actionSystem.AnAction
5+
import com.intellij.openapi.actionSystem.AnActionEvent
6+
import com.intellij.openapi.actionSystem.PlatformDataKeys
7+
import com.intellij.openapi.fileEditor.FileDocumentManager
8+
import com.intellij.packageChecker.service.PackageChecker
9+
import com.intellij.packageChecker.service.PackageService
10+
import com.intellij.psi.PsiManager
11+
12+
class AutoDevDependenciesCheck : AnAction("Check dependencies has Issues") {
13+
override fun getActionUpdateThread(): ActionUpdateThread = ActionUpdateThread.EDT
14+
15+
override fun update(e: AnActionEvent) {
16+
val project = e.project ?: return
17+
val editor = e.getData(PlatformDataKeys.EDITOR) ?: return
18+
val document = editor.document
19+
val file = FileDocumentManager.getInstance().getFile(document) ?: return
20+
21+
val psiFile = PsiManager.getInstance(project).findFile(file) ?: return
22+
e.presentation.isEnabled = PackageService.getInstance(project).declaredDependencies(psiFile).isNotEmpty()
23+
}
24+
25+
override fun actionPerformed(event: AnActionEvent) {
26+
val project = event.project ?: return
27+
val editor = event.getData(PlatformDataKeys.EDITOR) ?: return
28+
val document = editor.document
29+
val file = FileDocumentManager.getInstance().getFile(document) ?: return
30+
val psiFile = PsiManager.getInstance(project).findFile(file) ?: return
31+
32+
val dependencies = PackageService.getInstance(project).declaredDependencies(psiFile)
33+
val checker = PackageChecker.getInstance(project)
34+
dependencies.forEach {
35+
checker.packageStatus(it.pkg)
36+
}
37+
}
38+
}

exts/ext-dependencies/src/233/main/kotlin/cc/unitmesh/dependencies/DependenciesFunctionProvider.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ package cc.unitmesh.dependencies
33
import cc.unitmesh.devti.provider.toolchain.ToolchainFunctionProvider
44
import com.intellij.openapi.module.ModuleManager
55
import com.intellij.openapi.project.Project
6-
import com.intellij.packageChecker.api.BuildFileProvider
76
import com.intellij.packageChecker.api.PackageDeclaration
87
import com.intellij.packageChecker.model.ProjectDependenciesModel
98

@@ -20,7 +19,6 @@ class DependenciesFunctionProvider : ToolchainFunctionProvider {
2019
}.flatten()
2120
}.flatten()
2221

23-
// BuildFileProvider.EP_NAME
2422
return flatten
2523
}
2624

exts/ext-dependencies/src/233/main/resources/cc.unitmesh.dependencies.xml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,15 @@
44
<plugin id="org.jetbrains.security.package-checker"/>
55
</dependencies>
66

7+
<actions>
8+
<action id="AutoDev.ToolWindow.Snippet.AutoDevDependenciesCheck"
9+
icon="AllIcons.Actions.QuickfixBulb"
10+
class="cc.unitmesh.dependencies.AutoDevDependenciesCheck">
11+
12+
<add-to-group group-id="AutoDev.ToolWindow.Snippet.Toolbar" />
13+
</action>
14+
</actions>
15+
716
<extensions defaultExtensionNs="cc.unitmesh">
817
<toolchainFunctionProvider implementation="cc.unitmesh.dependencies.DependenciesFunctionProvider"/>
918
</extensions>

0 commit comments

Comments
 (0)