From: "Sohom Datta via GitGitGadget" <gitgitgadget@gmail.com>
To: git@vger.kernel.org
Cc: Sohom Datta <sohom.datta@learner.manipal.edu>,
Sohom <sohom.datta@learner.manipal.edu>
Subject: [PATCH] userdiff: expand detected chunk headers for css
Date: Wed, 07 Oct 2020 09:25:26 +0000 [thread overview]
Message-ID: <pull.866.git.git.1602062726316.gitgitgadget@gmail.com> (raw)
From: Sohom <sohom.datta@learner.manipal.edu>
Added support for classes, ids, :root selectors
as well as @-based statements (ex: @page, @media
and @keyframes ).
Also added tests for the same.
Signed-off-by: Sohom Datta <sohom.datta@learner.manipal.edu>
---
userdiff: Expand detected chunk headers for css
Currently, 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.
I've modified the chunk header CSS regex so that it is able to detect
the statements above and add them to the chunk header.
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-866%2Fsohomdatta1%2Fcss-userdiff-fix-test-v1
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-866/sohomdatta1/css-userdiff-fix-test-v1
Pull-Request: https://github.com/git/git/pull/866
t/t4018/css-attribute-value-selector | 4 ++++
t/t4018/css-block-level-@-statements | 10 ++++++++++
t/t4018/css-class-selector | 4 ++++
t/t4018/css-id-selector | 4 ++++
t/t4018/css-root-selector | 4 ++++
userdiff.c | 2 +-
6 files changed, 27 insertions(+), 1 deletion(-)
create mode 100644 t/t4018/css-attribute-value-selector
create mode 100644 t/t4018/css-block-level-@-statements
create mode 100644 t/t4018/css-class-selector
create mode 100644 t/t4018/css-id-selector
create mode 100644 t/t4018/css-root-selector
diff --git a/t/t4018/css-attribute-value-selector b/t/t4018/css-attribute-value-selector
new file mode 100644
index 0000000000..918256b20c
--- /dev/null
+++ b/t/t4018/css-attribute-value-selector
@@ -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
index 0000000000..d6755f2f3d
--- /dev/null
+++ b/t/t4018/css-block-level-@-statements
@@ -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
index 0000000000..f790a0062f
--- /dev/null
+++ b/t/t4018/css-class-selector
@@ -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
index 0000000000..17c5111052
--- /dev/null
+++ b/t/t4018/css-id-selector
@@ -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
index 0000000000..22b958e369
--- /dev/null
+++ b/t/t4018/css-root-selector
@@ -0,0 +1,4 @@
+:RIGHT {
+ background : #000;
+ border : 10px ChangeMe #C6C6C6;
+}
diff --git a/userdiff.c b/userdiff.c
index fde02f225b..49c9771891 100644
--- a/userdiff.c
+++ b/userdiff.c
@@ -200,7 +200,7 @@ PATTERNS("csharp",
"|[-+*/<>%&^|=!]=|--|\\+\\+|<<=?|>>=?|&&|\\|\\||::|->"),
IPATTERN("css",
"![:;][[:space:]]*$\n"
- "^[_a-z0-9].*$",
+ "^(([_a-z0-9]|[:[@.#][_a-z0-9]).*)$",
/* -- */
/*
* This regex comes from W3C CSS specs. Should theoretically also
base-commit: d98273ba77e1ab9ec755576bc86c716a97bf59d7
--
gitgitgadget
next reply other threads:[~2020-10-07 9:25 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-10-07 9:25 Sohom Datta via GitGitGadget [this message]
2020-10-07 16:51 ` [PATCH] userdiff: expand detected chunk headers for css Johannes Sixt
2020-10-07 17:09 ` Junio C Hamano
2020-10-08 8:36 ` [PATCH v2] " Sohom Datta via GitGitGadget
2020-10-08 17:23 ` Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=pull.866.git.git.1602062726316.gitgitgadget@gmail.com \
--to=gitgitgadget@gmail.com \
--cc=git@vger.kernel.org \
--cc=sohom.datta@learner.manipal.edu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.