37 comments

[ 2.7 ms ] story [ 46.6 ms ] thread
As an Emacs user, I'm looking to see anything I'd find useful here... nope. The few useful ones have Emacs equivalents, and most of them wouldn't even qualify as extesions: they're just snippets I'd drop in my .emacs file.
Well. Emacs is trying to be everything and is extremely powerful. VS on the other hand is better in its own domain than Emacs.
But what IS the VS domain? Is it just plain text editing? Because Emacs can smash it at that. Is is programming? Because Emacs beats it in the general case at that, too. Is it programming in a very specific language? This is where it starts to win out, but I don't want to switch editors every time I switch languages, and Emacs does all of that Good Enough. It even has semantic autocomplete in some languages at this point. The only thing it's missing is refactoring tools, which aren't as important when you're not writing Java.
Have you ever programmed in C#? That's what VS is good at.
The point I made in the post is that while VS might be better with C#, Emacs works well with everything, works Good Enough with most languages, and pretty good for C#. In fact, looking over the feature list for Emacs C# editing (https://www.emacswiki.org/emacs/CSharpMode), I can't find anything obviously missing from VS.

In any case, I don't want to learn a new environment every time I change languages.

Why would you learn Emacs if you do only C# or other MS technologies and have already mastered VS.And that was exactly what my comment was about. Emacs is the best general purpose tool that you can tweak to your needs and make it also superior in things of your choosing. VS works well what it was designed for.

Also as an Emacs user working on Windows I have to tell you that Emacs experience and performance is sadly subpar compared to OSX or Linux.

Why would you learn only one set of technology? I suppose that's my main issue.

As for emacs, have you tried Cygwin? I've heard it improves things.

> In any case, I don't want to learn a new environment every time I change languages.

I don't see anyone advocating that you be forced to do so. Hell, as a vi(m) user, Nature's perfect enemy of an Emacs user, I don't actually give a damn as long as you get the line-endings right.

If you were looking for a list of extensions for Emacs (or macros or whatever), then feel free to contribute a list.

Nah, I was just seeing if there might be some good extensions that I should look for (or write) in Emacs-land. None of them seemed to be all that worthwhile, IMHO.
Debugging. VS has a pretty amazing debugging experience.
Does it beat the Emacs debugging experience? We've got some pretty sweet debugging integration.
MSVS has "edit & continue" for C# code. It also has backwards step debugging with Intellitrace.
Jeez. That's actually quite impressive! I mean, well done.
In general I'd agree, but in the newest Visual Studio 2015 I can consistently hang it if I debug too fast.
>But what IS the VS domain?

Things like C++ that's specific to Win32 API, C# and ASP.NET, and Windows Phone apps (but that device isn't so popular).

>, but I don't want to switch editors every time I switch languages,

I regularly switch around from MS VS for C++ Win32 API & C#, to Qt Creator for C++ on Linux, to Jetbrains IntelliJ/Webstorm for Java/Android/Javascript, and to Apple Xcode for iOS/Swift.

It doesn't seem that hard to do that. Yes, every vendor-specific editor has its own non-standard keyboard mapping for things like build, debug, run, etc but my brain has no problem mentally remapping on-the-fly to each editor. Press F5 to Run the project in MSVS and then press shift+F10 to Run in IntelliJ. I'm no genius and yet my brain has no problem switching in quick succession. What's really hard is switching from an American physical keyboard to a German one -- e.g. my muscle memory wants to press the key for 'Z' but I always end up with the letter 'Y'.

I can see the advantages of trying to create a universal editor environment in vi/emacs that works on every language but I've tried it and it's not worth it. The customization capabilities (and effort required) in Emacs doesn't match the advanced integrated tools of the vendor-specific code editors.

>The only thing it's missing is refactoring tools, which aren't as important when you're not writing Java.

I also use refactoring for a bunch of other languages like C++, C#, Javascript, and Swift.

> In fact, looking over the feature list for Emacs C# editing (https://www.emacswiki.org/emacs/CSharpMode), I can't find anything obviously missing from VS.

MSVS has the GUI dialog editors for Winforms, WPF, ASP.NET. It also has tight integration with SQL Server. It also has slick integration with Azure if you're doing cloud deployment. And if I'm inside a main.cpp file with the cursor is hovering over CreateWindow(), pressing F1 will bring up the exact MSDN documentation for that Win32 function. Last time I looked, Emacs didn't have all that without a lot of customization work.

Conceivably, you can customize Emacs to do anything. However, with MSVS, all the integration of helpful tools (the stuff beyond just syntax highlighting of code) works right out the box.

...Whereas as an Emacs user, I put a lot of work into customizing my tools, learning to work as efficiently as a possible with the tools I have, and all that, and so have a greater connection to them.

We don't have Dialog editors built in, we don't have SQL Server or Azure integration. But we do have doc intgration, courtesy of OmniSharp for C#, and courtesy of various packages for other languages.

Sure, it's a good bit of work, but you get a better environment out of it.

> Sure, it's a good bit of work, but you get a better environment out of it.

That's subjective, though. For some people, it's use the same tool for as much as possible; for others, it's use the right tool for the job.

