userdiff: expand detected chunk headers for css

The regex used for the CSS builtin diff driver in git is only
able to show chunk headers for lines that start with a number,
a letter or an underscore.

However, the regex fails to detect classes (starts with a .), ids
(starts with a #), :root and attribute-value based selectors (for
example [class*="col-"]), as well as @based block-level statements
like @page,@keyframes and @media since all of them, start with a
special character.

Allow the selectors and block level statements to begin with these
special characters.

Signed-off-by: Sohom Datta <sohom.datta@learner.manipal.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Sohom Datta 2020-10-08 08:36:04 +00:00 committed by Junio C Hamano
parent d98273ba77
commit ff01513f45
6 changed files with 27 additions and 1 deletions

View File

@ -0,0 +1,4 @@
[class*="RIGHT"] {
background : #000;
border : 10px ChangeMe #C6C6C6;
}

View File

@ -0,0 +1,10 @@
@keyframes RIGHT {
from {
background : #000;
border : 10px ChangeMe #C6C6C6;
}
to {
background : #fff;
border : 10px solid #C6C6C6;
}
}

View File

@ -0,0 +1,4 @@
.RIGHT {
background : #000;
border : 10px ChangeMe #C6C6C6;
}

4
t/t4018/css-id-selector Normal file
View File

@ -0,0 +1,4 @@
#RIGHT {
background : #000;
border : 10px ChangeMe #C6C6C6;
}

View File

@ -0,0 +1,4 @@
:RIGHT {
background : #000;
border : 10px ChangeMe #C6C6C6;
}

View File

@ -200,7 +200,7 @@ PATTERNS("csharp",
"|[-+*/<>%&^|=!]=|--|\\+\\+|<<=?|>>=?|&&|\\|\\||::|->"),
IPATTERN("css",
"![:;][[:space:]]*$\n"
"^[_a-z0-9].*$",
"^[:[@.#]?[_a-z0-9].*$",
/* -- */
/*
* This regex comes from W3C CSS specs. Should theoretically also