nickspoons / vim-cs

Official Vim Runtime Files for C#
9 stars 3 forks source link

Possible improvements to pull from OrangeT/vim-csharp #1

Closed idbrii closed 6 years ago

idbrii commented 6 years ago

I've been using OrangeT/vim-csharp. There are a couple things you may want to pull from there:

Handle global::

" :: is usually an error in C#, except for the special case of "global::"
syn match csOperatorError       display +::+
syn match csGlobal                      display +global::+

default get as csContextualStatement

syn match csContextualStatement /\<\(get\|set\);/me=s+3

I'm not a C# expert and I'm not entirely sure how these work, but there were the most interesting when I looked at the diff. There's also some differences in handling class names, but I don't know if that's an improvement. (The current typeof is not an improvement and I submitted a PR there to fix it.)

Thanks for taking over maintainership!

nickspoons commented 6 years ago

Thanks @idbrii.

I have been looking at OrangeT/vim-csharp too. There are a few differences, some of which (as you note) are similar but handled differently, it's hard to know which is better. In several cases the vim-csharp version is more complicated than this version, but as your PR shows, that's not necessarily better - unless we can fix it! The get/set/typeof here are just simple keywords.

The thing I'd been most interested in from vim-csharp is the pending PR for string interpolation, but unfortunately it doesn't seem to do much. The $ and @ get highlighted but not the internal {} and their contents.

So I think I (we?) should start thoroughly testing language features one by one and pulling improvements in here. Some examples the one you provided in your vim-csharp issue are a great place to start.

nickspoons commented 6 years ago

@idbrii I've updated to allow global::, and included get;/set; in the csContextualStatement regex, so I'll close this issue.

Please do open issues or PRs for other improvements you're keen on, and thanks for your input so far.