From: Nazarii Bardiuk <nazarii@xxxxxxxxxxx> Add support for Clojure[1]. Include test cases for the xfuncname pattern (t4018) and update documentation. The xfuncname pattern matches any top level form except a line comment. The word_regex has been constructed based on Reader documentation[2]. [1]: https://clojure.org [2]: https://clojure.org/reference/reader Signed-off-by: Nazarii Bardiuk <nazarii@xxxxxxxxxxx> --- userdiff: support Clojure Add support for Clojure1 [https://clojure.org]. Include test cases for the xfuncname pattern (t4018) and update documentation. The xfuncname pattern matches any top level form except a line comment. The word_regex has been constructed based on Reader documentation2 [https://clojure.org/reference/reader]. Signed-off-by: Nazarii Bardiuk nazarii@xxxxxxxxxxx Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-902%2Fnbardiuk%2Fuserdiff-clojure-v1 Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-902/nbardiuk/userdiff-clojure-v1 Pull-Request: https://github.com/gitgitgadget/git/pull/902 Documentation/gitattributes.txt | 2 ++ t/t4018-diff-funcname.sh | 1 + t/t4018/clojure-comment | 8 ++++++++ t/t4018/clojure-function | 6 ++++++ t/t4018/clojure-ns | 10 ++++++++++ t/t4018/clojure-reader-comment | 5 +++++ userdiff.c | 11 +++++++++++ 7 files changed, 43 insertions(+) create mode 100644 t/t4018/clojure-comment create mode 100644 t/t4018/clojure-function create mode 100644 t/t4018/clojure-ns create mode 100644 t/t4018/clojure-reader-comment diff --git a/Documentation/gitattributes.txt b/Documentation/gitattributes.txt index e84e104f9325..a7734d413758 100644 --- a/Documentation/gitattributes.txt +++ b/Documentation/gitattributes.txt @@ -807,6 +807,8 @@ patterns are available: - `bibtex` suitable for files with BibTeX coded references. +- `clojure` suitable for source code in the Clojure language. + - `cpp` suitable for source code in the C and C++ languages. - `csharp` suitable for source code in the C# language. diff --git a/t/t4018-diff-funcname.sh b/t/t4018-diff-funcname.sh index 9675bc17db27..f126a349aa24 100755 --- a/t/t4018-diff-funcname.sh +++ b/t/t4018-diff-funcname.sh @@ -29,6 +29,7 @@ diffpatterns=" ada bash bibtex + clojure cpp csharp css diff --git a/t/t4018/clojure-comment b/t/t4018/clojure-comment new file mode 100644 index 000000000000..5e20f41b554e --- /dev/null +++ b/t/t4018/clojure-comment @@ -0,0 +1,8 @@ +(comment ;; RIGHT rich comment + + +;; ignore comment + + + (do-something "ChangeMe")) + diff --git a/t/t4018/clojure-function b/t/t4018/clojure-function new file mode 100644 index 000000000000..347790fd37f7 --- /dev/null +++ b/t/t4018/clojure-function @@ -0,0 +1,6 @@ +(defn RIGHT + [] +; ignore comment + + (ChangeMe)) + diff --git a/t/t4018/clojure-ns b/t/t4018/clojure-ns new file mode 100644 index 000000000000..e3e2e5f4c986 --- /dev/null +++ b/t/t4018/clojure-ns @@ -0,0 +1,10 @@ +(ns RIGHT + +;; ignore comment + + (:require [some.lib :refer [ + + + ChangeMe + + ])) diff --git a/t/t4018/clojure-reader-comment b/t/t4018/clojure-reader-comment new file mode 100644 index 000000000000..f17e51074558 --- /dev/null +++ b/t/t4018/clojure-reader-comment @@ -0,0 +1,5 @@ +#_((def commented-RIGHT-definition + +; ignore comment + + ChangeMe)) diff --git a/userdiff.c b/userdiff.c index 3f81a2261c5e..887264081e3c 100644 --- a/userdiff.c +++ b/userdiff.c @@ -44,6 +44,17 @@ PATTERNS("bash", /* -- */ /* Characters not in the default $IFS value */ "[^ \t]+"), +PATTERNS("clojure", + /* Ignore comments */ + "!^;.*\n" + /* Top level forms */ + "^[^ \t].*$", + /* Atoms, Keywords, Symbols */ + "[#@:]?[^0-9][a-zA-Z0-9*+!-_'?<>=/.]+" + /* Numbers */ + "|[-]?[0-9a-fA-Frxb/MN]+" + /* Characters */ + "|[\\0-9a-fA-F]+"), PATTERNS("dts", "!;\n" "!=\n" base-commit: 13d7ab6b5d7929825b626f050b62a11241ea4945 -- gitgitgadget