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
@@ -1,20 +1,13 @@
package org.utbot.cpp.clion.plugin.actions

import com.intellij.notification.Notification
import com.intellij.notification.NotificationAction
import com.intellij.openapi.actionSystem.AnAction
import com.intellij.openapi.actionSystem.AnActionEvent
import org.utbot.cpp.clion.plugin.UTBot
import org.utbot.cpp.clion.plugin.client.requests.CreateBuildDirRequest

class AskServerToGenerateBuildDir : NotificationAction(UTBot.message("projectConfigure.generate.buildDir")) {
override fun actionPerformed(e: AnActionEvent, n: Notification) {
actionPerformed(e)
}
class AskServerToGenerateBuildDir : AnAction(UTBot.message("projectConfigure.generate.buildDir")) {

// todo: add constructor that takes AnActionEvent to Request classes
override fun actionPerformed(e: AnActionEvent) {
CreateBuildDirRequest(e).execute()
}
override fun actionPerformed(e: AnActionEvent) = CreateBuildDirRequest(e).execute()

override fun update(e: AnActionEvent) {
e.presentation.isEnabledAndVisible = e.project != null
Expand Down
Original file line number Diff line number Diff line change
@@ -1,20 +1,13 @@
package org.utbot.cpp.clion.plugin.actions

import com.intellij.notification.Notification
import com.intellij.notification.NotificationAction
import com.intellij.openapi.actionSystem.AnAction
import com.intellij.openapi.actionSystem.AnActionEvent
import org.utbot.cpp.clion.plugin.UTBot
import org.utbot.cpp.clion.plugin.client.requests.GenerateJsonFilesRequest

class AskServerToGenerateJsonForProjectConfiguration :
NotificationAction(UTBot.message("projectConfigure.generate.json")) {
override fun actionPerformed(e: AnActionEvent, n: Notification) {
actionPerformed(e)
}
class AskServerToGenerateJsonForProjectConfiguration : AnAction(UTBot.message("projectConfigure.generate.json")) {

override fun actionPerformed(e: AnActionEvent) {
GenerateJsonFilesRequest(e).execute()
}
override fun actionPerformed(e: AnActionEvent) = GenerateJsonFilesRequest(e).execute()

override fun update(e: AnActionEvent) {
e.presentation.isEnabledAndVisible = e.project != null
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,23 +1,30 @@
package org.utbot.cpp.clion.plugin.actions

import com.intellij.notification.Notification
import com.intellij.notification.NotificationAction
import com.intellij.openapi.actionSystem.AnAction
import com.intellij.openapi.actionSystem.AnActionEvent
import com.intellij.openapi.vfs.LocalFileSystem
import com.intellij.psi.PsiManager
import org.utbot.cpp.clion.plugin.utils.activeProject
import java.nio.file.Path

class FocusAction(val path: Path) : NotificationAction("Show") {
class FocusAction(val path: Path) : AnAction("Show") {

override fun actionPerformed(e: AnActionEvent) {
val virtualFile = LocalFileSystem.getInstance().findFileByNioFile(path) ?: return
val virtualFile = LocalFileSystem.getInstance().findFileByNioFile(path)
?: error("Focus action should be disabled for path $path")

val project = e.activeProject()
val projectInstance = PsiManager.getInstance(project)


if (virtualFile.isDirectory) {
PsiManager.getInstance(e.project!!).findDirectory(virtualFile)?.navigate(true)
projectInstance.findDirectory(virtualFile)?.navigate(true)
} else {
PsiManager.getInstance(e.project!!).findFile(virtualFile)?.navigate(true)
projectInstance.findFile(virtualFile)?.navigate(true)
}
}

override fun actionPerformed(e: AnActionEvent, notification: Notification) {
actionPerformed(e)
override fun update(e: AnActionEvent) {
e.presentation.isEnabledAndVisible = LocalFileSystem.getInstance().findFileByNioFile(path) != null
}
}

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,18 +1,15 @@
package org.utbot.cpp.clion.plugin.actions

import com.intellij.notification.Notification
import com.intellij.notification.NotificationAction
import com.intellij.openapi.actionSystem.AnAction
import com.intellij.openapi.actionSystem.AnActionEvent
import org.utbot.cpp.clion.plugin.UTBot
import org.utbot.cpp.clion.plugin.ui.wizard.UTBotWizard
import org.utbot.cpp.clion.plugin.utils.activeProject

class ShowWizardAction: NotificationAction(UTBot.message("wizard.show")) {
override fun actionPerformed(e: AnActionEvent, notification: Notification) {
actionPerformed(e)
}
class ShowWizardAction: AnAction(UTBot.message("wizard.show")) {

override fun actionPerformed(e: AnActionEvent) {
UTBotWizard(e.project ?: return).showAndGet()
UTBotWizard(e.activeProject()).showAndGet()
}

override fun update(e: AnActionEvent) {
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package org.utbot.cpp.clion.plugin.actions.configure

import com.intellij.openapi.actionSystem.AnAction
import com.intellij.openapi.actionSystem.AnActionEvent
import org.utbot.cpp.clion.plugin.UTBot
import org.utbot.cpp.clion.plugin.client.requests.CheckProjectConfigurationRequest
import org.utbot.cpp.clion.plugin.utils.activeProject

class ConfigureProjectAction : AnAction(UTBot.message("projectConfigure.configure")) {

override fun actionPerformed(e: AnActionEvent) = CheckProjectConfigurationRequest(e.activeProject()).execute()

override fun update(e: AnActionEvent) {
e.presentation.isEnabledAndVisible = e.project != null
}
}
Original file line number Diff line number Diff line change
@@ -1,22 +1,20 @@
package org.utbot.cpp.clion.plugin.actions
package org.utbot.cpp.clion.plugin.actions.configure

import com.intellij.notification.Notification
import com.intellij.notification.NotificationAction
import com.intellij.openapi.actionSystem.AnAction
import com.intellij.openapi.actionSystem.AnActionEvent
import org.utbot.cpp.clion.plugin.UTBot
import org.utbot.cpp.clion.plugin.grpc.getProjectConfigGrpcRequest
import org.utbot.cpp.clion.plugin.client.requests.CheckProjectConfigurationRequest
import org.utbot.cpp.clion.plugin.utils.activeProject
import testsgen.Testgen

class ReconfigureProjectAction: NotificationAction(UTBot.message("projectConfigure.reconfigure")) {
override fun actionPerformed(e: AnActionEvent, notification: Notification) {
actionPerformed(e)
}
class ReconfigureProjectAction: AnAction(UTBot.message("projectConfigure.reconfigure")) {

override fun actionPerformed(e: AnActionEvent) {
val project = e.activeProject()
CheckProjectConfigurationRequest(
e.project!!,
getProjectConfigGrpcRequest(e.project!!, Testgen.ConfigMode.ALL),
getProjectConfigGrpcRequest(project, Testgen.ConfigMode.ALL),
project,
).execute()
}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package org.utbot.cpp.clion.plugin.actions.generate

import com.intellij.openapi.actionSystem.AnAction
import com.intellij.openapi.actionSystem.AnActionEvent
import org.utbot.cpp.clion.plugin.utils.client

abstract class BaseGenerateTestsAction : AnAction() {

override fun update(e: AnActionEvent) {
val isDefined: Boolean = isDefined(e)

e.presentation.isVisible = isDefined
e.presentation.isEnabled = isDefined && e.client.isServerAvailable()
}

/**
* Checks if an action can really be called for event [e].
* For example, editor must be initialized for all actions, related to
* specific lines, and must not for related to whole project.
*/
abstract fun isDefined(e: AnActionEvent): Boolean
}
Original file line number Diff line number Diff line change
@@ -1,22 +1,23 @@
package org.utbot.cpp.clion.plugin.actions
package org.utbot.cpp.clion.plugin.actions.generate

import com.intellij.openapi.actionSystem.AnActionEvent
import com.intellij.openapi.actionSystem.CommonDataKeys
import org.utbot.cpp.clion.plugin.grpc.getAssertionGrpcRequest
import org.utbot.cpp.clion.plugin.client.requests.AssertionRequest
import org.utbot.cpp.clion.plugin.grpc.getAssertionGrpcRequest
import org.utbot.cpp.clion.plugin.utils.activeProject

class GenerateForAssertionAction : GenerateTestsBaseAction() {
override fun actionPerformed(e: AnActionEvent) {
class GenerateForAssertionAction : BaseGenerateTestsAction() {
override fun actionPerformed(e: AnActionEvent) =
AssertionRequest(
getAssertionGrpcRequest(e),
e.project!!,
e.activeProject(),
).execute()
}

override fun updateIfServerAvailable(e: AnActionEvent) {
override fun isDefined(e: AnActionEvent): Boolean {
val project = e.project
val editor = e.getData(CommonDataKeys.EDITOR)
val file = e.getData(CommonDataKeys.VIRTUAL_FILE)
e.presentation.isEnabledAndVisible = (project != null) && (editor != null) && (file != null)

return project != null && editor != null && file != null
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package org.utbot.cpp.clion.plugin.actions.generate

import com.intellij.openapi.actionSystem.AnActionEvent
import com.intellij.openapi.actionSystem.CommonDataKeys
import org.utbot.cpp.clion.plugin.client.requests.ClassRequest
import org.utbot.cpp.clion.plugin.grpc.getClassGrpcRequest
import org.utbot.cpp.clion.plugin.utils.activeProject
import org.utbot.cpp.clion.plugin.utils.isCPPFileName

class GenerateForClassAction : BaseGenerateTestsAction() {
override fun actionPerformed(e: AnActionEvent) =
ClassRequest(
getClassGrpcRequest(e),
e.activeProject(),
).execute()

override fun isDefined(e: AnActionEvent): Boolean {
val project = e.project
val editor = e.getData(CommonDataKeys.EDITOR)
val file = e.getData(CommonDataKeys.VIRTUAL_FILE)

return project != null && editor != null && file != null && isCPPFileName(file.name)
}
}
Original file line number Diff line number Diff line change
@@ -1,19 +1,22 @@
package org.utbot.cpp.clion.plugin.actions
package org.utbot.cpp.clion.plugin.actions.generate

import com.intellij.openapi.actionSystem.AnActionEvent
import com.intellij.openapi.actionSystem.CommonDataKeys
import org.utbot.cpp.clion.plugin.grpc.getFileGrpcRequest
import org.utbot.cpp.clion.plugin.client.requests.FileRequest
import org.utbot.cpp.clion.plugin.grpc.getFileGrpcRequest
import org.utbot.cpp.clion.plugin.utils.activeProject
import org.utbot.cpp.clion.plugin.utils.isCPPorCFileName

class GenerateForFileAction : GenerateTestsBaseAction() {
override fun actionPerformed(e: AnActionEvent) {
FileRequest(getFileGrpcRequest(e), e.project!!).execute()
}
class GenerateForFileAction : BaseGenerateTestsAction() {
override fun actionPerformed(e: AnActionEvent) =
FileRequest(
getFileGrpcRequest(e),
e.activeProject(),
).execute()

// action is available only if the selected file ends in .cpp, .hpp, .c or .h
override fun updateIfServerAvailable(e: AnActionEvent) {
override fun isDefined(e: AnActionEvent): Boolean {
val file = e.getData(CommonDataKeys.PSI_FILE)
e.presentation.isEnabledAndVisible = isCPPorCFileName(file?.name ?: "")
return isCPPorCFileName(file?.name ?: "")
}
}
Loading