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

Re: [PATCH 1/2] userdiff: support C# async methods and correct C# keywords

From
Junio C Hamano <gitster@pobox.com>
Date
Jun 6, 2014, 17:34 UTC
Message-ID
<xmqq61keq6wc.fsf@gitster.dls.corp.google.com>
In-Reply-To
<CACbrTHcVNmffTHPPnPYDXXwYQacmiS77573Y+GpyjSv-yHQM7g@mail.gmail.com>
Steve Hoelzer <shoelzer@gmail.com> writes:
Show 20 quoted lines
> On Thu, Jun 5, 2014 at 5:59 PM, Junio C Hamano <gitster@pobox.com> wrote:
>> Sup Yut Sum <ch3cooli@gmail.com> writes:
>>
>>> async is in C# 5.0
>>> foreach is in C# 1.0
>>
>>> instanceof is in Java. The similar keywords are typeof, is, as in C# 1.0
>>
>> This one made me read it twice, until I realized you meant
>>
>>     instanceof() is listed as keywords, but there is no such thing
>>     (it is in Java, though); in C# we use typeof() for similar
>>     purposes
>
> The original email was a bit hard to parse. Junio's clarification left
> out the C# keywords 'is' and 'as'. I suggest phrasing it like this:
>
> instanceof() is listed as keywords, but there is no such thing (it is
> in Java, though); in C# we use typeof(), 'is', and 'as for similar
> purposes
You would need to balance the quotes around "as" ;-)

But reading the patch again after noticing that you have () after typeof but not after is/as, I am not sure if the change proposed here is even correct for the latter two. I do not speal c-sharp, so I asked http://msdn.microsoft.com/en-us/library/cscsdfbt.aspx for some examples and here are what I found:

    Type t = typeof(ExampleClass)
    Base b = derived as Base;
    if (obj is MyObject) ...

Unlike the control-flow keywords (e.g. do/while/for/...), do they typically appear at the beginning of lines?

Isn't the purpose of these !^[ \t]* patterns to reject lines that begin with the language keywords that do not start functions, so listing a keyword that does not usually appear at the beginning of line looks like a churn that is not useful.

Show 16 quoted lines
> diff --git a/userdiff.c b/userdiff.c
> index fad52d6..96eda6c 100644
> --- a/userdiff.c
> +++ b/userdiff.c
> @@ -134,9 +134,9 @@ PATTERNS("cpp",
>  	 "|[-+*/<>%&^|=!]=|--|\\+\\+|<<=?|>>=?|&&|\\|\\||::|->\\*?|\\.\\*"),
>  PATTERNS("csharp",
>  	 /* Keywords */
> -	 "!^[ \t]*(do|while|for|if|else|instanceof|new|return|switch|case|throw|catch|using)\n"
> +	 "!^[ \t]*(do|while|for|foreach|if|else|typeof|is|as|new|return|switch|case|default|throw|try|catch|using)\n"
>  	 /* Methods and constructors */
> -	 "^[ \t]*(((static|public|internal|private|protected|new|virtual|sealed|override|unsafe)[ \t]+)*[][<>@.~_[:alnum:]]+[ \t]+[<>@._[:alnum:]]+[ \t]*\\(.*\\))[ \t]*$\n"
> +	 "^[ \t]*(((static|public|internal|private|protected|new|virtual|sealed|override|unsafe|async)[ \t]+)*[][<>@.~_[:alnum:]]+[ \t]+[<>@._[:alnum:]]+[ \t]*\\(.*\\))[ \t]*$\n"
>  	 /* Properties */
>  	 "^[ \t]*(((static|public|internal|private|protected|new|virtual|sealed|override|unsafe)[ \t]+)*[][<>@.~_[:alnum:]]+[ \t]+[@._[:alnum:]]+)[ \t]*$\n"
>  	 /* Type definitions */
Previous: Steve HoelzerNext: Steve Hoelzer
Message 6 of 7 in “userdiff: support C# async methods and correct C# keywords”
  1. 1/2 userdiff: support C# async methods and correct C# keywordsSup Yut Sum, Jun 2, 2014
  2. 2/2 userdiff: support Java try keywordSup Yut Sum, Jun 2, 2014
  3. Junio C HamanoJun 2, 2014
  4. Junio C HamanoJun 5, 2014
  5. Steve HoelzerJun 6, 2014
  6. Junio C HamanoJun 6, 2014
  7. Steve HoelzerJun 7, 2014

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.