How can I sort Fields, Properties and Methods in Visual Studio?
Visual StudioVisual Studio Problem Overview
I know that for clarity in codes, I have to write first fields then constructor and then methods etc. But how can I automate it in Visual Studio?
Visual Studio Solutions
Solution 1 - Visual Studio
I think CodeMaid is the best free option for code formatting in Visual Studio.
To sort your file, open the file via solution explorer:
- Right click the open file
- Code Maid menu (likely near the top of the right click menu)
- Click
Reorganize Active Document
Alternatively, using the default CodeMaid hotkeys CTRL+M,Z to sort your active file.
Solution 2 - Visual Studio
ReSharper can sort your class members (fields, constructors, methods, delegates) by name, accessibility, type, readonly, etc... You can also surround specific members with regions. What I like the most is the ability to group interface members (e.g., #region IDisposable
with void Dispose()
method in it) and methods that handle an event.
ReSharper provides both - an easy way to configure and trigger the sorting of class members.
Configuration
Create a XML file within Visual Studio and copy-paste the default type member layout (ReSharper Options > Languages > C# > Type Members Layout) into that file. Download the latest XSD schema. Add the schema file to Visual Studio's schema files (Menu > XML > Schemas... > Add). You should be able now, to edit the XML file with the help of IntelliSense.
Triggering
If you use the Visual Studio keyboard scheme (ReSharper Options > Visual Studio Integration) and press Ctrl+E,F for Silent Code Cleanup. A dialog will pop up, where you can select a Code Cleanup setting. For this setting you should check Reorder type members. The second time you press the shortcut, ReSharper will automatically reorder your class members.
Solution 3 - Visual Studio
Visual Studio has no feature that allows re-ordering already written code. That's the domain of add-ons. Resharper has a "Reordering type members" feature but that's only supported for C#, not for VB.NET code. NArrange seems to be able to do this. No idea, never used it myself.
Solution 4 - Visual Studio
If Code Sorting is your only concern, you can try the Visual Studio Extension CodeSorter
> CodeSorter is highly customizable extension that allows its users to > sort C# code itby various conditions such as names, types (method, > class, struct, ...), visibility modifiers (private, public, ...), > constness modifiers (const, static, readonly) and virtuality modifiers > (virtual, override, new, ...). > > It is possible to assign multiple search criteria to have the same > priority, for example place protected and private members first, and > then publics and internals. > > Names are compared in a way that leading "m_" and "_" is stripped. > This allows fields and properties (eg. _foo and Foo) to be right next > to each other. > > One-lined declarations are placed without delimiting blank line, while > multi-lined declarations are separated by a blank line. The exception > is that one-lined field followed by a multi-lined property without > comment of the same name will be placed without the delimiting blank > line.
Solution 5 - Visual Studio
Another option I found is XArrange. It is free and can be installed from the Extension Manager.
Issues I took with it...
Solution 6 - Visual Studio
Limited sorting of lines is included with Visual Studio 2022.
To use: select the lines you want to sort and in the top menu click: Edit > Advanced > Sort Lines