userdiff: better method/property matching for C#

- Support multi-line methods by not requiring closing parenthesis.
- Support multiple generics (comma was missing before).
- Add missing `foreach`, `lock` and  `fixed` keywords to skip over.
- Remove `instanceof` keyword, which isn't C#.
- Also detect non-method keywords not positioned at the start of a line.
- Added tests; none existed before.

The overall strategy is to focus more on what isn't expected for
method/property definitions, instead of what is, but is fully optional.

Signed-off-by: Steven Jeuris <steven.jeuris@gmail.com>
Acked-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Steven Jeuris
2024-04-03 21:42:44 +00:00
committed by Junio C Hamano
parent 43072b4ca1
commit ec0e3075d2
21 changed files with 352 additions and 6 deletions

View File

@ -0,0 +1,10 @@
class Example
{
string[] Method(int RIGHT)
{
// Filler
// Filler
return ["ChangeMe"];
}
}