From bd1a1451e511fa51b0800f78a70099ac94c2b233 Mon Sep 17 00:00:00 2001 From: WMJ Date: Fri, 28 Sep 2018 09:39:00 +0800 Subject: [PATCH] Version 3.9: + Double-tapping Shift key to show Smart Bar and option to control the auto display of it + Tweaked Smart Bar display position + Added more commands to Smart Bar + Added an alternative style for C# Quick Info + Better theming and preview of syntax style config pages + Symbol marker command enhancements + Inherited XML Doc + Updated documentation for Codist --- Codist/CodistPackage.cs | 2 +- Codist/Properties/AssemblyInfo.cs | 2 +- Codist/source.extension.vsixmanifest | 2 +- README.md | 32 +++++++++++++++++++++++++-- TestProject/TestPage.cs | 1 + doc/comment-tagger-options.png | Bin 21366 -> 57304 bytes doc/csharp-options-3.png | Bin 17268 -> 50849 bytes doc/csharp-options-symbolmarker.png | Bin 0 -> 62383 bytes doc/csharp-options-xmldoc.png | Bin 80737 -> 73864 bytes doc/general-options.png | Bin 22928 -> 57829 bytes doc/smart-bar-options.PNG | Bin 0 -> 48441 bytes doc/symbolmarker-effect.png | Bin 0 -> 20623 bytes doc/symbolmarker-options.png | Bin 0 -> 62441 bytes doc/symbolmarker.png | Bin 0 -> 40691 bytes doc/syntax-highlight.png | Bin 24830 -> 67295 bytes 15 files changed, 34 insertions(+), 5 deletions(-) create mode 100644 doc/csharp-options-symbolmarker.png create mode 100644 doc/smart-bar-options.PNG create mode 100644 doc/symbolmarker-effect.png create mode 100644 doc/symbolmarker-options.png create mode 100644 doc/symbolmarker.png diff --git a/Codist/CodistPackage.cs b/Codist/CodistPackage.cs index c9ace531..34cd8fb6 100644 --- a/Codist/CodistPackage.cs +++ b/Codist/CodistPackage.cs @@ -12,7 +12,7 @@ namespace Codist /// The project consists of the following namespace: backed by , , , , etc. /// [PackageRegistration(UseManagedResourcesOnly = true, AllowsBackgroundLoading = true)] - [InstalledProductRegistration("#110", "#112", "3.8", IconResourceID = 400)] // Information on this package for Help/About + [InstalledProductRegistration("#110", "#112", "3.9", IconResourceID = 400)] // Information on this package for Help/About [Guid(PackageGuidString)] [ProvideOptionPage(typeof(Options.General), Constants.NameOfMe, "General", 0, 0, true)] [ProvideOptionPage(typeof(Options.SuperQuickInfo), CategorySuperQuickInfo, "General", 0, 0, true, Sort = 0)] diff --git a/Codist/Properties/AssemblyInfo.cs b/Codist/Properties/AssemblyInfo.cs index 28c31911..257972b8 100644 --- a/Codist/Properties/AssemblyInfo.cs +++ b/Codist/Properties/AssemblyInfo.cs @@ -11,4 +11,4 @@ [assembly: AssemblyCulture("")] [assembly: ComVisible(false)] [assembly: AssemblyVersion("3.0.0.0")] -[assembly: AssemblyFileVersion("3.8.0.2243")] +[assembly: AssemblyFileVersion("3.9.0.2259")] diff --git a/Codist/source.extension.vsixmanifest b/Codist/source.extension.vsixmanifest index 11d6f184..033bc42b 100644 --- a/Codist/source.extension.vsixmanifest +++ b/Codist/source.extension.vsixmanifest @@ -1,7 +1,7 @@  - + Codist A Roslyn-powered C# coding experience enhancer with advanced syntax highlight, Super Quick Info (code tooltip), Smart Bar, Code Structure Markers on scrollbar, comment tagger, and more. https://github.com/wmjordan/Codist diff --git a/README.md b/README.md index 09251bc8..f2ad97d2 100644 --- a/README.md +++ b/README.md @@ -28,10 +28,14 @@ ![Syntax highlight](doc/highlight1.png) - **NOTE**: To quickly get started with advanced syntax highlight, navigate to the *Syntax Highlight* section, click the *Light theme* or *Dark theme* button in the *options* dialog and see them in effect. Don't forget to click the *OK* button to confirm the change. +### Default syntax highlight themes + + To quickly get started with advanced syntax highlight, navigate to the *Syntax Highlight* section, click the *Light theme* or *Dark theme* button in the *options* dialog and see them in effect. Don't forget to click the *OK* button to confirm the change. ![Load Theme](doc/load-theme.png) +### Customization of syntax highlight styles + To customize and tweak the syntax highlight styles, click the *common syntax* tab in the *syntax highlight* section, or click the sub sections inside the *Syntax Highlight* section to change individual styles, accordingly. ![Style customization](doc/syntax-highlight.png) @@ -152,7 +156,7 @@ The scrollbar can mark... ## Smart Bar -The *Smart Bar* is a context-aware tool bar appeared automatically when you select some text. +The *Smart Bar* is a context-aware tool bar appeared automatically when you select some text, or double tap the Shift key on your keyboard. It brings commonly used operations for the selection. @@ -166,6 +170,30 @@ From version 3.7 on, when you select a symbol and click the *Analyze references. ![Smart Bar Symbol Analysis](doc/smart-bar-symbol-analysis.png) +From version 3.9 on, you can change the behavior of the Smart Bar. + + ![Smart Bar Options](doc/smart-bar-options.PNG) + +### Symbol markers + + Symbol marker is a new feature introduced in version 3.8. + + Typically, you can double click a symbol in the C# source code, select the *Mark Symbol* command on the *Smart Bar* and choose the desired highlight marker on the drop-down menu. + + ![Symbol Marker](doc/symbolmarker.png) + + After applying the command, all occurrences of the marked symbol will be marked with a different style. + + ![Symbol Marker Effect](doc/symbolmarker-effect.png) + + To remove symbol marker, click the *Remove symbol mark* command in the drop-down menu of the *Mark symbol* command. + + Symbol markers will be cleared when the solution is unloaded. + + The style of symbol markers can be customized in options page of the *Syntax highlight* feature. + + ![Symbol marker Options](doc/symbolmarker-options.png) + # Feature control Open the *Codist* section in the *Tools->Options* dialog. In the *General* section you can toggle features of *Codist*. diff --git a/TestProject/TestPage.cs b/TestProject/TestPage.cs index 7e377629..f093f80a 100644 --- a/TestProject/TestPage.cs +++ b/TestProject/TestPage.cs @@ -109,6 +109,7 @@ static string[] List(int value, params string[] text) { /// A generic delegate with a parameter. /// The generic type parameter of the delegate. /// The method parameter of type . + /// Don't take this too serious. /// Returns an instance of the generic type parameter. delegate TObject Clone(TObject obj); event EventHandler MyEvent; diff --git a/doc/comment-tagger-options.png b/doc/comment-tagger-options.png index 3692b392f880ac502f27bde63d0475b6015206f5..f5629ba8a88e89560cf501daa7b3db4d9f575cb8 100644 GIT binary patch literal 57304 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