Refactor on save in Visual Studio 2019 - refactoring

I love Prettier for VS Code. I want to do similar things in Visual Studio (2019).
It now has 'Wrap, indent, and align parameters or arguments' for example (https://learn.microsoft.com/en-us/visualstudio/ide/reference/wrap-align-indent-parameters?view=vs-2019); and I'd like to do this automatically whenever I save the file.
Does anyone know if this is possible? Or if there's a free extension that can do this?

Mads Kristensen (a Microsoft employee who makes scads of Visual Studio extensions and teaches you to too!) made a JsPrettier extension for "classic" Visual Studio (ie, not VS Code):
https://github.com/madskristensen/JavaScriptPrettier
It does not format on save if you set that up in its settings.
If it's literally Prettier in Visual Studio that you're after, this isn't a bad option.

I don't know of a free plugin but you can get quite a long way towards this with some muscle memory and the built in autoformat command.
CTRL+E, CTRL+D, CTRL+S
will do code indentation and formatting, and save the file.
If you have Resharper (sorry), there's a configurable code cleanup tool which will do what you want and CTRL+E, CTRL+F, CTRL+S will do the cleanup and save.

The Format document on Save VS extension does exactly what you want, with one exception. It automatically runs Visual Studio's code cleanup command on save.
Visual Studio's code cleanup commands covers many code style preferences and can be configured with a .editorconfig file. Unfortunately one thing that is not supported by VS yet (not counting Resharper) is line wrap preferences. There is an open ticket for this: dotnet/roslyn#33872
If and when Roslyn supports line wrap preferences (presumably as a new .editorconfig preference), then Visual Studio code cleanup will enforce it and the extension will apply it on save.

Related

Visual Studio extension: How to make editor text behave like a link

I would like to write a Visual Studio extension, that makes a part of the text behave like a link: blue, underlined on hover, open a URL on click. (Like the default editor works for http://... texts.)
I can do classification (coloring) and also custom adornments and commands, so I could probably make this "manually", but I wonder if there is an easier way to do that.
I am interested to do this in normal Visual Studio (2017 or newer), not VS Code.
You can use UrlTag.
On how to use tags see Walkthrough: Highlight text and Visual Studio 2017 Extension development tutorial part 5: Highlight code in Editor.

How to make word wrap respect indentation in Visual Studio?

Visual Studio has a word wrap feature, but frustratingly it ignores line indents, making the text hard to read. Other text editors (Notepad++, Sublime Text) simulate the indentation of wrapped lines, making code easier to read
How can I make Visual Studio 2012 wrap lines intelligently? Smartly?
See in Notepad++, 'of beer' is wrapped appearing in line with Console
Where as in Visual Studio, 'bottles of beer' juts out into the indentation, making the code shape hard to read.
Good news: In Visual Studio 2013, word wrap properly respects indents!
However there's a number of remaining issues with it (eg. around the Home/End keys). Please vote at https://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/5574507-fix-behaviour-of-home-end-keys-when-word-wrap-is-e
Alas, it's not possible. Bug to the Visual Studio developers at http://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/3285423-wrap-lines-intelligently-simulating-indents- . Please vote for it!
This extension does what I want, but only for Visual Studio 2010 :/
http://visualstudiogallery.msdn.microsoft.com/ac95f80f-6cfd-4b67-b0fd-e9c5c8fb27de
NB. I tried hacking the extension manifest to make it install on 2012 but the behaviour went awry. The extension needs a real update
For VS2012, there is an extension
http://visualstudiogallery.msdn.microsoft.com/a5b5001e-fe7a-4c08-9cf5-96ae5892088a
It does the same thing...

Visual Studio surround with current line if nothing selected

I'm using the Surround With feature in Visual Studio with some custom code snippets. Is there a way to configure visual studio (or a custom surround snippet) to treat the entire line like it is selected, if there is currently no selection?
The same functionality is provided when you do a keyboard shortcut such as Ctrl+C, Ctrl+V etc. If you have no selected text, it performs the action on the entire line.
If someone still wants to answer this as far as doing this with Visual Studio's native functions, they can - However it was pointed out to me in a comment that resharper does this automatically. Which is something I did not realize. Seem's I'll be moving all my VisualStudio surround snippets over to Resharper Surround templates!

Code editing in Visual Studio like it is in Aptana Studio

Is there any plugins to Visual Studio that enables you to have the wonderful type-style you get in Aptana Studio, ie:
Auto brace completion
Auto indentation of braces (and other characters) whenever 'enter' is pressed inside the braces, like so:
Before enter:
{*}
After enter:
{
*
}
Is it possible to make this work in Visual Studio (via plugin or otherwise)?
You can use, for instance, Resharper, http://www.jetbrains.com/resharper, which is a pay-for plugin for code style, code refactoring and formatting. Rather advanced.
There's also Visual Assist X, http://www.wholetomato.com/, as well as JustCode, http://www.telerik.com/products/justcode.aspx and a whole lot more. Several products available, most of them for money, most of them good. =)
Check Productivity Power Tools. It has plenty of nice stuff:
Auto Brace Completion
Quick Find
Enhanced Scrollbar
Searchable Add Reference Dialog
and others.

Is there a visual studio automatic save configuration setting?

I use the java IDE IntelliJ IDEA and one of the features I like is that there's no saving. Everything's always saved and you just use history navigation. I tend to have both editors open and I'm always forgetting to save in VS.
I'm running vs 2008 with resharper 4.5 but as far as I can tell this isn't achievable or configurable.
Any suggestions?
For VS 2019, the Auto Save File extension seems to work as expected.
It saves individual files on lost focus, can save all files when VS loses focus and can also save all after an inactivity delay.
In VS 2015, I used to use NoMorePanicSave2015.
It does an equivalent of Ctrl+Shift+S when Visual Studio loses focus, which saves all your files, including solution and projects.
Another plugin: CBAutoSave
This extension can automatically save modified documents, projects, and the solution whenever Visual Studio loses focus.
Saving of modified documents is on by default, while automatically saving projects and the solution is not. All options are configurable through the Visual Studio options dialog.
In VS2017/19 Community there is Auto-Recover option under tools->options->autorecover. It will not autosave unless there is a crash, so it may be a good compromise.
In VS2019 its under tools->Options->Environment-AutoRecover.
how-to-auto-save-work-on-visual-studio
Visual Studio 2008 will probably be the same:
http://www.howtogeek.com/howto/programming/configure-autosave-autorecovery-of-crashed-projects-in-visual-studio-2005/
However, it's not "no saving" but you can set it down to 1 minute.
Visual Studio 17.2 can now automatically save code documents whenever the application loses focus. This feature can be accessed via Tools > Options > Environment > Document.
There is an autosave, but I must admit that it doesn't seem to always work for me - notably I suspect that it only saves files, but not projects/solutions, or the .user and .suo files. I don't have any links to prove this mind you.
Visual Studio 2022 (Enterprise) has auto save option. But you have to enable it.
Navigate from Tools > Options > Environment > Preview Features and Enable the autosave.
here is a screenshot

Resources