Skip to content
  • William Duclot's avatar
    userdiff: add built-in pattern for CSS · 0719f3ee
    William Duclot authored and Junio C Hamano's avatar Junio C Hamano committed
    
    
    CSS is widely used, motivating it being included as a built-in pattern.
    
    It must be noted that the word_regex for CSS (i.e. the regex defining
    what is a word in the language) does not consider '.' and '#' characters
    (in CSS selectors) to be part of the word. This behavior is documented
    by the test t/t4018/css-rule.
    The logic behind this behavior is the following: identifiers in CSS
    selectors are identifiers in a HTML/XML document. Therefore, the '.'/'#'
    character are not part of the identifier, but an indicator of the nature
    of the identifier in HTML/XML (class or id). Diffing ".class1" and
    ".class2" must show that the class name is changed, but we still are
    selecting a class.
    
    Logic behind the "pattern" regex is:
        1. reject lines ending with a colon/semicolon (properties)
        2. if a line begins with a name in column 1, pick the whole line
    
    Credits to Johannes Sixt (j6t@kdbg.org) for the pattern regex and most
    of the tests.
    
    Signed-off-by: default avatarWilliam Duclot <william.duclot@ensimag.grenoble-inp.fr>
    Signed-off-by: default avatarMatthieu Moy <matthieu.moy@grenoble-inp.fr>
    Reviewed-by: default avatarJohannes Sixt <j6t@kdbg.org>
    Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
    0719f3ee