From 0dbe52acf9de7ed99dbed54c41708d743fe7b69e Mon Sep 17 00:00:00 2001 From: WMJ Date: Fri, 16 Dec 2022 14:14:30 +0800 Subject: [PATCH] Version 7.0 --- Codist/Properties/AssemblyInfo.cs | 4 +-- Codist/source.extension.vsixmanifest | 2 +- README.md | 51 ++++++++++++++++----------- doc/smart-bar-refactoring.png | Bin 0 -> 35694 bytes 4 files changed, 34 insertions(+), 23 deletions(-) create mode 100644 doc/smart-bar-refactoring.png diff --git a/Codist/Properties/AssemblyInfo.cs b/Codist/Properties/AssemblyInfo.cs index b20f09bd..d9ddb0f8 100644 --- a/Codist/Properties/AssemblyInfo.cs +++ b/Codist/Properties/AssemblyInfo.cs @@ -10,6 +10,6 @@ [assembly: AssemblyCopyright("Copyright WMJ, 2022")] [assembly: AssemblyTrademark(nameof(Codist))] [assembly: ComVisible(false)] -[assembly: AssemblyVersion("6.0.0.0")] -[assembly: AssemblyFileVersion(Codist.Config.CurrentVersion + ".7700")] +[assembly: AssemblyVersion("7.0.0.0")] +[assembly: AssemblyFileVersion(Codist.Config.CurrentVersion + ".8000")] [assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] \ No newline at end of file diff --git a/Codist/source.extension.vsixmanifest b/Codist/source.extension.vsixmanifest index b9de863f..7afcaee8 100644 --- a/Codist/source.extension.vsixmanifest +++ b/Codist/source.extension.vsixmanifest @@ -1,7 +1,7 @@  - + Codist A C# programmer's productivity booster which enhances syntax highlighting, quick info (tooltip), navigation bar, scrollbar, display quality, automatically updated version numbers, and brings smart tool bar to code editor. https://github.com/wmjordan/Codist diff --git a/README.md b/README.md index 5f89aecf..0880845b 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ Check out this list to see what _Codist_ can do for you. ![Feature Brief Super Quick Info](doc/feature-brief-super-quick-info.png) * [Navigation Bar](#navigation-bar) with a drag-and-drop and filter enabled member list ![Feature Brief Navigation Bar](doc/feature-brief-navigation-bar.png) -* [Smart Bar](#smart-bar) with common edit commands and symbol reference analyzers +* [Smart Bar](#smart-bar) with common edit commands, C# code refactoring and symbol reference analyzers ![Feature Brief Smart Bar](doc/feature-brief-smart-bar.png) * [Scrollbar Marker](#scrollbar-marker) draws a powerful mini code map ![Feature Brief Scrollbar Marker](doc/feature-brief-scrollbar-marker.png) @@ -400,6 +400,14 @@ When we begin to work with new libraries, we usually have to learn new types and There are two buttons on the top right corner in the result list of symbol analysis commands. The _Pin_ button will keep the list on the screen. And you can use your mouse to drag those lists around. +### Code Refactorings + +From version 7.0 on, quite a few code refactorings are provided via a button on the C# Smart Bar. + + ![Smart Bar Code Refactoring](doc/smart-bar-refactoring.png) + +You can access the menu from keyboard by assigning a shortcut key to the `Refactor.RefactoringCode` command. + ### Symbol Marker _Symbol marker_ draws markers for C# symbols. @@ -529,26 +537,27 @@ Open the *Codist* section in the *Tools->Options* dialog. In the *General* secti I have learned a lot from the following extension projects (sorted by the time when I learned from them). Codist would not be what you see today without them. -* CommentsPlus: https://github.com/mhoumann/CommentsPlus -* Better comments: https://github.com/omsharp/BetterComments -* Remarker: https://github.com/jgyo/remarker -* Font Sizer: https://github.com/Oceanware/FontSizer -* Visual Studio Productivity Power Tools: https://github.com/Microsoft/VS-PPT -* Inheritance Margin: https://github.com/tunnelvisionlabs/InheritanceMargin -* CoCo: https://github.com/GeorgeAlexandria/CoCo -* CodeBlockEndTag: https://github.com/KhaosCoders/VSCodeBlockEndTag -* UntabifyReplacement: https://github.com/cpmcgrath/UntabifyReplacement -* Extensiblity Tools: https://github.com/madskristensen/ExtensibilityTools -* CodeMaid: https://github.com/codecadwallader/codemaid -* Select Next Occurence: https://github.com/2mas/SelectNextOccurrence -* VSColorOutput: https://github.com/mike-ward/VSColorOutput -* NuGet: https://github.com/NuGet/NuGet.Build.Packaging -* GoToImplementation: https://github.com/GordianDotNet/GoToImplementation -* Roslyn: https://github.com/dotnet/roslyn -* Community.VisualStudio.Toolkit: https://github.com/VsixCommunity/Community.VisualStudio.Toolkit +* [CommentsPlus](https://github.com/mhoumann/CommentsPlus), [Better comments](https://github.com/omsharp/BetterComments), [Remarker](https://github.com/jgyo/remarker): syntax tagger +* [Font Sizer](https://github.com/Oceanware/FontSizer): changing font size in syntax styles +* [Visual Studio Productivity Power Tools](https://github.com/Microsoft/VS-PPT): extending code window margin +* [Inheritance Margin](https://github.com/tunnelvisionlabs/InheritanceMargin): extending code window margin +* [CoCo](https://github.com/GeorgeAlexandria/CoCo): extensive syntax highlighting +* [CodeBlockEndTag](https://github.com/KhaosCoders/VSCodeBlockEndTag): adornments +* [UntabifyReplacement](https://github.com/cpmcgrath/UntabifyReplacement): replacing text in code window +* [Extensiblity Tools](https://github.com/madskristensen/ExtensibilityTools) +* [CodeMaid](https://github.com/codecadwallader/codemaid): how to support multi-language localization +* [Select Next Occurence](https://github.com/2mas/SelectNextOccurrence): code navigation +* [VSColorOutput](https://github.com/mike-ward/VSColorOutput): extending output window pane +* [NuGet](https://github.com/NuGet/NuGet.Build.Packaging): build events +* [GoToImplementation](https://github.com/GordianDotNet/GoToImplementation) +* [Roslyn](https://github.com/dotnet/roslyn): lots about code analysis +* [Community.VisualStudio.Toolkit](https://github.com/VsixCommunity/Community.VisualStudio.Toolkit): VS extension points * ReviewBoard: code.google.com/p/reviewboardvsx -* Tweaks: https://github.com/madskristensen/Tweakster -* VsStatus: https://github.com/madskristensen/VsStatus +* [Tweaks](https://github.com/madskristensen/Tweakster): VS tweaks +* [VsStatus](https://github.com/madskristensen/VsStatus): hacking the status bar +* [Roslynator](https://github.com/JosefPihrt/Roslynator): hundreds of code refactorings and analyses +* [ShowTheShortcut](https://github.com/madskristensen/ShowTheShortcut): discovering identifiers of executed commands +* [Copy Nice](https://marketplace.visualstudio.com/items?itemName=MadsKristensen.CopyNice): copying text without indentation And thank you, every donaters, beta testers, feedback providers to this project. @@ -575,3 +584,5 @@ If you like _Codist_, consider [buying me a cup of Chinese tea](https://paypal.m You can donate any amount of money as you like. The recommended amount of donation is `$19.99`. 5 donations have been received so far :) + +Well, you have already reached here. Why not give Codist a ★★★★★ rating on the [Visual Studio Extension Marketplace](https://marketplace.visualstudio.com/items?itemName=wmj.Codist)? diff --git a/doc/smart-bar-refactoring.png b/doc/smart-bar-refactoring.png new file mode 100644 index 0000000000000000000000000000000000000000..d892eaff6b964ca58b2e450aab98f415b57c4a11 GIT binary patch literal 35694 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 m=cyQm2|dxIe+