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.
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.
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.
> 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.
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.
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.
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.
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.
>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).
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.
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?
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/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
37 comments
[ 2.7 ms ] story [ 46.6 ms ] threadIn any case, I don't want to learn a new environment every time I change languages.
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.
As for emacs, have you tried Cygwin? I've heard it improves things.
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.
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.
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.
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.
But at the end of the day, I still think my apple is better. :-D
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.
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.
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! :)
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.
New and Noteworthy Extensions for Visual Studio – April 2016: https://blogs.msdn.microsoft.com/visualstudio/2016/05/02/new...
You can find the other posts and related ones using this tag filter on our official Visual Studio team blog: https://blogs.msdn.microsoft.com/visualstudio/tag/extensions...
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.
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.
Try to add scan exceptions for devenv.exe and your development folders.
Your mileage may vary.
I feel that there has to be...
(Requires Enterprise to create and make edits, Professional can open and make minimal edits)
(actually this is the better link for mapping dependencies: https://msdn.microsoft.com/en-us/library/dd409453.aspx)
I'd love to have some scope highlighter when inside a nested if-else.(Java)
- 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