|
| 1 | +package cc.unitmesh.dependencies |
| 2 | + |
| 3 | +import cc.unitmesh.devti.provider.BuildSystemProvider |
| 4 | +import cc.unitmesh.devti.util.AutoDevCoroutineScope |
| 5 | +import com.intellij.openapi.module.Module |
| 6 | +import com.intellij.openapi.project.Project |
| 7 | +import com.intellij.packageChecker.api.PackageDeclaration |
| 8 | +import com.intellij.packageChecker.model.Dependency |
| 9 | +import com.intellij.packageChecker.model.LibraryDependency |
| 10 | +import com.intellij.packageChecker.model.impl.MutableModuleModel |
| 11 | +import com.intellij.packageChecker.model.impl.ProjectDependenciesModelBase |
| 12 | +import com.intellij.psi.PsiFile |
| 13 | +import org.jetbrains.security.`package`.Package |
| 14 | +import org.jetbrains.security.`package`.PackageType |
| 15 | + |
| 16 | +class AutoDevProjectDependenciesModel(val project: Project) : ProjectDependenciesModelBase<MutableModuleModel>( |
| 17 | + AutoDevCoroutineScope.scope(project).coroutineContext |
| 18 | +) { |
| 19 | + override fun copyModule( |
| 20 | + module: MutableModuleModel, |
| 21 | + newDependencies: Iterable<Dependency> |
| 22 | + ): MutableModuleModel = module.withDependencies(newDependencies) |
| 23 | + |
| 24 | + override fun getAllModules(): Iterable<MutableModuleModel> = listOf() |
| 25 | + |
| 26 | + override fun declaredDependencies(module: Module): List<PackageDeclaration> = listOf() |
| 27 | + |
| 28 | + override fun declaredDependencies(psiFile: PsiFile): List<PackageDeclaration> { |
| 29 | + return BuildSystemProvider.EP_NAME.extensionList.map { |
| 30 | + it.collectDependencies(project, psiFile) |
| 31 | + }.flatten().map { |
| 32 | + val pkg = |
| 33 | + Package(PackageType.fromString(it.type), it.namespace, it.name, it.version, it.qualifiers, it.subpath) |
| 34 | + PackageDeclaration(pkg) |
| 35 | + } |
| 36 | + } |
| 37 | + |
| 38 | + override fun libraryDependencies(module: Module): List<LibraryDependency> = listOf() |
| 39 | + |
| 40 | + override fun supports(module: Module): Boolean = true |
| 41 | + |
| 42 | + override fun supports(project: Project): Boolean = true |
| 43 | + |
| 44 | + override fun supports(psiFile: PsiFile): Boolean = true |
| 45 | + |
| 46 | +} |
0 commit comments