Re: [PATCH] userdiff: add built-in pattern for CSS
Junio C Hamano <gitster@pobox.com> writes:
Show 14 quoted lines
> William Duclot <william.duclot@ensimag.grenoble-inp.fr> writes:
>
>> As the CSS pattern
>> does not deal with letters at all it seemed sensible to me to follow
>> the example of the HTML pattern, which use PATTERNS().
>
> Did you notice that HTML pattern has to do an [Hh] that would be
> unnecessary if it chose to use IPATTTERN()?
>
> You do not have to ask a person, but instead ask the history.
> IPATTERN() was added at 909a5494 (userdiff.c: add builtin fortran
> regex patterns, 2010-09-10) when adding fortran support. Anything
> that existed before, including HTML, did [A-Za-z] when they could
> have done [a-z] if IPATTERN() existed back then.
I hadn't noticed that the HTML pattern was older, indeed
Show 18 quoted lines
>>> - In our codebase, we format multi-line comments in a particular
>>> way, namely
>>>
>>> /*
>>> * A multi-line comment begins with slash asterisk
>>> * on its own line, and its closing asterisk slash
>>> * also is on its own line.
>>> */
>>
>> I take good note of that. I took example on the fortran pattern
>> comment, should I fix it too while I'm at it?
>
> Not "while you are at it".
>
> Making existing things better is welcome but such a change shouldn't
> be mixed with addition of new things. You can do it as a separate
> patch, probably as a preliminary clean-up before your change, if you
> want to.
OK !
Johannes Sixt <j6t@kdbg.org> writes:
Show 11 quoted lines
> Am 24.05.2016 um 16:25 schrieb William Duclot:
>> +PATTERNS("css",
>> + "^([^,{}]+)((,[^}]*\\{)|([ \t]*\\{))$",
>
> This hunk header pattern is a bit too restrictive for my taste. Find
> below a few more test cases that you should squash in. One case fails
> because only the first CSS selector is picked up, for which I do not
> see a reason.
>
> Another case fails because the opening brace is not on the line with
> the CSS selectors.Yes, it seems you're right !
Show 6 quoted lines
> I think what the hunk header pattern should do is:
>
> 1. reject lines containing a colon (because that are properties)
> 2. if a line begins with a name in column 1, pick the whole line
>
> See the cpp patterns: a pattern beginning with ! is a "reject" pattern.
That may be a good idea, I will look into that
Show 51 quoted lines
> diff --git a/t/t4018/css-brace-in-col-1 b/t/t4018/css-brace-in-col-1
> new file mode 100644
> index 0000000..7831577
> --- /dev/null
> +++ b/t/t4018/css-brace-in-col-1
> @@ -0,0 +1,5 @@
> +RIGHT label.control-label
> +{
> + margin-top: 10px!important;
> + border : 10px ChangeMe #C6C6C6;
> +}
> diff --git a/t/t4018/css-rule b/t/t4018/css-common
> similarity index 100%
> rename from t/t4018/css-rule
> rename to t/t4018/css-common
> diff --git a/t/t4018/css-long-selector-list b/t/t4018/css-long-selector-list
> new file mode 100644
> index 0000000..7ccd25d
> --- /dev/null
> +++ b/t/t4018/css-long-selector-list
> @@ -0,0 +1,6 @@
> +p.header,
> +label.control-label,
> +div ul#RIGHT {
> + margin-top: 10px!important;
> + border : 10px ChangeMe #C6C6C6;
> +}
> diff --git a/t/t4018/css-prop-sans-indent b/t/t4018/css-prop-sans-indent
> new file mode 100644
> index 0000000..a9e3c86
> --- /dev/null
> +++ b/t/t4018/css-prop-sans-indent
> @@ -0,0 +1,5 @@
> +RIGHT, label.control-label {
> +margin-top: 10px!important;
> +padding: 0;
> +border : 10px ChangeMe #C6C6C6;
> +}
> diff --git a/t/t4018/css-short-selector-list
> b/t/t4018/css-short-selector-list
> new file mode 100644
> index 0000000..6a0bdee
> --- /dev/null
> +++ b/t/t4018/css-short-selector-list
> @@ -0,0 +1,4 @@
> +label.control, div ul#RIGHT {
> + margin-top: 10px!important;
> + border : 10px ChangeMe #C6C6C6;
> +}
> --
> 2.9.0.rc0.40.gb3c1388Thanks for the test cases, I'll look into that as soon as I have time