aboutsummaryrefslogtreecommitdiffstats
path: root/sonar-css-plugin
diff options
context:
space:
mode:
authorElena Vilchik2019-06-14 10:01:23 +0200
committerTibor Blenessy2019-06-14 10:01:23 +0200
commiteb017c3b5e0b4652210fb7bcd0a68fe0c36b29cf (patch)
tree48fc01eeddd1ac38351e57d3ea7d7a4dcd2d1ef1 /sonar-css-plugin
parent479b21eb67bd2f5f7170cb4e14b19561ed59ddcf (diff)
downloadsonar-css-eb017c3b5e0b4652210fb7bcd0a68fe0c36b29cf.tar.bz2
Analyse CSS inside other language files (html, vue) (#183)
Diffstat (limited to 'sonar-css-plugin')
-rw-r--r--sonar-css-plugin/src/main/java/org/sonar/css/plugin/StylelintCommandProvider.java13
-rw-r--r--sonar-css-plugin/src/test/java/org/sonar/css/plugin/StylelintCommandProviderTest.java6
2 files changed, 15 insertions, 4 deletions
diff --git a/sonar-css-plugin/src/main/java/org/sonar/css/plugin/StylelintCommandProvider.java b/sonar-css-plugin/src/main/java/org/sonar/css/plugin/StylelintCommandProvider.java
index 26541bd..1f6d6b2 100644
--- a/sonar-css-plugin/src/main/java/org/sonar/css/plugin/StylelintCommandProvider.java
+++ b/sonar-css-plugin/src/main/java/org/sonar/css/plugin/StylelintCommandProvider.java
@@ -20,8 +20,11 @@
package org.sonar.css.plugin;
import java.io.File;
-import java.nio.file.Paths;
+import java.nio.file.Paths;import java.util.Arrays;
+import java.util.List;
import java.util.function.Consumer;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
import org.sonar.api.batch.ScannerSide;
import org.sonar.api.batch.sensor.SensorContext;
import org.sonarsource.nodejs.NodeCommand;
@@ -30,11 +33,17 @@ import org.sonarsource.nodejs.NodeCommand;
public class StylelintCommandProvider implements LinterCommandProvider {
private static final String CONFIG_PATH = "css-bundle/stylelintconfig.json";
+ private static final List<String> LANGUAGES_TO_ANALYZE = Arrays.asList("css", "html", "php", "javascript", "typescript");
@Override
public NodeCommand nodeCommand(File deployDestination, SensorContext context, Consumer<String> output, Consumer<String> error) {
String projectBaseDir = context.fileSystem().baseDir().getAbsolutePath();
- String[] suffixes = context.config().getStringArray(CssPlugin.FILE_SUFFIXES_KEY);
+
+ List<String> suffixes = LANGUAGES_TO_ANALYZE.stream()
+ .map(language -> context.config().getStringArray("sonar." + language + ".file.suffixes"))
+ .flatMap(Stream::of)
+ .collect(Collectors.toList());
+
String filesGlob = "**" + File.separator + "*{" + String.join(",", suffixes) + "}";
String filesToAnalyze = Paths.get(projectBaseDir, "TOREPLACE").toString();
filesToAnalyze = filesToAnalyze.replace("TOREPLACE", filesGlob);
diff --git a/sonar-css-plugin/src/test/java/org/sonar/css/plugin/StylelintCommandProviderTest.java b/sonar-css-plugin/src/test/java/org/sonar/css/plugin/StylelintCommandProviderTest.java
index 9251fe0..da0eb93 100644
--- a/sonar-css-plugin/src/test/java/org/sonar/css/plugin/StylelintCommandProviderTest.java
+++ b/sonar-css-plugin/src/test/java/org/sonar/css/plugin/StylelintCommandProviderTest.java
@@ -44,13 +44,15 @@ public class StylelintCommandProviderTest {
File deployDestination = new File("deploy_destination");
File baseDir = new File("src/test/resources").getAbsoluteFile();
SensorContextTester context = SensorContextTester.create(baseDir);
- context.settings().setProperty(CssPlugin.FILE_SUFFIXES_KEY, ".foo,.bar");
+ context.settings().setProperty(CssPlugin.FILE_SUFFIXES_KEY, ".foo,.bar")
+ .setProperty("sonar.javascript.file.suffixes", ".js")
+ .setProperty("sonar.java.file.suffixes", ".java");
Consumer<String> noop = a -> {};
NodeCommand nodeCommand = stylelintCommandProvider.nodeCommand(deployDestination, context, noop, noop);
assertThat(nodeCommand.toString()).endsWith(
String.join(" ",
new File(deployDestination, "css-bundle/node_modules/stylelint/bin/stylelint").getAbsolutePath(),
- baseDir.getAbsolutePath() + File.separator + "**" + File.separator + "*{.foo,.bar}",
+ baseDir.getAbsolutePath() + File.separator + "**" + File.separator + "*{.foo,.bar,.js}",
"--config",
new File(deployDestination, "css-bundle/stylelintconfig.json").getAbsolutePath(),
"-f",