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

Re: [PATCH] userdiff: two simplifications of patterns for rust

From
Johannes Sixt <j6t@kdbg.org>
Date
May 30, 2019, 20:32 UTC
Message-ID
<e898920d-46bf-781a-de2f-6452bf5bae05@kdbg.org>
In-Reply-To
<875zprn4zr.fsf@evledraar.gmail.com>
Am 30.05.19 um 20:59 schrieb Ævar Arnfjörð Bjarmason:
Show 15 quoted lines
> 
> On Thu, May 30 2019, Johannes Sixt wrote:
> 
>> - Do not enforce (but assume) syntactic correctness of language
>>   constructs that go into hunk headers: we only want to ensure that
>>   the keywords actually are words and not just the initial part of
>>   some identifier.
>>
>> - In the word regex, match numbers only when they begin with a digit,
>>   but then be liberal in what follows, assuming that the text that is
>>   matched is syntactially correct.
> 
> I don't know if this is possible for Rust (but very much suspect so...),
> but I think that in general we should aim to be more forgiving than not
> with these patterns.

The C/C++ pattern is actually very forgiving in the hunk header pattern: It takes every line that begins with an un-indented letter. That works very well in in C because C does not have nested functions and it is typical that the function definition lines are not indented. But that breaks down with C++: indented function definitions are very common; they happen inside class and namespace definitions. Such functions are not picked up, and we live with that so far (at least, I do).

> Because, as the history of userdiff.c shows, new keywords get introduced
> into these languages, and old git versions survive for a long time. If
> the syntax is otherwise fairly regular perhaps we don't need to hardcode
> the list of existing keywords?

We are talking about (1) hunk header lines (not something really important) and (2) programming languages: new keywords don't pop up every month. Granted, inventing new languages is en vogue these days. But really, I mean, WTH?

Having available keywords to recognize hunk header candidates helps a lot. I thought long about a possible pattern for C++, but I gave up, because the language is so rich and there are no suitable keywords.

-- Hannes
Previous: Ævar Arnfjörð Bjarmason
Message 9 of 9 in “userdiff: add built-in pattern for rust”
  1. userdiff: add built-in pattern for rustmarcandre.lureau@redhat.com, May 20, 2019
  2. Johannes SixtMay 20, 2019
  3. Marc-André LureauMay 21, 2019
  4. Junio C HamanoMay 28, 2019
  5. Johannes SixtMay 28, 2019
  6. Marc-André LureauMay 28, 2019
  7. userdiff: two simplifications of patterns for rustJohannes Sixt, May 30, 2019
  8. Ævar Arnfjörð BjarmasonMay 30, 2019
  9. Johannes SixtMay 30, 2019

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.