diff --git a/src/rider/main/kotlin/me/fornever/avaloniarider/idea/editor/AvaloniaPreviewerXamlEditorExtension.kt b/src/rider/main/kotlin/me/fornever/avaloniarider/idea/editor/AvaloniaPreviewerXamlEditorExtension.kt index b0be23a1..ec2e9ef5 100644 --- a/src/rider/main/kotlin/me/fornever/avaloniarider/idea/editor/AvaloniaPreviewerXamlEditorExtension.kt +++ b/src/rider/main/kotlin/me/fornever/avaloniarider/idea/editor/AvaloniaPreviewerXamlEditorExtension.kt @@ -7,7 +7,7 @@ import com.jetbrains.rider.xaml.core.XamlPreviewEditor import com.jetbrains.rider.xaml.core.XamlPreviewEditorExtension import com.jetbrains.rider.xaml.splitEditor.XamlSplitEditor import me.fornever.avaloniarider.idea.settings.AvaloniaPreviewerMethod -import me.fornever.avaloniarider.idea.settings.AvaloniaSettings +import me.fornever.avaloniarider.idea.settings.AvaloniaProjectSettings class AvaloniaPreviewerXamlEditorExtension : XamlPreviewEditorExtension { override fun accepts(file: VirtualFile, platform: PreviewPlatformKind): Boolean = @@ -18,7 +18,7 @@ class AvaloniaPreviewerXamlEditorExtension : XamlPreviewEditorExtension { file: VirtualFile, parent: XamlSplitEditor, platform: PreviewPlatformKind - ): XamlPreviewEditor = when (AvaloniaSettings.getInstance(project).previewerTransportType) { + ): XamlPreviewEditor = when (AvaloniaProjectSettings.getInstance(project).previewerTransportType) { AvaloniaPreviewerMethod.AvaloniaRemote -> AvaloniaRemotePreviewEditor(project, file) AvaloniaPreviewerMethod.Html -> AvaloniaHtmlPreviewEditor(project, file) } diff --git a/src/rider/main/kotlin/me/fornever/avaloniarider/idea/editor/AvaloniaRemotePreviewEditor.kt b/src/rider/main/kotlin/me/fornever/avaloniarider/idea/editor/AvaloniaRemotePreviewEditor.kt index 7625a3c3..a67f07dd 100644 --- a/src/rider/main/kotlin/me/fornever/avaloniarider/idea/editor/AvaloniaRemotePreviewEditor.kt +++ b/src/rider/main/kotlin/me/fornever/avaloniarider/idea/editor/AvaloniaRemotePreviewEditor.kt @@ -2,7 +2,7 @@ package me.fornever.avaloniarider.idea.editor import com.intellij.openapi.project.Project import com.intellij.openapi.vfs.VirtualFile -import me.fornever.avaloniarider.idea.settings.AvaloniaSettings +import me.fornever.avaloniarider.idea.settings.AvaloniaProjectSettings import javax.swing.JComponent class AvaloniaRemotePreviewEditor( @@ -11,7 +11,7 @@ class AvaloniaRemotePreviewEditor( ) : AvaloniaPreviewEditorBase(project, currentFile) { private val panel = lazy { - BitmapPreviewEditorComponent(lifetime, sessionController, AvaloniaSettings.getInstance(project)) + BitmapPreviewEditorComponent(lifetime, sessionController, AvaloniaProjectSettings.getInstance(project)) } override val editorComponent = panel.value diff --git a/src/rider/main/kotlin/me/fornever/avaloniarider/idea/editor/BitmapPreviewEditorComponent.kt b/src/rider/main/kotlin/me/fornever/avaloniarider/idea/editor/BitmapPreviewEditorComponent.kt index f5e86001..89fe71e0 100644 --- a/src/rider/main/kotlin/me/fornever/avaloniarider/idea/editor/BitmapPreviewEditorComponent.kt +++ b/src/rider/main/kotlin/me/fornever/avaloniarider/idea/editor/BitmapPreviewEditorComponent.kt @@ -8,7 +8,7 @@ import com.jetbrains.rd.util.lifetime.Lifetime import me.fornever.avaloniarider.controlmessages.FrameMessage import me.fornever.avaloniarider.controlmessages.UpdateXamlResultMessage import me.fornever.avaloniarider.idea.concurrency.adviseOnUiThread -import me.fornever.avaloniarider.idea.settings.AvaloniaSettings +import me.fornever.avaloniarider.idea.settings.AvaloniaProjectSettings import me.fornever.avaloniarider.plainTextToHtml import me.fornever.avaloniarider.previewer.AvaloniaPreviewerSessionController import me.fornever.avaloniarider.previewer.AvaloniaPreviewerSessionController.Status @@ -20,7 +20,7 @@ import javax.swing.JPanel class BitmapPreviewEditorComponent( lifetime: Lifetime, private val controller: AvaloniaPreviewerSessionController, - settings: AvaloniaSettings + settings: AvaloniaProjectSettings ) : JPanel() { companion object { private val logger = Logger.getInstance(BitmapPreviewEditorComponent::class.java) diff --git a/src/rider/main/kotlin/me/fornever/avaloniarider/idea/editor/PreviewImageView.kt b/src/rider/main/kotlin/me/fornever/avaloniarider/idea/editor/PreviewImageView.kt index 48fa4825..0e4f4251 100644 --- a/src/rider/main/kotlin/me/fornever/avaloniarider/idea/editor/PreviewImageView.kt +++ b/src/rider/main/kotlin/me/fornever/avaloniarider/idea/editor/PreviewImageView.kt @@ -11,7 +11,7 @@ import com.intellij.util.application import com.intellij.util.ui.UIUtil import com.jetbrains.rd.util.lifetime.Lifetime import me.fornever.avaloniarider.controlmessages.FrameMessage -import me.fornever.avaloniarider.idea.settings.AvaloniaSettings +import me.fornever.avaloniarider.idea.settings.AvaloniaProjectSettings import me.fornever.avaloniarider.previewer.AvaloniaMessageMouseListener import me.fornever.avaloniarider.previewer.AvaloniaPreviewerSessionController import me.fornever.avaloniarider.previewer.renderFrame @@ -25,7 +25,7 @@ import javax.swing.JComponent class PreviewImageView( lifetime: Lifetime, private val controller: AvaloniaPreviewerSessionController, - private val settings: AvaloniaSettings + private val settings: AvaloniaProjectSettings ) : JComponent() { companion object { diff --git a/src/rider/main/kotlin/me/fornever/avaloniarider/idea/editor/actions/RunnableAssemblySelectorAction.kt b/src/rider/main/kotlin/me/fornever/avaloniarider/idea/editor/actions/RunnableAssemblySelectorAction.kt index 6282845c..f2cbd0fb 100644 --- a/src/rider/main/kotlin/me/fornever/avaloniarider/idea/editor/actions/RunnableAssemblySelectorAction.kt +++ b/src/rider/main/kotlin/me/fornever/avaloniarider/idea/editor/actions/RunnableAssemblySelectorAction.kt @@ -32,8 +32,8 @@ import com.jetbrains.rider.projectView.workspace.isProject import com.jetbrains.rider.projectView.workspace.isUnloadedProject import com.jetbrains.rider.run.configurations.IProjectBasedRunConfiguration import me.fornever.avaloniarider.AvaloniaRiderBundle.message +import me.fornever.avaloniarider.idea.settings.AvaloniaWorkspaceSettings import me.fornever.avaloniarider.idea.settings.AvaloniaProjectSettings -import me.fornever.avaloniarider.idea.settings.AvaloniaSettings import me.fornever.avaloniarider.model.AvaloniaRiderProjectModel import me.fornever.avaloniarider.model.RdGetReferencingProjectsRequest import me.fornever.avaloniarider.model.avaloniaRiderProjectModel @@ -52,8 +52,8 @@ class RunnableAssemblySelectorAction( private val workspaceModel: WorkspaceModel, messageBus: MessageBus, private val runManager: RunManager, - private val avaloniaSettings: AvaloniaSettings, private val avaloniaProjectSettings: AvaloniaProjectSettings, + private val avaloniaWorkspaceSettings: AvaloniaWorkspaceSettings, private val avaloniaRiderModel: AvaloniaRiderProjectModel, isSolutionLoading: IOptPropertyView, runnableProjects: IOptPropertyView>, @@ -70,8 +70,8 @@ class RunnableAssemblySelectorAction( WorkspaceModel.getInstance(project), project.messageBus, RunManager.getInstance(project), - AvaloniaSettings.getInstance(project), AvaloniaProjectSettings.getInstance(project), + AvaloniaWorkspaceSettings.getInstance(project), project.solution.avaloniaRiderProjectModel, project.solution.isLoading, AvaloniaRiderProjectModelHost.getInstance(project).filteredRunnableProjects, @@ -113,7 +113,7 @@ class RunnableAssemblySelectorAction( val availableProjects = availableProjects.value val nothingSelected = !selectedRunnableProjectProperty.hasValue - val shouldSynchronize = avaloniaSettings.synchronizeWithRunConfiguration + val shouldSynchronize = avaloniaProjectSettings.synchronizeWithRunConfiguration fun getRunnableProject(projectFilePath: Path?): RunnableProject? = availableProjects.firstOrNull { @@ -138,7 +138,7 @@ class RunnableAssemblySelectorAction( } logger.info("Trying to load saved project") - val savedProjectFilePath = avaloniaProjectSettings.getSelection(xamlFile.toNioPath()) + val savedProjectFilePath = avaloniaWorkspaceSettings.getSelection(xamlFile.toNioPath()) if (savedProjectFilePath != null) { logger.info("Saved project file path: $savedProjectFilePath") val savedProject = getRunnableProject(savedProjectFilePath) @@ -167,7 +167,7 @@ class RunnableAssemblySelectorAction( autoSelectProject() } selectedRunnableProjectProperty.advise(lifetime) { project -> - avaloniaProjectSettings.storeSelection(xamlFile.toNioPath(), Paths.get(project.projectFilePath)) + avaloniaWorkspaceSettings.storeSelection(xamlFile.toNioPath(), Paths.get(project.projectFilePath)) } messageBus.connect(lifetime.createNestedDisposable("RunnableAssemblySelectorAction")) .subscribe(RunManagerListener.TOPIC, object : RunManagerListener { diff --git a/src/rider/main/kotlin/me/fornever/avaloniarider/idea/settings/AvaloniaProjectSettings.kt b/src/rider/main/kotlin/me/fornever/avaloniarider/idea/settings/AvaloniaProjectSettings.kt index fbd63f41..3d47d330 100644 --- a/src/rider/main/kotlin/me/fornever/avaloniarider/idea/settings/AvaloniaProjectSettings.kt +++ b/src/rider/main/kotlin/me/fornever/avaloniarider/idea/settings/AvaloniaProjectSettings.kt @@ -1,49 +1,40 @@ package me.fornever.avaloniarider.idea.settings -import com.intellij.openapi.components.* +import com.intellij.openapi.components.BaseState +import com.intellij.openapi.components.Service +import com.intellij.openapi.components.SimplePersistentStateComponent +import com.intellij.openapi.components.State import com.intellij.openapi.project.Project -import com.intellij.openapi.util.io.FileUtil -import com.intellij.util.application -import com.intellij.util.io.systemIndependentPath -import com.jetbrains.rider.util.idea.getService -import java.io.File -import java.nio.file.Path -import java.nio.file.Paths - -class AvaloniaProjectState : BaseState() { - var projectPerEditor by map() + +enum class AvaloniaPreviewerMethod { + AvaloniaRemote, + Html } -@State(name = "AvaloniaProject", storages = [Storage("avalonia.xml")]) -@Service(Service.Level.PROJECT) -class AvaloniaProjectSettings(private val project: Project) : SimplePersistentStateComponent( - AvaloniaProjectState() -) { - companion object { - fun getInstance(project: Project): AvaloniaProjectSettings = project.getService() - } +class AvaloniaProjectSettingsState : BaseState() { + var previewerMethod by enum(AvaloniaPreviewerMethod.AvaloniaRemote) - private fun getProjectRelativeSystemIndependentPath(relativePath: Path): String { - val basePath = project.basePath ?: return relativePath.systemIndependentPath - val resultPath = FileUtil.getRelativePath(File(basePath), relativePath.toFile()) - ?: return relativePath.systemIndependentPath - return Paths.get(resultPath).systemIndependentPath - } + /** + * Synchronize current run configuration and selected project, when possible. + */ + var synchronizeWithRunConfiguration by property(false) - fun storeSelection(xamlFilePath: Path, projectFilePath: Path) { - application.assertIsDispatchThread() + var fpsLimit by property(0) +} - val relativeXamlPath = getProjectRelativeSystemIndependentPath(xamlFilePath) - val relativeProjectPath = getProjectRelativeSystemIndependentPath(projectFilePath) - state.projectPerEditor[relativeXamlPath] = relativeProjectPath +@State(name = "Avalonia") // TODO[#265]: Move to avalonia.xml +@Service +class AvaloniaProjectSettings : SimplePersistentStateComponent(AvaloniaProjectSettingsState()) { + companion object { + fun getInstance(project: Project): AvaloniaProjectSettings = project.getService(AvaloniaProjectSettings::class.java) } - fun getSelection(xamlFilePath: Path): Path? { - application.assertIsDispatchThread() + val previewerTransportType: AvaloniaPreviewerMethod + get() = state.previewerMethod - val relativeXamlPath = getProjectRelativeSystemIndependentPath(xamlFilePath) - val relativeProjectPath = state.projectPerEditor[relativeXamlPath] ?: return null - val basePath = project.basePath ?: return Paths.get(relativeProjectPath) - return Paths.get(basePath, relativeProjectPath) - } + val synchronizeWithRunConfiguration: Boolean + get() = state.synchronizeWithRunConfiguration + + val fpsLimit: Int + get() = state.fpsLimit } diff --git a/src/rider/main/kotlin/me/fornever/avaloniarider/idea/settings/AvaloniaSettingsComponent.kt b/src/rider/main/kotlin/me/fornever/avaloniarider/idea/settings/AvaloniaProjectSettingsComponent.kt similarity index 82% rename from src/rider/main/kotlin/me/fornever/avaloniarider/idea/settings/AvaloniaSettingsComponent.kt rename to src/rider/main/kotlin/me/fornever/avaloniarider/idea/settings/AvaloniaProjectSettingsComponent.kt index f3c8faa2..4f2551ad 100644 --- a/src/rider/main/kotlin/me/fornever/avaloniarider/idea/settings/AvaloniaSettingsComponent.kt +++ b/src/rider/main/kotlin/me/fornever/avaloniarider/idea/settings/AvaloniaProjectSettingsComponent.kt @@ -11,8 +11,8 @@ import javax.swing.JPanel import javax.swing.JSpinner import javax.swing.SpinnerNumberModel -class AvaloniaSettingsComponent(state: AvaloniaSettingsState) : JPanel() { - private val initialState = AvaloniaSettingsState().apply { +class AvaloniaProjectSettingsComponent(state: AvaloniaProjectSettingsState) : JPanel() { + private val initialState = AvaloniaProjectSettingsState().apply { copyFrom(state) } @@ -57,11 +57,11 @@ class AvaloniaSettingsComponent(state: AvaloniaSettingsState) : JPanel() { addComponent(fpsLimitEditor) { gridy = 2; gridx = 1 } } - var currentState: AvaloniaSettingsState - get() = AvaloniaSettingsState().apply { - previewerMethod = this@AvaloniaSettingsComponent.previewerMethod - synchronizeWithRunConfiguration = this@AvaloniaSettingsComponent.synchronizeWithRunConfiguration - fpsLimit = this@AvaloniaSettingsComponent.fpsLimit + var currentState: AvaloniaProjectSettingsState + get() = AvaloniaProjectSettingsState().apply { + previewerMethod = this@AvaloniaProjectSettingsComponent.previewerMethod + synchronizeWithRunConfiguration = this@AvaloniaProjectSettingsComponent.synchronizeWithRunConfiguration + fpsLimit = this@AvaloniaProjectSettingsComponent.fpsLimit } set(value) { previewerMethod = value.previewerMethod diff --git a/src/rider/main/kotlin/me/fornever/avaloniarider/idea/settings/AvaloniaSettingsConfigurable.kt b/src/rider/main/kotlin/me/fornever/avaloniarider/idea/settings/AvaloniaProjectSettingsConfigurable.kt similarity index 57% rename from src/rider/main/kotlin/me/fornever/avaloniarider/idea/settings/AvaloniaSettingsConfigurable.kt rename to src/rider/main/kotlin/me/fornever/avaloniarider/idea/settings/AvaloniaProjectSettingsConfigurable.kt index d65544a1..ec85083c 100644 --- a/src/rider/main/kotlin/me/fornever/avaloniarider/idea/settings/AvaloniaSettingsConfigurable.kt +++ b/src/rider/main/kotlin/me/fornever/avaloniarider/idea/settings/AvaloniaProjectSettingsConfigurable.kt @@ -4,14 +4,14 @@ import com.intellij.openapi.options.Configurable import com.intellij.openapi.project.Project import javax.swing.JComponent -class AvaloniaSettingsConfigurable(private val project: Project) : Configurable { +class AvaloniaProjectSettingsConfigurable(private val project: Project) : Configurable { override fun getDisplayName() = "Avalonia" - private var control: AvaloniaSettingsComponent? = null + private var control: AvaloniaProjectSettingsComponent? = null override fun createComponent(): JComponent { - val settings = AvaloniaSettings.getInstance(project).state - return AvaloniaSettingsComponent(settings).apply { + val settings = AvaloniaProjectSettings.getInstance(project).state + return AvaloniaProjectSettingsComponent(settings).apply { control = this } } @@ -27,10 +27,10 @@ class AvaloniaSettingsConfigurable(private val project: Project) : Configurable override fun apply() { val settings = control!!.currentState - AvaloniaSettings.getInstance(project).state.copyFrom(settings) + AvaloniaProjectSettings.getInstance(project).state.copyFrom(settings) } override fun reset() { - control!!.currentState = AvaloniaSettings.getInstance(project).state + control!!.currentState = AvaloniaProjectSettings.getInstance(project).state } } diff --git a/src/rider/main/kotlin/me/fornever/avaloniarider/idea/settings/AvaloniaSettings.kt b/src/rider/main/kotlin/me/fornever/avaloniarider/idea/settings/AvaloniaSettings.kt deleted file mode 100644 index 04239b46..00000000 --- a/src/rider/main/kotlin/me/fornever/avaloniarider/idea/settings/AvaloniaSettings.kt +++ /dev/null @@ -1,40 +0,0 @@ -package me.fornever.avaloniarider.idea.settings - -import com.intellij.openapi.components.BaseState -import com.intellij.openapi.components.Service -import com.intellij.openapi.components.SimplePersistentStateComponent -import com.intellij.openapi.components.State -import com.intellij.openapi.project.Project - -enum class AvaloniaPreviewerMethod { - AvaloniaRemote, - Html -} - -class AvaloniaSettingsState : BaseState() { - var previewerMethod by enum(AvaloniaPreviewerMethod.AvaloniaRemote) - - /** - * Synchronize current run configuration and selected project, when possible. - */ - var synchronizeWithRunConfiguration by property(false) - - var fpsLimit by property(0) -} - -@State(name = "Avalonia") -@Service -class AvaloniaSettings : SimplePersistentStateComponent(AvaloniaSettingsState()) { - companion object { - fun getInstance(project: Project): AvaloniaSettings = project.getService(AvaloniaSettings::class.java) - } - - val previewerTransportType: AvaloniaPreviewerMethod - get() = state.previewerMethod - - val synchronizeWithRunConfiguration: Boolean - get() = state.synchronizeWithRunConfiguration - - val fpsLimit: Int - get() = state.fpsLimit -} diff --git a/src/rider/main/kotlin/me/fornever/avaloniarider/idea/settings/AvaloniaWorkspaceSettings.kt b/src/rider/main/kotlin/me/fornever/avaloniarider/idea/settings/AvaloniaWorkspaceSettings.kt new file mode 100644 index 00000000..6c8e432a --- /dev/null +++ b/src/rider/main/kotlin/me/fornever/avaloniarider/idea/settings/AvaloniaWorkspaceSettings.kt @@ -0,0 +1,52 @@ +package me.fornever.avaloniarider.idea.settings + +import com.intellij.openapi.components.* +import com.intellij.openapi.project.Project +import com.intellij.openapi.util.io.FileUtil +import com.intellij.util.application +import com.intellij.util.io.systemIndependentPath +import com.jetbrains.rider.util.idea.getService +import java.io.File +import java.nio.file.Path +import java.nio.file.Paths + +/** + * These are Avalonia workspace-tied settings, not generally meant to be shared across the team. + */ +class AvaloniaWorkspaceState : BaseState() { + var projectPerEditor by map() +} + +@State(name = "AvaloniaProject", storages = [Storage("avalonia.xml")]) // TODO[#265]: move to a workspace-related file +@Service(Service.Level.PROJECT) +class AvaloniaWorkspaceSettings(private val project: Project) : SimplePersistentStateComponent( + AvaloniaWorkspaceState() +) { + companion object { + fun getInstance(project: Project): AvaloniaWorkspaceSettings = project.getService() + } + + private fun getProjectRelativeSystemIndependentPath(relativePath: Path): String { + val basePath = project.basePath ?: return relativePath.systemIndependentPath + val resultPath = FileUtil.getRelativePath(File(basePath), relativePath.toFile()) + ?: return relativePath.systemIndependentPath + return Paths.get(resultPath).systemIndependentPath + } + + fun storeSelection(xamlFilePath: Path, projectFilePath: Path) { + application.assertIsDispatchThread() + + val relativeXamlPath = getProjectRelativeSystemIndependentPath(xamlFilePath) + val relativeProjectPath = getProjectRelativeSystemIndependentPath(projectFilePath) + state.projectPerEditor[relativeXamlPath] = relativeProjectPath + } + + fun getSelection(xamlFilePath: Path): Path? { + application.assertIsDispatchThread() + + val relativeXamlPath = getProjectRelativeSystemIndependentPath(xamlFilePath) + val relativeProjectPath = state.projectPerEditor[relativeXamlPath] ?: return null + val basePath = project.basePath ?: return Paths.get(relativeProjectPath) + return Paths.get(basePath, relativeProjectPath) + } +} diff --git a/src/rider/main/kotlin/me/fornever/avaloniarider/previewer/AvaloniaPreviewerSessionController.kt b/src/rider/main/kotlin/me/fornever/avaloniarider/previewer/AvaloniaPreviewerSessionController.kt index 624cd0c5..0aaf6313 100644 --- a/src/rider/main/kotlin/me/fornever/avaloniarider/previewer/AvaloniaPreviewerSessionController.kt +++ b/src/rider/main/kotlin/me/fornever/avaloniarider/previewer/AvaloniaPreviewerSessionController.kt @@ -33,7 +33,7 @@ import me.fornever.avaloniarider.controlmessages.UpdateXamlResultMessage import me.fornever.avaloniarider.exceptions.AvaloniaPreviewerInitializationException import me.fornever.avaloniarider.idea.concurrency.adviseOnUiThread import me.fornever.avaloniarider.idea.settings.AvaloniaPreviewerMethod -import me.fornever.avaloniarider.idea.settings.AvaloniaSettings +import me.fornever.avaloniarider.idea.settings.AvaloniaProjectSettings import me.fornever.avaloniarider.rd.compose import me.fornever.avaloniarider.rider.AvaloniaRiderProjectModelHost import me.fornever.avaloniarider.rider.projectRelativeVirtualPath @@ -239,7 +239,7 @@ class AvaloniaPreviewerSessionController( } private suspend fun executePreviewerAsync(lifetime: Lifetime, projectFilePath: Path) { - val settings = AvaloniaSettings.getInstance(project).state + val settings = AvaloniaProjectSettings.getInstance(project).state statusProperty.set(Status.Connecting) diff --git a/src/rider/main/resources/META-INF/plugin.xml b/src/rider/main/resources/META-INF/plugin.xml index e171e131..35f8c18d 100644 --- a/src/rider/main/resources/META-INF/plugin.xml +++ b/src/rider/main/resources/META-INF/plugin.xml @@ -18,10 +18,10 @@ - + + instance="me.fornever.avaloniarider.idea.settings.AvaloniaProjectSettingsConfigurable" /> diff --git a/src/test/kotlin/me/fornever/avaloniarider/test/cases/RunnableAssemblySelectorActionTests.kt b/src/test/kotlin/me/fornever/avaloniarider/test/cases/RunnableAssemblySelectorActionTests.kt index 2dc90f4e..97f0289b 100644 --- a/src/test/kotlin/me/fornever/avaloniarider/test/cases/RunnableAssemblySelectorActionTests.kt +++ b/src/test/kotlin/me/fornever/avaloniarider/test/cases/RunnableAssemblySelectorActionTests.kt @@ -21,8 +21,8 @@ import com.jetbrains.rider.test.asserts.shouldBeTrue import com.jetbrains.rider.test.asserts.shouldContains import com.jetbrains.rider.test.scriptingApi.getVirtualFileFromPath import me.fornever.avaloniarider.idea.editor.actions.RunnableAssemblySelectorAction +import me.fornever.avaloniarider.idea.settings.AvaloniaWorkspaceSettings import me.fornever.avaloniarider.idea.settings.AvaloniaProjectSettings -import me.fornever.avaloniarider.idea.settings.AvaloniaSettings import me.fornever.avaloniarider.model.avaloniaRiderProjectModel import me.fornever.avaloniarider.test.framework.AvaloniaIntegrationTest import org.testng.Assert.assertFalse @@ -61,8 +61,8 @@ class RunnableAssemblySelectorActionTests : AvaloniaIntegrationTest() { @Suppress("UnstableApiUsage") WorkspaceModel.getInstance(project), project.messageBus, RunManager.getInstance(project), - AvaloniaSettings.getInstance(project), AvaloniaProjectSettings.getInstance(project), + AvaloniaWorkspaceSettings.getInstance(project), project.solution.avaloniaRiderProjectModel, isSolutionLoading, runnableProjects,