On 26 Apr 2014, at 10:10, Johannes Sixt <j6t@xxxxxxxx> wrote: > Am 26.04.2014 01:25, schrieb Marius Ungureanu: >> New keywords: foreach, break, in, try, finally, as, is, typeof, var, >> default, fixed, checked, unchecked, this, lock, readonly, unsafe, >> ref, out, base, null, delegate, continue. >> >> Removed keywords: instanceof. It's only in Java. >> Moved keywords to happen before modifier parsing, as matching a keyword >> will stop modifiers from being matched. >> >> Added method modifiers: extern, abstract. >> >> Added properties modifiers: abstract. >> >> Added parsing of events and delegates, which are like properties, but >> take an extra keyword. >> >> The reasoning behind adding unsafe to keywords is being also a >> statement that can happen inline in code to mention blocks which are >> unsafe. Also, delegates are not necessarily declared in class bodies, >> but can also happen inline in other functions. >> >> Keywords are based on MSDN docs. >> >> Signed-off-by: Marius Ungureanu <marius.ungureanu@xxxxxxxxxxx> > > Thanks for your contribution. > > Please write the commit message in imperative mood, and use full > sentences, not just fragments and avoid contractions ("it's"). Also, > don't capitalize the subject line and drop the full-stop: > > update C# userdiff patterns > > Add new keywords: foreach, break, ... > > Remove keyword instanceof because it is only in Java. … > Hey! I’ll fix the commit message and description. > BTW, it is now dead easy to add test cases for userdiff patterns. Just > drop files with content like this into t/t4018: > > ---- t/t4018/csharp-ignore-statement-keywords ----- > class Foo { > public int RIGHT() > { > if (x) > else > try > catch (y) > ... > > ChangeMe; > } > } > ———————————————————— > Great, I’ll make another commit with adding unit tests. Thanks! > (This I just invented, I don't do C#.) See the README file in that > directory. > >> --- >> userdiff.c | 12 ++++++------ >> 1 file changed, 6 insertions(+), 6 deletions(-) >> >> diff --git a/userdiff.c b/userdiff.c >> index fad52d6..7612c5d 100644 >> --- a/userdiff.c >> +++ b/userdiff.c >> @@ -133,14 +133,14 @@ PATTERNS("cpp", >> "|[-+0-9.e]+[fFlL]?|0[xXbB]?[0-9a-fA-F]+[lLuU]*" >> "|[-+*/<>%&^|=!]=|--|\\+\\+|<<=?|>>=?|&&|\\|\\||::|->\\*?|\\.\\*"), >> PATTERNS("csharp", >> - /* Keywords */ >> - "!^[ \t]*(do|while|for|if|else|instanceof|new|return|switch|case|throw|catch|using)\n" >> /* Methods and constructors */ >> - "^[ \t]*(((static|public|internal|private|protected|new|virtual|sealed|override|unsafe)[ \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" >> + "^[ \t]*(((abstract|extern|internal|new|override|private|protected|public|sealed|static|unsafe|virtual)[ \t]+)*[][<>@.~_[:alnum:]]+[ \t]+[<>@._[:alnum:]]+[ \t]*\\(.*\\))[ \t]*$\n" >> + /* Properties, events, delegates */ >> + "^[ \t]*(((abstract|internal|new|override|private|protected|public|sealed|static|unsafe|virtual)[ \t]+)*((delegate|event)[ \t]+)*[][<>@.~_[:alnum:]]+[ \t]+[@._[:alnum:]]+)[ \t]*$\n" >> /* Type definitions */ >> - "^[ \t]*(((static|public|internal|private|protected|new|unsafe|sealed|abstract|partial)[ \t]+)*(class|enum|interface|struct)[ \t]+.*)$\n" >> + "^[ \t]*(((abstract|internal|new|override|partial|private|protected|public|sealed|static|unsafe)[ \t]+)*(class|enum|interface|struct)[ \t]+.*)$\n" >> + /* Keywords */ >> + "!^[ \t]*(as|base|break|case|catch|checked|continue|default|delegate|do|else|finally|fixed|for|foreach|if|in|is|lock|new|null|out|readonly|ref|return|switch|this|throw|try|typeof|unchecked|unsafe|using|var|while)\n" >> /* Namespace */ >> "^[ \t]*(namespace[ \t]+.*)$", >> /* -- */ > > Here, you are moving keywords down, but in the commit message you say > that you "moved keywords to happen before modifier parsing". Aren't you > moving keywords *after* something? (Where the "modifiers" are here is > not obvious, but that can be attributed to that I don't do C#.) > It was a typo because I was sleepy. It was intentional to move them *after*. Modifier parsing can contain keywords, so just to be sure, I moved the keywords after modifier parsing, so it uses the keywords as a fallback. If this is not what should happen, please tell. Modifiers are prefixes to methods/properties. (the pipe separated lists) > BTW, I appreciate that you re-arrange keywords alphabetically. Could you > do that in the commit message, too? > > — Hannes I’ll handle this too, no problem. Thanks, Marius -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html