Re: [GSOC][PATCH] userdiff: add support for Scheme
From: Junio C Hamano <hidden>
Date: 2021-03-28 05:49:02
Ævar Arnfjörð Bjarmason [off-list ref] writes: [jc: redirecting the question to patch author---I am just a messenger]
quoted
diff --git a/userdiff.c b/userdiff.c index 3f81a2261c..685fe712aa 100644 --- a/userdiff.c +++ b/userdiff.c@@ -191,6 +191,10 @@ PATTERNS("rust", "[a-zA-Z_][a-zA-Z0-9_]*" "|[0-9][0-9_a-fA-Fiosuxz]*(\\.([0-9]*[eE][+-]?)?[0-9_fF]*)?" "|[-+*\\/<>%&^|=!:]=|<<=?|>>=?|&&|\\|\\||->|=>|\\.{2}=|\\.{3}|::"), +PATTERNS("scheme", + "^[\t ]*(\\(define-?.*)$",The "define-?.*" can be simplified to just "define.*", but looking at the tests is that the intent? From the tests it looks like "define[- ]" is what the author wants, unless this is meant to also match "(definements". Has this been tested on some real-world scheme code? E.g. I have guile installed locally, and it has really large top-level eval-when blocks. These rules would jump over those to whatever the function above them is.quoted
+ /* whitespace separated tokens, but parentheses also can delimit words */ + "([^][)(\\}\\{ \t])+"), PATTERNS("bibtex", "(@[a-zA-Z]{1,}[ \t]*\\{{0,1}[ \t]*[^ \t\"@',\\#}{~%]*).*$", "[={}\"]|[^={}\" \t]+"), PATTERNS("tex", "^(\\\\((sub)*section|chapter|part)\\*{0,1}\\{.*)$",