use of org.sonarsource.sonarlint.core.StandaloneSonarLintEngineImpl in project sonarlint-core by SonarSource.
the class Main method main.
public static void main(String[] args) throws MalformedURLException {
String version = args[0];
List<Path> pluginPaths = new ArrayList<>();
for (int i = 1; i < args.length; i++) {
pluginPaths.add(Paths.get(args[i]));
}
StandaloneGlobalConfiguration.Builder builder = StandaloneGlobalConfiguration.builder().setLogOutput(new LogOutput() {
@Override
public void log(String formattedMessage, Level level) {
// Ignore
}
});
for (Path path : pluginPaths) {
builder.addPlugin(path.toUri().toURL());
}
StandaloneSonarLintEngineImpl client = new StandaloneSonarLintEngineImpl(builder.build());
client.start();
Table<String, String, RuleDetails> rulesByKeyAndLanguage = TreeBasedTable.create();
for (String ruleKeyStr : ((StandaloneGlobalContainer) client.getGlobalContainer()).getActiveRuleKeys()) {
RuleDetails ruleDetails = client.getRuleDetails(ruleKeyStr);
RuleKey ruleKey = RuleKey.parse(ruleKeyStr);
rulesByKeyAndLanguage.put(ruleKey.rule(), ruleDetails.getLanguage(), ruleDetails);
}
try {
System.out.print("{");
System.out.print("\"version\": \"");
System.out.print(version);
System.out.print("\",");
System.out.print("\"rules\": [");
boolean first = true;
for (String ruleKey : rulesByKeyAndLanguage.rowKeySet()) {
if (!first) {
System.out.print(",");
}
first = false;
System.out.print("{");
System.out.print("\"key\": \"");
System.out.print(ruleKey);
System.out.print("\",");
System.out.print("\"title\": \"");
System.out.print(escapeJson(rulesByKeyAndLanguage.row(ruleKey).values().iterator().next().getName()));
System.out.print("\",");
Set<String> mergedTags = new HashSet<>();
for (RuleDetails rule : rulesByKeyAndLanguage.row(ruleKey).values()) {
mergedTags.addAll(Arrays.asList(rule.getTags()));
}
writeTags(mergedTags);
System.out.print(",");
System.out.print("\"implementations\": [");
boolean firstLang = true;
for (Map.Entry<String, RuleDetails> detailPerLanguage : rulesByKeyAndLanguage.row(ruleKey).entrySet()) {
if (!firstLang) {
System.out.print(",");
}
firstLang = false;
RuleDetails ruleDetails = detailPerLanguage.getValue();
System.out.print("{");
System.out.print("\"key\": \"");
System.out.print(ruleDetails.getKey());
System.out.print("\",");
System.out.print("\"language\": \"");
System.out.print(languageLabel(detailPerLanguage.getKey()));
System.out.print("\",");
System.out.print("\"title\": \"");
System.out.print(escapeJson(ruleDetails.getName()));
System.out.print("\",");
System.out.print("\"description\": \"");
System.out.print(escapeJson(ruleDetails.getHtmlDescription()));
System.out.print("\",");
System.out.print("\"severity\": \"");
System.out.print(StringUtils.capitalize(ruleDetails.getSeverity().toLowerCase()));
System.out.print("\",");
String[] tags = ruleDetails.getTags();
writeTags(Arrays.asList(tags));
System.out.print("}");
}
System.out.print("]");
System.out.print("}");
}
System.out.print("]");
System.out.print("}");
} finally {
client.stop();
}
}
use of org.sonarsource.sonarlint.core.StandaloneSonarLintEngineImpl in project sonarlint-core by SonarSource.
the class StandaloneSonarLintImpl method start.
private void start() {
Builder builder = StandaloneGlobalConfiguration.builder();
for (URL pluginPath : analyzers) {
builder.addPlugin(pluginPath);
}
builder.setLogOutput(logOutput);
builder.setSonarLintUserHome(Utils.getStandaloneHome());
engine = new StandaloneSonarLintEngineImpl(builder.build());
}
use of org.sonarsource.sonarlint.core.StandaloneSonarLintEngineImpl in project sonarlint-core by SonarSource.
the class LogMediumTest method prepare.
@Before
public void prepare() throws IOException {
logs = Multimaps.synchronizedListMultimap(LinkedListMultimap.create());
config = StandaloneGlobalConfiguration.builder().addPlugin(PluginLocator.getJavaScriptPluginUrl()).setLogOutput(createLogOutput(logs)).build();
sonarlint = new StandaloneSonarLintEngineImpl(config);
baseDir = temp.newFolder();
}
use of org.sonarsource.sonarlint.core.StandaloneSonarLintEngineImpl in project sonar-java by SonarSource.
the class SonarLintTest method prepare.
@BeforeClass
public static void prepare() throws Exception {
StandaloneGlobalConfiguration config = StandaloneGlobalConfiguration.builder().addPlugin(JavaTestSuite.JAVA_PLUGIN_LOCATION.getFile().toURI().toURL()).setSonarLintUserHome(temp.newFolder().toPath()).setLogOutput((formattedMessage, level) -> {
/* Don't pollute logs*/
}).build();
sonarlintEngine = new StandaloneSonarLintEngineImpl(config);
baseDir = temp.newFolder();
}
use of org.sonarsource.sonarlint.core.StandaloneSonarLintEngineImpl in project sonarlint-intellij by SonarSource.
the class StandaloneTest method prepare.
@BeforeClass
public static void prepare() throws Exception {
StandaloneGlobalConfiguration config = StandaloneGlobalConfiguration.builder().addPlugins(getPlugins(PLUGINS_FOLDER).toArray(new URL[0])).setSonarLintUserHome(temp.newFolder("sonarlint").toPath()).setLogOutput((msg, level) -> System.out.println("[" + level + "]: " + msg)).build();
sonarlintEngine = new StandaloneSonarLintEngineImpl(config);
baseDir = temp.newFolder();
}
Aggregations