Skip to content

Commit e8ebbc3

Browse files
committed
Removing extraneous elmTestRsPath field
1 parent 9dee7a2 commit e8ebbc3

File tree

12 files changed

+27
-42
lines changed

12 files changed

+27
-42
lines changed

src/main/kotlin/org/elm/ide/lineMarkers/ElmTestDescribeLineMarkerProvider.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import com.intellij.codeInsight.daemon.LineMarkerInfo
55
import com.intellij.psi.PsiElement
66
import org.elm.ide.icons.ElmIcons
77
import org.elm.ide.test.core.ElmTestElementNavigator
8+
import org.elm.workspace.elmToolchain
89

910
/** Handles adding a gutter icon for running tests under a describe */
1011
class ElmTestDescribeLineMarkerProvider : ElmTestLineMarkerProvider() {
@@ -14,7 +15,7 @@ class ElmTestDescribeLineMarkerProvider : ElmTestLineMarkerProvider() {
1415

1516
/** Add gutter icons for the describe line */
1617
override fun shouldAddGutterIcon(element: PsiElement): Boolean {
17-
return usingElmTestRs(element.project) && element.text == "describe"
18+
return element.project.elmToolchain.isElmTestRsEnabled && element.text == "describe"
1819
}
1920

2021
override fun getLineMarkerInfo(element: PsiElement): LineMarkerInfo<*>? {

src/main/kotlin/org/elm/ide/lineMarkers/ElmTestLineMarkerProvider.kt

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -46,11 +46,6 @@ abstract class ElmTestLineMarkerProvider : LineMarkerProvider {
4646
return element.containingFile.text.contains("import Test exposing")
4747
}
4848

49-
/** Returns true if elm-test-rs is enabled */
50-
protected fun usingElmTestRs(project: Project): Boolean {
51-
return project.elmToolchain.isElmTestRsEnabled
52-
}
53-
5449
/** Create a gutter icon on a given line with an icon, tooltip, and list of popup actions */
5550
protected fun createLineMarkerInfo(element: PsiElement, icon: Icon, tooltip: String, actions: List<AnAction>, ): LineMarkerInfo<*>? {
5651
if (!isTestFile(element) || !shouldAddGutterIcon(element)) return null

src/main/kotlin/org/elm/ide/lineMarkers/ElmTestSingleLineMarkerProvider.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import com.intellij.codeInsight.daemon.LineMarkerInfo
55
import com.intellij.psi.PsiElement
66
import org.elm.ide.icons.ElmIcons
77
import org.elm.ide.test.core.ElmTestElementNavigator
8+
import org.elm.workspace.elmToolchain
89

910
/** * Handles adding a gutter icon for running a specific test */
1011
class ElmTestSingleLineMarkerProvider : ElmTestLineMarkerProvider() {
@@ -14,7 +15,7 @@ class ElmTestSingleLineMarkerProvider : ElmTestLineMarkerProvider() {
1415

1516
/** * Add gutter icons for the test line */
1617
override fun shouldAddGutterIcon(element: PsiElement): Boolean {
17-
return usingElmTestRs(element.project) && element.text == "test"
18+
return element.project.elmToolchain.isElmTestRsEnabled && element.text == "test"
1819
}
1920

2021
override fun getLineMarkerInfo(element: PsiElement): LineMarkerInfo<*>? {

src/main/kotlin/org/elm/ide/test/run/ElmTestRunConfigurationProducer.kt

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,7 @@ class ElmTestRunConfigurationProducer : LazyRunConfigurationProducer<ElmTestRunC
1919

2020
configuration.options.elmFolder = elmFolder
2121
if (vfile != null) {
22-
val filter = if (context.project.elmToolchain.isElmTestRsEnabled) ElmTestElementNavigator.findTestDescription(context.psiLocation) else null
23-
configuration.options.filteredTestConfig = ElmTestRunConfiguration.FilteredTest.from(sourceElement.get(), filter)
22+
configuration.options.filteredTestConfig = ElmTestRunConfiguration.FilteredTest.from(sourceElement.get(), getFilter(context))
2423
}
2524

2625
configuration.setGeneratedName()
@@ -31,7 +30,6 @@ class ElmTestRunConfigurationProducer : LazyRunConfigurationProducer<ElmTestRunC
3130
override fun isConfigurationFromContext(configuration: ElmTestRunConfiguration, context: ConfigurationContext): Boolean {
3231
val elmFolder = getCandidateElmFolder(context) ?: return false
3332
val vfile = context.location?.virtualFile
34-
val filter = if (context.project.elmToolchain.isElmTestRsEnabled) ElmTestElementNavigator.findTestDescription(context.psiLocation) else null
3533

3634
var result = configuration.options.elmFolder == elmFolder
3735
val config = configuration.options.filteredTestConfig
@@ -43,7 +41,7 @@ class ElmTestRunConfigurationProducer : LazyRunConfigurationProducer<ElmTestRunC
4341
}
4442

4543
if (!config.filter.isNullOrBlank()) {
46-
result = result && config.filter == filter
44+
result = result && config.filter == getFilter(context)
4745
}
4846

4947
return result
@@ -54,4 +52,9 @@ class ElmTestRunConfigurationProducer : LazyRunConfigurationProducer<ElmTestRunC
5452
val elmProject = context.project.elmWorkspace.findProjectForFile(vfile) ?: return null
5553
return elmProject.projectDirPath.toString()
5654
}
55+
56+
/** Get the filter string or null if it couldn't be found */
57+
private fun getFilter(context: ConfigurationContext): String? {
58+
return if (context.project.elmToolchain.isElmTestRsEnabled) ElmTestElementNavigator.findTestDescription(context.psiLocation) else null
59+
}
5760
}

src/main/kotlin/org/elm/ide/test/run/ElmTestRunProfileState.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ class ElmTestRunProfileState internal constructor(
6464
}
6565

6666
if (toolchain.isElmTestRsEnabled) {
67+
// ensure that elm-test-rs is being used if the checkbox is enabled
6768
val version = elmTestCLI.queryVersion(project)
6869
if (version is org.elm.openapiext.Result.Err) return handleBadConfiguration(project, version.reason)
6970
}

src/main/kotlin/org/elm/workspace/ElmToolchain.kt

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,18 +23,16 @@ data class ElmToolchain(
2323
val lamderaCompilerPath: Path?,
2424
val elmFormatPath: Path?,
2525
val elmTestPath: Path?,
26-
val elmTestRsPath: Path?,
2726
val elmReviewPath: Path?,
2827
val isElmTestRsEnabled: Boolean,
2928
val isElmFormatOnSaveEnabled: Boolean
3029
) {
31-
constructor(elmCompilerPath: String, lamderaCompilerPath: String, elmFormatPath: String, elmTestPath: String, elmTestRsPath: String, elmReviewPath: String, isElmTestRsEnabled: Boolean, isElmFormatOnSaveEnabled: Boolean) :
30+
constructor(elmCompilerPath: String, lamderaCompilerPath: String, elmFormatPath: String, elmTestPath: String, elmReviewPath: String, isElmTestRsEnabled: Boolean, isElmFormatOnSaveEnabled: Boolean) :
3231
this(
3332
if (elmCompilerPath.isNotBlank() && Files.exists(Paths.get(elmCompilerPath))) Paths.get(elmCompilerPath) else null,
3433
if (lamderaCompilerPath.isNotBlank() && Files.exists(Paths.get(lamderaCompilerPath))) Paths.get(lamderaCompilerPath) else null,
3534
if (elmFormatPath.isNotBlank() && Files.exists(Paths.get(elmFormatPath))) Paths.get(elmFormatPath) else null,
3635
if (elmTestPath.isNotBlank() && Files.exists(Paths.get(elmTestPath))) Paths.get(elmTestPath) else null,
37-
if (elmTestRsPath.isNotBlank() && Files.exists(Paths.get(elmTestRsPath))) Paths.get(elmTestRsPath) else null,
3836
if (elmReviewPath.isNotBlank() && Files.exists(Paths.get(elmReviewPath))) Paths.get(elmReviewPath) else null,
3937
isElmTestRsEnabled,
4038
isElmFormatOnSaveEnabled
@@ -46,7 +44,7 @@ data class ElmToolchain(
4644

4745
val elmFormatCLI: ElmFormatCLI? = elmFormatPath?.let { ElmFormatCLI(it) }
4846

49-
val elmTestCLI: ElmTestCLI? = if (isElmTestRsEnabled) elmTestRsPath?.let { ElmTestCLI(it) } else elmTestPath?.let { ElmTestCLI(it) }
47+
val elmTestCLI: ElmTestCLI? = elmTestPath?.let { ElmTestCLI(it) }
5048

5149
val elmReviewCLI: ElmReviewCLI? = elmReviewPath?.let { ElmReviewCLI(it) }
5250

@@ -76,8 +74,7 @@ data class ElmToolchain(
7674
elmCompilerPath = elmCompilerPath ?: suggestions[elmCompilerTool],
7775
lamderaCompilerPath = lamderaCompilerPath ?: suggestions[lamderaCompilerTool],
7876
elmFormatPath = elmFormatPath ?: suggestions[elmFormatTool],
79-
elmTestPath = elmTestPath ?: suggestions[elmTestTool],
80-
elmTestRsPath = elmTestRsPath ?: suggestions[elmTestRsTool],
77+
elmTestPath = if (isElmTestRsEnabled) elmTestPath ?: suggestions[elmTestRsTool] else elmTestPath ?: suggestions[elmTestTool],
8178
elmReviewPath = elmReviewPath ?: suggestions[elmReviewTool]
8279
)
8380
}
@@ -106,7 +103,6 @@ data class ElmToolchain(
106103
lamderaCompilerPath = null,
107104
elmFormatPath = null,
108105
elmTestPath = null,
109-
elmTestRsPath = null,
110106
elmReviewPath = null,
111107
isElmTestRsEnabled = DEFAULT_ELM_TEST_RS,
112108
isElmFormatOnSaveEnabled = DEFAULT_FORMAT_ON_SAVE

src/main/kotlin/org/elm/workspace/ElmWorkspaceService.kt

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,6 @@ class ElmWorkspaceService(val intellijProject: Project) : PersistentStateCompone
9393
val lamderaCompilerPath: String = "",
9494
val elmFormatPath: String = "",
9595
val elmTestPath: String = "",
96-
val elmTestRsPath: String = "",
9796
val isElmTestRsEnabled: Boolean = DEFAULT_ELM_TEST_RS,
9897
val elmReviewPath: String = "",
9998
val isElmFormatOnSaveEnabled: Boolean = DEFAULT_FORMAT_ON_SAVE
@@ -108,7 +107,6 @@ class ElmWorkspaceService(val intellijProject: Project) : PersistentStateCompone
108107
lamderaCompilerPath = raw.lamderaCompilerPath,
109108
elmFormatPath = raw.elmFormatPath,
110109
elmTestPath = raw.elmTestPath,
111-
elmTestRsPath = raw.elmTestRsPath,
112110
elmReviewPath = raw.elmReviewPath,
113111
isElmTestRsEnabled = raw.isElmTestRsEnabled,
114112
isElmFormatOnSaveEnabled = raw.isElmFormatOnSaveEnabled
@@ -140,7 +138,6 @@ class ElmWorkspaceService(val intellijProject: Project) : PersistentStateCompone
140138
lamderaCompilerPath = toolchain.lamderaCompilerPath.toString(),
141139
elmFormatPath = toolchain.elmFormatPath.toString(),
142140
elmTestPath = toolchain.elmTestPath.toString(),
143-
elmTestRsPath = toolchain.elmTestRsPath.toString(),
144141
elmReviewPath = toolchain.elmReviewPath.toString(),
145142
isElmTestRsEnabled = toolchain.isElmTestRsEnabled,
146143
isElmFormatOnSaveEnabled = toolchain.isElmFormatOnSaveEnabled
@@ -446,7 +443,6 @@ class ElmWorkspaceService(val intellijProject: Project) : PersistentStateCompone
446443
settingsElement.setAttribute("lamderaCompilerPath", raw.lamderaCompilerPath)
447444
settingsElement.setAttribute("elmFormatPath", raw.elmFormatPath)
448445
settingsElement.setAttribute("elmTestPath", raw.elmTestPath)
449-
settingsElement.setAttribute("elmTestRsPath", raw.elmTestRsPath)
450446
settingsElement.setAttribute("isElmTestRsEnabled", raw.isElmTestRsEnabled.toString())
451447
settingsElement.setAttribute("elmReviewPath", raw.elmReviewPath)
452448
settingsElement.setAttribute("isElmFormatOnSaveEnabled", raw.isElmFormatOnSaveEnabled.toString())
@@ -466,7 +462,6 @@ class ElmWorkspaceService(val intellijProject: Project) : PersistentStateCompone
466462
val lamderaCompilerPath = settingsElement.getAttributeValue("lamderaCompilerPath") ?: ""
467463
val elmFormatPath = settingsElement.getAttributeValue("elmFormatPath") ?: ""
468464
val elmTestPath = settingsElement.getAttributeValue("elmTestPath") ?: ""
469-
val elmTestRsPath = settingsElement.getAttributeValue("elmTestRsPath") ?: ""
470465
val elmReviewPath = settingsElement.getAttributeValue("elmReviewPath") ?: ""
471466
val isElmTestRsEnabled = settingsElement
472467
.getAttributeValue("isElmTestRsEnabled")
@@ -483,7 +478,6 @@ class ElmWorkspaceService(val intellijProject: Project) : PersistentStateCompone
483478
lamderaCompilerPath = lamderaCompilerPath,
484479
elmFormatPath = elmFormatPath,
485480
elmTestPath = elmTestPath,
486-
elmTestRsPath = elmTestRsPath,
487481
isElmTestRsEnabled = isElmTestRsEnabled,
488482
elmReviewPath = elmReviewPath,
489483
isElmFormatOnSaveEnabled = isElmFormatOnSaveEnabled

src/main/kotlin/org/elm/workspace/commandLineTools/ElmTestCLI.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@ class ElmTestCLI(private val executablePath: Path) {
3333
*
3434
* @param elmCompilerPath The path to the Elm compiler.
3535
* @param elmProject The [ElmProject] containing the tests to be run.
36+
* @param filteredTest An instance of the filter parameters for the test
37+
* @param isElmTestRsEnabled True if using elm-test-rs
3638
*/
3739
fun runTestsProcessHandler(elmCompilerPath: Path, elmProject: ElmProject, filteredTest: FilteredTest?, isElmTestRsEnabled: Boolean): ProcessHandler {
3840
val commandLine = GeneralCommandLine(executablePath.toString(), "--report=json")

src/main/kotlin/org/elm/workspace/ui/ElmWorkspaceConfigurable.kt

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -313,7 +313,6 @@ class ElmWorkspaceConfigurable(
313313
val elmFormatPath = settings?.elmFormatPath
314314
val isElmFormatOnSaveEnabled = settings?.isElmFormatOnSaveEnabled
315315
val elmTestPath = settings?.elmTestPath
316-
val elmTestRsPath = settings?.elmTestRsPath
317316
val isElmTestRsEnabled = settings?.isElmTestRsEnabled
318317
val elmReviewPath = settings?.elmReviewPath
319318

@@ -327,12 +326,9 @@ class ElmWorkspaceConfigurable(
327326
elmFormatPathField.text = elmFormatPath
328327
}
329328
elmFormatOnSaveCheckbox.isSelected = isElmFormatOnSaveEnabled == true
330-
if (elmTestPath != null && (isElmTestRsEnabled == null || !isElmTestRsEnabled)) {
329+
if (elmTestPath != null) {
331330
elmTestPathField.text = elmTestPath
332331
}
333-
if (elmTestRsPath != null && isElmTestRsEnabled == true) {
334-
elmTestPathField.text = elmTestRsPath
335-
}
336332
elmTestRsCheckbox.isSelected = isElmTestRsEnabled == true
337333
if (elmReviewPath != null) {
338334
elmReviewPathField.text = elmReviewPath
@@ -346,15 +342,14 @@ class ElmWorkspaceConfigurable(
346342
it.copy(elmCompilerPath = elmPathField.text,
347343
lamderaCompilerPath = lamderaPathField.text,
348344
elmFormatPath = elmFormatPathField.text,
349-
elmTestPath = if (isElmTestRsEnabledAndSelected()) "" else elmTestPathField.text,
350-
elmTestRsPath = if (isElmTestRsEnabledAndSelected()) elmTestPathField.text else "",
345+
elmTestPath = elmTestPathField.text,
351346
elmReviewPath = elmReviewPathField.text,
352347
isElmTestRsEnabled = isElmTestRsEnabledAndSelected(),
353348
isElmFormatOnSaveEnabled = isOnSaveHookEnabledAndSelected()
354349
)
355350
}
356351
}
357-
352+
358353
private fun isElmTestRsEnabledAndSelected() =
359354
elmTestRsCheckbox.isEnabled && elmTestRsCheckbox.isSelected
360355

@@ -363,12 +358,10 @@ class ElmWorkspaceConfigurable(
363358

364359
override fun isModified(): Boolean {
365360
val settings = project.elmWorkspace.rawSettings
366-
val isElmTestPathModified = if (isElmTestRsEnabledAndSelected()) elmTestPathField.text != settings?.elmTestRsPath else elmTestPathField.text != settings?.elmTestPath
367-
368361
return elmPathField.text != settings?.elmCompilerPath
369362
|| lamderaPathField.text != settings.lamderaCompilerPath
370363
|| elmFormatPathField.text != settings.elmFormatPath
371-
|| isElmTestPathModified
364+
|| elmTestPathField.text != settings.elmTestPath
372365
|| elmReviewPathField.text != settings.elmReviewPath
373366
|| isElmTestRsEnabledAndSelected() != settings.isElmTestRsEnabled
374367
|| isOnSaveHookEnabledAndSelected() != settings.isElmFormatOnSaveEnabled

src/test/kotlin/org/elm/ide/lineMarkers/ElmTestTestLineMarkerProviderTest.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ class ElmTestTestLineMarkerProviderTest : ElmLineMarkerProviderTestBase() {
1212
lamderaCompilerPath = "",
1313
elmFormatPath = "",
1414
elmTestPath = "",
15-
elmTestRsPath = "",
1615
elmReviewPath = "",
1716
isElmTestRsEnabled = enabled,
1817
isElmFormatOnSaveEnabled = false

0 commit comments

Comments
 (0)