However, I tried VSCode again last week after being disappointed by continued bugs in atom-typescript, and was happy to discover the Vim plugin (https://github.com/VSCodeVim/Vim) had made a ton of progress since I'd last given it a shot. It's still not quite as good as Atom's, but it's definitely getting there. Plus, the project's team is very active and friendly - I actually submitted a PR a few days ago fixing a bug (the VSCode extension development workflow is super easy, it turns out!) and they quickly merged it :)
I also found out that the VSCode developers know that it's an important plugin, and they actually have a category of issues on the VSCode repo specifically for extension APIs they need to add to make the Vim plugin as powerful as possible. This new update includes several of those, and I have a feeling by the end of the year the Vim plugin in VSCode will be on par or better than that of plugins for other editors.
I'm pretty busy right now, though, and will probably not get to finish it in the next week. If anyone wants to pick it up, I'd be really happy: https://github.com/VSCodeVim/Vim/pull/544
That is the benchmark that I use to judge other vim plugins.
https://github.com/aioutecism/amVim-for-VSCode
VSCodeVim was not that good at that time, but I haven't checked it recently for a fresh comparison. So make sure to also check out VSCodeVim in addition to amVim.
But Vim/Vi don't just have keybindings; they have modes. Emulating editor modes is a significant undertaking. It's not just a change to the settings file -- it requires a lot of programming work. I wouldn't hold my breath waiting for Microsoft to emulate Vim modes in VS Code. A plugin is your best bet.
Years ago this used to be called "hippie expand", but I can't figure out a more modern name that is used. Does anyone know what Visual Studio Code calls this feature, and/or how to enable it (assuming it even exists?)
Or you mean, that if you've got 2 text files open as tabs in the same VSCODE window typing in 1 tab will auto-complete with words from the 2nd tab?
Where have you seen this feature as it sounds AMAZING!
intelligent auto-completion knows the variable type and available methods/properties. Whereas the dumb auto-completion just match the words.
Historically, Visual Studio has only done the stricter "IntelliSense" style, but I am wondering if this new version handles the looser cases like TextMate and Sublime do.
I enjoy the fact that it gives an integrated experience and allows community extensions. This is a big change from atom where everything must be cobbled together, hope that it works and will break. My hope is that the MS team will pitch in on the most popular extensions per language and take them to the next level as well.
To top it off, it's one of the most open development processes I've ever seen. They have a clearly defined roadmap, release schedule and even tell you exactly how they work in the wiki (https://github.com/Microsoft/vscode/wiki). It's fantastic to see such a large company open up like this.
Full VS is a lot lighter than it used to be. There is a preview of 15 (confusingly, the next version after 2015) available now.
"Visual Studio “15” Preview 3 (which is different from Visual Studio 2015 Update 3)" - naming is hard.
https://blogs.msdn.microsoft.com/visualstudio/2016/07/07/vis...
Last time I checked, there's no official Python support. There are some unofficial plugins, but none of them have true Intellisense support for Python. (e.g. a la Pycharm, or even Visual Studio Tools for Python).
I know they mentioned they were working in it a few months ago on a HN thread, but I haven't heard anything about it since.
Edit: it looks like an issue about tasks.json presents some good examples: https://github.com/Microsoft/vscode/issues/981
Edit2: and here's the information about variables: https://code.visualstudio.com/docs/editor/tasks#_variable-su...
With Visual Studio Code, I think, MS is trying to reinvent their VS family of products. Since the current Visual Studio is strongly tied to Windows and MS has accepted the multiple operating systems future (I think, in MS roadmap, revenue from Cloud Operations is one of the major factor), it's important for them to have a developer platform which works great on all the operating systems. HTML5 and JavaScript provide this opportunity to create that development tools platform for the future.
It also leaves the possibility open to port it inside browser/cloud with a lot of code reuse. If Internet Speeds improve a lot and computing in cloud becomes a lot more cheap, I think in next 10 years, for typical web projects, developers might just prefer remote development environments, which they use for coding from an App/Browser.
It's good to see that MS didn't wait to first port .Net on major Operating Systems as part of their .Net Core initiative and then write their cross platform development environment on top of that. Instead they have taken the bet on HTML5/Electron.
They are providing the same tools they use to drive VSC to many popular editors, including Emacs and Vim as well. It seems that Microsoft wants to give you the best support they can in whatever environment you like!
What Sublime has going for it versus these other editors is ease of use and a much better looking UI. But VS Code has that too, and it's free.
FOSS has spread so much that IT is probably the only industry where people nowadays expect to sell their work using tools they got from others for free.
It is very hard to make a living from donations and books (which tend to get pirated) alone.
Peek definition. when you want to peek a few lines of a method or type, you don't have to go away from the current position. In Sublime and Atom, it really bothers to open another tab.
Navigation through overloaded methods.
When a text editor is built to help people coding easily and make itself extended easily, it has to include some basic infrastructure so that extensions can focus on their specific implementations.VSC does this well, it is not only a text editor, but also have a skeleton of an IDE, and left all other things to extensions.
For one, nice git integration. You can see lines added/changed/removed in the gutter, unobtrusively.
Sublime has a plugin that does something similar but it's not out of box and it's not as nice/polished.
This is just one thing.
I got used to the UI after some time and haven't had stability issues, but a lot of extensions I've tried have been half-baked or worse. My main complaint is that cold startup is too slow to use as an all-purpose editor.
Add the Node.js Tools for VS and the Tools for Apache Cordova extensions (including the kick-ass VS emulator for Android) and you've got a complete kit for programming JS everywhere. Developing ionic apps with this tool is an absolute dream.
EDIT: And it's free.
WebStorm is the best, but it's absolutely loaded with features that most people won't use. VS Code supports most of these same features, but they must be implemented manually via config files and scripts. A lot of people will prefer the latter approach because it leads to a leaner starting configuration.
I found the debuggers of all three to be fairly similar, although VS Code's was very slightly less usable.
Edit: To clarify, I used VS Code and VS 2015 at the same time. After getting frustrated with both, I switched to WebStorm and haven't looked back. Every time I think up a "nice to have" feature, I find out that it already exists and is configurable via GUI.
My favourite thing about VSCode is how fast it is. WebStorm and Atom are dogs.
As a code editor, I've really liked VS Code.. I haven't ever setup any integrated debugging, or used the tasks options... so I can't comment for that, but for my use it's been very stable.
If you want a full blown IDE with integrated debugging, etc, then you're right, it's less than ideal... having to edit json config files is cumbersome, and I'm guessing they'll get a GUI over that once it's more feature complete... as it stands, the core works well...
Though I do wish I could get pre-tabs behavior back, once I got used to it, I preferred the switcher ui on the left.
That's not enough, especially when it comes to setting up debugging, which c'mon, everyone needs. The json config file for C++ debugging has zero documentation. Until there is some more documentation besides the extensions readme, it's going to be a little challenging for new users to pick this up and have a delightful experience.
I'd suggest installing the clang extension, this was the best out of the box experience for auto completion etc in VSCode.
I know it isn't ideal, but in the meantime, the best way to get more info is probably the comments that appear when hovering over the fields in the launch.json file or to open up the package.json file to read the comments about each available field in the schema for the extension. The package.json can be found in the .vscode sub-folder of your user account. On my machine, this would be ~/.vscode/extensions/ms-vscode.cpptools-0.8.1\package.json.
Can you confirm that you have seen that doc? I opened an issue on github to address the lack of documentation for C++ debugging. https://github.com/Microsoft/vscppsamples/issues/135
Been very happy with VS Code, though I wish I could revert to pre-tabs file behavior, I'd like the space back... it took getting used to, but the list switcher was a better UX imho.
This works well enough in practice, but it relies on a few strange hacks. For example, it writes a marker into the console's backbuffer to detect window scrolling, and it enables mark-mode in the hidden conhost window to "freeze" it while it queries for changes. Also, it's not very robust to changes in the console implementation, so it broke for a little while due to the console changes in Windows 10 (though this was fixed quickly.)
Because of this, it's strange to see Microsoft using it in an official product. I'd love to see them add a proper pseudoterminal (pseudoconsole?) API to Windows 10. There is clearly a need for it.
(not bashing. just saying it's amusing. I freakin love VSC.)
I tried to sign in with Github, but the site requests full read/write access to my account details, my private/public keys and all repositories. Wat.
What I am talking about:
* new Foo|
* <Ctrl+Space>
* (Automatically inserted by editor top of the file where imports are) import {Foo} from "../relativePath/to/Foo.ts"
* new Foo(param);|
Working on a large TS codebase without this is absurd. Webstorm is way ahead of VSCode in this area, including things like multiple named imports like: * import {Foo, Bar} from "../../foobar.ts"
Additionally, things like refactoring filename that affect the all imports that reference that filename -- not sure if that got added in VSCode recently tho.https://www.visualstudio.com/en-us/dn948229
I guess it's open source though so if anyone's really bothered they could fork it and take all that stuff out.
https://github.com/Microsoft/vscode/issues/5537I think HN is precisely the place to highlight things like that.
But just being able to type some code, set a breakpoint, run to it, and inspect some locals makes me so much more productive than the Printf driven debugging that so many masochists still cling to.
AFAIK the only editor that really supports the Firefox Debugging Protocol so far.
Other than that I absolutely love vscode. I use it on osx and linux daily. It really hits the sweet spot for my work flow. Cheers to the team for another great release.
Thanks for all the efforts to make vscode a great tool.
Hopefully I can uninstall Notepad++ in the near future!
Sold me on it.