@Override public void visitValue(ValueTree tree) { tree.valueElementsOfType(IdentifierTree.class) .stream() .filter(i -> i.isVendorPrefixed() && !i.name().matches(identifiersToExclude)) .forEach(i -> addPreciseIssue(i, "Remove this usage of the experimental \"" + i.text() + "\" identifier.")); super.visitValue(tree); }
private boolean isPotentialGenericFamily(@Nullable Tree tree) { if (tree == null) { return false; } if (!tree.is(Tree.Kind.IDENTIFIER, Tree.Kind.LESS_VARIABLE, Tree.Kind.SCSS_VARIABLE, Tree.Kind.VARIABLE, Tree.Kind.FUNCTION)) { return false; } if (tree.is(Tree.Kind.IDENTIFIER)) { IdentifierTree identifier = (IdentifierTree) tree; if (!identifier.isInterpolated() && !FontFamily.GENERIC_FAMILY_NAMES.contains(identifier.text().toLowerCase()) && !StandardProperty.COMMON_VALUES.contains(identifier.text().toLowerCase())) { return false; } } return true; }
private static boolean isScssElement(Tree tree) { return tree instanceof ScssVariableTree || (tree instanceof IdentifierTree && ((IdentifierTree) tree).isScssInterpolated()) || tree instanceof FunctionTree || tree instanceof ScssOperatorTree; }
@Override public boolean isValid(Tree tree) { if (tree instanceof IdentifierTree) { if (allowedValues.isEmpty() || ((IdentifierTree) tree).isVendorPrefixed()) { return true; } return allowedValues.contains(((IdentifierTree) tree).text().toLowerCase()); } return false; }
public PropertyTreeImpl(IdentifierTree property, @Nullable SyntaxToken lessMerge) { this.property = property; this.lessMerge = lessMerge; setProperty(property.text()); }
@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 visitPseudoFunction(PseudoFunctionTree tree) { if (tree.standardFunction() instanceof UnknownPseudoFunction && tree.function().isValidable()) { createIssue(tree.function(), tree.standardFunction().getName()); } super.visitPseudoFunction(tree); }
@Nullable private PropertyTree firstUnsortedProperty(List<PropertyTree> propertyTrees) { for (int i = 0; i < propertyTrees.size() - 1; i++) { if (!propertyTrees.get(i).property().isInterpolated() && !propertyTrees.get(i + 1).property().isInterpolated() && propertyTrees.get(i).standardProperty().getName().compareTo(propertyTrees.get(i + 1).standardProperty().getName()) > 0) { return propertyTrees.get(i + 1); } } return null; }
private static boolean isLessElement(Tree tree) { return tree instanceof LessVariableTree || (tree instanceof IdentifierTree && ((IdentifierTree) tree).isLessInterpolated()) || tree instanceof LessEscapingTree || (tree instanceof FunctionTree && ((FunctionTree) tree).standardFunction().isLess()) || tree instanceof LessOperatorTree; }
public Symbol symbol() { return identifierTree.symbol(); }
private void addIssue(IdentifierTree classNameTree) { addPreciseIssue( classNameTree, MessageFormat.format("Rename class selector \"{0}\" to match the regular expression: {1}", classNameTree.text(), format)); }
@Override public boolean isValid(Tree tree) { if (tree instanceof IdentifierTree) { if (allowedValues.isEmpty() || ((IdentifierTree) tree).isVendorPrefixed()) { return true; } return allowedValues.contains(((IdentifierTree) tree).text().toLowerCase()); } return false; }
@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 visitPseudoIdentifier(PseudoIdentifierTree tree) { if (tree.standardPseudoIdentifier() instanceof UnknownPseudoIdentifier && tree.identifier().isValidable()) { createIssue(tree.identifier(), tree.standardPseudoIdentifier().getName()); } super.visitPseudoIdentifier(tree); }
@Nullable private PropertyTree firstUnsortedProperty(List<PropertyTree> propertyTrees) { for (int i = 0; i < propertyTrees.size() - 1; i++) { if (!propertyTrees.get(i).property().isInterpolated() && !propertyTrees.get(i + 1).property().isInterpolated() && propertyTrees.get(i).standardProperty().getName().compareTo(propertyTrees.get(i + 1).standardProperty().getName()) > 0) { return propertyTrees.get(i + 1); } } return null; }
private static boolean isLessElement(Tree tree) { return tree instanceof LessVariableTree || (tree instanceof IdentifierTree && ((IdentifierTree) tree).isLessInterpolated()) || tree instanceof LessEscapingTree || (tree instanceof FunctionTree && ((FunctionTree) tree).standardFunction().isLess()) || tree instanceof LessOperatorTree; }
public Symbol symbol() { return identifierTree.symbol(); }
private boolean isValidTargetName(Tree valueElement) { if (valueElement instanceof IdentifierTree) { String identifier = ((IdentifierTree) valueElement).text(); return "current".equals(identifier) || "root".equals(identifier); } else if (valueElement instanceof StringTree) { String value = ((StringTree) valueElement).actualText(); return !value.startsWith("_"); } else { return false; } }