PY-41923 Don't parameterize ReST run configuration providers with exact run configuration types

Hence staying closer to the original implementation that didn't distinguish
Sphinx and Docutils specific run configuration internally. It may be beneficial
to return the exact run configuration types once they start to actually differ
in some way or become applicable in some overlapping contexts.

GitOrigin-RevId: 8104c4949dea558ca4199ad06172d1ce9fb1ab8c
This commit is contained in:
Mikhail Golubev
2020-04-28 18:15:35 +03:00
committed by intellij-monorepo-bot
parent e1e70a2c7c
commit 98ec123ac6
2 changed files with 10 additions and 28 deletions

View File

@@ -1,8 +1,6 @@
// Copyright 2000-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
package com.jetbrains.rest.run.docutils;
import com.intellij.execution.RunManager;
import com.intellij.execution.RunnerAndConfigurationSettings;
import com.intellij.execution.actions.ConfigurationContext;
import com.intellij.execution.actions.LazyRunConfigurationProducer;
import com.intellij.execution.configurations.ConfigurationFactory;
@@ -14,14 +12,12 @@ import com.intellij.openapi.vfs.LocalFileSystem;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiFile;
import com.intellij.util.containers.ContainerUtil;
import com.jetbrains.rest.RestFileType;
import com.jetbrains.rest.run.RestRunConfiguration;
import com.jetbrains.rest.run.RestRunConfigurationType;
import org.jetbrains.annotations.NotNull;
import java.util.List;
public class DocutilsConfigurationProducer extends LazyRunConfigurationProducer<DocutilsRunConfiguration> {
public class DocutilsConfigurationProducer extends LazyRunConfigurationProducer<RestRunConfiguration> {
@NotNull
@Override
public ConfigurationFactory getConfigurationFactory() {
@@ -29,9 +25,10 @@ public class DocutilsConfigurationProducer extends LazyRunConfigurationProducer<
}
@Override
protected boolean setupConfigurationFromContext(@NotNull DocutilsRunConfiguration configuration,
protected boolean setupConfigurationFromContext(@NotNull RestRunConfiguration configuration,
@NotNull ConfigurationContext context,
@NotNull Ref<PsiElement> sourceElement) {
assert (configuration instanceof DocutilsRunConfiguration);
PsiFile script = sourceElement.get().getContainingFile();
if (script == null || script.getFileType() != RestFileType.INSTANCE) {
return false;
@@ -68,7 +65,7 @@ public class DocutilsConfigurationProducer extends LazyRunConfigurationProducer<
}
@Override
public boolean isConfigurationFromContext(@NotNull DocutilsRunConfiguration configuration, @NotNull ConfigurationContext context) {
public boolean isConfigurationFromContext(@NotNull RestRunConfiguration configuration, @NotNull ConfigurationContext context) {
final PsiElement element = context.getPsiLocation();
if (element == null) {
return false;
@@ -85,10 +82,4 @@ public class DocutilsConfigurationProducer extends LazyRunConfigurationProducer<
final String scriptName = configuration.getInputFile();
return FileUtil.toSystemIndependentName(scriptName).equals(FileUtil.toSystemIndependentName(path));
}
@Override
protected @NotNull List<RunnerAndConfigurationSettings> getConfigurationSettingsList(@NotNull RunManager runManager) {
return ContainerUtil.filter(super.getConfigurationSettingsList(runManager),
s -> s.getConfiguration() instanceof DocutilsRunConfiguration);
}
}

View File

@@ -1,8 +1,6 @@
// Copyright 2000-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
package com.jetbrains.rest.run.sphinx;
import com.intellij.execution.RunManager;
import com.intellij.execution.RunnerAndConfigurationSettings;
import com.intellij.execution.actions.ConfigurationContext;
import com.intellij.execution.actions.LazyRunConfigurationProducer;
import com.intellij.execution.configurations.ConfigurationFactory;
@@ -14,14 +12,12 @@ import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.PsiDirectory;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiFile;
import com.intellij.util.containers.ContainerUtil;
import com.jetbrains.rest.RestFile;
import com.jetbrains.rest.run.RestRunConfiguration;
import com.jetbrains.rest.run.RestRunConfigurationType;
import org.jetbrains.annotations.NotNull;
import java.util.List;
public class SphinxConfigurationProducer extends LazyRunConfigurationProducer<SphinxRunConfiguration> {
public class SphinxConfigurationProducer extends LazyRunConfigurationProducer<RestRunConfiguration> {
@NotNull
@Override
public ConfigurationFactory getConfigurationFactory() {
@@ -29,9 +25,10 @@ public class SphinxConfigurationProducer extends LazyRunConfigurationProducer<Sp
}
@Override
protected boolean setupConfigurationFromContext(@NotNull SphinxRunConfiguration configuration,
protected boolean setupConfigurationFromContext(@NotNull RestRunConfiguration configuration,
@NotNull ConfigurationContext context,
@NotNull Ref<PsiElement> sourceElement) {
assert (configuration instanceof SphinxRunConfiguration);
PsiElement element = sourceElement.get();
if (!(element instanceof PsiDirectory)) return false;
@@ -68,7 +65,7 @@ public class SphinxConfigurationProducer extends LazyRunConfigurationProducer<Sp
}
@Override
public boolean isConfigurationFromContext(@NotNull SphinxRunConfiguration configuration, @NotNull ConfigurationContext context) {
public boolean isConfigurationFromContext(@NotNull RestRunConfiguration configuration, @NotNull ConfigurationContext context) {
PsiElement element = context.getPsiLocation();
if (!(element instanceof PsiDirectory)) return false;
final VirtualFile vFile = ((PsiDirectory)element).getVirtualFile();
@@ -76,10 +73,4 @@ public class SphinxConfigurationProducer extends LazyRunConfigurationProducer<Sp
final String scriptName = configuration.getInputFile();
return FileUtil.toSystemIndependentName(scriptName).equals(FileUtil.toSystemIndependentName(path));
}
@Override
protected @NotNull List<RunnerAndConfigurationSettings> getConfigurationSettingsList(@NotNull RunManager runManager) {
return ContainerUtil.filter(super.getConfigurationSettingsList(runManager),
s -> s.getConfiguration() instanceof SphinxRunConfiguration);
}
}