Browse Source

userdiff: support Python async functions

Python's async functions (declared with "async def" rather than "def")
were not being displayed in hunk headers. This commit teaches git about
the async function syntax, and adds tests for the Python userdiff regex.

Signed-off-by: Josh Holland <anowlcalledjosh@gmail.com>
Acked-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Josh Holland 5 years ago committed by Junio C Hamano
parent
commit
077a1fda82
  1. 4
      t/t4018/python-async-def
  2. 4
      t/t4018/python-class
  3. 4
      t/t4018/python-def
  4. 7
      t/t4018/python-indented-async-def
  5. 5
      t/t4018/python-indented-class
  6. 7
      t/t4018/python-indented-def
  7. 2
      userdiff.c

4
t/t4018/python-async-def

@ -0,0 +1,4 @@ @@ -0,0 +1,4 @@
async def RIGHT(pi: int = 3.14):
while True:
break
return ChangeMe()

4
t/t4018/python-class

@ -0,0 +1,4 @@ @@ -0,0 +1,4 @@
class RIGHT(int, str):
# comment
# another comment
# ChangeMe

4
t/t4018/python-def

@ -0,0 +1,4 @@ @@ -0,0 +1,4 @@
def RIGHT(pi: int = 3.14):
while True:
break
return ChangeMe()

7
t/t4018/python-indented-async-def

@ -0,0 +1,7 @@ @@ -0,0 +1,7 @@
class Foo:
async def RIGHT(self, x: int):
return [
1,
2,
ChangeMe,
]

5
t/t4018/python-indented-class

@ -0,0 +1,5 @@ @@ -0,0 +1,5 @@
if TYPE_CHECKING:
class RIGHT:
# comment
# another comment
# ChangeMe

7
t/t4018/python-indented-def

@ -0,0 +1,7 @@ @@ -0,0 +1,7 @@
class Foo:
def RIGHT(self, x: int):
return [
1,
2,
ChangeMe,
]

2
userdiff.c

@ -124,7 +124,7 @@ PATTERNS("php", @@ -124,7 +124,7 @@ PATTERNS("php",
"[a-zA-Z_][a-zA-Z0-9_]*"
"|[-+0-9.e]+|0[xXbB]?[0-9a-fA-F]+"
"|[-+*/<>%&^|=!.]=|--|\\+\\+|<<=?|>>=?|===|&&|\\|\\||::|->"),
PATTERNS("python", "^[ \t]*((class|def)[ \t].*)$",
PATTERNS("python", "^[ \t]*((class|(async[ \t]+)?def)[ \t].*)$",
/* -- */
"[a-zA-Z_][a-zA-Z0-9_]*"
"|[-+0-9.e]+[jJlL]?|0[xX]?[0-9a-fA-F]+[lL]?"

Loading…
Cancel
Save