2017-06-07 2 views
2

Ich habe diese Linter Regel, die für jede Variable eine Verwendung von !default ist verifiziert, dass: VariablenSCSS Benutzerdefinierte Linter nicht in Mixins noch Funktionen

module SCSSLint 
    # Reports the use of !default in properties. 
    class Linter::DefaultRule < Linter 
    include LinterRegistry 

    def visit_variable(node) 
     return if source_from_range(node.source_range).include?('!default') 

     add_lint(node, '!default should be used') 
    end 
    end 
end 

Und ich will es nur globale Variablen überprüfen, und nicht in einem function oder einem mixin.

Wie kann ich verhindern, dass nicht global definierte Variablen ignoriert werden?

Antwort

0

Dies ist eine tragfähige Lösung:

module SCSSLint 
    # Reports the use of !default at the end of variable declarations. 
    class Linter::DefaultRule < Linter 
    include LinterRegistry 

    def visit_function(node) 
     return true 
    end 

    def visit_variable(node) 
     return if source_from_range(node.source_range).include?('!default') 

     return unless node_ancestor(node, 2).nil? 

     add_lint(node, '!default should be used') 
    end 
    end 
end 
Verwandte Themen