Search in sources :

Example 1 with DoubleRegexpMatcher

use of org.sonarsource.sonarlint.core.analysis.container.analysis.issue.ignore.scanner.IssueExclusionsLoader.DoubleRegexpMatcher in project sonarlint-core by SonarSource.

the class IssueExclusionsRegexpScannerTests method init.

@BeforeEach
void init() {
    MockitoAnnotations.initMocks(this);
    blockPatterns = Arrays.asList(new DoubleRegexpMatcher(Pattern.compile("// SONAR-OFF"), Pattern.compile("// SONAR-ON")), new DoubleRegexpMatcher(Pattern.compile("// FOO-OFF"), Pattern.compile("// FOO-ON")));
    allFilePatterns = Collections.singletonList(Pattern.compile("@SONAR-IGNORE-ALL"));
    javaFile = new SonarLintInputFile(new OnDiskTestClientInputFile(Paths.get("src/Foo.java"), "src/Foo.java", false, StandardCharsets.UTF_8), f -> mock(Metadata.class));
    regexpScanner = new IssueExclusionsRegexpScanner(javaFile, allFilePatterns, blockPatterns);
}
Also used : DoubleRegexpMatcher(org.sonarsource.sonarlint.core.analysis.container.analysis.issue.ignore.scanner.IssueExclusionsLoader.DoubleRegexpMatcher) SonarLintInputFile(org.sonarsource.sonarlint.core.analysis.container.analysis.filesystem.SonarLintInputFile) IntStream(java.util.stream.IntStream) BeforeEach(org.junit.jupiter.api.BeforeEach) FileMetadata(org.sonarsource.sonarlint.core.analysis.container.analysis.filesystem.FileMetadata) Metadata(org.sonarsource.sonarlint.core.analysis.container.analysis.filesystem.FileMetadata.Metadata) Arrays(java.util.Arrays) Files(java.nio.file.Files) Mock(org.mockito.Mock) UTF_8(java.nio.charset.StandardCharsets.UTF_8) URISyntaxException(java.net.URISyntaxException) IOException(java.io.IOException) IssueExclusionPatternInitializer(org.sonarsource.sonarlint.core.analysis.container.analysis.issue.ignore.pattern.IssueExclusionPatternInitializer) SonarLintInputFile(org.sonarsource.sonarlint.core.analysis.container.analysis.filesystem.SonarLintInputFile) StandardCharsets(java.nio.charset.StandardCharsets) Test(org.junit.jupiter.api.Test) MockitoAnnotations(org.mockito.MockitoAnnotations) List(java.util.List) Paths(java.nio.file.Paths) OnDiskTestClientInputFile(testutils.OnDiskTestClientInputFile) Pattern(java.util.regex.Pattern) DoubleRegexpMatcher(org.sonarsource.sonarlint.core.analysis.container.analysis.issue.ignore.scanner.IssueExclusionsLoader.DoubleRegexpMatcher) Path(java.nio.file.Path) Collections(java.util.Collections) AssertionsForClassTypes.assertThat(org.assertj.core.api.AssertionsForClassTypes.assertThat) Mockito.mock(org.mockito.Mockito.mock) OnDiskTestClientInputFile(testutils.OnDiskTestClientInputFile) BeforeEach(org.junit.jupiter.api.BeforeEach)

Example 2 with DoubleRegexpMatcher

use of org.sonarsource.sonarlint.core.analysis.container.analysis.issue.ignore.scanner.IssueExclusionsLoader.DoubleRegexpMatcher in project sonarlint-core by SonarSource.

the class IssueExclusionsRegexpScanner method checkDoubleRegexps.

private void checkDoubleRegexps(String line, int lineIndex) {
    if (currentMatcher == null) {
        for (DoubleRegexpMatcher matcher : blockMatchers) {
            if (matcher.matchesFirstPattern(line)) {
                startExclusion(lineIndex);
                currentMatcher = matcher;
                break;
            }
        }
    } else {
        if (currentMatcher.matchesSecondPattern(line)) {
            endExclusion(lineIndex);
            currentMatcher = null;
        }
    }
}
Also used : DoubleRegexpMatcher(org.sonarsource.sonarlint.core.analysis.container.analysis.issue.ignore.scanner.IssueExclusionsLoader.DoubleRegexpMatcher)

Aggregations

DoubleRegexpMatcher (org.sonarsource.sonarlint.core.analysis.container.analysis.issue.ignore.scanner.IssueExclusionsLoader.DoubleRegexpMatcher)2 IOException (java.io.IOException)1 URISyntaxException (java.net.URISyntaxException)1 StandardCharsets (java.nio.charset.StandardCharsets)1 UTF_8 (java.nio.charset.StandardCharsets.UTF_8)1 Files (java.nio.file.Files)1 Path (java.nio.file.Path)1 Paths (java.nio.file.Paths)1 Arrays (java.util.Arrays)1 Collections (java.util.Collections)1 List (java.util.List)1 Pattern (java.util.regex.Pattern)1 IntStream (java.util.stream.IntStream)1 AssertionsForClassTypes.assertThat (org.assertj.core.api.AssertionsForClassTypes.assertThat)1 BeforeEach (org.junit.jupiter.api.BeforeEach)1 Test (org.junit.jupiter.api.Test)1 Mock (org.mockito.Mock)1 Mockito.mock (org.mockito.Mockito.mock)1 MockitoAnnotations (org.mockito.MockitoAnnotations)1 FileMetadata (org.sonarsource.sonarlint.core.analysis.container.analysis.filesystem.FileMetadata)1