Skip to content

Commit db78ba2

Browse files
committed
feat(wechat): add WeChat component view provider
#406 Add WechatComponentViewProvider to collect WXML components for architectural view. The provider currently returns empty components but includes the framework for scanning WXML files and building UI component representations.
1 parent ec1aa92 commit db78ba2

File tree

3 files changed

+47
-1
lines changed

3 files changed

+47
-1
lines changed
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
package cc.unitmesh.wechat
2+
3+
class PlaceHolder {
4+
}
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
package cc.unitmesh.wechat.provider.bridge
2+
3+
import cc.unitmesh.devti.bridge.archview.model.UiComponent
4+
import cc.unitmesh.devti.bridge.provider.ComponentViewMode
5+
import cc.unitmesh.devti.bridge.provider.ComponentViewProvider
6+
import com.intellij.openapi.project.Project
7+
import com.intellij.psi.PsiManager
8+
import com.intellij.psi.search.FileTypeIndex
9+
import com.intellij.psi.search.GlobalSearchScope
10+
import com.intellij.psi.search.ProjectScope
11+
import com.intellij.wechat.miniprogram.lang.wxml.WxmlFileType
12+
import com.intellij.wechat.miniprogram.lang.wxml.psi.impl.WxmlFile
13+
14+
class WechatComponentViewProvider : ComponentViewProvider() {
15+
override fun isApplicable(project: Project): Boolean {
16+
return false
17+
}
18+
19+
override fun collect(
20+
project: Project,
21+
mode: ComponentViewMode
22+
): List<UiComponent> {
23+
val searchScope: GlobalSearchScope = ProjectScope.getContentScope(project)
24+
val psiManager = PsiManager.getInstance(project)
25+
26+
val virtualFiles = FileTypeIndex.getFiles(WxmlFileType, searchScope)
27+
28+
val components = mutableListOf<UiComponent>()
29+
virtualFiles.forEach { file ->
30+
val wxmlFile = (psiManager.findFile(file) ?: return@forEach) as? WxmlFile ?: return@forEach
31+
components += buildComponent(wxmlFile) ?: return@forEach
32+
}
33+
34+
return components
35+
}
36+
37+
companion object {
38+
fun buildComponent(wxmlFile: WxmlFile): List<UiComponent>? {
39+
return emptyList()
40+
}
41+
}
42+
}

exts/ext-wechat/src/243/main/resources/cc.unitmesh.wechat.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,6 @@
55
</dependencies>
66

77
<extensions defaultExtensionNs="cc.unitmesh">
8-
8+
<componentProvider implementation="cc.unitmesh.wechat.provider.bridge.WechatComponentViewProvider"/>
99
</extensions>
1010
</idea-plugin>

0 commit comments

Comments
 (0)