There's pretty much no objective way to compare Emacs to Visual Studio (or any other IDE, for that matter) since they all perform the same general functions, some more generally than others. When you get down to specifics, it's usually a case of apples and oranges.

It's a fair point.

But at the end of the day, I still think my apple is better. :-D

Visual Assist was helpful for Unreal Engine 4 programming as the default VS code completion was insanely slow
Oh, that is good to know! I have both Visual Assist and ReSharper but have been mostly been using ReSharper lately. Will try Visual Assist for the next UE4 work I do.
May have to try Visual Assist again since ReSharper moved to this awful licensing model and is getting increasingly slower with every release.
Here are a few more that I use:

EditorConfig - Reads your .editorconfig files and applies their settings.

Markdown Editor - Edit Markdown with live preview.

Smooth Scrolling - Use smooth scrolling instead of jumpy scrolling, nice for two-finger touchpad scrolling. There are also two different extensions named "Smooth Scroll" (no "ing") that do similar things. I've had one or another of these work better depending on the machine.

Strip'em - Force consistent newlines when files are saved. (Note this is not in the extension gallery, you have to get it from the developer's site.)

TabSanity - For projects that insist on spaces for indentation, makes the left and right arrow keys jump a full indent level instead of one space.

Text Macros for Visual Studio 2012/2013/2015 - Adds some of the keyboard macro support that went AWOL some years ago.

And of course things like ReSharper or Visual Assist, plus language specific extensions like HLSL Tools, PowerShell Tools, Python Tools, etc.

+1 for EditorConfig

Free ones I also use:

Trailing Whitespace Visualiser -- marks trailing whitespace in red and can automatically strip it on save.

Editor Guidelines -- Fixed vertical column guides

ArrayPlotter -- plot data in arrays on a x/y graph

cppcheck add-in -- run cppcheck from within MSVC

And Visual Assist of course.

Thanks, a few of those are new to me - I will check them out!
>TabSanity - For projects that insist on spaces for indentation, makes the left and right arrow keys jump a full indent level instead of one space.

Hold your control key down while hitting right/left arrow. This will jump to the beginning or end of the next word (effectively skipping the tab/spaces).

Now you can remove an extension! :) 

Thanks. I do use ctrl+left/right all the time, along with their friends ctrl+shift+left/right. The Home key is also handy since it toggles between the beginning of the line and the first non-whitespace character on the line.

I still like TabSanity, though. Perhaps it's because I use tabs in all my own projects and I like the way the left-right keys move one indent at a time. So having those keys work the same way with space indentation has a certain comfort to it.

As someone who uses visual studio at work everyday I often find it incredibly slow and thats even without any extensions. I am curious if you use VS do you use it on windows severs or are you running windows 10? Also as far as the slowness often how large are you projects? Do you run your TFS work space local or server?
The only thing that it really chokes and dies on is if I try to open a mix of C#, SQL, JS and HTML files at the same time. I'm not totally sure what it is doing or analyzing, but the memory usage jumps up to somewhere north of 2GB with a lot of disk thrashing, when I might have 200 kb of text files open. JavaScript intellisense seems to be the most likely culprit, to the point that I have gotten in the habit of doing all front-end editing work in WebStorm, and reserving VS for the backend code, which is a much happier experience.

This is on Windows 10, with a solution of about 15-25 projects. At one point it was close to 100K LOC, but that was before we went in with fire and sword to remove some terrible, terrible amounts of redundancy, so it's considerably less now.

Im using it on windows server 2008r2 it works fine. The only thing that slows things down for me is opening a sql file, so I never do that.
I have also similar issues with VS2015.

It's painfully slow without any extensions installed, even with a relatively small 200 kloc C++ project.

Just switching between source code tabs takes about 2 seconds.

In my experience with vs2015 and Windows 10, Windows defender can cause big slow downs.

Try to add scan exceptions for devenv.exe and your development folders.

Your mileage may vary.

I have a ton of extensions for VS 2015. I'm getting worried though that they all are collectively bogging down Visual Studio. Is there a way to profile what is causing freezes in VS?
This might b a good place to ask - is there a way to browse c# source code by traversing dependency graph instead of a list of files?

I feel that there has to be...

Anybody knows similar extensions/plugins like Viasfora for IntellijIDEA?

I'd love to have some scope highlighter when inside a nested if-else.(Java)

Since we're sharing, here are some good addons that I like:

- https://github.com/tom-seddon/VSScripts (disclaimer: written by me - however I didn't write it because I think it's useless!) - insert text by printing from command line tools, and alter text by piping selection through a command line tool

- http://www.usysware.com/dpack/ - addons that improve the code browsing experience a bit (I particularly like the methods and file browsers)

- https://visualstudiogallery.msdn.microsoft.com/1290e058-33da... - word-wraps comments for you. An absolute godsend if you want to write meaningful comments without going nuts

- https://visualstudiogallery.msdn.microsoft.com/a1141bff-463f... - makes the debugger auto-attach to child processes when launched by your main process. Highly recommended if you work with multi-process stuff - the out-of-the-box UX for debugging that sort of thing isn't great, but in my view this pretty much fixes it