Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ import com.intellij.openapi.actionSystem.ActionUpdateThread
import com.intellij.openapi.actionSystem.AnAction
import com.intellij.openapi.actionSystem.AnActionEvent
import com.intellij.openapi.actionSystem.CommonDataKeys
import com.intellij.psi.PsiFile
import com.intellij.psi.PsiMethod
import com.intellij.psi.util.PsiTreeUtil
import org.domaframework.doma.intellij.common.dao.getDaoClass
Expand All @@ -31,22 +30,19 @@ import org.domaframework.doma.intellij.common.util.PluginLoggerUtil
* Action class that generates SQL from DAO method
*/
class GenerateSqlAction : AnAction() {
private var currentFile: PsiFile? = null

override fun update(e: AnActionEvent) {
e.presentation.isEnabledAndVisible = false
currentFile = e.getData(CommonDataKeys.PSI_FILE) ?: return
val currentFile = e.getData(CommonDataKeys.PSI_FILE) ?: return
val editor = e.getData(CommonDataKeys.EDITOR) ?: return
val project = e.project ?: return
val file: PsiFile = currentFile ?: return
if (getDaoClass(file) == null) return
val element = file.findElementAt(editor.caretModel.offset) ?: return
if (getDaoClass(currentFile) == null) return
val element = currentFile.findElementAt(editor.caretModel.offset) ?: return
val method = PsiTreeUtil.getParentOfType(element, PsiMethod::class.java) ?: return

val psiDaoMethod = PsiDaoMethod(project, method)
e.presentation.isEnabledAndVisible =
psiDaoMethod.isUseSqlFileMethod() &&
isJavaOrKotlinFileType(file) &&
isJavaOrKotlinFileType(currentFile) &&
psiDaoMethod.sqlFile == null
}

Expand All @@ -62,9 +58,9 @@ class GenerateSqlAction : AnAction() {
startTime,
)
val project = e.project ?: return
val currentFile = e.getData(CommonDataKeys.PSI_FILE) ?: return
val editor = e.getData(CommonDataKeys.EDITOR) ?: return
val file: PsiFile = currentFile ?: return
val element = file.findElementAt(editor.caretModel.offset) ?: return
val element = currentFile.findElementAt(editor.caretModel.offset) ?: return
val method = PsiTreeUtil.getParentOfType(element, PsiMethod::class.java) ?: return
val psiDaoMethod = PsiDaoMethod(project, method)
psiDaoMethod.generateSqlFile()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ import com.intellij.openapi.actionSystem.ActionUpdateThread
import com.intellij.openapi.actionSystem.AnAction
import com.intellij.openapi.actionSystem.AnActionEvent
import com.intellij.openapi.actionSystem.CommonDataKeys
import com.intellij.psi.PsiFile
import com.intellij.psi.PsiMethod
import com.intellij.psi.util.PsiTreeUtil
import org.domaframework.doma.intellij.common.dao.getDaoClass
Expand All @@ -29,17 +28,14 @@ import org.domaframework.doma.intellij.common.psi.PsiDaoMethod
import org.domaframework.doma.intellij.common.util.PluginLoggerUtil

class JumpToSQLFromDaoAction : AnAction() {
private var currentFile: PsiFile? = null

override fun update(e: AnActionEvent) {
e.presentation.isEnabledAndVisible = false
currentFile = e.getData(CommonDataKeys.PSI_FILE) ?: return
val file: PsiFile = currentFile ?: return
val currentFile = e.getData(CommonDataKeys.PSI_FILE) ?: return

if (!isJavaOrKotlinFileType(file) || getDaoClass(file) == null) return
if (!isJavaOrKotlinFileType(currentFile) || getDaoClass(currentFile) == null) return

val editor = e.getData(CommonDataKeys.EDITOR) ?: return
val element = file.findElementAt(editor.caretModel.offset) ?: return
val element = currentFile.findElementAt(editor.caretModel.offset) ?: return
val project = e.project ?: return
val method = PsiTreeUtil.getParentOfType(element, PsiMethod::class.java) ?: return
val psiDaoMethod = PsiDaoMethod(project, method)
Expand All @@ -61,7 +57,8 @@ class JumpToSQLFromDaoAction : AnAction() {
startTime,
)
val editor = e.getData(CommonDataKeys.EDITOR) ?: return
val element = currentFile?.findElementAt(editor.caretModel.offset) ?: return
val currentFile = e.getData(CommonDataKeys.PSI_FILE) ?: return
val element = currentFile.findElementAt(editor.caretModel.offset) ?: return
val method = PsiTreeUtil.getParentOfType(element, PsiMethod::class.java) ?: return
val project = e.project ?: return
val psiDaoMethod = PsiDaoMethod(project, method)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ import com.intellij.openapi.actionSystem.ActionUpdateThread
import com.intellij.openapi.actionSystem.AnAction
import com.intellij.openapi.actionSystem.AnActionEvent
import com.intellij.openapi.actionSystem.CommonDataKeys
import com.intellij.psi.PsiFile
import org.domaframework.doma.intellij.common.dao.findDaoFile
import org.domaframework.doma.intellij.common.dao.findDaoMethod
import org.domaframework.doma.intellij.common.dao.jumpToDaoMethod
Expand All @@ -30,15 +29,12 @@ import org.domaframework.doma.intellij.common.util.PluginLoggerUtil
* Action to jump from SQL file to corresponding DAO function
*/
class JumpToDaoFromSQLAction : AnAction() {
private var currentFile: PsiFile? = null

override fun update(e: AnActionEvent) {
e.presentation.isEnabledAndVisible = false
currentFile = e.getData(CommonDataKeys.PSI_FILE) ?: return
val file = currentFile ?: return
if (findDaoMethod(file) == null) return
val currentFile = e.getData(CommonDataKeys.PSI_FILE) ?: return
if (findDaoMethod(currentFile) == null) return
e.presentation.isEnabledAndVisible =
isSupportFileType(file)
isSupportFileType(currentFile)
}

override fun getActionUpdateThread(): ActionUpdateThread = ActionUpdateThread.BGT
Expand All @@ -52,11 +48,11 @@ class JumpToDaoFromSQLAction : AnAction() {
inputEvent,
startTime,
)
val file = currentFile ?: return
val currentFile = e.getData(CommonDataKeys.PSI_FILE) ?: return
val project = e.project ?: return
val daoFile = findDaoFile(project, file) ?: return
val daoFile = findDaoFile(project, currentFile) ?: return

val sqlFileName = file.virtualFile?.nameWithoutExtension ?: return
val sqlFileName = currentFile.virtualFile?.nameWithoutExtension ?: return
jumpToDaoMethod(project, sqlFileName, daoFile)
PluginLoggerUtil.countLoggingByAction(
this::class.java.simpleName,
Expand Down
Loading