]> git.ipfire.org Git - thirdparty/git.git/commitdiff
userdiff: expand detected chunk headers for css
authorSohom Datta <sohom.datta@learner.manipal.edu>
Thu, 8 Oct 2020 08:36:04 +0000 (08:36 +0000)
committerJunio C Hamano <gitster@pobox.com>
Thu, 8 Oct 2020 17:21:11 +0000 (10:21 -0700)
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>
t/t4018/css-attribute-value-selector [new file with mode: 0644]
t/t4018/css-block-level-@-statements [new file with mode: 0644]
t/t4018/css-class-selector [new file with mode: 0644]
t/t4018/css-id-selector [new file with mode: 0644]
t/t4018/css-root-selector [new file with mode: 0644]
userdiff.c

diff --git a/t/t4018/css-attribute-value-selector b/t/t4018/css-attribute-value-selector
new file mode 100644 (file)
index 0000000..918256b
--- /dev/null
@@ -0,0 +1,4 @@
+[class*="RIGHT"] {
+    background : #000;
+    border : 10px ChangeMe #C6C6C6;
+}
diff --git a/t/t4018/css-block-level-@-statements b/t/t4018/css-block-level-@-statements
new file mode 100644 (file)
index 0000000..d6755f2
--- /dev/null
@@ -0,0 +1,10 @@
+@keyframes RIGHT {
+    from {
+        background : #000;
+        border : 10px ChangeMe #C6C6C6;
+    }
+    to {
+        background : #fff;
+        border : 10px solid #C6C6C6;
+    }
+}
diff --git a/t/t4018/css-class-selector b/t/t4018/css-class-selector
new file mode 100644 (file)
index 0000000..f790a00
--- /dev/null
@@ -0,0 +1,4 @@
+.RIGHT {
+    background : #000;
+    border : 10px ChangeMe #C6C6C6;
+}
diff --git a/t/t4018/css-id-selector b/t/t4018/css-id-selector
new file mode 100644 (file)
index 0000000..17c5111
--- /dev/null
@@ -0,0 +1,4 @@
+#RIGHT {
+    background : #000;
+    border : 10px ChangeMe #C6C6C6;
+}
diff --git a/t/t4018/css-root-selector b/t/t4018/css-root-selector
new file mode 100644 (file)
index 0000000..22b958e
--- /dev/null
@@ -0,0 +1,4 @@
+:RIGHT {
+    background : #000;
+    border : 10px ChangeMe #C6C6C6;
+}
index fde02f225b2b9ed17a8246913c3bddfa6483c98b..f6a4b0fb2e26916df383dbb74167b3f41b034bc9 100644 (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