From ec0e3075d245afa3f3a848bd7bdc6376dea85fe0 Mon Sep 17 00:00:00 2001 From: Steven Jeuris Date: Wed, 3 Apr 2024 21:42:44 +0000 Subject: 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 Acked-by: Johannes Sixt Signed-off-by: Junio C Hamano --- t/t4018/csharp-exclude-control-statements | 34 +++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 t/t4018/csharp-exclude-control-statements (limited to 't/t4018/csharp-exclude-control-statements') diff --git a/t/t4018/csharp-exclude-control-statements b/t/t4018/csharp-exclude-control-statements new file mode 100644 index 0000000000..3a0f404ee1 --- /dev/null +++ b/t/t4018/csharp-exclude-control-statements @@ -0,0 +1,34 @@ +class Example +{ + string Method(int RIGHT) + { + if (false) + { + return "out"; + } + else { } + if (true) MethodCall( + ); + else MethodCall( + ); + switch ("test") + { + case "one": + return MethodCall( + ); + case "two": + break; + } + (int, int) tuple = (1, 4); + switch (tuple) + { + case (1, 4): + MethodCall(); + break; + } + + return "ChangeMe"; + } + + string MethodCall(int a = 0, int b = 0) => "test"; +} -- cgit v1.2.3