public int startLineOffset() { return firstToken.column(); }
public int startLineOffset() { return firstToken.column(); }
private boolean isFirst(SyntaxToken atSymbol) { return atSymbol.line() == 1 && atSymbol.column() == 0; }
private boolean isFirst(SyntaxToken atSymbol) { return atSymbol.line() == 1 && atSymbol.column() == 0; }
private int nbWhitespacesBetween(Tree tree1, Tree tree2) { int endColumnTree1; if (tree1 instanceof TreeImpl) { endColumnTree1 = ((TreeImpl) tree1).getLastToken().endColumn(); } else { endColumnTree1 = ((SyntaxToken) tree1).endColumn(); } int startColumnTree2; if (tree2 instanceof TreeImpl) { startColumnTree2 = ((TreeImpl) tree2).getFirstToken().column(); } else { startColumnTree2 = ((SyntaxToken) tree2).column(); } return startColumnTree2 - endColumnTree1; }
private int nbWhitespacesBetween(Tree tree1, Tree tree2) { int endColumnTree1; if (tree1 instanceof TreeImpl) { endColumnTree1 = ((TreeImpl) tree1).getLastToken().endColumn(); } else { endColumnTree1 = ((SyntaxToken) tree1).endColumn(); } int startColumnTree2; if (tree2 instanceof TreeImpl) { startColumnTree2 = ((TreeImpl) tree2).getFirstToken().column(); } else { startColumnTree2 = ((SyntaxToken) tree2).column(); } return startColumnTree2 - endColumnTree1; }
@Override public void visitStyleSheet(StyleSheetTree tree) { Comparator<Usage> byLine = Comparator.comparing(u -> u.identifierTree().value().line()); Comparator<Usage> byColumn = Comparator.comparing(u -> u.identifierTree().value().column()); for (Scope scope : getContext().getSymbolModel().getScopes()) { for (Symbol symbol : scope.getSymbols(Symbol.Kind.LESS_VARIABLE)) { List<Usage> usages = symbol.usages() .stream() .filter(u -> u.is(Usage.Kind.DECLARATION)) .sorted(byLine.thenComparing(byColumn)) .collect(Collectors.toList()); if (usages.size() > 1) { createIssue(usages); } } } }
@Override public void visitStyleSheet(StyleSheetTree tree) { Comparator<Usage> byLine = Comparator.comparing(u -> u.identifierTree().value().line()); Comparator<Usage> byColumn = Comparator.comparing(u -> u.identifierTree().value().column()); for (Scope scope : getContext().getSymbolModel().getScopes()) { for (Symbol symbol : scope.getSymbols(Symbol.Kind.LESS_VARIABLE)) { List<Usage> usages = symbol.usages() .stream() .filter(u -> u.is(Usage.Kind.DECLARATION)) .sorted(byLine.thenComparing(byColumn)) .collect(Collectors.toList()); if (usages.size() > 1) { createIssue(usages); } } } }
protected void highlight(SyntaxToken token, TypeOfText type) { highlighting.highlight(token.line(), token.column(), token.endLine(), token.endColumn(), type); }
protected void highlight(SyntaxToken token, TypeOfText type) { highlighting.highlight(token.line(), token.column(), token.endLine(), token.endColumn(), type); }
@Override public void visitImportant(ImportantFlagTree tree) { if (tree.exclamationMark().endColumn() != tree.importantKeyword().column()) { addPreciseIssue(tree, "Remove the whitespaces between \"!\" and \"important\"."); } super.visitImportant(tree); }
@Override public void visitImportant(ImportantFlagTree tree) { if (tree.exclamationMark().endColumn() != tree.importantKeyword().column()) { addPreciseIssue(tree, "Remove the whitespaces between \"!\" and \"important\"."); } super.visitImportant(tree); }
@Override public void visitNode(Tree tree) { if (((InternalSyntaxToken) tree).isEOF()) { return; } if (((InternalSyntaxToken) tree).isBOM()) { return; } SyntaxToken token = (SyntaxToken) tree; TextRange range = inputFile.newRange(token.line(), token.column(), token.endLine(), token.endColumn()); cpdTokens.addToken(range, token.text()); }
@Override public void visitNode(Tree tree) { if (((InternalSyntaxToken) tree).isEOF()) { return; } if (((InternalSyntaxToken) tree).isBOM()) { return; } SyntaxToken token = (SyntaxToken) tree; TextRange range = inputFile.newRange(token.line(), token.column(), token.endLine(), token.endColumn()); cpdTokens.addToken(range, token.text()); }