* [PATCH] Improve diff pattern for PHP files
@ 2020-10-06 10:37 Javier Spagnoletti via GitGitGadget
2020-10-06 18:27 ` Johannes Sixt
2020-10-07 3:38 ` [PATCH v2] " Javier Spagnoletti via GitGitGadget
0 siblings, 2 replies; 7+ messages in thread
From: Javier Spagnoletti via GitGitGadget @ 2020-10-06 10:37 UTC (permalink / raw)
To: git; +Cc: Javier Spagnoletti, Javier Spagnoletti
From: Javier Spagnoletti <phansys@gmail.com>
Improve the output diff readability for php files by taking into account some missing function modifiers.
Signed-off-by: Javier Spagnoletti <phansys@gmail.com>
---
Improve diff pattern for PHP files
Improve the output diff readability for php files by taking into account
some missing function modifiers.
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-864%2Fphansys%2Fuserdiff_php-v1
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-864/phansys/userdiff_php-v1
Pull-Request: https://github.com/git/git/pull/864
userdiff.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/userdiff.c b/userdiff.c
index 1df884ef0b..a99d84a7e3 100644
--- a/userdiff.c
+++ b/userdiff.c
@@ -143,7 +143,7 @@ PATTERNS("perl",
"|=~|!~"
"|<<|<>|<=>|>>"),
PATTERNS("php",
- "^[\t ]*(((public|protected|private|static)[\t ]+)*function.*)$\n"
+ "^[\t ]*(((public|protected|private|static|abstract|final)[\t ]+)*function.*)$\n"
"^[\t ]*((((final|abstract)[\t ]+)?class|interface|trait).*)$",
/* -- */
"[a-zA-Z_][a-zA-Z0-9_]*"
base-commit: 47ae905ffb98cc4d4fd90083da6bc8dab55d9ecc
--
gitgitgadget
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH] Improve diff pattern for PHP files
2020-10-06 10:37 [PATCH] Improve diff pattern for PHP files Javier Spagnoletti via GitGitGadget
@ 2020-10-06 18:27 ` Johannes Sixt
2020-10-06 18:55 ` Junio C Hamano
2020-10-07 3:38 ` [PATCH v2] " Javier Spagnoletti via GitGitGadget
1 sibling, 1 reply; 7+ messages in thread
From: Johannes Sixt @ 2020-10-06 18:27 UTC (permalink / raw)
To: Javier Spagnoletti via GitGitGadget; +Cc: git, Javier Spagnoletti
Please choose a commit summary line of the form "area: summary", for
example:
userdiff: PHP: catch "abstract" and "final" functions
Am 06.10.20 um 12:37 schrieb Javier Spagnoletti via GitGitGadget:
> From: Javier Spagnoletti <phansys@gmail.com>
>
> Improve the output diff readability for php files by taking into account some missing function modifiers.
"Improve" is a noise word and need not be mentioned; a non-improvement
would not be accepted. Also, wrap long lines to at most 72 characters.
Perhaps:
PHP permits functions to be defined like
public final function foo() { }
protected abstract function bar() { }
but our hunk header pattern does not recognize these decorations.
Add "final" and "abstract" to the list of function modifiers.
I am not a PHP expert, so I cannot tell whether what I have written
above makes sense.
>
> Signed-off-by: Javier Spagnoletti <phansys@gmail.com>
> ---
> Improve diff pattern for PHP files
>
> Improve the output diff readability for php files by taking into account
> some missing function modifiers.
>
> Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-864%2Fphansys%2Fuserdiff_php-v1
> Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-864/phansys/userdiff_php-v1
> Pull-Request: https://github.com/git/git/pull/864
>
> userdiff.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/userdiff.c b/userdiff.c
> index 1df884ef0b..a99d84a7e3 100644
> --- a/userdiff.c
> +++ b/userdiff.c
> @@ -143,7 +143,7 @@ PATTERNS("perl",
> "|=~|!~"
> "|<<|<>|<=>|>>"),
> PATTERNS("php",
> - "^[\t ]*(((public|protected|private|static)[\t ]+)*function.*)$\n"
> + "^[\t ]*(((public|protected|private|static|abstract|final)[\t ]+)*function.*)$\n"
> "^[\t ]*((((final|abstract)[\t ]+)?class|interface|trait).*)$",
> /* -- */
> "[a-zA-Z_][a-zA-Z0-9_]*"
It would be great if you could add test cases to t/4018/ that
demonstrate how these new keywords are handled.
-- Hannes
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] Improve diff pattern for PHP files
2020-10-06 18:27 ` Johannes Sixt
@ 2020-10-06 18:55 ` Junio C Hamano
0 siblings, 0 replies; 7+ messages in thread
From: Junio C Hamano @ 2020-10-06 18:55 UTC (permalink / raw)
To: Johannes Sixt
Cc: Javier Spagnoletti via GitGitGadget, git, Javier Spagnoletti
Johannes Sixt <j6t@kdbg.org> writes:
> Please choose a commit summary line of the form "area: summary", for
> example:
>
> userdiff: PHP: catch "abstract" and "final" functions
>
> Am 06.10.20 um 12:37 schrieb Javier Spagnoletti via GitGitGadget:
>> From: Javier Spagnoletti <phansys@gmail.com>
>>
>> Improve the output diff readability for php files by taking into account some missing function modifiers.
>
> "Improve" is a noise word and need not be mentioned; a non-improvement
> would not be accepted. Also, wrap long lines to at most 72 characters.
> Perhaps:
>
> PHP permits functions to be defined like
>
> public final function foo() { }
> protected abstract function bar() { }
>
> but our hunk header pattern does not recognize these decorations.
> Add "final" and "abstract" to the list of function modifiers.
>
> I am not a PHP expert, so I cannot tell whether what I have written
> above makes sense.
Me neither, but the new pattern does look like it was written tp
specifically allow these combinations. Thanks for a good example
log message to guide new developers with.
>> PATTERNS("php",
>> - "^[\t ]*(((public|protected|private|static)[\t ]+)*function.*)$\n"
>> + "^[\t ]*(((public|protected|private|static|abstract|final)[\t ]+)*function.*)$\n"
>> "^[\t ]*((((final|abstract)[\t ]+)?class|interface|trait).*)$",
It probably does not matter in practice, but I wondered what the
reason for the ordering between final and abstract here (and one
line above) ;-)
>> /* -- */
>> "[a-zA-Z_][a-zA-Z0-9_]*"
>
> It would be great if you could add test cases to t/4018/ that
> demonstrate how these new keywords are handled.
Yes. It seems that we saw another userdiff patch with a test
update recently and that may serve as an example, too.
Thanks, both.
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH v2] Improve diff pattern for PHP files
2020-10-06 10:37 [PATCH] Improve diff pattern for PHP files Javier Spagnoletti via GitGitGadget
2020-10-06 18:27 ` Johannes Sixt
@ 2020-10-07 3:38 ` Javier Spagnoletti via GitGitGadget
2020-10-07 6:12 ` Junio C Hamano
2020-10-07 18:07 ` [PATCH v3] userdiff: php: Add "final" and "abstract" to the list of function modifiers Javier Spagnoletti via GitGitGadget
1 sibling, 2 replies; 7+ messages in thread
From: Javier Spagnoletti via GitGitGadget @ 2020-10-07 3:38 UTC (permalink / raw)
To: git; +Cc: Johannes Sixt, Javier Spagnoletti, Javier Spagnoletti
From: Javier Spagnoletti <phansys@gmail.com>
PHP allows some function modifiers that are not recognized in our current hunk header pattern
final public function foo() { }
abstract protected function bar() { }
Add "final" and "abstract" to the list of function modifiers.
Signed-off-by: Javier Spagnoletti <phansys@gmail.com>
---
Improve diff pattern for PHP files
PHP allows some function modifiers that are not recognized in our
current hunk header pattern
final public function foo() { }
abstract protected function bar() { }
Add "final" and "abstract" to the list of function modifiers. See:
* https://www.php.net/manual/en/language.oop5.abstract.php#example-213;
* https://www.php.net/manual/en/language.oop5.final.php#language.oop5.traits.static.ex1
.
Signed-off-by: Javier Spagnoletti phansys@gmail.com [phansys@gmail.com]
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-864%2Fphansys%2Fuserdiff_php-v2
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-864/phansys/userdiff_php-v2
Pull-Request: https://github.com/git/git/pull/864
Range-diff vs v1:
1: aa65d43a40 ! 1: 4cb59950ff Improve diff pattern for PHP files
@@ Metadata
## Commit message ##
Improve diff pattern for PHP files
- Improve the output diff readability for php files by taking into account some missing function modifiers.
+ PHP allows some function modifiers that are not recognized in our current hunk header pattern
+
+ final public function foo() { }
+ abstract protected function bar() { }
+
+ Add "final" and "abstract" to the list of function modifiers.
Signed-off-by: Javier Spagnoletti <phansys@gmail.com>
+ ## t/t4018/php-abstract-method (new) ##
+@@
++abstract class Klass
++{
++ abstract public function RIGHT(): ?string
++ {
++ return 'ChangeMe';
++ }
++}
+
+ ## t/t4018/php-final-method (new) ##
+@@
++class Klass
++{
++ final public function RIGHT(): string
++ {
++ return 'ChangeMe';
++ }
++}
+
## userdiff.c ##
@@ userdiff.c: PATTERNS("perl",
"|=~|!~"
t/t4018/php-abstract-method | 7 +++++++
t/t4018/php-final-method | 7 +++++++
userdiff.c | 2 +-
3 files changed, 15 insertions(+), 1 deletion(-)
create mode 100644 t/t4018/php-abstract-method
create mode 100644 t/t4018/php-final-method
diff --git a/t/t4018/php-abstract-method b/t/t4018/php-abstract-method
new file mode 100644
index 0000000000..ce215df75a
--- /dev/null
+++ b/t/t4018/php-abstract-method
@@ -0,0 +1,7 @@
+abstract class Klass
+{
+ abstract public function RIGHT(): ?string
+ {
+ return 'ChangeMe';
+ }
+}
diff --git a/t/t4018/php-final-method b/t/t4018/php-final-method
new file mode 100644
index 0000000000..537fb8ad9a
--- /dev/null
+++ b/t/t4018/php-final-method
@@ -0,0 +1,7 @@
+class Klass
+{
+ final public function RIGHT(): string
+ {
+ return 'ChangeMe';
+ }
+}
diff --git a/userdiff.c b/userdiff.c
index 1df884ef0b..a99d84a7e3 100644
--- a/userdiff.c
+++ b/userdiff.c
@@ -143,7 +143,7 @@ PATTERNS("perl",
"|=~|!~"
"|<<|<>|<=>|>>"),
PATTERNS("php",
- "^[\t ]*(((public|protected|private|static)[\t ]+)*function.*)$\n"
+ "^[\t ]*(((public|protected|private|static|abstract|final)[\t ]+)*function.*)$\n"
"^[\t ]*((((final|abstract)[\t ]+)?class|interface|trait).*)$",
/* -- */
"[a-zA-Z_][a-zA-Z0-9_]*"
base-commit: 47ae905ffb98cc4d4fd90083da6bc8dab55d9ecc
--
gitgitgadget
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH v2] Improve diff pattern for PHP files
2020-10-07 3:38 ` [PATCH v2] " Javier Spagnoletti via GitGitGadget
@ 2020-10-07 6:12 ` Junio C Hamano
2020-10-07 18:47 ` Junio C Hamano
2020-10-07 18:07 ` [PATCH v3] userdiff: php: Add "final" and "abstract" to the list of function modifiers Javier Spagnoletti via GitGitGadget
1 sibling, 1 reply; 7+ messages in thread
From: Junio C Hamano @ 2020-10-07 6:12 UTC (permalink / raw)
To: Javier Spagnoletti via GitGitGadget
Cc: git, Johannes Sixt, Javier Spagnoletti
"Javier Spagnoletti via GitGitGadget" <gitgitgadget@gmail.com>
writes:
> Subject: Re: [PATCH v2] Improve diff pattern for PHP files
You seem to have read J6t's excellent suggestion well but forgot to
retitle.
> From: Javier Spagnoletti <phansys@gmail.com>
>
> PHP allows some function modifiers that are not recognized in our current hunk header pattern
>
> final public function foo() { }
> abstract protected function bar() { }
>
> Add "final" and "abstract" to the list of function modifiers.
>
> Signed-off-by: Javier Spagnoletti <phansys@gmail.com>
> ...
> t/t4018/php-abstract-method | 7 +++++++
> t/t4018/php-final-method | 7 +++++++
> userdiff.c | 2 +-
> 3 files changed, 15 insertions(+), 1 deletion(-)
> create mode 100644 t/t4018/php-abstract-method
> create mode 100644 t/t4018/php-final-method
>
> diff --git a/t/t4018/php-abstract-method b/t/t4018/php-abstract-method
> new file mode 100644
> index 0000000000..ce215df75a
> --- /dev/null
> +++ b/t/t4018/php-abstract-method
> @@ -0,0 +1,7 @@
> +abstract class Klass
> +{
> + abstract public function RIGHT(): ?string
> + {
> + return 'ChangeMe';
> + }
> +}
> diff --git a/t/t4018/php-final-method b/t/t4018/php-final-method
> new file mode 100644
> index 0000000000..537fb8ad9a
> --- /dev/null
> +++ b/t/t4018/php-final-method
> @@ -0,0 +1,7 @@
> +class Klass
> +{
> + final public function RIGHT(): string
> + {
> + return 'ChangeMe';
> + }
> +}
> diff --git a/userdiff.c b/userdiff.c
> index 1df884ef0b..a99d84a7e3 100644
> --- a/userdiff.c
> +++ b/userdiff.c
> @@ -143,7 +143,7 @@ PATTERNS("perl",
> "|=~|!~"
> "|<<|<>|<=>|>>"),
> PATTERNS("php",
> - "^[\t ]*(((public|protected|private|static)[\t ]+)*function.*)$\n"
> + "^[\t ]*(((public|protected|private|static|abstract|final)[\t ]+)*function.*)$\n"
> "^[\t ]*((((final|abstract)[\t ]+)?class|interface|trait).*)$",
> /* -- */
> "[a-zA-Z_][a-zA-Z0-9_]*"
>
> base-commit: 47ae905ffb98cc4d4fd90083da6bc8dab55d9ecc
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH v3] userdiff: php: Add "final" and "abstract" to the list of function modifiers
2020-10-07 3:38 ` [PATCH v2] " Javier Spagnoletti via GitGitGadget
2020-10-07 6:12 ` Junio C Hamano
@ 2020-10-07 18:07 ` Javier Spagnoletti via GitGitGadget
1 sibling, 0 replies; 7+ messages in thread
From: Javier Spagnoletti via GitGitGadget @ 2020-10-07 18:07 UTC (permalink / raw)
To: git; +Cc: Johannes Sixt, Javier Spagnoletti, Javier Spagnoletti
From: Javier Spagnoletti <phansys@gmail.com>
PHP allows some function modifiers that are not recognized in our current hunk header pattern
final public function foo() { }
abstract protected function bar() { }
Some context about the PHP semantics:
In PHP a class can be declared as abstract and final, while methods can be declared as final,
static and abstract, along with its visibility (public, protected and private).
Regarding classes, an abstract class can not be declared as final.
For the methods, from a strict syntax perspective, the order of the modifiers is irrelevant.
For more information, see:
* https://www.php.net/manual/en/language.oop5.abstract.php#example-213;
* https://www.php.net/manual/en/language.oop5.final.php#language.oop5.traits.static.ex1.
This commit adds "final" and "abstract" to the list of function modifiers.
Signed-off-by: Javier Spagnoletti <phansys@gmail.com>
---
userdiff: php: Add "final" and "abstract" to the list of function
modifiers
PHP allows some function modifiers that are not recognized in our
current hunk header pattern
final public function foo() { }
abstract protected function bar() { }
Some context about the PHP semantics:
In PHP a class can be declared as abstract and final, while methods can
be declared as final, static and abstract, along with its visibility
(public, protected and private). Regarding classes, an abstract class
can not be declared as final. For the methods, from a strict syntax
perspective, the order of the modifiers is irrelevant.
For more information, see:
* https://www.php.net/manual/en/language.oop5.abstract.php#example-213;
* https://www.php.net/manual/en/language.oop5.final.php#language.oop5.traits.static.ex1
.
This commit adds "final" and "abstract" to the list of function
modifiers.
Signed-off-by: Javier Spagnoletti phansys@gmail.com [phansys@gmail.com]
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-864%2Fphansys%2Fuserdiff_php-v3
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-864/phansys/userdiff_php-v3
Pull-Request: https://github.com/git/git/pull/864
Range-diff vs v2:
1: 4cb59950ff ! 1: 43acd70aba Improve diff pattern for PHP files
@@ Metadata
Author: Javier Spagnoletti <phansys@gmail.com>
## Commit message ##
- Improve diff pattern for PHP files
+ userdiff: php: Add "final" and "abstract" to the list of function modifiers
PHP allows some function modifiers that are not recognized in our current hunk header pattern
final public function foo() { }
abstract protected function bar() { }
- Add "final" and "abstract" to the list of function modifiers.
+ Some context about the PHP semantics:
+
+ In PHP a class can be declared as abstract and final, while methods can be declared as final,
+ static and abstract, along with its visibility (public, protected and private).
+ Regarding classes, an abstract class can not be declared as final.
+ For the methods, from a strict syntax perspective, the order of the modifiers is irrelevant.
+
+ For more information, see:
+
+ * https://www.php.net/manual/en/language.oop5.abstract.php#example-213;
+ * https://www.php.net/manual/en/language.oop5.final.php#language.oop5.traits.static.ex1.
+
+ This commit adds "final" and "abstract" to the list of function modifiers.
Signed-off-by: Javier Spagnoletti <phansys@gmail.com>
t/t4018/php-abstract-method | 7 +++++++
t/t4018/php-final-method | 7 +++++++
userdiff.c | 2 +-
3 files changed, 15 insertions(+), 1 deletion(-)
create mode 100644 t/t4018/php-abstract-method
create mode 100644 t/t4018/php-final-method
diff --git a/t/t4018/php-abstract-method b/t/t4018/php-abstract-method
new file mode 100644
index 0000000000..ce215df75a
--- /dev/null
+++ b/t/t4018/php-abstract-method
@@ -0,0 +1,7 @@
+abstract class Klass
+{
+ abstract public function RIGHT(): ?string
+ {
+ return 'ChangeMe';
+ }
+}
diff --git a/t/t4018/php-final-method b/t/t4018/php-final-method
new file mode 100644
index 0000000000..537fb8ad9a
--- /dev/null
+++ b/t/t4018/php-final-method
@@ -0,0 +1,7 @@
+class Klass
+{
+ final public function RIGHT(): string
+ {
+ return 'ChangeMe';
+ }
+}
diff --git a/userdiff.c b/userdiff.c
index 1df884ef0b..a99d84a7e3 100644
--- a/userdiff.c
+++ b/userdiff.c
@@ -143,7 +143,7 @@ PATTERNS("perl",
"|=~|!~"
"|<<|<>|<=>|>>"),
PATTERNS("php",
- "^[\t ]*(((public|protected|private|static)[\t ]+)*function.*)$\n"
+ "^[\t ]*(((public|protected|private|static|abstract|final)[\t ]+)*function.*)$\n"
"^[\t ]*((((final|abstract)[\t ]+)?class|interface|trait).*)$",
/* -- */
"[a-zA-Z_][a-zA-Z0-9_]*"
base-commit: 47ae905ffb98cc4d4fd90083da6bc8dab55d9ecc
--
gitgitgadget
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH v2] Improve diff pattern for PHP files
2020-10-07 6:12 ` Junio C Hamano
@ 2020-10-07 18:47 ` Junio C Hamano
0 siblings, 0 replies; 7+ messages in thread
From: Junio C Hamano @ 2020-10-07 18:47 UTC (permalink / raw)
To: Javier Spagnoletti via GitGitGadget
Cc: git, Johannes Sixt, Javier Spagnoletti
Junio C Hamano <gitster@pobox.com> writes:
> "Javier Spagnoletti via GitGitGadget" <gitgitgadget@gmail.com>
> writes:
>
>> Subject: Re: [PATCH v2] Improve diff pattern for PHP files
>
> You seem to have read J6t's excellent suggestion well but forgot to
> retitle.
Will queue with minimum copy-editing (reproduced below).
Thanks.
commit aff92827b54f4b7f9e339982a49bab4bdbd1fc55
Author: Javier Spagnoletti <phansys@gmail.com>
Date: Wed Oct 7 03:38:18 2020 +0000
userdiff: PHP: catch "abstract" and "final" functions
PHP permits functions to be defined like
final public function foo() { }
abstract protected function bar() { }
but our hunk header pattern does not recognize these decorations.
Add "final" and "abstract" to the list of function modifiers.
Helped-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Javier Spagnoletti <phansys@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
diff --git a/t/t4018/php-abstract-method b/t/t4018/php-abstract-method
new file mode 100644
index 0000000000..ce215df75a
--- /dev/null
+++ b/t/t4018/php-abstract-method
@@ -0,0 +1,7 @@
+abstract class Klass
+{
+ abstract public function RIGHT(): ?string
+ {
+ return 'ChangeMe';
+ }
+}
diff --git a/t/t4018/php-final-method b/t/t4018/php-final-method
new file mode 100644
index 0000000000..537fb8ad9a
--- /dev/null
+++ b/t/t4018/php-final-method
@@ -0,0 +1,7 @@
+class Klass
+{
+ final public function RIGHT(): string
+ {
+ return 'ChangeMe';
+ }
+}
diff --git a/userdiff.c b/userdiff.c
index fde02f225b..4e2b55a5e0 100644
--- a/userdiff.c
+++ b/userdiff.c
@@ -147,7 +147,7 @@ PATTERNS("perl",
"|=~|!~"
"|<<|<>|<=>|>>"),
PATTERNS("php",
- "^[\t ]*(((public|protected|private|static)[\t ]+)*function.*)$\n"
+ "^[\t ]*(((public|protected|private|static|abstract|final)[\t ]+)*function.*)$\n"
"^[\t ]*((((final|abstract)[\t ]+)?class|interface|trait).*)$",
/* -- */
"[a-zA-Z_][a-zA-Z0-9_]*"
^ permalink raw reply related [flat|nested] 7+ messages in thread
end of thread, other threads:[~2020-10-07 18:47 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-10-06 10:37 [PATCH] Improve diff pattern for PHP files Javier Spagnoletti via GitGitGadget
2020-10-06 18:27 ` Johannes Sixt
2020-10-06 18:55 ` Junio C Hamano
2020-10-07 3:38 ` [PATCH v2] " Javier Spagnoletti via GitGitGadget
2020-10-07 6:12 ` Junio C Hamano
2020-10-07 18:47 ` Junio C Hamano
2020-10-07 18:07 ` [PATCH v3] userdiff: php: Add "final" and "abstract" to the list of function modifiers Javier Spagnoletti via GitGitGadget
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).