userdiff: add support for R programming language

Add userdiff patterns to support R programming language. Also, add three userdiff tests for R programming language files. These files define simple function and nested function, with and without indentation. Signed-off-by: Rodrigo Carvalho <rodrigorsdc@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Rodrigo Carvalho committed May 29, 2025 at 19:16 UTC 1d9526df8d6ebe69efc54ade9d4ed2317342fdba
4 files changed +26
t/t4018/r-indent new
+6
@@ -0,0 +1,6 @@
1 +RIGHT <- function(a, b) {
2 + c = mean(a, b)
3 + d = c + 2
4 + ChangeMe()
5 + return (d)
6 +}
t/t4018/r-indent-nested new
+10
@@ -0,0 +1,10 @@
1 +LEFT = function(a, b) {
2 + c = mean(a, b)
3 + RIGHT = function(d, e) {
4 + f = var(d, e)
5 + g = f + 1
6 + ChangeMe()
7 + return (g)
8 + }
9 + return (RIGHT(2, 3))
10 +}
t/t4018/r-noindent new
+6
@@ -0,0 +1,6 @@
1 +RIGHT <- function(a, b) {
2 +c = mean(a, b)
3 +d = c + 2
4 +ChangeMe()
5 +return (c)
6 +}
userdiff.c
+4
@@ -327,6 +327,10 @@ PATTERNS("python",
327 "|[-+0-9.e]+[jJlL]?|0[xX]?[0-9a-fA-F]+[lL]?"
328 "|[-+*/<>%&^|=!]=|//=?|<<=?|>>=?|\\*\\*=?"),
329 /* -- */
330 +PATTERNS("r",
331 + "^[ \t]*([a-zA-z][a-zA-Z0-9_.]*[ \t]*(<-|=)[ \t]*function.*)$",
332 + /* -- */
333 + "[^ \t]+"),
334 PATTERNS("ruby",
335 "^[ \t]*((class|module|def)[ \t].*)$",
336 /* -- */