git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] userdiff: add Julia to supported userdiff languages

From
Johannes Schindelin <johannes.schindelin@gmx.de>
Date
Jan 10, 2020, 13:51 UTC
Message-ID
<nycvar.QRO.7.76.6.2001101449410.46@tvgsbejvaqbjf.bet>
In-Reply-To
<pull.521.git.1578625810098.gitgitgadget@gmail.com>
Hi,
On Fri, 10 Jan 2020, Ryan Zoeller via GitGitGadget wrote:
Show 24 quoted lines
> Add xfuncname and word_regex patterns for Julia[1],
> which is a language used in numerical analysis and
> computational science.
>
> The default behavior for xfuncname did not allow
> functions to be indented, nor functions to have a
> macro applied, such as @inline or @generated.
>
> [1]: https://julialang.org
>
> Signed-off-by: Ryan Zoeller <rtzoeller@rtzoeller.com>
> ---
>     userdiff: add Julia to supported userdiff languages
>
>     Add xfuncname and word_regex patterns for Julia1 [https://julialang.org]
>     , which is a language used in numerical analysis and computational
>     science.
>
>     The default behavior for xfuncname did not allow functions to be
>     indented, nor functions to have a macro applied, such as @inline or
>     @generated.
>
>     Signed-off-by: Ryan Zoeller rtzoeller@rtzoeller.com
>     [rtzoeller@rtzoeller.com]

Sorry about that. In my recent work to fold in the cover letter into single-patch contributions, it was mentioned that this could come back to bite us: By default, GitHub uses the commit message of single-commit PRs as PR description, and if contributors do not change that, it essentially repeats the commit message.

Sadly, I won't be able to justify working even more on GitGitGadget this week (it took a sizable chunk out of my time budget and I have to make up for that first).

Ciao, Johannes

Show 147 quoted lines
>
> Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-521%2Frtzoeller%2Fjulia_userdiff-v1
> Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-521/rtzoeller/julia_userdiff-v1
> Pull-Request: https://github.com/gitgitgadget/git/pull/521
>
>  Documentation/gitattributes.txt |  2 ++
>  t/t4018-diff-funcname.sh        |  1 +
>  t/t4018/julia-function          |  5 +++++
>  t/t4018/julia-indented-function |  8 ++++++++
>  t/t4018/julia-inline-function   |  5 +++++
>  t/t4018/julia-macro             |  5 +++++
>  t/t4018/julia-mutable-struct    |  5 +++++
>  t/t4018/julia-struct            |  5 +++++
>  userdiff.c                      | 15 +++++++++++++++
>  9 files changed, 51 insertions(+)
>  create mode 100644 t/t4018/julia-function
>  create mode 100644 t/t4018/julia-indented-function
>  create mode 100644 t/t4018/julia-inline-function
>  create mode 100644 t/t4018/julia-macro
>  create mode 100644 t/t4018/julia-mutable-struct
>  create mode 100644 t/t4018/julia-struct
>
> diff --git a/Documentation/gitattributes.txt b/Documentation/gitattributes.txt
> index 508fe713c4..d39dc727e3 100644
> --- a/Documentation/gitattributes.txt
> +++ b/Documentation/gitattributes.txt
> @@ -824,6 +824,8 @@ patterns are available:
>
>  - `java` suitable for source code in the Java language.
>
> +- `julia` suitable for source code in the Julia language.
> +
>  - `matlab` suitable for source code in the MATLAB and Octave languages.
>
>  - `objc` suitable for source code in the Objective-C language.
> diff --git a/t/t4018-diff-funcname.sh b/t/t4018-diff-funcname.sh
> index c0f4839543..d4613eb7d2 100755
> --- a/t/t4018-diff-funcname.sh
> +++ b/t/t4018-diff-funcname.sh
> @@ -38,6 +38,7 @@ diffpatterns="
>  	golang
>  	html
>  	java
> +	julia
>  	matlab
>  	objc
>  	pascal
> diff --git a/t/t4018/julia-function b/t/t4018/julia-function
> new file mode 100644
> index 0000000000..a2eab83c27
> --- /dev/null
> +++ b/t/t4018/julia-function
> @@ -0,0 +1,5 @@
> +function RIGHT()
> +    # A comment
> +    # Another comment
> +    return ChangeMe
> +end
> diff --git a/t/t4018/julia-indented-function b/t/t4018/julia-indented-function
> new file mode 100644
> index 0000000000..2d48aabcdb
> --- /dev/null
> +++ b/t/t4018/julia-indented-function
> @@ -0,0 +1,8 @@
> +function outer_function()
> +    function RIGHT()
> +        for i = 1:10
> +            print(i)
> +        end
> +        # ChangeMe
> +    end
> +end
> diff --git a/t/t4018/julia-inline-function b/t/t4018/julia-inline-function
> new file mode 100644
> index 0000000000..5806f224fb
> --- /dev/null
> +++ b/t/t4018/julia-inline-function
> @@ -0,0 +1,5 @@
> +@inline function RIGHT()
> +    # Prints Hello, then something else.
> +    println("Hello")
> +    println("ChangeMe")
> +end
> diff --git a/t/t4018/julia-macro b/t/t4018/julia-macro
> new file mode 100644
> index 0000000000..1d18bc2750
> --- /dev/null
> +++ b/t/t4018/julia-macro
> @@ -0,0 +1,5 @@
> +macro RIGHT()
> +    # First comment
> +    # Second comment
> +    return :( println("ChangeMe") )
> +end
> diff --git a/t/t4018/julia-mutable-struct b/t/t4018/julia-mutable-struct
> new file mode 100644
> index 0000000000..db82017ba0
> --- /dev/null
> +++ b/t/t4018/julia-mutable-struct
> @@ -0,0 +1,5 @@
> +mutable struct RIGHT
> +    x
> +    y::Int
> +    ChangeMe
> +end
> diff --git a/t/t4018/julia-struct b/t/t4018/julia-struct
> new file mode 100644
> index 0000000000..d3d2bda8cb
> --- /dev/null
> +++ b/t/t4018/julia-struct
> @@ -0,0 +1,5 @@
> +struct RIGHT
> +    x
> +    y::Int
> +    ChangeMe
> +end
> diff --git a/userdiff.c b/userdiff.c
> index efbe05e5a5..b5e938b1c2 100644
> --- a/userdiff.c
> +++ b/userdiff.c
> @@ -79,6 +79,21 @@ PATTERNS("java",
>  	 "|[-+0-9.e]+[fFlL]?|0[xXbB]?[0-9a-fA-F]+[lL]?"
>  	 "|[-+*/<>%&^|=!]="
>  	 "|--|\\+\\+|<<=?|>>>?=?|&&|\\|\\|"),
> +PATTERNS("julia",
> +	 "^[ \t]*(((mutable[ \t]+)?struct|(@.+[ \t])?function|macro)[ \t].*)$",
> +	 /* -- */
> +	 /* Binary literals */
> +	 "[-+]?0b[01]+"
> +	 /* Hexadecimal literals */
> +	 "|[-+]?0x[0-9a-fA-F]+"
> +	 /* Real and complex literals */
> +	 "|[-+0-9.e_(im)]+"
> +	 /* Should theoretically allow Unicode characters as part of
> +	  * a word, such as U+2211. However, Julia reserves most of the
> +	  * U+2200-U+22FF range (as well as others) as user-defined operators,
> +	  * therefore they are not handled in this regex. */
> +	 "|[a-zA-Z_][a-zA-Z0-9_!]*"
> +	 "|--|\\+\\+|<<=?|>>>=?|>>=?|\\\\\\\\=?|//=?|&&|\\|\\||::|->|[-+*/<>%^&|=!$]=?"),
>  PATTERNS("matlab",
>  	 /*
>  	  * Octave pattern is mostly the same as matlab, except that '%%%' and
>
> base-commit: 042ed3e048af08014487d19196984347e3be7d1c
> --
> gitgitgadget
>
Previous: Ryan Zoeller via GitGitGadgetNext: Johannes Sixt
Message 2 of 5 in “userdiff: add Julia to supported userdiff languages”
  1. userdiff: add Julia to supported userdiff languagesRyan Zoeller via GitGitGadget, Jan 10, 2020
  2. Johannes SchindelinJan 10, 2020
  3. Johannes SixtJan 10, 2020
  4. Ryan ZoellerJan 10, 2020
  5. Johannes SixtJan 10, 2020

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.