Hey Guys,
NimStudio is up on GitHub. The most interesting thing at this point is probably the Intellisense screencaps. Also see the Wiki.
It's very early in development, but I think it's useful at this stage. There is a lot remaining to be done.
I'd appreciate anyone willing to test and provide feedback. Even better would be code contributors! Feel free to post any comments to the issues page (or here if that's OK with Araq and crew).
Apr-14-2015 Update: Improved syntax highlighting.
It's not perfect, but it's much better than before. Also, the new tokenizer will be a basis for outlining, which I hope to tackle next.
Also, I added pre-built win32 binaries. More here.
Apr-15-2015 Update: Automatically adds External Tools menu entries for compile/run
Will definitely be checking this out later, intellisense/code completion would send my Nim productivity through the roof :D
Nice work!
This looks great, but... Visual Studio... any hope of this getting ported to a free editor like, say, ATOM?
Looks like this may be the most evolved IDE support available for Nim so far? It would be nice (or probably even necessary for Nim to succeed at scale) to have this level of code intelligence in an open-source IDE.
...a free editor like, say, ATOM?
From your comment, not sure if you're aware that Visual Studio Community edition is free. They started doing this in Nov 2014. Previously they always gave away an "Express" edition, which was seriously limited. Now, the Community edition is equivalent to Pro, and has no limitations.
http://en.wikipedia.org/wiki/Microsoft_Visual_Studio#Visual_Studio_Community
Definitely need to default to spaces instead of tabs in the Text Editor -> NimLang -> Tabs section
Also I notice the highlighter is higlighting the comma between parameter declarations. At least when the type is explicitly specified
From your comment, not sure if you're aware that Visual Studio Community edition is free
I did not know that!
My daily workstation is Windows, so I'm in luck - I'll give it a whirl :-)
Linux users are not so lucky, I guess...
@Orion
Definitely need to default to spaces instead of tabs in the Text Editor -> NimLang -> Tabs section
Very true, thanks. I committed this update.
Also I notice the highlighter is higlighting the comma between parameter declarations...
This was an intentional hack to allow coloring of some types in declarations, since I don't yet understand the scanner/tagging code well enough to do better. Otherwise they were showing up as plain text. I'll definitely address this. Ideally, all types should map to the "VS Fonts and Colors->User Types->*". Also I think it's possible to add extension specific types. I think Python Tools did this.
Just a quick reply to say that I've briefly tried out NimStudio and it seems to work well!
I don't usually use VS so it's a bit weird going back to it (is there an option somewhere to highlight the current identifier throughout the code - even if it's just a text match a la double click with Sublime?)
The suggest feature is what I came for and it works well :) After initially installing it and setting it up it seemed to be a bit flakey for some reason, as in it wouldn't pop up the suggest list when CTRL-J was used for some types but did for others (worked for numbers and strings but not for more complex types), but after closing it and coming back to it everything seems to be working well now. If it happens again I'll note down what it occurred on, but it's probably just user error on my part ;)
Honestly, I know people have said it's easy to look up the source code for things, but it's just SO much easier to use code suggest when working with other people's code rather than having to manually look through the module and easily miss something.
Also, does anyone else find Nim modules kinda hard to gleam the published procs from without scrolling through the whole module? It'd be amazing to have something that just showed you the published procs of a module as a list!
Great work though, I'm going to be making use of this in my home projects - I think it'll come in handy immediately when using modules (for example basic3d) that have a lot of procs that use the types. It's a great way to be productive whilst learning the interface for a module.
@coffeepot: Thanks for the feedback! At this early stage, I'm glad to hear it works at any level.
There is a VS feature, at least for C#/VB, "Highlight references to symbol under cursor". If possible, I'll add it. I created an issue: https://github.com/Gravityzwell/NimStudio/issues/1
A simple workaround, which actually I tend to use in lieu of the above, is to place the cursor on a symbol and do Ctrl+F. All instances should then be highlighted.
The intellisense features definitely have some bugs, so it's not just you. Hopefully they will get worked out in time.
FYI, I committed a new VSIX. The significant change is improved syntax highlighting. https://github.com/Gravityzwell/NimStudio/wiki/Syntax-Highlighting
It's not perfect, but it's much better than before. Also, the new tokenizer will be a basis for outlining, which I hope to tackle next.
I'll give it a try. I always wanted Nim support for Visual Studio. There was already VisualNimrod but i think its author didn't have time to work on it anymore.
Thank you very much for your work dude !
I thought it worthy of mentioning, I added pre-built win32 binaries, and compile/run menu entries to External Tools. This should significantly ease the path to a successful "Hello World".
Details in the Getting Started page.
...Any reason why parameter names aren't included in intellisense?
Yes, because nimsuggest, which NimStudio uses for intellisense, does not return parameter names (yet).
I did request it , and Araq said it would be included. But it's not there yet. Alternatively, I may just go ahead and parse parameter names (and signatures, etc) in VS, rather than calling nimsuggest.