private void checkModifiers(List<SyntaxToken> modifiers) { if (modifiers.size() > 1) { int i = 0; for (SyntaxToken modifier : modifiers) { String normalizedModifier = modifier.text().toLowerCase(Locale.ENGLISH); while (i < EXPECTED_ORDER.length && !EXPECTED_ORDER[i].equals(normalizedModifier)) { i++; } } if (i == EXPECTED_ORDER.length) { context().newIssue(this, MESSAGE).tree(modifiers.get(0)); } } }
@Override public void visitToken(SyntaxToken token) { if (token.is(Kind.INLINE_HTML_TOKEN)) { inlineHTMLCounter++; isOnlyClosingTag = CheckUtils.isClosingTag(token); lastInlineHTMLToken = token; } }
/** * Check that there is exactly one space between a control structure keyword and a opening * parenthesis or curly brace. */ private void checkSpaceBetweenKeywordAndNextNode(SyntaxToken keyword, SyntaxToken nextToken) { if (TokenUtils.isType(nextToken, PHPPunctuator.LCURLYBRACE, PHPPunctuator.LPARENTHESIS) && TokenUtils.isOnSameLine(keyword, nextToken)) { int nbSpace = TokenUtils.getNbSpaceBetween(keyword, nextToken); if (nbSpace != 1) { String endMessage = String.format( CONTROL_STRUCTURES_KEYWORD_MESSAGE, keyword.text(), TokenUtils.isType(nextToken, PHPPunctuator.LPARENTHESIS) ? "parenthesis." : "curly brace."); check.reportIssue(TokenUtils.buildIssueMsg(nbSpace, endMessage), keyword); } } }
@Override public void visitToken(SyntaxToken token) { for (SyntaxTrivia trivia : token.trivias()) { String[] commentLines = getContents(trivia.text()).split("(\r)?\n|\r", -1); int line = trivia.line(); for (String commentLine : commentLines) { if (commentLine.contains("NOSONAR")) { noSonarLines.add(line); } else if (!isBlank(commentLine)) { comments.add(line); } line++; } } super.visitToken(token); }
private <T extends Tree> void check( List<T> statements, @Nullable SyntaxToken lastToken, Tree issueTree) { if (statements.isEmpty() && lastToken != null && lastToken.trivias().isEmpty()) { context().newIssue(this, MESSAGE).tree(issueTree); } }