Skip to content

Commit e10d08a

Browse files
committed
Reduce direct usages of PCM.getCurrent in scanning actions (#679)
1 parent 67bd583 commit e10d08a

File tree

4 files changed

+20
-21
lines changed

4 files changed

+20
-21
lines changed

src/main/java/org/infernus/idea/checkstyle/CheckStyleInspection.java

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import org.infernus.idea.checkstyle.checker.Problem;
1515
import org.infernus.idea.checkstyle.checker.ScannableFile;
1616
import org.infernus.idea.checkstyle.config.ConfigurationLocationSource;
17+
import org.infernus.idea.checkstyle.config.PluginConfiguration;
1718
import org.infernus.idea.checkstyle.config.PluginConfigurationManager;
1819
import org.infernus.idea.checkstyle.csapi.SeverityLevel;
1920
import org.infernus.idea.checkstyle.exception.CheckStylePluginParseException;
@@ -68,11 +69,13 @@ public ProblemDescriptor[] checkFile(@NotNull final PsiFile psiFile,
6869
}
6970

7071
final Module module = moduleOf(psiFile);
72+
final PluginConfiguration pluginConfiguration = configurationManager(manager.getProject()).getCurrent();
73+
7174
List<ScannableFile> scannableFiles = ScannableFile.createAndValidate(
7275
singletonList(psiFile),
73-
manager.getProject(),
7476
module,
75-
null);
77+
null,
78+
pluginConfiguration);
7679
if (scannableFiles.isEmpty()) {
7780
LOG.debug("Inspection has been cancelled as file is not scannable: " + psiFile.getName());
7881
return noProblemsFound(manager);
@@ -82,7 +85,7 @@ public ProblemDescriptor[] checkFile(@NotNull final PsiFile psiFile,
8285
return asProblemDescriptors(
8386
asyncResultOf(() -> {
8487
try {
85-
return inspectFile(psiFile, scannableFiles, module, manager);
88+
return inspectFile(psiFile, scannableFiles, module, manager, pluginConfiguration);
8689
} finally {
8790
scannableFiles.forEach(ScannableFile::deleteIfRequired);
8891
}
@@ -117,7 +120,8 @@ private Module moduleOf(@NotNull final PsiFile psiFile) {
117120
private List<Problem> inspectFile(@NotNull final PsiFile psiFile,
118121
@NotNull final List<ScannableFile> scannableFiles,
119122
@Nullable final Module module,
120-
@NotNull final InspectionManager manager) {
123+
@NotNull final InspectionManager manager,
124+
@NotNull final PluginConfiguration pluginConfiguration) {
121125
LOG.debug("Inspection has been invoked for " + psiFile.getName());
122126

123127
ArrayList<ConfigurationLocation> configurationLocations = new ArrayList<>();
@@ -131,7 +135,7 @@ private List<Problem> inspectFile(@NotNull final PsiFile psiFile,
131135
.filter(not(ConfigurationLocation::isBlocked))
132136
.map(configurationLocation -> checkerFactory(psiFile.getProject())
133137
.checker(module, configurationLocation)
134-
.map(checker -> checker.scan(scannableFiles, configurationManager(psiFile.getProject()).getCurrent().isSuppressErrors()))
138+
.map(checker -> checker.scan(scannableFiles, pluginConfiguration.isSuppressErrors()))
135139
.map(results -> results.get(psiFile))
136140
.map(this::dropIgnoredProblems)
137141
.orElse(NO_PROBLEMS_FOUND)

src/main/java/org/infernus/idea/checkstyle/actions/ScanCurrentFile.java

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ protected boolean validForScanning(final VirtualFile selectedFile,
8787
}
8888

8989
final PluginConfiguration pluginConfiguration = configurationManager(project).getCurrent();
90-
if (!isFileValidAgainstScanScope(project, pluginConfiguration, selectedFile)) {
90+
if (!isFileValidAgainstScanScope(project, selectedFile, pluginConfiguration.getScanScope())) {
9191
return false;
9292
}
9393

@@ -113,10 +113,8 @@ private static PsiFile psiFileFor(@NotNull final Project project,
113113
}
114114

115115
private static boolean isFileValidAgainstScanScope(@NotNull final Project project,
116-
@NotNull final PluginConfiguration pluginConfiguration,
117-
@NotNull final VirtualFile selectedFile) {
118-
final ScanScope scanScope = pluginConfiguration.getScanScope();
119-
116+
@NotNull final VirtualFile selectedFile,
117+
@NotNull ScanScope scanScope) {
120118
if (scanScope != ScanScope.Everything) {
121119
return ReadAction.compute(() -> {
122120
final ProjectFileIndex projectFileIndex = ProjectFileIndex.getInstance(project);

src/main/java/org/infernus/idea/checkstyle/checker/ScanFiles.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import com.intellij.psi.PsiFile;
1212
import com.intellij.psi.PsiManager;
1313
import org.infernus.idea.checkstyle.config.ConfigurationLocationSource;
14+
import org.infernus.idea.checkstyle.config.PluginConfiguration;
1415
import org.infernus.idea.checkstyle.config.PluginConfigurationManager;
1516
import org.infernus.idea.checkstyle.exception.CheckStylePluginException;
1617
import org.infernus.idea.checkstyle.exception.CheckStylePluginParseException;
@@ -185,13 +186,14 @@ private List<ScanResult> checkFiles(final Module module,
185186
final List<ConfigurationLocation> configurationLocations) {
186187
final List<ScannableFile> scannableFiles = new ArrayList<>();
187188
try {
188-
scannableFiles.addAll(ScannableFile.createAndValidate(filesToScan, module.getProject(), module, this.overrideConfigLocation));
189+
PluginConfiguration pluginConfiguration = configurationManager().getCurrent();
190+
scannableFiles.addAll(ScannableFile.createAndValidate(filesToScan, module, this.overrideConfigLocation, pluginConfiguration));
189191

190192
final List<ScanResult> scanResults = new ArrayList<>();
191193
for (ConfigurationLocation configurationLocation : configurationLocations) {
192194
var checker = checkerFactory().checker(module, configurationLocation);
193195
if (checker.isPresent()) {
194-
var problems = checker.get().scan(scannableFiles, configurationManager().getCurrent().isSuppressErrors());
196+
var problems = checker.get().scan(scannableFiles, pluginConfiguration.isSuppressErrors());
195197
scanResults.add(new ScanResult(ConfigurationLocationResult.of(configurationLocation, PRESENT), module, problems));
196198
} else {
197199
throw new CheckStylePluginException("Could not create checker for location " + configurationLocation + ", see logs for details.");

src/main/java/org/infernus/idea/checkstyle/checker/ScannableFile.java

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,14 @@
55
import com.intellij.openapi.diagnostic.Logger;
66
import com.intellij.openapi.fileEditor.FileDocumentManager;
77
import com.intellij.openapi.module.Module;
8-
import com.intellij.openapi.project.Project;
98
import com.intellij.openapi.project.ProjectUtil;
109
import com.intellij.openapi.roots.ModuleRootManager;
1110
import com.intellij.openapi.util.ThrowableComputable;
1211
import com.intellij.openapi.vfs.LocalFileSystem;
1312
import com.intellij.openapi.vfs.VirtualFile;
1413
import com.intellij.psi.PsiFile;
1514
import com.intellij.psi.PsiJavaFile;
16-
import org.infernus.idea.checkstyle.config.PluginConfigurationManager;
15+
import org.infernus.idea.checkstyle.config.PluginConfiguration;
1716
import org.infernus.idea.checkstyle.model.ConfigurationLocation;
1817
import org.infernus.idea.checkstyle.util.TempDirProvider;
1918
import org.jetbrains.annotations.NotNull;
@@ -72,25 +71,21 @@ public ScannableFile(@NotNull final PsiFile psiFile, @Nullable final Module modu
7271
}
7372

7473
public static List<ScannableFile> createAndValidate(@NotNull final Collection<PsiFile> psiFiles,
75-
@NotNull final Project project,
7674
@Nullable final Module module,
77-
@Nullable final ConfigurationLocation overrideConfigLocation) {
75+
@Nullable final ConfigurationLocation overrideConfigLocation,
76+
@NotNull final PluginConfiguration pluginConfiguration) {
7877
ThrowableComputable<List<ScannableFile>, RuntimeException> action = () -> psiFiles.stream()
7978
.filter(currentFile -> PsiFileValidator.isScannable(
8079
currentFile,
8180
module,
82-
configurationManager(project).getCurrent(),
81+
pluginConfiguration,
8382
overrideConfigLocation))
8483
.map(currentFile -> ScannableFile.create(currentFile, module))
8584
.filter(Objects::nonNull)
8685
.collect(Collectors.toCollection(CopyOnWriteArrayList::new));
8786
return ReadAction.compute(action);
8887
}
8988

90-
private static PluginConfigurationManager configurationManager(final Project project) {
91-
return project.getService(PluginConfigurationManager.class);
92-
}
93-
9489
@Nullable
9590
private static ScannableFile create(@NotNull final PsiFile psiFile, @Nullable final Module module) {
9691
try {

0 commit comments

Comments
 (0)