|
@@ -1,21 +1,54 @@
|
|
|
|
|
+import com.intellij.execution.configurations.GeneralCommandLine
|
|
|
|
|
+import com.intellij.ide.util.gotoByName.ModelDiff
|
|
|
import com.intellij.openapi.actionSystem.AnAction
|
|
import com.intellij.openapi.actionSystem.AnAction
|
|
|
import com.intellij.openapi.actionSystem.AnActionEvent
|
|
import com.intellij.openapi.actionSystem.AnActionEvent
|
|
|
import com.intellij.openapi.actionSystem.PlatformDataKeys
|
|
import com.intellij.openapi.actionSystem.PlatformDataKeys
|
|
|
|
|
+import com.intellij.openapi.application.ApplicationManager
|
|
|
|
|
+import com.intellij.openapi.command.WriteCommandAction
|
|
|
import com.intellij.openapi.diagnostic.LoggerRt
|
|
import com.intellij.openapi.diagnostic.LoggerRt
|
|
|
|
|
+import com.intellij.openapi.vfs.VfsUtil
|
|
|
|
|
+import com.intellij.openapi.vfs.VirtualFile
|
|
|
|
|
+import com.intellij.psi.PsiFileFactory
|
|
|
|
|
+import com.intellij.psi.impl.file.PsiDirectoryFactory
|
|
|
|
|
+import com.jetbrains.lang.dart.DartLanguage
|
|
|
|
|
+import org.omg.SendingContext.RunTime
|
|
|
|
|
+import template.CodeTemplate
|
|
|
|
|
+import util.CodeUtil
|
|
|
|
|
+import util.FlutterUtil
|
|
|
|
|
+
|
|
|
|
|
|
|
|
class RouterGenerateAction : AnAction() {
|
|
class RouterGenerateAction : AnAction() {
|
|
|
private val log = LoggerRt.getInstance(RouterGenerateAction::class.java)
|
|
private val log = LoggerRt.getInstance(RouterGenerateAction::class.java)
|
|
|
|
|
|
|
|
override fun actionPerformed(e: AnActionEvent) {
|
|
override fun actionPerformed(e: AnActionEvent) {
|
|
|
val project = e.getData(PlatformDataKeys.PROJECT)!!
|
|
val project = e.getData(PlatformDataKeys.PROJECT)!!
|
|
|
-// log.info(project.name)
|
|
|
|
|
-// print(project.)
|
|
|
|
|
-
|
|
|
|
|
-// val psiFile = e.getData(CommonDataKeys.PSI_FILE)
|
|
|
|
|
-//
|
|
|
|
|
-// val classPath = psiFile!!.virtualFile.path
|
|
|
|
|
-//
|
|
|
|
|
-// val title = "Stupid Flutter";
|
|
|
|
|
- NotifierUtil.showNotifier(project, project.name)
|
|
|
|
|
|
|
+ val isTargetProject = FlutterUtil.isTargetProject(project)
|
|
|
|
|
+ if (isTargetProject) {
|
|
|
|
|
+ NotifierUtil.showNotifier(project, "you found our project cheer!", type = NotifierType.INFO)
|
|
|
|
|
+
|
|
|
|
|
+ val fileFactory = PsiFileFactory.getInstance(project)
|
|
|
|
|
+ // create generated directory
|
|
|
|
|
+ var saveFile: VirtualFile? = null
|
|
|
|
|
+ WriteCommandAction.runWriteCommandAction(project) {
|
|
|
|
|
+ saveFile = VfsUtil.createDirectoryIfMissing("${project.basePath}/lib/router_gen")!!
|
|
|
|
|
+ }
|
|
|
|
|
+ val saveDirectory = PsiDirectoryFactory.getInstance(project).createDirectory(saveFile!!)
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ // create file
|
|
|
|
|
+ val saveTextFile = fileFactory.createFileFromText("router_meta.dart", DartLanguage.INSTANCE, CodeTemplate.RouterMeta)
|
|
|
|
|
+ WriteCommandAction.runWriteCommandAction(project) {
|
|
|
|
|
+ CodeUtil.reformatDartCode(saveTextFile)
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // add to file
|
|
|
|
|
+ WriteCommandAction.runWriteCommandAction(project) {
|
|
|
|
|
+ saveDirectory.add(saveTextFile!!)
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+// val directory = PsiDirectoryFactory.getInstance(project).createDirectory(project.projectFile!!)
|
|
|
|
|
+ } else {
|
|
|
|
|
+ NotifierUtil.showNotifier(project, "oh... you lose our project, check again?", type = NotifierType.ERROR)
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|