@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 visitNode(Tree tree) { super.visitNode(tree); List<SyntaxToken> tokens = new ArrayList<>(); TypeOfText code = null; if (tree.is(Tree.Kind.LESS_VARIABLE)) { tokens.add(((LessVariableTree) tree).variable().value()); tokens.add(((LessVariableTree) tree).variablePrefix()); code = TypeOfText.CONSTANT; } for (SyntaxToken token : tokens) { highlight(token, code); } }
@Override public void visitNode(Tree tree) { super.visitNode(tree); List<SyntaxToken> tokens = new ArrayList<>(); TypeOfText code = null; if (tree.is(Tree.Kind.LESS_VARIABLE)) { tokens.add(((LessVariableTree) tree).variable().value()); tokens.add(((LessVariableTree) tree).variablePrefix()); code = TypeOfText.CONSTANT; } for (SyntaxToken token : tokens) { highlight(token, code); } }
@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 visitNode(Tree tree) { super.visitNode(tree); List<SyntaxToken> tokens = new ArrayList<>(); TypeOfText code = null; if (tree.is(Tree.Kind.SCSS_VARIABLE)) { tokens.add(((ScssVariableTree) tree).name().value()); tokens.add(((ScssVariableTree) tree).prefix()); code = TypeOfText.CONSTANT; } else if (tree.is(Tree.Kind.SCSS_DIRECTIVE)) { tokens.add(((ScssDirectiveTree) tree).at()); tokens.add(((ScssDirectiveTree) tree).name()); code = TypeOfText.ANNOTATION; } for (SyntaxToken token : tokens) { highlight(token, code); } }
@Override public void visitNode(Tree tree) { super.visitNode(tree); List<SyntaxToken> tokens = new ArrayList<>(); TypeOfText code = null; if (tree.is(Tree.Kind.SCSS_VARIABLE)) { tokens.add(((ScssVariableTree) tree).name().value()); tokens.add(((ScssVariableTree) tree).prefix()); code = TypeOfText.CONSTANT; } else if (tree.is(Tree.Kind.SCSS_DIRECTIVE)) { tokens.add(((ScssDirectiveTree) tree).at()); tokens.add(((ScssDirectiveTree) tree).name()); code = TypeOfText.ANNOTATION; } for (SyntaxToken token : tokens) { highlight(token, code); } }
tokens.add(((PropertyTree) tree).property().value()); code = TypeOfText.CONSTANT; tokens.add(((VariableTree) tree).variable().value()); tokens.add(((VariableTree) tree).variablePrefix()); code = TypeOfText.CONSTANT; tokens.add(((ClassSelectorTree) tree).className().value()); tokens.add(((ClassSelectorTree) tree).dot()); code = TypeOfText.KEYWORD_LIGHT; tokens.add(((IdSelectorTree) tree).identifier().value()); tokens.add(((IdSelectorTree) tree).hashSymbol()); code = TypeOfText.KEYWORD_LIGHT; tokens.add(((AtKeywordTree) tree).keyword().value()); tokens.add(((AtKeywordTree) tree).atSymbol()); code = TypeOfText.PREPROCESS_DIRECTIVE;
tokens.add(((PropertyTree) tree).property().value()); code = TypeOfText.CONSTANT; tokens.add(((VariableTree) tree).variable().value()); tokens.add(((VariableTree) tree).variablePrefix()); code = TypeOfText.CONSTANT; tokens.add(((ClassSelectorTree) tree).className().value()); tokens.add(((ClassSelectorTree) tree).dot()); code = TypeOfText.KEYWORD_LIGHT; tokens.add(((IdSelectorTree) tree).identifier().value()); tokens.add(((IdSelectorTree) tree).hashSymbol()); code = TypeOfText.KEYWORD_LIGHT; tokens.add(((AtKeywordTree) tree).keyword().value()); tokens.add(((AtKeywordTree) tree).atSymbol()); code = TypeOfText.PREPROCESS_DIRECTIVE;
@Override public void visitPseudoFunction(PseudoFunctionTree tree) { if (containsUpperCaseCharacter(tree.function().text())) { addIssue(tree.function().value(), "function", tree.function().text()); } super.visitPseudoFunction(tree); }
@Override public void visitPseudoFunction(PseudoFunctionTree tree) { if (containsUpperCaseCharacter(tree.function().text())) { addIssue(tree.function().value(), "function", tree.function().text()); } super.visitPseudoFunction(tree); }