├── CodeMaid.snk
├── CodeMaid
├── CodeMaid.png
├── CodeMaid_Large.png
├── source.extension.ico
├── Integration
│ └── Images
│ │ ├── about.png
│ │ ├── about.xcf
│ │ └── IDE
│ │ ├── find.bmp
│ │ ├── info.bmp
│ │ ├── join.bmp
│ │ ├── lock.bmp
│ │ ├── spade.bmp
│ │ ├── cleanup.bmp
│ │ ├── collapse.bmp
│ │ ├── options.bmp
│ │ ├── progress.bmp
│ │ ├── refresh.bmp
│ │ ├── sortType.bmp
│ │ ├── switch.bmp
│ │ ├── unlock.bmp
│ │ ├── cleanupAll.bmp
│ │ ├── reorganize.bmp
│ │ ├── sortAlpha.bmp
│ │ ├── closeLocked.bmp
│ │ ├── commentformat.bmp
│ │ ├── removeRegion.bmp
│ │ ├── sortNumeric.bmp
│ │ ├── spadeToolWindow.bmp
│ │ ├── spadeToolWindow.png
│ │ ├── progressToolWindow.bmp
│ │ └── progressToolWindow.png
├── UI
│ ├── Themes
│ │ └── Images
│ │ │ ├── CollapsedDark.png
│ │ │ ├── CollapsedLight.png
│ │ │ ├── ExpandedDark.png
│ │ │ └── ExpandedLight.png
│ └── ToolWindows
│ │ └── Spade
│ │ └── Images
│ │ ├── VS2010
│ │ ├── Class.png
│ │ ├── Enum.png
│ │ ├── Event.png
│ │ ├── Field.png
│ │ ├── Method.png
│ │ ├── Region.png
│ │ ├── Constant.png
│ │ ├── Delegate.png
│ │ ├── EnumItem.png
│ │ ├── Property.png
│ │ ├── Enum_Friend.png
│ │ ├── Interface.png
│ │ ├── Structure.png
│ │ ├── Class_Friend.png
│ │ ├── Class_Private.png
│ │ ├── Enum_Private.png
│ │ ├── Event_Friend.png
│ │ ├── Event_Private.png
│ │ ├── Field_Friend.png
│ │ ├── Field_Private.png
│ │ ├── Method_Friend.png
│ │ ├── Class_Protected.png
│ │ ├── Constant_Friend.png
│ │ ├── Constant_Private.png
│ │ ├── Delegate_Friend.png
│ │ ├── Delegate_Private.png
│ │ ├── EnumItem_Friend.png
│ │ ├── EnumItem_Private.png
│ │ ├── Enum_Protected.png
│ │ ├── Event_Protected.png
│ │ ├── Field_Protected.png
│ │ ├── Interface_Friend.png
│ │ ├── MethodDestructor.png
│ │ ├── Method_Private.png
│ │ ├── Method_Protected.png
│ │ ├── Property_Friend.png
│ │ ├── Property_Private.png
│ │ ├── Structure_Friend.png
│ │ ├── Constant_Protected.png
│ │ ├── Delegate_Protected.png
│ │ ├── EnumItem_Protected.png
│ │ ├── Interface_Private.png
│ │ ├── MethodConstructor.png
│ │ ├── Property_Protected.png
│ │ ├── Structure_Private.png
│ │ ├── Interface_Protected.png
│ │ ├── Structure_Protected.png
│ │ ├── MethodDestructor_Friend.png
│ │ ├── MethodConstructor_Friend.png
│ │ ├── MethodConstructor_Private.png
│ │ ├── MethodDestructor_Private.png
│ │ ├── MethodDestructor_Protected.png
│ │ └── MethodConstructor_Protected.png
│ │ ├── VS2012_Dark
│ │ ├── Class.png
│ │ ├── Enum.png
│ │ ├── Event.png
│ │ ├── Field.png
│ │ ├── Method.png
│ │ ├── Region.png
│ │ ├── Constant.png
│ │ ├── Delegate.png
│ │ ├── EnumItem.png
│ │ ├── Property.png
│ │ ├── Enum_Friend.png
│ │ ├── Interface.png
│ │ ├── Structure.png
│ │ ├── Class_Friend.png
│ │ ├── Class_Private.png
│ │ ├── Enum_Private.png
│ │ ├── Event_Friend.png
│ │ ├── Event_Private.png
│ │ ├── Field_Friend.png
│ │ ├── Field_Private.png
│ │ ├── Method_Friend.png
│ │ ├── Class_Protected.png
│ │ ├── Constant_Friend.png
│ │ ├── Constant_Private.png
│ │ ├── Delegate_Friend.png
│ │ ├── Delegate_Private.png
│ │ ├── EnumItem_Friend.png
│ │ ├── EnumItem_Private.png
│ │ ├── Enum_Protected.png
│ │ ├── Event_Protected.png
│ │ ├── Field_Protected.png
│ │ ├── Interface_Friend.png
│ │ ├── MethodDestructor.png
│ │ ├── Method_Private.png
│ │ ├── Method_Protected.png
│ │ ├── Property_Friend.png
│ │ ├── Property_Private.png
│ │ ├── Structure_Friend.png
│ │ ├── Constant_Protected.png
│ │ ├── Delegate_Protected.png
│ │ ├── EnumItem_Protected.png
│ │ ├── Interface_Private.png
│ │ ├── MethodConstructor.png
│ │ ├── Property_Protected.png
│ │ ├── Structure_Private.png
│ │ ├── Interface_Protected.png
│ │ ├── Structure_Protected.png
│ │ ├── MethodDestructor_Friend.png
│ │ ├── MethodConstructor_Friend.png
│ │ ├── MethodConstructor_Private.png
│ │ ├── MethodDestructor_Private.png
│ │ ├── MethodDestructor_Protected.png
│ │ └── MethodConstructor_Protected.png
│ │ └── VS2012_Light
│ │ ├── Class.png
│ │ ├── Enum.png
│ │ ├── Event.png
│ │ ├── Field.png
│ │ ├── Method.png
│ │ ├── Region.png
│ │ ├── Constant.png
│ │ ├── Delegate.png
│ │ ├── EnumItem.png
│ │ ├── Interface.png
│ │ ├── Property.png
│ │ ├── Structure.png
│ │ ├── Class_Friend.png
│ │ ├── Enum_Friend.png
│ │ ├── Enum_Private.png
│ │ ├── Event_Friend.png
│ │ ├── Field_Friend.png
│ │ ├── Class_Private.png
│ │ ├── Class_Protected.png
│ │ ├── Constant_Friend.png
│ │ ├── Delegate_Friend.png
│ │ ├── EnumItem_Friend.png
│ │ ├── Enum_Protected.png
│ │ ├── Event_Private.png
│ │ ├── Event_Protected.png
│ │ ├── Field_Private.png
│ │ ├── Field_Protected.png
│ │ ├── Method_Friend.png
│ │ ├── Method_Private.png
│ │ ├── Property_Friend.png
│ │ ├── Constant_Private.png
│ │ ├── Delegate_Private.png
│ │ ├── EnumItem_Private.png
│ │ ├── Interface_Friend.png
│ │ ├── Interface_Private.png
│ │ ├── MethodConstructor.png
│ │ ├── MethodDestructor.png
│ │ ├── Method_Protected.png
│ │ ├── Property_Private.png
│ │ ├── Structure_Friend.png
│ │ ├── Structure_Private.png
│ │ ├── Constant_Protected.png
│ │ ├── Delegate_Protected.png
│ │ ├── EnumItem_Protected.png
│ │ ├── Interface_Protected.png
│ │ ├── Property_Protected.png
│ │ ├── Structure_Protected.png
│ │ ├── MethodConstructor_Friend.png
│ │ ├── MethodConstructor_Private.png
│ │ ├── MethodDestructor_Friend.png
│ │ ├── MethodDestructor_Private.png
│ │ ├── MethodConstructor_Protected.png
│ │ └── MethodDestructor_Protected.png
├── .editorconfig
├── zh-Hans
│ └── extension.vsixlangpack
├── source.extension.cs
├── Properties
│ └── AssemblyInfo.cs
├── CodeMaid.imagemanifest
└── source.extension.vsixmanifest
├── CodeMaid.VS2022
├── source.extension.ico
├── Properties
│ └── AssemblyInfo.cs
├── source.extension.cs
└── source.extension.vsixmanifest
├── CodeMaid.UnitTests
├── Properties
│ └── AssemblyInfo.cs
├── MemberTypeSettingTests.cs
├── Formatting
│ └── CommentFormatHelper.cs
└── app.config
├── CodeMaidShared
├── UI
│ ├── Enumerations
│ │ ├── HeaderUpdateMode.cs
│ │ ├── HeaderPosition.cs
│ │ ├── AskYesNo.cs
│ │ ├── DropPosition.cs
│ │ ├── NoneEmptyAll.cs
│ │ ├── ThemeMode.cs
│ │ └── IconSetMode.cs
│ ├── Themes
│ │ ├── CodeMaidCoreTheme.xaml
│ │ ├── Buttons.xaml
│ │ ├── Colors.xaml
│ │ ├── CodeMaidDarkTheme.xaml
│ │ └── CodeMaidLightTheme.xaml
│ ├── ToolWindows
│ │ ├── Spade
│ │ │ ├── RadialProgressBar.xaml.cs
│ │ │ ├── CenterConverter.cs
│ │ │ ├── MemberSearchTask.cs
│ │ │ └── CodeItemBaseTemplates.xaml
│ │ └── BuildProgress
│ │ │ ├── BuildProgressView.xaml.cs
│ │ │ └── BuildProgressView.xaml
│ ├── Dialogs
│ │ ├── Options
│ │ │ ├── Cleaning
│ │ │ │ ├── CleaningParentDataTemplate.xaml
│ │ │ │ ├── CleaningParentViewModel.cs
│ │ │ │ ├── CleaningVisualStudioDataTemplate.xaml
│ │ │ │ └── CleaningGeneralDataTemplate.xaml
│ │ │ ├── Reorganizing
│ │ │ │ ├── ReorganizingParentDataTemplate.xaml
│ │ │ │ ├── ReorganizingParentViewModel.cs
│ │ │ │ └── ReorganizingRegionsDataTemplate.xaml
│ │ │ ├── OptionsWindow.xaml.cs
│ │ │ ├── Finding
│ │ │ │ ├── FindingDataTemplate.xaml
│ │ │ │ └── FindingViewModel.cs
│ │ │ ├── Collapsing
│ │ │ │ ├── CollapsingDataTemplate.xaml
│ │ │ │ └── CollapsingViewModel.cs
│ │ │ ├── OptionsPageViewModelEnumerableExtensions.cs
│ │ │ ├── Switching
│ │ │ │ ├── SwitchingDataTemplate.xaml
│ │ │ │ └── SwitchingViewModel.cs
│ │ │ ├── Progressing
│ │ │ │ └── ProgressingDataTemplate.xaml
│ │ │ ├── ISettingToOptionMapping.cs
│ │ │ ├── ThirdParty
│ │ │ │ └── ThirdPartyDataTemplate.xaml
│ │ │ └── SettingsToOptionsList.cs
│ │ ├── Prompts
│ │ │ └── YesNoPromptWindow.xaml.cs
│ │ └── CleanupProgress
│ │ │ └── CleanupProgressWindow.xaml.cs
│ ├── NotifiesOnAttribute.cs
│ ├── EditableTextBlock.xaml
│ ├── Converters
│ │ ├── BooleanInverseConverter.cs
│ │ ├── EnumToBooleanConverter.cs
│ │ ├── TypeStringConverter.cs
│ │ ├── EnumDescriptionConverter.cs
│ │ ├── PropertyInfoDescriptionConverter.cs
│ │ └── StringReplaceConverter.cs
│ └── WindowAttachedProperties.cs
├── Model
│ ├── Comments
│ │ ├── ICommentLine.cs
│ │ ├── Options
│ │ │ ├── XmlTagCase.cs
│ │ │ ├── CommentOptions.cs
│ │ │ ├── IXmlTagOptions.cs
│ │ │ ├── XmlTagNewLine.cs
│ │ │ ├── FormatterOptionsXmlTag.cs
│ │ │ ├── FormatterOptions.cs
│ │ │ └── XmlTagOptions.cs
│ │ └── CommentLine.cs
│ ├── CodeItems
│ │ ├── ICodeItemComplexity.cs
│ │ ├── IInterfaceItem.cs
│ │ ├── ICodeItemParameters.cs
│ │ ├── SetCodeItems.cs
│ │ ├── ICodeItemParent.cs
│ │ ├── SnapshotCodeItems.cs
│ │ ├── CodeItemNamespace.cs
│ │ ├── KindCodeItem.cs
│ │ ├── CodeItemEnum.cs
│ │ ├── CodeItemStruct.cs
│ │ ├── CodeItemInterface.cs
│ │ ├── CodeItemUsingStatement.cs
│ │ ├── CodeItemClass.cs
│ │ └── ICodeItem.cs
│ └── CodeTree
│ │ ├── CodeSortOrder.cs
│ │ └── CodeTreeRequest.cs
├── Integration
│ ├── ISwitchableFeature.cs
│ ├── Commands
│ │ ├── AboutCommand.cs
│ │ ├── OptionsCommand.cs
│ │ ├── SpadeRefreshCommand.cs
│ │ ├── SpadeSearchCommand.cs
│ │ ├── SpadeOptionsCommand.cs
│ │ ├── SpadeSortOrderFileCommand.cs
│ │ ├── SpadeSortOrderTypeCommand.cs
│ │ ├── SpadeSortOrderAlphaCommand.cs
│ │ └── CloseAllReadOnlyCommand.cs
│ └── Events
│ │ └── BaseEventListener.cs
├── Helpers
│ ├── CodeLanguage.cs
│ ├── TypeFormatHelper.cs
│ ├── EnumHelper.cs
│ ├── UIThread.cs
│ ├── PropertyInfoHelper.cs
│ ├── EditPointExtensions.cs
│ ├── RegexNullSafe.cs
│ ├── CodeItemParentExtensions.cs
│ ├── TextDocumentExtensions.cs
│ ├── CodeItemNameComparer.cs
│ ├── DocumentExtensions.cs
│ ├── ActiveDocumentRestorer.cs
│ ├── CachedSetting.cs
│ └── CodeLanguageHelper.cs
├── CodeMaidShared.shproj
├── Properties
│ └── Settings.cs
└── Logic
│ └── Reorganizing
│ └── RegionComparerByName.cs
├── ISSUE_TEMPLATE.md
├── .gitattributes
├── GlobalAssemblyInfo.cs
├── appveyor.yml
└── CodeMaid.config
/CodeMaid.snk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid.snk
--------------------------------------------------------------------------------
/CodeMaid/CodeMaid.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/CodeMaid.png
--------------------------------------------------------------------------------
/CodeMaid/CodeMaid_Large.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/CodeMaid_Large.png
--------------------------------------------------------------------------------
/CodeMaid/source.extension.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/source.extension.ico
--------------------------------------------------------------------------------
/CodeMaid.VS2022/source.extension.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid.VS2022/source.extension.ico
--------------------------------------------------------------------------------
/CodeMaid.VS2022/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 |
3 | [assembly: AssemblyTitle("SteveCadwallader.CodeMaid.VS2022")]
--------------------------------------------------------------------------------
/CodeMaid/Integration/Images/about.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/Integration/Images/about.png
--------------------------------------------------------------------------------
/CodeMaid/Integration/Images/about.xcf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/Integration/Images/about.xcf
--------------------------------------------------------------------------------
/CodeMaid.UnitTests/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 |
3 | [assembly: AssemblyTitle("SteveCadwallader.CodeMaid.UnitTests")]
--------------------------------------------------------------------------------
/CodeMaid/Integration/Images/IDE/find.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/Integration/Images/IDE/find.bmp
--------------------------------------------------------------------------------
/CodeMaid/Integration/Images/IDE/info.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/Integration/Images/IDE/info.bmp
--------------------------------------------------------------------------------
/CodeMaid/Integration/Images/IDE/join.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/Integration/Images/IDE/join.bmp
--------------------------------------------------------------------------------
/CodeMaid/Integration/Images/IDE/lock.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/Integration/Images/IDE/lock.bmp
--------------------------------------------------------------------------------
/CodeMaid/Integration/Images/IDE/spade.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/Integration/Images/IDE/spade.bmp
--------------------------------------------------------------------------------
/CodeMaid/Integration/Images/IDE/cleanup.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/Integration/Images/IDE/cleanup.bmp
--------------------------------------------------------------------------------
/CodeMaid/Integration/Images/IDE/collapse.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/Integration/Images/IDE/collapse.bmp
--------------------------------------------------------------------------------
/CodeMaid/Integration/Images/IDE/options.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/Integration/Images/IDE/options.bmp
--------------------------------------------------------------------------------
/CodeMaid/Integration/Images/IDE/progress.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/Integration/Images/IDE/progress.bmp
--------------------------------------------------------------------------------
/CodeMaid/Integration/Images/IDE/refresh.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/Integration/Images/IDE/refresh.bmp
--------------------------------------------------------------------------------
/CodeMaid/Integration/Images/IDE/sortType.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/Integration/Images/IDE/sortType.bmp
--------------------------------------------------------------------------------
/CodeMaid/Integration/Images/IDE/switch.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/Integration/Images/IDE/switch.bmp
--------------------------------------------------------------------------------
/CodeMaid/Integration/Images/IDE/unlock.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/Integration/Images/IDE/unlock.bmp
--------------------------------------------------------------------------------
/CodeMaid/UI/Themes/Images/CollapsedDark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/Themes/Images/CollapsedDark.png
--------------------------------------------------------------------------------
/CodeMaid/UI/Themes/Images/CollapsedLight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/Themes/Images/CollapsedLight.png
--------------------------------------------------------------------------------
/CodeMaid/UI/Themes/Images/ExpandedDark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/Themes/Images/ExpandedDark.png
--------------------------------------------------------------------------------
/CodeMaid/UI/Themes/Images/ExpandedLight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/Themes/Images/ExpandedLight.png
--------------------------------------------------------------------------------
/CodeMaid/Integration/Images/IDE/cleanupAll.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/Integration/Images/IDE/cleanupAll.bmp
--------------------------------------------------------------------------------
/CodeMaid/Integration/Images/IDE/reorganize.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/Integration/Images/IDE/reorganize.bmp
--------------------------------------------------------------------------------
/CodeMaid/Integration/Images/IDE/sortAlpha.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/Integration/Images/IDE/sortAlpha.bmp
--------------------------------------------------------------------------------
/CodeMaid/Integration/Images/IDE/closeLocked.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/Integration/Images/IDE/closeLocked.bmp
--------------------------------------------------------------------------------
/CodeMaid/Integration/Images/IDE/commentformat.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/Integration/Images/IDE/commentformat.bmp
--------------------------------------------------------------------------------
/CodeMaid/Integration/Images/IDE/removeRegion.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/Integration/Images/IDE/removeRegion.bmp
--------------------------------------------------------------------------------
/CodeMaid/Integration/Images/IDE/sortNumeric.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/Integration/Images/IDE/sortNumeric.bmp
--------------------------------------------------------------------------------
/CodeMaid/Integration/Images/IDE/spadeToolWindow.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/Integration/Images/IDE/spadeToolWindow.bmp
--------------------------------------------------------------------------------
/CodeMaid/Integration/Images/IDE/spadeToolWindow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/Integration/Images/IDE/spadeToolWindow.png
--------------------------------------------------------------------------------
/CodeMaid/Integration/Images/IDE/progressToolWindow.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/Integration/Images/IDE/progressToolWindow.bmp
--------------------------------------------------------------------------------
/CodeMaid/Integration/Images/IDE/progressToolWindow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/Integration/Images/IDE/progressToolWindow.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/Class.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/Class.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/Enum.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/Enum.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/Event.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/Event.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/Field.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/Field.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/Method.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/Method.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/Region.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/Region.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/Constant.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/Constant.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/Delegate.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/Delegate.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/EnumItem.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/EnumItem.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/Property.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/Property.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/Enum_Friend.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/Enum_Friend.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/Interface.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/Interface.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/Structure.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/Structure.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/Class.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/Class.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/Enum.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/Enum.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/Event.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/Event.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/Field.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/Field.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/Method.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/Method.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/Region.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/Region.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/Class.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/Class.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/Enum.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/Enum.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/Event.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/Event.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/Field.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/Field.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/Class_Friend.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/Class_Friend.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/Class_Private.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/Class_Private.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/Enum_Private.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/Enum_Private.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/Event_Friend.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/Event_Friend.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/Event_Private.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/Event_Private.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/Field_Friend.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/Field_Friend.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/Field_Private.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/Field_Private.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/Method_Friend.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/Method_Friend.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/Constant.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/Constant.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/Delegate.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/Delegate.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/EnumItem.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/EnumItem.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/Property.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/Property.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/Method.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/Method.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/Region.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/Region.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/Class_Protected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/Class_Protected.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/Constant_Friend.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/Constant_Friend.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/Constant_Private.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/Constant_Private.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/Delegate_Friend.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/Delegate_Friend.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/Delegate_Private.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/Delegate_Private.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/EnumItem_Friend.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/EnumItem_Friend.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/EnumItem_Private.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/EnumItem_Private.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/Enum_Protected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/Enum_Protected.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/Event_Protected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/Event_Protected.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/Field_Protected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/Field_Protected.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/Interface_Friend.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/Interface_Friend.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/MethodDestructor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/MethodDestructor.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/Method_Private.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/Method_Private.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/Method_Protected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/Method_Protected.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/Property_Friend.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/Property_Friend.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/Property_Private.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/Property_Private.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/Structure_Friend.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/Structure_Friend.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/Enum_Friend.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/Enum_Friend.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/Interface.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/Interface.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/Structure.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/Structure.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/Constant.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/Constant.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/Delegate.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/Delegate.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/EnumItem.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/EnumItem.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/Interface.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/Interface.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/Property.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/Property.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/Structure.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/Structure.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/Constant_Protected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/Constant_Protected.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/Delegate_Protected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/Delegate_Protected.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/EnumItem_Protected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/EnumItem_Protected.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/Interface_Private.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/Interface_Private.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/MethodConstructor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/MethodConstructor.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/Property_Protected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/Property_Protected.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/Structure_Private.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/Structure_Private.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/Class_Friend.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/Class_Friend.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/Class_Private.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/Class_Private.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/Enum_Private.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/Enum_Private.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/Event_Friend.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/Event_Friend.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/Event_Private.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/Event_Private.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/Field_Friend.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/Field_Friend.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/Field_Private.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/Field_Private.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/Method_Friend.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/Method_Friend.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/Class_Friend.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/Class_Friend.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/Enum_Friend.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/Enum_Friend.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/Enum_Private.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/Enum_Private.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/Event_Friend.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/Event_Friend.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/Field_Friend.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/Field_Friend.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/Interface_Protected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/Interface_Protected.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/Structure_Protected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/Structure_Protected.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/Class_Protected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/Class_Protected.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/Constant_Friend.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/Constant_Friend.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/Constant_Private.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/Constant_Private.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/Delegate_Friend.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/Delegate_Friend.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/Delegate_Private.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/Delegate_Private.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/EnumItem_Friend.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/EnumItem_Friend.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/EnumItem_Private.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/EnumItem_Private.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/Enum_Protected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/Enum_Protected.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/Event_Protected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/Event_Protected.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/Field_Protected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/Field_Protected.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/Interface_Friend.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/Interface_Friend.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/MethodDestructor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/MethodDestructor.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/Method_Private.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/Method_Private.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/Method_Protected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/Method_Protected.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/Property_Friend.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/Property_Friend.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/Property_Private.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/Property_Private.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/Structure_Friend.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/Structure_Friend.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/Class_Private.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/Class_Private.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/Class_Protected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/Class_Protected.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/Constant_Friend.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/Constant_Friend.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/Delegate_Friend.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/Delegate_Friend.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/EnumItem_Friend.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/EnumItem_Friend.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/Enum_Protected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/Enum_Protected.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/Event_Private.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/Event_Private.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/Event_Protected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/Event_Protected.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/Field_Private.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/Field_Private.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/Field_Protected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/Field_Protected.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/Method_Friend.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/Method_Friend.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/Method_Private.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/Method_Private.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/Property_Friend.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/Property_Friend.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/MethodDestructor_Friend.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/MethodDestructor_Friend.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/Constant_Protected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/Constant_Protected.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/Delegate_Protected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/Delegate_Protected.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/EnumItem_Protected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/EnumItem_Protected.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/Interface_Private.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/Interface_Private.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/MethodConstructor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/MethodConstructor.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/Property_Protected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/Property_Protected.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/Structure_Private.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/Structure_Private.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/Constant_Private.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/Constant_Private.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/Delegate_Private.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/Delegate_Private.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/EnumItem_Private.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/EnumItem_Private.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/Interface_Friend.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/Interface_Friend.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/Interface_Private.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/Interface_Private.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/MethodConstructor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/MethodConstructor.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/MethodDestructor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/MethodDestructor.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/Method_Protected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/Method_Protected.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/Property_Private.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/Property_Private.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/Structure_Friend.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/Structure_Friend.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/Structure_Private.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/Structure_Private.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/MethodConstructor_Friend.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/MethodConstructor_Friend.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/MethodConstructor_Private.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/MethodConstructor_Private.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/MethodDestructor_Private.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/MethodDestructor_Private.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/MethodDestructor_Protected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/MethodDestructor_Protected.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/Interface_Protected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/Interface_Protected.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/Structure_Protected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/Structure_Protected.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/Constant_Protected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/Constant_Protected.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/Delegate_Protected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/Delegate_Protected.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/EnumItem_Protected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/EnumItem_Protected.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/Interface_Protected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/Interface_Protected.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/Property_Protected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/Property_Protected.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/Structure_Protected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/Structure_Protected.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/MethodConstructor_Protected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2010/MethodConstructor_Protected.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/MethodDestructor_Friend.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/MethodDestructor_Friend.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/MethodConstructor_Friend.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/MethodConstructor_Friend.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/MethodConstructor_Private.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/MethodConstructor_Private.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/MethodDestructor_Private.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/MethodDestructor_Private.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/MethodDestructor_Protected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/MethodDestructor_Protected.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/MethodConstructor_Friend.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/MethodConstructor_Friend.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/MethodConstructor_Private.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/MethodConstructor_Private.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/MethodDestructor_Friend.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/MethodDestructor_Friend.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/MethodDestructor_Private.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/MethodDestructor_Private.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/MethodConstructor_Protected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Dark/MethodConstructor_Protected.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/MethodConstructor_Protected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/MethodConstructor_Protected.png
--------------------------------------------------------------------------------
/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/MethodDestructor_Protected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codecadwallader/codemaid/HEAD/CodeMaid/UI/ToolWindows/Spade/Images/VS2012_Light/MethodDestructor_Protected.png
--------------------------------------------------------------------------------
/CodeMaidShared/UI/Enumerations/HeaderUpdateMode.cs:
--------------------------------------------------------------------------------
1 | namespace SteveCadwallader.CodeMaid.UI.Enumerations
2 | {
3 | public enum HeaderUpdateMode
4 | {
5 | Insert = 0,
6 | Replace = 1,
7 | }
8 | }
--------------------------------------------------------------------------------
/CodeMaidShared/UI/Enumerations/HeaderPosition.cs:
--------------------------------------------------------------------------------
1 | namespace SteveCadwallader.CodeMaid.UI.Enumerations
2 | {
3 | public enum HeaderPosition
4 | {
5 | DocumentStart = 0,
6 | AfterUsings = 1,
7 | }
8 | }
--------------------------------------------------------------------------------
/CodeMaidShared/Model/Comments/ICommentLine.cs:
--------------------------------------------------------------------------------
1 | namespace SteveCadwallader.CodeMaid.Model.Comments
2 | {
3 | internal interface ICommentLine
4 | {
5 | string Content { get; }
6 |
7 | bool IsLast { get; }
8 | }
9 | }
--------------------------------------------------------------------------------
/CodeMaidShared/Integration/ISwitchableFeature.cs:
--------------------------------------------------------------------------------
1 | using System.Threading.Tasks;
2 |
3 | namespace SteveCadwallader.CodeMaid.Integration
4 | {
5 | internal interface ISwitchableFeature
6 | {
7 | Task SwitchAsync(bool on);
8 | }
9 | }
--------------------------------------------------------------------------------
/CodeMaidShared/UI/Enumerations/AskYesNo.cs:
--------------------------------------------------------------------------------
1 | namespace SteveCadwallader.CodeMaid.UI.Enumerations
2 | {
3 | ///
4 | /// A user prompt enumeration.
5 | ///
6 | public enum AskYesNo
7 | {
8 | Ask = 0,
9 | Yes = 1,
10 | No = 2
11 | }
12 | }
--------------------------------------------------------------------------------
/CodeMaidShared/UI/Enumerations/DropPosition.cs:
--------------------------------------------------------------------------------
1 | namespace SteveCadwallader.CodeMaid.UI.Enumerations
2 | {
3 | ///
4 | /// An enumeration of drop positions.
5 | ///
6 | public enum DropPosition
7 | {
8 | Above,
9 | Below,
10 | On
11 | }
12 | }
--------------------------------------------------------------------------------
/CodeMaidShared/UI/Enumerations/NoneEmptyAll.cs:
--------------------------------------------------------------------------------
1 | namespace SteveCadwallader.CodeMaid.UI.Enumerations
2 | {
3 | ///
4 | /// A user prompt enumeration.
5 | ///
6 | public enum NoneEmptyAll
7 | {
8 | None = 0,
9 | Empty = 1,
10 | All = 2
11 | }
12 | }
--------------------------------------------------------------------------------
/CodeMaid/.editorconfig:
--------------------------------------------------------------------------------
1 | ; Top-most EditorConfig file
2 | root = true
3 |
4 | [*.{cs,vb}]
5 | dotnet_style_qualification_for_field = false:suggestion
6 | dotnet_style_qualification_for_property = false:suggestion
7 | dotnet_style_qualification_for_method = false:suggestion
8 | dotnet_style_qualification_for_event = false:suggestion
--------------------------------------------------------------------------------
/CodeMaidShared/UI/Enumerations/ThemeMode.cs:
--------------------------------------------------------------------------------
1 | namespace SteveCadwallader.CodeMaid.UI.Enumerations
2 | {
3 | ///
4 | /// The enumeration of theme options.
5 | ///
6 | public enum ThemeMode
7 | {
8 | AutoDetect = 0,
9 | Dark = 1,
10 | Light = 2
11 | }
12 | }
--------------------------------------------------------------------------------
/CodeMaidShared/UI/Enumerations/IconSetMode.cs:
--------------------------------------------------------------------------------
1 | namespace SteveCadwallader.CodeMaid.UI.Enumerations
2 | {
3 | ///
4 | /// The enumeration of icon set options.
5 | ///
6 | public enum IconSetMode
7 | {
8 | AutoDetect = 0,
9 | VS2010 = 1,
10 | VS2012Light = 2,
11 | VS2012Dark = 3,
12 | }
13 | }
--------------------------------------------------------------------------------
/CodeMaidShared/Model/Comments/Options/XmlTagCase.cs:
--------------------------------------------------------------------------------
1 | namespace SteveCadwallader.CodeMaid.Model.Comments.Options
2 | {
3 | public enum XmlTagCase
4 | {
5 | ///
6 | /// Use formatter default settings.
7 | ///
8 | Default = 0,
9 |
10 | Keep,
11 | LowerCase,
12 | UpperCase
13 | }
14 | }
--------------------------------------------------------------------------------
/CodeMaidShared/Model/CodeItems/ICodeItemComplexity.cs:
--------------------------------------------------------------------------------
1 | namespace SteveCadwallader.CodeMaid.Model.CodeItems
2 | {
3 | ///
4 | /// An interface for code items that support complexity calculations.
5 | ///
6 | public interface ICodeItemComplexity : ICodeItem
7 | {
8 | ///
9 | /// Gets the complexity.
10 | ///
11 | int Complexity { get; }
12 | }
13 | }
--------------------------------------------------------------------------------
/CodeMaidShared/Model/Comments/Options/CommentOptions.cs:
--------------------------------------------------------------------------------
1 | using System.Text.RegularExpressions;
2 |
3 | namespace SteveCadwallader.CodeMaid.Model.Comments.Options
4 | {
5 | ///
6 | /// Comment specific options for the formatter.
7 | ///
8 | internal class CommentOptions
9 | {
10 | public string Prefix { get; internal set; }
11 |
12 | public Regex Regex { get; internal set; }
13 | }
14 | }
--------------------------------------------------------------------------------
/CodeMaid/zh-Hans/extension.vsixlangpack:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | CodeMaid
5 | CodeMaid 是一个开源Visual Studio 扩展, 用于清理和简化我们的 C#、C++、F#、VB、PHP、PowerShell、R、JSON、XAML、XML、ASP、HTML、CSS、LESS、SCSS、JavaScript 和TypeScript编码。
6 |
7 |
--------------------------------------------------------------------------------
/CodeMaidShared/Model/CodeItems/IInterfaceItem.cs:
--------------------------------------------------------------------------------
1 | namespace SteveCadwallader.CodeMaid.Model.CodeItems
2 | {
3 | ///
4 | /// Represents an item that can implement an interface member.
5 | ///
6 | public interface IInterfaceItem
7 | {
8 | ///
9 | /// Gets a flag indicating if this is an explicit interface implementation.
10 | ///
11 | bool IsExplicitInterfaceImplementation { get; }
12 | }
13 | }
--------------------------------------------------------------------------------
/CodeMaidShared/Model/Comments/Options/IXmlTagOptions.cs:
--------------------------------------------------------------------------------
1 | namespace SteveCadwallader.CodeMaid.Model.Comments.Options
2 | {
3 | public interface IXmlTagOptions
4 | {
5 | XmlTagCase Case { get; }
6 |
7 | int Indent { get; }
8 |
9 | bool KeepTogether { get; }
10 |
11 | bool Literal { get; }
12 |
13 | bool SpaceContent { get; }
14 |
15 | bool SpaceSelfClosing { get; }
16 |
17 | XmlTagNewLine Split { get; }
18 | }
19 | }
--------------------------------------------------------------------------------
/CodeMaidShared/UI/Themes/CodeMaidCoreTheme.xaml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/CodeMaidShared/UI/Themes/Buttons.xaml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
9 |
--------------------------------------------------------------------------------
/CodeMaidShared/UI/ToolWindows/Spade/RadialProgressBar.xaml.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Windows;
3 | using System.Windows.Controls;
4 |
5 | namespace SteveCadwallader.CodeMaid.UI.ToolWindows.Spade
6 | {
7 | public partial class RadialProgressBar : UserControl
8 | {
9 | public RadialProgressBar()
10 | {
11 | Application.ResourceAssembly = Assembly.GetExecutingAssembly();
12 |
13 | InitializeComponent();
14 | }
15 | }
16 | }
--------------------------------------------------------------------------------
/CodeMaidShared/Model/Comments/CommentLine.cs:
--------------------------------------------------------------------------------
1 | namespace SteveCadwallader.CodeMaid.Model.Comments
2 | {
3 | internal class CommentLine : ICommentLine
4 | {
5 | public CommentLine(string content)
6 | {
7 | if (!string.IsNullOrWhiteSpace(content))
8 | {
9 | this.Content = content;
10 | }
11 | }
12 |
13 | public string Content { get; protected set; }
14 |
15 | public bool IsLast { get; internal set; }
16 | }
17 | }
--------------------------------------------------------------------------------
/CodeMaidShared/Model/CodeItems/ICodeItemParameters.cs:
--------------------------------------------------------------------------------
1 | using EnvDTE;
2 | using System.Collections.Generic;
3 |
4 | namespace SteveCadwallader.CodeMaid.Model.CodeItems
5 | {
6 | ///
7 | /// An interface for code items that support having parameters.
8 | ///
9 | public interface ICodeItemParameters : ICodeItem
10 | {
11 | ///
12 | /// Gets the parameters.
13 | ///
14 | IEnumerable Parameters { get; }
15 | }
16 | }
--------------------------------------------------------------------------------
/ISSUE_TEMPLATE.md:
--------------------------------------------------------------------------------
1 | ### Environment
2 | - Visual Studio version: [example 2022 Community]
3 | - CodeMaid version: [example 12.0]
4 | - Code language: [example C#]
5 |
6 | ### Description
7 | Replace this text with a short description and code sample.
8 |
9 | ### Steps to recreate
10 | 1. Replace this
11 | 2. text with
12 | 3. the steps
13 | 4. to recreate
14 |
15 | ### Current behavior
16 | Explain what it's doing and why it's wrong.
17 |
18 | ### Expected behavior
19 | Explain what it should be doing after it's fixed.
--------------------------------------------------------------------------------
/CodeMaidShared/UI/Themes/Colors.xaml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | # Auto detect text files and perform LF normalization
2 | * text=auto
3 |
4 | # Custom for Visual Studio
5 | *.cs diff=csharp
6 | *.sln merge=union
7 | *.csproj merge=union
8 | *.vbproj merge=union
9 | *.fsproj merge=union
10 | *.dbproj merge=union
11 |
12 | # Standard to msysgit
13 | *.doc diff=astextplain
14 | *.DOC diff=astextplain
15 | *.docx diff=astextplain
16 | *.DOCX diff=astextplain
17 | *.dot diff=astextplain
18 | *.DOT diff=astextplain
19 | *.pdf diff=astextplain
20 | *.PDF diff=astextplain
21 | *.rtf diff=astextplain
22 | *.RTF diff=astextplain
--------------------------------------------------------------------------------
/CodeMaidShared/UI/Dialogs/Options/Cleaning/CleaningParentDataTemplate.xaml:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/CodeMaidShared/UI/Dialogs/Options/Reorganizing/ReorganizingParentDataTemplate.xaml:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/GlobalAssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using SteveCadwallader.CodeMaid;
2 | using System;
3 | using System.Reflection;
4 | using System.Resources;
5 | using System.Runtime.InteropServices;
6 |
7 | [assembly: AssemblyCompany(Vsix.Author)]
8 | [assembly: AssemblyCopyright("Copyright 2007-2021 Steve Cadwallader (LGPL v3)")]
9 | [assembly: AssemblyDescription(Vsix.Description)]
10 | [assembly: AssemblyFileVersion(Vsix.Version)]
11 | [assembly: AssemblyProduct(Vsix.Name)]
12 | [assembly: AssemblyVersion(Vsix.Version)]
13 | [assembly: CLSCompliant(false)]
14 | [assembly: ComVisible(false)]
15 | [assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
--------------------------------------------------------------------------------
/CodeMaidShared/UI/ToolWindows/Spade/CenterConverter.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Globalization;
3 |
4 | namespace SteveCadwallader.CodeMaid.UI.ToolWindows.Spade
5 | {
6 | public class CenterConverter : System.Windows.Data.IValueConverter
7 | {
8 | public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
9 | {
10 | var result = (double)value / 2.0;
11 | return result;
12 | }
13 |
14 | public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
15 | {
16 | throw new NotImplementedException();
17 | }
18 | }
19 | }
--------------------------------------------------------------------------------
/CodeMaidShared/Model/CodeTree/CodeSortOrder.cs:
--------------------------------------------------------------------------------
1 | namespace SteveCadwallader.CodeMaid.Model.CodeTree
2 | {
3 | ///
4 | /// An enumeration of code sort orders.
5 | ///
6 | public enum CodeSortOrder
7 | {
8 | ///
9 | /// The default sort following the file line order.
10 | ///
11 | File,
12 |
13 | ///
14 | /// A sort following the C# standards that groups items by type and accessibility.
15 | ///
16 | Type,
17 |
18 | ///
19 | /// A sort following alphabetical order.
20 | ///
21 | Alpha
22 | }
23 | }
--------------------------------------------------------------------------------
/CodeMaidShared/UI/Dialogs/Prompts/YesNoPromptWindow.xaml.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Windows;
3 |
4 | namespace SteveCadwallader.CodeMaid.UI.Dialogs.Prompts
5 | {
6 | ///
7 | /// Interaction logic for YesNoPromptWindow.xaml
8 | ///
9 | public partial class YesNoPromptWindow
10 | {
11 | ///
12 | /// Initializes a new instance of the class.
13 | ///
14 | public YesNoPromptWindow()
15 | {
16 | Application.ResourceAssembly = Assembly.GetExecutingAssembly();
17 |
18 | InitializeComponent();
19 | }
20 | }
21 | }
--------------------------------------------------------------------------------
/CodeMaidShared/UI/ToolWindows/BuildProgress/BuildProgressView.xaml.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Windows;
3 |
4 | namespace SteveCadwallader.CodeMaid.UI.ToolWindows.BuildProgress
5 | {
6 | ///
7 | /// Interaction logic for BuildProgressView.xaml
8 | ///
9 | public partial class BuildProgressView
10 | {
11 | ///
12 | /// Initializes a new instance of the class.
13 | ///
14 | public BuildProgressView()
15 | {
16 | Application.ResourceAssembly = Assembly.GetExecutingAssembly();
17 |
18 | InitializeComponent();
19 | }
20 | }
21 | }
--------------------------------------------------------------------------------
/CodeMaidShared/UI/Dialogs/Options/OptionsWindow.xaml.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Windows;
3 |
4 | namespace SteveCadwallader.CodeMaid.UI.Dialogs.Options
5 | {
6 | ///
7 | /// Interaction logic for OptionsWindow.xaml
8 | ///
9 | public partial class OptionsWindow
10 | {
11 | ///
12 | /// Initializes a new instance of the class.
13 | ///
14 | public OptionsWindow()
15 | {
16 | Application.ResourceAssembly = Assembly.GetExecutingAssembly();
17 |
18 | HasMaximizeButton = true;
19 |
20 | InitializeComponent();
21 | }
22 | }
23 | }
--------------------------------------------------------------------------------
/CodeMaid/source.extension.cs:
--------------------------------------------------------------------------------
1 | namespace SteveCadwallader.CodeMaid
2 | {
3 | static class Vsix
4 | {
5 | public const string Id = "4c82e17d-927e-42d2-8460-b473ac7df316";
6 | public const string Name = "CodeMaid";
7 | public const string Description = "CodeMaid is an open source Visual Studio extension to cleanup and simplify our C#, C++, F#, VB, PHP, PowerShell, R, JSON, XAML, XML, ASP, HTML, CSS, LESS, SCSS, JavaScript and TypeScript coding.";
8 | public const string Language = "en-US";
9 | public const string Version = "12.0";
10 | public const string Author = "Steve Cadwallader";
11 | public const string Tags = "build, code, c#, beautify, cleanup, cleaning, digging, reorganizing, formatting";
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/CodeMaid.VS2022/source.extension.cs:
--------------------------------------------------------------------------------
1 | namespace SteveCadwallader.CodeMaid
2 | {
3 | internal static class Vsix
4 | {
5 | public const string Id = "9079e73d-3fbb-4e07-8dab-f44fa5d8e8b5";
6 | public const string Name = "CodeMaid VS2022";
7 | public const string Description = "CodeMaid is an open source Visual Studio extension to cleanup and simplify our C#, C++, F#, VB, PHP, PowerShell, R, JSON, XAML, XML, ASP, HTML, CSS, LESS, SCSS, JavaScript and TypeScript coding.";
8 | public const string Language = "en-US";
9 | public const string Version = "12.0";
10 | public const string Author = "Steve Cadwallader";
11 | public const string Tags = "build, code, c#, beautify, cleanup, cleaning, digging, reorganizing, formatting";
12 | }
13 | }
--------------------------------------------------------------------------------
/CodeMaidShared/Helpers/CodeLanguage.cs:
--------------------------------------------------------------------------------
1 | namespace SteveCadwallader.CodeMaid.Helpers
2 | {
3 | ///
4 | /// An internal helper enumeration of code languages.
5 | ///
6 | ///
7 | /// This is used to encapsulate Visual Studio reported differences we do not want to consider
8 | /// (e.g. JavaScript vs. JScript or HTML vs. HTMLX)
9 | ///
10 | public enum CodeLanguage
11 | {
12 | Unknown,
13 | CPlusPlus,
14 | CSharp,
15 | CSS,
16 | FSharp,
17 | HTML,
18 | JavaScript,
19 | JSON,
20 | LESS,
21 | PHP,
22 | PowerShell,
23 | R,
24 | SCSS,
25 | TypeScript,
26 | VisualBasic,
27 | XAML,
28 | XML
29 | }
30 | }
--------------------------------------------------------------------------------
/CodeMaidShared/Helpers/TypeFormatHelper.cs:
--------------------------------------------------------------------------------
1 | using System.Text.RegularExpressions;
2 |
3 | namespace SteveCadwallader.CodeMaid.Helpers
4 | {
5 | ///
6 | /// A simple helper class for formatting type definitions.
7 | ///
8 | public static class TypeFormatHelper
9 | {
10 | ///
11 | /// Formats the specified input type string.
12 | ///
13 | /// The input string.
14 | /// The formatted output string.
15 | public static string Format(string input)
16 | {
17 | if (string.IsNullOrEmpty(input)) return input;
18 |
19 | var result = Regex.Replace(input, @"[^ \t,<>\[\]]*\.", string.Empty);
20 |
21 | return result;
22 | }
23 | }
24 | }
--------------------------------------------------------------------------------
/CodeMaidShared/UI/Dialogs/Options/Finding/FindingDataTemplate.xaml:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/CodeMaidShared/UI/Dialogs/Options/Collapsing/CollapsingDataTemplate.xaml:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/CodeMaidShared/Helpers/EnumHelper.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.ComponentModel;
3 |
4 | namespace SteveCadwallader.CodeMaid.Helpers
5 | {
6 | ///
7 | /// A static helper class for common enumeration utilities.
8 | ///
9 | public static class EnumHelper
10 | {
11 | ///
12 | /// Gets the description from the specified enumeration value.
13 | ///
14 | /// The value.
15 | /// The description.
16 | public static string GetDescription(this Enum value)
17 | {
18 | var fieldInfo = value.GetType().GetField(value.ToString());
19 | var attribute = Attribute.GetCustomAttribute(fieldInfo, typeof(DescriptionAttribute)) as DescriptionAttribute;
20 |
21 | return attribute != null ? attribute.Description : value.ToString();
22 | }
23 | }
24 | }
--------------------------------------------------------------------------------
/CodeMaid/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 |
4 | [assembly: AssemblyTitle("SteveCadwallader.CodeMaid")]
5 | [assembly: InternalsVisibleTo("SteveCadwallader.CodeMaid.IntegrationTests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100fd90a5de02e8a23b56c1f2b69e9f48bc15be99222c50ba9a2dacebabb811b251deb9d156e4a803b1cdaefb0d74ed78ef55f8c8f64e0ae5dedead2ed19619ac3fbb111ab70f54ce78e49f71a19dcb09c169e0c055dc40e6d675ad3e5db2300d9f3ce394f7514e7e06597a31e7e8a67fdcda4c75acb8f600da5d8c1934c8a129c7")]
6 | [assembly: InternalsVisibleTo("SteveCadwallader.CodeMaid.UnitTests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100fd90a5de02e8a23b56c1f2b69e9f48bc15be99222c50ba9a2dacebabb811b251deb9d156e4a803b1cdaefb0d74ed78ef55f8c8f64e0ae5dedead2ed19619ac3fbb111ab70f54ce78e49f71a19dcb09c169e0c055dc40e6d675ad3e5db2300d9f3ce394f7514e7e06597a31e7e8a67fdcda4c75acb8f600da5d8c1934c8a129c7")]
--------------------------------------------------------------------------------
/CodeMaidShared/Model/CodeItems/SetCodeItems.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 |
3 | namespace SteveCadwallader.CodeMaid.Model.CodeItems
4 | {
5 | ///
6 | /// A specialized container for holding a set of code items.
7 | ///
8 | public class SetCodeItems : List
9 | {
10 | ///
11 | /// Initializes a new instance of the class.
12 | ///
13 | public SetCodeItems()
14 | {
15 | }
16 |
17 | ///
18 | /// Initializes a new instance of the class initialized with the
19 | /// specified collection members.
20 | ///
21 | /// The collection.
22 | public SetCodeItems(IEnumerable collection)
23 | : this()
24 | {
25 | AddRange(collection);
26 | }
27 | }
28 | }
--------------------------------------------------------------------------------
/CodeMaidShared/Model/CodeItems/ICodeItemParent.cs:
--------------------------------------------------------------------------------
1 | using EnvDTE;
2 | using System;
3 |
4 | namespace SteveCadwallader.CodeMaid.Model.CodeItems
5 | {
6 | ///
7 | /// An interface for code items that support having children.
8 | ///
9 | public interface ICodeItemParent : ICodeItem
10 | {
11 | ///
12 | /// An event raised when the IsExpanded state has changed.
13 | ///
14 | event EventHandler IsExpandedChanged;
15 |
16 | ///
17 | /// Gets the children of this code item, may be empty.
18 | ///
19 | SetCodeItems Children { get; }
20 |
21 | ///
22 | /// Gets the insert point, may be null.
23 | ///
24 | EditPoint InsertPoint { get; }
25 |
26 | ///
27 | /// Gets or sets the flag indicating if this parent item is expanded.
28 | ///
29 | bool IsExpanded { get; set; }
30 | }
31 | }
--------------------------------------------------------------------------------
/CodeMaidShared/UI/Dialogs/Options/OptionsPageViewModelEnumerableExtensions.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 | using System.Linq;
3 |
4 | namespace SteveCadwallader.CodeMaid.UI.Dialogs.Options
5 | {
6 | ///
7 | /// A set of extensions methods for enumerable sets of .
8 | ///
9 | public static class OptionsPageViewModelEnumerableExtensions
10 | {
11 | ///
12 | /// Flattens the specified collection by pulling out children.
13 | ///
14 | /// This currently only recurses down one level as that's all that is needed.
15 | /// The initial pages collection.
16 | /// The flattened collection including children.
17 | public static IEnumerable Flatten(this IEnumerable pages)
18 | {
19 | return pages.Union(pages.SelectMany(x => x.Children));
20 | }
21 | }
22 | }
--------------------------------------------------------------------------------
/CodeMaidShared/UI/Dialogs/Options/Switching/SwitchingDataTemplate.xaml:
--------------------------------------------------------------------------------
1 |
6 |
7 |
8 |
9 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/CodeMaidShared/CodeMaidShared.shproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | e94629d8-7803-4242-a0c6-3560005515e6
5 | 14.0
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/CodeMaidShared/UI/Themes/CodeMaidDarkTheme.xaml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 | /UI/Themes/Images/CollapsedDark.png
20 | /UI/Themes/Images/ExpandedDark.png
21 |
--------------------------------------------------------------------------------
/CodeMaidShared/Model/Comments/Options/XmlTagNewLine.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace SteveCadwallader.CodeMaid.Model.Comments.Options
4 | {
5 | [Flags]
6 | public enum XmlTagNewLine
7 | {
8 | ///
9 | /// Use formatter default settings.
10 | ///
11 | Default = 0,
12 |
13 | ///
14 | /// Put tags on their own line when content is too long to fit on a single line.
15 | ///
16 | Content = 1 << 0,
17 |
18 | BeforeOpen = 1 << 1,
19 | AfterOpen = 1 << 2,
20 |
21 | BeforeClose = 1 << 3,
22 | AfterClose = 1 << 4,
23 |
24 | ///
25 | /// Force a break before the open tag and after the close tag, regardless of content length.
26 | ///
27 | BeforeAndAfter = BeforeOpen | AfterClose,
28 |
29 | ///
30 | /// Force a break before and after the open and close tags, ie put tags on their own lines.
31 | ///
32 | Always = BeforeOpen | AfterOpen | BeforeClose | AfterClose
33 | }
34 | }
--------------------------------------------------------------------------------
/CodeMaidShared/UI/Themes/CodeMaidLightTheme.xaml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 | /UI/Themes/Images/CollapsedLight.png
20 | /UI/Themes/Images/ExpandedLight.png
21 |
--------------------------------------------------------------------------------
/CodeMaidShared/Helpers/UIThread.cs:
--------------------------------------------------------------------------------
1 | using Microsoft.VisualStudio.Shell;
2 | using System;
3 |
4 | namespace SteveCadwallader.CodeMaid.Helpers
5 | {
6 | internal static class UIThread
7 | {
8 | public static void Run(Action action)
9 | {
10 | if (ThreadHelper.CheckAccess())
11 | {
12 | action();
13 | }
14 | else
15 | {
16 | ThreadHelper.JoinableTaskFactory.Run(async () =>
17 | {
18 | await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync();
19 | action();
20 | });
21 | }
22 | }
23 |
24 | public static T Run(Func func)
25 | {
26 | if (ThreadHelper.CheckAccess())
27 | {
28 | return func();
29 | }
30 | return ThreadHelper.JoinableTaskFactory.Run(async () =>
31 | {
32 | await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync();
33 | return func();
34 | });
35 | }
36 | }
37 | }
--------------------------------------------------------------------------------
/appveyor.yml:
--------------------------------------------------------------------------------
1 | version: 12.0.{build}
2 | image: Visual Studio 2019
3 |
4 | install:
5 | - ps: (new-object Net.WebClient).DownloadString("https://raw.github.com/madskristensen/ExtensionScripts/master/AppVeyor/vsix.ps1") | iex
6 |
7 | assembly_info:
8 | patch: true
9 | file: '**\AssemblyInfo.*'
10 | assembly_version: '{version}'
11 | assembly_file_version: '{version}'
12 | assembly_informational_version: '{version}'
13 |
14 | before_build:
15 | - nuget restore
16 | - ps: Vsix-IncrementVsixVersion | Vsix-UpdateBuildVersion
17 | - ps: Vsix-TokenReplacement CodeMaid\source.extension.cs 'Version = "([0-9\\.]+)"' 'Version = "{version}"'
18 |
19 | build_script:
20 | - msbuild /p:configuration=Release /p:DeployExtension=false /p:ZipPackageCompressionLevel=normal /v:m
21 |
22 | test:
23 | assemblies: SteveCadwallader.CodeMaid.UnitTests.dll
24 |
25 | after_test:
26 | - ps: if ($env:APPVEYOR_REPO_BRANCH -eq 'dev' -or $env:APPVEYOR_REPO_BRANCH -eq 'release') { Vsix-PushArtifacts | Vsix-PublishToGallery }
27 | - ps: if ($env:APPVEYOR_REPO_BRANCH -ne 'dev' -and $env:APPVEYOR_REPO_BRANCH -ne 'release') { Vsix-PushArtifacts }
--------------------------------------------------------------------------------
/CodeMaidShared/Model/Comments/Options/FormatterOptionsXmlTag.cs:
--------------------------------------------------------------------------------
1 | namespace SteveCadwallader.CodeMaid.Model.Comments.Options
2 | {
3 | public class FormatterOptionsXmlTag
4 | {
5 | ///
6 | /// If not , overrides the default tag case setting.
7 | ///
8 | public XmlTagCase Case { get; set; }
9 |
10 | ///
11 | /// If not null, overrides the default tag indentation.
12 | ///
13 | public int? Indent { get; set; }
14 |
15 | public bool? KeepTogether { get; set; }
16 |
17 | ///
18 | /// Whether the content should be kept literally and not formatted.
19 | ///
20 | public bool? Literal { get; set; }
21 |
22 | public bool? SpaceContent { get; set; }
23 |
24 | public bool? SpaceSelfClosing { get; set; }
25 |
26 | ///
27 | /// If not , overrides the default tag split setting.
28 | ///
29 | public XmlTagNewLine Split { get; set; }
30 | }
31 | }
--------------------------------------------------------------------------------
/CodeMaidShared/Helpers/PropertyInfoHelper.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Linq.Expressions;
3 | using System.Reflection;
4 |
5 | namespace SteveCadwallader.CodeMaid.Helpers
6 | {
7 | ///
8 | /// A helper class that provides reflection access to property information.
9 | ///
10 | /// The class where the property exists.
11 | public static class PropertyInfoHelper
12 | {
13 | ///
14 | /// Gets the property info referenced by the specified lambda expression.
15 | ///
16 | /// The type of the value.
17 | /// The lambda.
18 | /// The property info for the referenced property, otherwise null.
19 | public static PropertyInfo GetPropertyInfo(Expression> lambda)
20 | {
21 | return lambda.Body.NodeType == ExpressionType.MemberAccess
22 | ? ((MemberExpression)lambda.Body).Member as PropertyInfo
23 | : null;
24 | }
25 | }
26 | }
--------------------------------------------------------------------------------
/CodeMaidShared/Helpers/EditPointExtensions.cs:
--------------------------------------------------------------------------------
1 | using EnvDTE;
2 |
3 | namespace SteveCadwallader.CodeMaid.Helpers
4 | {
5 | ///
6 | /// A set of extension methods for .
7 | ///
8 | internal static class EditPointExtensions
9 | {
10 | ///
11 | /// Gets the for this edit point.
12 | ///
13 | /// The edit point.
14 | /// A .
15 | internal static CodeLanguage GetCodeLanguage(this EditPoint editPoint)
16 | {
17 | return editPoint.Parent.GetCodeLanguage();
18 | }
19 |
20 | ///
21 | /// Gets the text for the line where the edit point is located.
22 | ///
23 | /// The edit point.
24 | /// The text of the edit point's line.
25 | internal static string GetLine(this EditPoint editPoint)
26 | {
27 | return editPoint.GetLines(editPoint.Line, editPoint.Line + 1);
28 | }
29 | }
30 | }
--------------------------------------------------------------------------------
/CodeMaid/CodeMaid.imagemanifest:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/CodeMaidShared/Properties/Settings.cs:
--------------------------------------------------------------------------------
1 | using SteveCadwallader.CodeMaid.Helpers;
2 | using System.Configuration;
3 |
4 | namespace SteveCadwallader.CodeMaid.Properties
5 | {
6 | ///
7 | /// This partial class instructs the class to utilize the .
8 | ///
9 | [SettingsProvider(typeof(CodeMaidSettingsProvider))]
10 | public sealed partial class Settings
11 | {
12 | ///
13 | /// Updates application settings to reflect a more recent installation of the application.
14 | ///
15 | public override void Upgrade()
16 | {
17 | var oldSettingsProvider = new LocalFileSettingsProvider();
18 | var oldPropertyValues = oldSettingsProvider.GetPropertyValues(Context, Properties);
19 |
20 | foreach (SettingsPropertyValue oldPropertyValue in oldPropertyValues)
21 | {
22 | if (!Equals(this[oldPropertyValue.Name], oldPropertyValue.PropertyValue))
23 | {
24 | this[oldPropertyValue.Name] = oldPropertyValue.PropertyValue;
25 | }
26 | }
27 | }
28 | }
29 | }
--------------------------------------------------------------------------------
/CodeMaidShared/UI/Dialogs/Options/Cleaning/CleaningParentViewModel.cs:
--------------------------------------------------------------------------------
1 | using SteveCadwallader.CodeMaid.Properties;
2 |
3 | namespace SteveCadwallader.CodeMaid.UI.Dialogs.Options.Cleaning
4 | {
5 | ///
6 | /// The view model for cleaning options - a parent to more specific view models.
7 | ///
8 | public class CleaningParentViewModel : OptionsPageViewModel
9 | {
10 | #region Constructors
11 |
12 | ///
13 | /// Initializes a new instance of the class.
14 | ///
15 | /// The hosting package.
16 | /// The active settings.
17 | public CleaningParentViewModel(CodeMaidPackage package, Settings activeSettings)
18 | : base(package, activeSettings)
19 | {
20 | }
21 |
22 | #endregion Constructors
23 |
24 | #region Overrides of OptionsPageViewModel
25 |
26 | ///
27 | /// Gets the header.
28 | ///
29 | public override string Header => Resources.Cleaning_n;
30 |
31 | #endregion Overrides of OptionsPageViewModel
32 | }
33 | }
--------------------------------------------------------------------------------
/CodeMaid.UnitTests/MemberTypeSettingTests.cs:
--------------------------------------------------------------------------------
1 | using Microsoft.VisualStudio.TestTools.UnitTesting;
2 | using SteveCadwallader.CodeMaid.Helpers;
3 |
4 | namespace SteveCadwallader.CodeMaid.UnitTests
5 | {
6 | [TestClass]
7 | public class MemberTypeSettingTests
8 | {
9 | [TestMethod]
10 | public void CanSerializeMemberTypeSetting()
11 | {
12 | var memberTypeSetting = new MemberTypeSetting("Fields", "Member Variables", 1);
13 | Assert.IsNotNull(memberTypeSetting);
14 |
15 | var serializedString = (string)memberTypeSetting;
16 | Assert.IsFalse(string.IsNullOrWhiteSpace(serializedString));
17 | }
18 |
19 | [TestMethod]
20 | public void CanDeserializeMemberTypeSetting()
21 | {
22 | const string serializedString = @"Fields||1||Member Variables";
23 |
24 | var memberTypeSetting = (MemberTypeSetting)serializedString;
25 |
26 | Assert.IsNotNull(memberTypeSetting);
27 | Assert.AreEqual(memberTypeSetting.DefaultName, "Fields");
28 | Assert.AreEqual(memberTypeSetting.EffectiveName, "Member Variables");
29 | Assert.AreEqual(memberTypeSetting.Order, 1);
30 | }
31 | }
32 | }
--------------------------------------------------------------------------------
/CodeMaidShared/Model/CodeItems/SnapshotCodeItems.cs:
--------------------------------------------------------------------------------
1 | using EnvDTE;
2 |
3 | namespace SteveCadwallader.CodeMaid.Model.CodeItems
4 | {
5 | ///
6 | /// A snapshot of a document and its associated code items at a point in time.
7 | ///
8 | internal class SnapshotCodeItems
9 | {
10 | #region Constructors
11 |
12 | ///
13 | /// Initializes a new instance of the class.
14 | ///
15 | /// The document.
16 | /// The code items.
17 | internal SnapshotCodeItems(Document document, SetCodeItems codeItems)
18 | {
19 | Document = document;
20 | CodeItems = codeItems;
21 | }
22 |
23 | #endregion Constructors
24 |
25 | #region Properties
26 |
27 | ///
28 | /// Gets the document.
29 | ///
30 | internal Document Document { get; private set; }
31 |
32 | ///
33 | /// Gets the code items.
34 | ///
35 | internal SetCodeItems CodeItems { get; private set; }
36 |
37 | #endregion Properties
38 | }
39 | }
--------------------------------------------------------------------------------
/CodeMaidShared/UI/Dialogs/Options/Reorganizing/ReorganizingParentViewModel.cs:
--------------------------------------------------------------------------------
1 | using SteveCadwallader.CodeMaid.Properties;
2 |
3 | namespace SteveCadwallader.CodeMaid.UI.Dialogs.Options.Reorganizing
4 | {
5 | ///
6 | /// The view model for reorganizing options - a parent to more specific view models.
7 | ///
8 | public class ReorganizingParentViewModel : OptionsPageViewModel
9 | {
10 | #region Constructors
11 |
12 | ///
13 | /// Initializes a new instance of the class.
14 | ///
15 | /// The hosting package.
16 | /// The active settings.
17 | public ReorganizingParentViewModel(CodeMaidPackage package, Settings activeSettings)
18 | : base(package, activeSettings)
19 | {
20 | }
21 |
22 | #endregion Constructors
23 |
24 | #region Overrides of OptionsPageViewModel
25 |
26 | ///
27 | /// Gets the header.
28 | ///
29 | public override string Header => Resources.Reorganizing;
30 |
31 | #endregion Overrides of OptionsPageViewModel
32 | }
33 | }
--------------------------------------------------------------------------------
/CodeMaidShared/Helpers/RegexNullSafe.cs:
--------------------------------------------------------------------------------
1 | using System.Text.RegularExpressions;
2 |
3 | namespace SteveCadwallader.CodeMaid.Helpers
4 | {
5 | ///
6 | /// A helper class that wraps with safe handling for null input scenarios.
7 | ///
8 | public static class RegexNullSafe
9 | {
10 | ///
11 | /// A wrapper around that returns false if either
12 | /// input or pattern are null instead of throwing an .
13 | ///
14 | /// The string to search for a match.
15 | /// The regular expression pattern to match.
16 | /// True if the regular expression finds a match; otherwise, false.
17 | public static bool IsMatch(string input, string pattern)
18 | {
19 | if (input == null || pattern == null)
20 | {
21 | OutputWindowHelper.WarningWriteLine("Returned false due to a null input or pattern passed to RegexNullSafe's IsMatch.");
22 | return false;
23 | }
24 |
25 | return Regex.IsMatch(input, pattern);
26 | }
27 | }
28 | }
--------------------------------------------------------------------------------
/CodeMaidShared/UI/NotifiesOnAttribute.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace SteveCadwallader.CodeMaid.UI
4 | {
5 | ///
6 | /// This attribute is used to declare that a property should raise a notification
7 | /// when an independent property is raising a notification.
8 | ///
9 | [AttributeUsage(AttributeTargets.Property, AllowMultiple = true)]
10 | public class NotifiesOnAttribute : Attribute
11 | {
12 | ///
13 | /// Initializes a new instance of the class.
14 | ///
15 | /// The name of the independent property.
16 | /// is null.
17 | public NotifiesOnAttribute(string name)
18 | {
19 | if (name == null) throw new ArgumentNullException(nameof(name));
20 |
21 | Name = name;
22 | }
23 |
24 | ///
25 | /// The name of the independent property.
26 | ///
27 | public string Name { get; private set; }
28 |
29 | ///
30 | /// A unique identifier for this attribute.
31 | ///
32 | public override object TypeId => this;
33 | }
34 | }
--------------------------------------------------------------------------------
/CodeMaidShared/Helpers/CodeItemParentExtensions.cs:
--------------------------------------------------------------------------------
1 | using SteveCadwallader.CodeMaid.Model.CodeItems;
2 |
3 | namespace SteveCadwallader.CodeMaid.Helpers
4 | {
5 | ///
6 | /// A set of extension methods for .
7 | ///
8 | public static class CodeItemParentExtensions
9 | {
10 | ///
11 | /// Recursively gets the children in a depth-first fashion for the specified parent without
12 | /// delving into nested element parents.
13 | ///
14 | /// The parent.
15 | /// The recursive set of children.
16 | public static SetCodeItems GetChildrenRecursive(this ICodeItemParent parent)
17 | {
18 | var children = new SetCodeItems();
19 |
20 | foreach (var child in parent.Children)
21 | {
22 | children.Add(child);
23 |
24 | var childAsParent = child as ICodeItemParent;
25 | if (childAsParent != null && !(child is BaseCodeItemElementParent))
26 | {
27 | children.AddRange(childAsParent.GetChildrenRecursive());
28 | }
29 | }
30 |
31 | return children;
32 | }
33 | }
34 | }
--------------------------------------------------------------------------------
/CodeMaid.UnitTests/Formatting/CommentFormatHelper.cs:
--------------------------------------------------------------------------------
1 | using Microsoft.VisualStudio.TestTools.UnitTesting;
2 | using SteveCadwallader.CodeMaid.Model.Comments;
3 | using SteveCadwallader.CodeMaid.Model.Comments.Options;
4 | using System;
5 |
6 | namespace SteveCadwallader.CodeMaid.UnitTests.Formatting
7 | {
8 | internal class CommentFormatHelper
9 | {
10 | public static string AssertEqualAfterFormat(
11 | string text,
12 | Action options = null)
13 | {
14 | return AssertEqualAfterFormat(text, null, null, options);
15 | }
16 |
17 | public static string AssertEqualAfterFormat(
18 | string text,
19 | string expected,
20 | Action options = null)
21 | {
22 | return AssertEqualAfterFormat(text, expected, null, options);
23 | }
24 |
25 | public static string AssertEqualAfterFormat(
26 | string text,
27 | string expected,
28 | string prefix,
29 | Action options = null)
30 | {
31 | var result = CodeComment.Format(text, prefix, options);
32 | Assert.AreEqual(expected ?? text, result);
33 | return result;
34 | }
35 | }
36 | }
--------------------------------------------------------------------------------
/CodeMaidShared/Helpers/TextDocumentExtensions.cs:
--------------------------------------------------------------------------------
1 | using EnvDTE;
2 |
3 | namespace SteveCadwallader.CodeMaid.Helpers
4 | {
5 | ///
6 | /// A set of extension methods for .
7 | ///
8 | internal static class TextDocumentExtensions
9 | {
10 | ///
11 | /// Gets the for this text document.
12 | ///
13 | /// The document.
14 | /// A .
15 | internal static CodeLanguage GetCodeLanguage(this TextDocument document)
16 | {
17 | return CodeLanguageHelper.GetCodeLanguage(document.Language);
18 | }
19 |
20 | ///
21 | /// Gets an edit point at the cursor for the specified text document.
22 | ///
23 | /// The text document.
24 | /// An edit point at the cursor.
25 | internal static EditPoint GetEditPointAtCursor(this TextDocument textDocument)
26 | {
27 | var cursor = textDocument.CreateEditPoint();
28 | cursor.MoveToPoint(textDocument.Selection.ActivePoint);
29 |
30 | return cursor;
31 | }
32 | }
33 | }
--------------------------------------------------------------------------------
/CodeMaidShared/UI/Dialogs/Options/Progressing/ProgressingDataTemplate.xaml:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/CodeMaidShared/UI/EditableTextBlock.xaml:
--------------------------------------------------------------------------------
1 |
7 |
8 |
11 |
12 |
15 |
16 |
--------------------------------------------------------------------------------
/CodeMaidShared/Model/CodeItems/CodeItemNamespace.cs:
--------------------------------------------------------------------------------
1 | using EnvDTE;
2 | using System;
3 |
4 | namespace SteveCadwallader.CodeMaid.Model.CodeItems
5 | {
6 | ///
7 | /// The representation of a code namespace.
8 | ///
9 | public class CodeItemNamespace : BaseCodeItemElementParent
10 | {
11 | #region Constructors
12 |
13 | ///
14 | /// Initializes a new instance of the class.
15 | ///
16 | public CodeItemNamespace()
17 | {
18 | _DocComment = LazyTryDefault(
19 | () => CodeNamespace?.DocComment);
20 |
21 | _TypeString = new Lazy(
22 | () => "namespace");
23 | }
24 |
25 | #endregion Constructors
26 |
27 | #region BaseCodeItem Overrides
28 |
29 | ///
30 | /// Gets the kind.
31 | ///
32 | public override KindCodeItem Kind => KindCodeItem.Namespace;
33 |
34 | #endregion BaseCodeItem Overrides
35 |
36 | #region Properties
37 |
38 | ///
39 | /// Gets or sets the underlying VSX CodeNamespace.
40 | ///
41 | public CodeNamespace CodeNamespace { get; set; }
42 |
43 | #endregion Properties
44 | }
45 | }
--------------------------------------------------------------------------------
/CodeMaidShared/Model/CodeItems/KindCodeItem.cs:
--------------------------------------------------------------------------------
1 | using System.ComponentModel;
2 |
3 | namespace SteveCadwallader.CodeMaid.Model.CodeItems
4 | {
5 | ///
6 | /// An enumeration of kind of code items. Does not 1:1 correspond to the code item classes (ex:
7 | /// CodeItemMethod includes constructors and destructors).
8 | ///
9 | public enum KindCodeItem
10 | {
11 | [Description("Fields")]
12 | Field,
13 |
14 | [Description("Constructors")]
15 | Constructor,
16 |
17 | [Description("Destructors")]
18 | Destructor,
19 |
20 | [Description("Delegates")]
21 | Delegate,
22 |
23 | [Description("Events")]
24 | Event,
25 |
26 | [Description("Enums")]
27 | Enum,
28 |
29 | [Description("Indexers")]
30 | Indexer,
31 |
32 | [Description("Interfaces")]
33 | Interface,
34 |
35 | [Description("Properties")]
36 | Property,
37 |
38 | [Description("Methods")]
39 | Method,
40 |
41 | [Description("Structs")]
42 | Struct,
43 |
44 | [Description("Classes")]
45 | Class,
46 |
47 | [Description("Namespaces")]
48 | Namespace,
49 |
50 | [Description("Regions")]
51 | Region,
52 |
53 | [Description("Usings")]
54 | Using
55 | }
56 | }
--------------------------------------------------------------------------------
/CodeMaid.UnitTests/app.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/CodeMaid.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 | \.Designer\.cs$||\.Designer\.vb$||\.resx$||CodeMaid.IntegrationTests\\.*\\Data\\||CodeMaid\\CodeMaid.cs||CodeMaid\\source.extension.cs
12 |
13 |
14 | True
15 |
16 |
17 | False
18 |
19 |
20 | True
21 |
22 |
23 | True
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/CodeMaidShared/UI/ToolWindows/Spade/MemberSearchTask.cs:
--------------------------------------------------------------------------------
1 | using Microsoft.VisualStudio;
2 | using Microsoft.VisualStudio.Shell;
3 | using Microsoft.VisualStudio.Shell.Interop;
4 | using System;
5 |
6 | namespace SteveCadwallader.CodeMaid.UI.ToolWindows.Spade
7 | {
8 | ///
9 | /// A class implementing in order to search code members.
10 | ///
11 | internal class MemberSearchTask : VsSearchTask
12 | {
13 | private readonly Action _callback;
14 |
15 | ///
16 | /// Initializes a new instance of the class.
17 | ///
18 | public MemberSearchTask(uint dwCookie, IVsSearchQuery pSearchQuery, IVsSearchCallback pSearchCallback, Action callback)
19 | : base(dwCookie, pSearchQuery, pSearchCallback)
20 | {
21 | _callback = callback;
22 | }
23 |
24 | ///
25 | /// Performs the search task.
26 | ///
27 | protected override void OnStartSearch()
28 | {
29 | ErrorCode = VSConstants.S_OK;
30 |
31 | try
32 | {
33 | _callback(SearchQuery.SearchString);
34 | }
35 | catch (Exception)
36 | {
37 | ErrorCode = VSConstants.E_FAIL;
38 | }
39 |
40 | base.OnStartSearch();
41 | }
42 | }
43 | }
--------------------------------------------------------------------------------
/CodeMaidShared/Helpers/CodeItemNameComparer.cs:
--------------------------------------------------------------------------------
1 | using SteveCadwallader.CodeMaid.Model.CodeItems;
2 | using System.Collections.Generic;
3 |
4 | namespace SteveCadwallader.CodeMaid.Helpers
5 | {
6 | ///
7 | /// A helper for comparing code items by name.
8 | ///
9 | public class CodeItemNameComparer : Comparer
10 | {
11 | ///
12 | /// Performs a comparison of two objects of the same type and returns a value indicating
13 | /// whether one object is less than, equal to, or greater than the other.
14 | ///
15 | /// The first object to compare.
16 | /// The second object to compare.
17 | ///
18 | /// Less than zero: is less than .
19 | /// Zero: equals .
20 | /// Greater than zero: is greater than .
21 | ///
22 | public override int Compare(BaseCodeItem x, BaseCodeItem y)
23 | {
24 | int nameComparison = x.Name.CompareTo(y.Name);
25 |
26 | if (nameComparison == 0)
27 | {
28 | // Fall back to position comparison for matching elements.
29 | return x.StartOffset.CompareTo(y.StartOffset);
30 | }
31 |
32 | return nameComparison;
33 | }
34 | }
35 | }
--------------------------------------------------------------------------------
/CodeMaidShared/Model/Comments/Options/FormatterOptions.cs:
--------------------------------------------------------------------------------
1 | using SteveCadwallader.CodeMaid.Properties;
2 | using System;
3 |
4 | namespace SteveCadwallader.CodeMaid.Model.Comments.Options
5 | {
6 | ///
7 | /// Document wide options for the comment formatter.
8 | ///
9 | public class FormatterOptions
10 | {
11 | ///
12 | /// The list of comment prefix tokens to ignore while formatting the comment.
13 | ///
14 | public string[] IgnoreTokens { get; set; }
15 |
16 | ///
17 | /// Do not wrap to a newline for only a single word.
18 | ///
19 | public bool SkipWrapOnLastWord { get; set; }
20 |
21 | public int TabSize { get; set; } = 4;
22 |
23 | public int WrapColumn { get; set; }
24 |
25 | public FormatterOptionsXml Xml { get; set; }
26 |
27 | internal static FormatterOptions FromSettings(Settings settings)
28 | {
29 | return new FormatterOptions
30 | {
31 | WrapColumn = settings.Formatting_CommentWrapColumn,
32 | SkipWrapOnLastWord = settings.Formatting_CommentSkipWrapOnLastWord,
33 | Xml = FormatterOptionsXml.FromSettings(settings)
34 | };
35 | }
36 |
37 | internal FormatterOptions Set(Action action)
38 | {
39 | action?.Invoke(this);
40 | return this;
41 | }
42 | }
43 | }
--------------------------------------------------------------------------------
/CodeMaidShared/UI/Dialogs/Options/ISettingToOptionMapping.cs:
--------------------------------------------------------------------------------
1 | using SteveCadwallader.CodeMaid.Properties;
2 | using System.Reflection;
3 |
4 | namespace SteveCadwallader.CodeMaid.UI.Dialogs.Options
5 | {
6 | ///
7 | /// An interface describing a setting to option mapping.
8 | ///
9 | public interface ISettingToOptionMapping
10 | {
11 | ///
12 | /// Gets the defining the setting property.
13 | ///
14 | PropertyInfo SettingProperty { get; }
15 |
16 | ///
17 | /// Gets the defining the option property.
18 | ///
19 | PropertyInfo OptionProperty { get; }
20 |
21 | ///
22 | /// Copies the value within the setting property onto the option property.
23 | ///
24 | /// The class instance for the settings property.
25 | /// The class instance for the option property.
26 | void CopySettingToOption(Settings settingsClass, object optionClass);
27 |
28 | ///
29 | /// Copies the value within the option property onto the setting property.
30 | ///
31 | /// The class instance for the settings property.
32 | /// The class instance for the option property.
33 | void CopyOptionToSetting(Settings settingsClass, object optionClass);
34 | }
35 | }
--------------------------------------------------------------------------------
/CodeMaidShared/Model/CodeItems/CodeItemEnum.cs:
--------------------------------------------------------------------------------
1 | using EnvDTE;
2 | using System;
3 |
4 | namespace SteveCadwallader.CodeMaid.Model.CodeItems
5 | {
6 | ///
7 | /// The representation of a code enumeration.
8 | ///
9 | public class CodeItemEnum : BaseCodeItemElementParent
10 | {
11 | #region Constructors
12 |
13 | ///
14 | /// Initializes a new instance of the class.
15 | ///
16 | public CodeItemEnum()
17 | {
18 | _Access = LazyTryDefault(
19 | () => CodeEnum?.Access ?? vsCMAccess.vsCMAccessPublic);
20 |
21 | _Attributes = LazyTryDefault(
22 | () => CodeEnum?.Attributes);
23 |
24 | _DocComment = LazyTryDefault(
25 | () => CodeEnum?.DocComment);
26 |
27 | _Namespace = LazyTryDefault(
28 | () => CodeEnum?.Namespace?.Name);
29 |
30 | _TypeString = new Lazy(
31 | () => "enum");
32 | }
33 |
34 | #endregion Constructors
35 |
36 | #region BaseCodeItem Overrides
37 |
38 | ///
39 | /// Gets the kind.
40 | ///
41 | public override KindCodeItem Kind => KindCodeItem.Enum;
42 |
43 | #endregion BaseCodeItem Overrides
44 |
45 | #region Properties
46 |
47 | ///
48 | /// Gets or sets the underlying VSX CodeEnum.
49 | ///
50 | public CodeEnum CodeEnum { get; set; }
51 |
52 | #endregion Properties
53 | }
54 | }
--------------------------------------------------------------------------------
/CodeMaidShared/UI/Dialogs/CleanupProgress/CleanupProgressWindow.xaml.cs:
--------------------------------------------------------------------------------
1 | using System.ComponentModel;
2 | using System.Reflection;
3 | using System.Windows;
4 |
5 | namespace SteveCadwallader.CodeMaid.UI.Dialogs.CleanupProgress
6 | {
7 | ///
8 | /// Interaction logic for CleanupProgressWindow.xaml
9 | ///
10 | public partial class CleanupProgressWindow
11 | {
12 | #region Constructors
13 |
14 | ///
15 | /// Initializes a new instance of the class.
16 | ///
17 | public CleanupProgressWindow()
18 | {
19 | Application.ResourceAssembly = Assembly.GetExecutingAssembly();
20 |
21 | InitializeComponent();
22 | }
23 |
24 | #endregion Constructors
25 |
26 | #region Private Event Handlers
27 |
28 | ///
29 | /// Called when the window is attempting to close.
30 | ///
31 | /// The sender.
32 | ///
33 | /// The instance containing the event data.
34 | ///
35 | private void OnClosing(object sender, CancelEventArgs e)
36 | {
37 | var viewModel = DataContext as CleanupProgressViewModel;
38 | if (viewModel != null && viewModel.DialogResult == null)
39 | {
40 | viewModel.CancelCommand.Execute(null);
41 | e.Cancel = true;
42 | }
43 | }
44 |
45 | #endregion Private Event Handlers
46 | }
47 | }
--------------------------------------------------------------------------------
/CodeMaid/source.extension.vsixmanifest:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CodeMaid
6 | CodeMaid is an open source Visual Studio extension to cleanup and simplify our C#, C++, F#, VB, PHP, PowerShell, R, JSON, XAML, XML, ASP, HTML, CSS, LESS, SCSS, JavaScript and TypeScript coding.
7 | http://www.codemaid.net/
8 | LICENSE.txt
9 | CodeMaid.png
10 | CodeMaid_Large.png
11 | build, code, c#, beautify, cleanup, cleaning, digging, reorganizing, formatting
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/CodeMaidShared/Model/CodeItems/CodeItemStruct.cs:
--------------------------------------------------------------------------------
1 | using EnvDTE;
2 | using EnvDTE80;
3 | using System;
4 |
5 | namespace SteveCadwallader.CodeMaid.Model.CodeItems
6 | {
7 | ///
8 | /// The representation of a code struct.
9 | ///
10 | public class CodeItemStruct : BaseCodeItemElementParent
11 | {
12 | #region Constructors
13 |
14 | ///
15 | /// Initializes a new instance of the class.
16 | ///
17 | public CodeItemStruct()
18 | {
19 | _Access = LazyTryDefault(
20 | () => CodeStruct?.Access ?? vsCMAccess.vsCMAccessPublic);
21 |
22 | _Attributes = LazyTryDefault(
23 | () => CodeStruct?.Attributes);
24 |
25 | _DocComment = LazyTryDefault(
26 | () => CodeStruct?.DocComment);
27 |
28 | _Namespace = LazyTryDefault(
29 | () => CodeStruct?.Namespace?.Name);
30 |
31 | _TypeString = new Lazy(
32 | () => "struct");
33 | }
34 |
35 | #endregion Constructors
36 |
37 | #region BaseCodeItem Overrides
38 |
39 | ///
40 | /// Gets the kind.
41 | ///
42 | public override KindCodeItem Kind => KindCodeItem.Struct;
43 |
44 | #endregion BaseCodeItem Overrides
45 |
46 | #region Properties
47 |
48 | ///
49 | /// Gets or sets the underlying VSX CodeStruct.
50 | ///
51 | public CodeStruct2 CodeStruct { get; set; }
52 |
53 | #endregion Properties
54 | }
55 | }
--------------------------------------------------------------------------------
/CodeMaidShared/Integration/Commands/AboutCommand.cs:
--------------------------------------------------------------------------------
1 | using SteveCadwallader.CodeMaid.UI.Dialogs.About;
2 | using System.Threading.Tasks;
3 |
4 | namespace SteveCadwallader.CodeMaid.Integration.Commands
5 | {
6 | ///
7 | /// A command that provides for launching the CodeMaid about window.
8 | ///
9 | internal sealed class AboutCommand : BaseCommand
10 | {
11 | ///
12 | /// Initializes a new instance of the class.
13 | ///
14 | /// The hosting package.
15 | private AboutCommand(CodeMaidPackage package)
16 | : base(package, PackageGuids.GuidCodeMaidMenuSet, PackageIds.CmdIDCodeMaidAbout)
17 | {
18 | }
19 |
20 | ///
21 | /// A singleton instance of this command.
22 | ///
23 | public static AboutCommand Instance { get; private set; }
24 |
25 | ///
26 | /// Initializes a singleton instance of this command.
27 | ///
28 | /// The hosting package.
29 | /// A task.
30 | public static async Task InitializeAsync(CodeMaidPackage package)
31 | {
32 | Instance = new AboutCommand(package);
33 | await Instance.SwitchAsync(on: true);
34 | }
35 |
36 | ///
37 | /// Called to execute the command.
38 | ///
39 | protected override void OnExecute()
40 | {
41 | base.OnExecute();
42 |
43 | new AboutWindow().ShowModal();
44 | }
45 | }
46 | }
--------------------------------------------------------------------------------
/CodeMaidShared/Model/CodeItems/CodeItemInterface.cs:
--------------------------------------------------------------------------------
1 | using EnvDTE;
2 | using EnvDTE80;
3 | using System;
4 |
5 | namespace SteveCadwallader.CodeMaid.Model.CodeItems
6 | {
7 | ///
8 | /// The representation of a code interface.
9 | ///
10 | public class CodeItemInterface : BaseCodeItemElementParent
11 | {
12 | #region Constructors
13 |
14 | ///
15 | /// Initializes a new instance of the class.
16 | ///
17 | public CodeItemInterface()
18 | {
19 | _Access = LazyTryDefault(
20 | () => CodeInterface?.Access ?? vsCMAccess.vsCMAccessPublic);
21 |
22 | _Attributes = LazyTryDefault(
23 | () => CodeInterface?.Attributes);
24 |
25 | _DocComment = LazyTryDefault(
26 | () => CodeInterface?.DocComment);
27 |
28 | _Namespace = LazyTryDefault(
29 | () => CodeInterface?.Namespace?.Name);
30 |
31 | _TypeString = new Lazy(
32 | () => "interface");
33 | }
34 |
35 | #endregion Constructors
36 |
37 | #region BaseCodeItem Overrides
38 |
39 | ///
40 | /// Gets the kind.
41 | ///
42 | public override KindCodeItem Kind => KindCodeItem.Interface;
43 |
44 | #endregion BaseCodeItem Overrides
45 |
46 | #region Properties
47 |
48 | ///
49 | /// Gets or sets the underlying VSX CodeInterface.
50 | ///
51 | public CodeInterface2 CodeInterface { get; set; }
52 |
53 | #endregion Properties
54 | }
55 | }
--------------------------------------------------------------------------------
/CodeMaidShared/Helpers/DocumentExtensions.cs:
--------------------------------------------------------------------------------
1 | using EnvDTE;
2 |
3 | namespace SteveCadwallader.CodeMaid.Helpers
4 | {
5 | ///
6 | /// A set of extension methods for .
7 | ///
8 | internal static class DocumentExtensions
9 | {
10 | ///
11 | /// Gets the for this document.
12 | ///
13 | /// The document.
14 | /// A .
15 | internal static CodeLanguage GetCodeLanguage(this Document document)
16 | {
17 | return CodeLanguageHelper.GetCodeLanguage(document.Language);
18 | }
19 |
20 | ///
21 | /// Attempts to get the TextDocument associated with the specified document.
22 | ///
23 | /// The document.
24 | /// The associated text document, otherwise null.
25 | internal static TextDocument GetTextDocument(this Document document)
26 | {
27 | return document.Object("TextDocument") as TextDocument;
28 | }
29 |
30 | ///
31 | /// Determines if the specified document is external to the solution.
32 | ///
33 | /// The document.
34 | /// True if the document is external, otherwise false.
35 | internal static bool IsExternal(this Document document)
36 | {
37 | var projectItem = document.ProjectItem;
38 |
39 | return projectItem == null || projectItem.IsExternal();
40 | }
41 | }
42 | }
--------------------------------------------------------------------------------
/CodeMaidShared/Model/CodeTree/CodeTreeRequest.cs:
--------------------------------------------------------------------------------
1 | using EnvDTE;
2 | using SteveCadwallader.CodeMaid.Model.CodeItems;
3 |
4 | namespace SteveCadwallader.CodeMaid.Model.CodeTree
5 | {
6 | ///
7 | /// A simple class for containing a request to build a code tree.
8 | ///
9 | internal class CodeTreeRequest
10 | {
11 | ///
12 | /// Initializes a new instance of the class.
13 | ///
14 | /// The document.
15 | /// The raw code items.
16 | /// The sort order.
17 | /// The name filter.
18 | internal CodeTreeRequest(Document document, SetCodeItems rawCodeItems, CodeSortOrder sortOrder, string nameFilter = null)
19 | {
20 | Document = document;
21 | RawCodeItems = rawCodeItems;
22 | SortOrder = sortOrder;
23 | NameFilter = nameFilter;
24 | }
25 |
26 | ///
27 | /// Gets the document.
28 | ///
29 | internal Document Document { get; private set; }
30 |
31 | ///
32 | /// Gets the raw code items.
33 | ///
34 | internal SetCodeItems RawCodeItems { get; private set; }
35 |
36 | ///
37 | /// Gets the sort order.
38 | ///
39 | internal CodeSortOrder SortOrder { get; private set; }
40 |
41 | ///
42 | /// Gets the name filter.
43 | ///
44 | internal string NameFilter { get; private set; }
45 | }
46 | }
--------------------------------------------------------------------------------
/CodeMaidShared/Model/CodeItems/CodeItemUsingStatement.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace SteveCadwallader.CodeMaid.Model.CodeItems
4 | {
5 | ///
6 | /// The representation of a code using statemen.
7 | ///
8 | public class CodeItemUsingStatement : BaseCodeItemElement
9 | {
10 | #region Constructors
11 |
12 | ///
13 | /// Initializes a new instance of the class.
14 | ///
15 | public CodeItemUsingStatement()
16 | {
17 | _TypeString = new Lazy(
18 | () => "using");
19 | }
20 |
21 | #endregion Constructors
22 |
23 | #region BaseCodeItem Overrides
24 |
25 | ///
26 | /// Gets the kind.
27 | ///
28 | public override KindCodeItem Kind => KindCodeItem.Using;
29 |
30 | ///
31 | /// Refreshes the cached position and name fields on this item.
32 | ///
33 | ///
34 | /// Similar to BaseCodeItemElement's implementation, except ignores the Name property which
35 | /// is not available for using statements.
36 | ///
37 | public override void RefreshCachedPositionAndName()
38 | {
39 | var startPoint = CodeElement.GetStartPoint();
40 | var endPoint = CodeElement.GetEndPoint();
41 |
42 | StartLine = startPoint.Line;
43 | StartOffset = startPoint.AbsoluteCharOffset;
44 | EndLine = endPoint.Line;
45 | EndOffset = endPoint.AbsoluteCharOffset;
46 | }
47 |
48 | #endregion BaseCodeItem Overrides
49 | }
50 | }
--------------------------------------------------------------------------------
/CodeMaidShared/Model/CodeItems/CodeItemClass.cs:
--------------------------------------------------------------------------------
1 | using EnvDTE;
2 | using EnvDTE80;
3 | using System;
4 |
5 | namespace SteveCadwallader.CodeMaid.Model.CodeItems
6 | {
7 | ///
8 | /// The representation of a code class.
9 | ///
10 | public class CodeItemClass : BaseCodeItemElementParent
11 | {
12 | #region Constructors
13 |
14 | ///
15 | /// Initializes a new instance of the class.
16 | ///
17 | public CodeItemClass()
18 | {
19 | _Access = LazyTryDefault(
20 | () => CodeClass?.Access ?? vsCMAccess.vsCMAccessPublic);
21 |
22 | _Attributes = LazyTryDefault(
23 | () => CodeClass?.Attributes);
24 |
25 | _DocComment = LazyTryDefault(
26 | () => CodeClass?.DocComment);
27 |
28 | _IsStatic = LazyTryDefault(
29 | () => CodeClass != null && CodeClass.IsShared);
30 |
31 | _Namespace = LazyTryDefault(
32 | () => CodeClass?.Namespace?.Name);
33 |
34 | _TypeString = new Lazy(
35 | () => "class");
36 | }
37 |
38 | #endregion Constructors
39 |
40 | #region BaseCodeItem Overrides
41 |
42 | ///
43 | /// Gets the kind.
44 | ///
45 | public override KindCodeItem Kind => KindCodeItem.Class;
46 |
47 | #endregion BaseCodeItem Overrides
48 |
49 | #region Properties
50 |
51 | ///
52 | /// Gets or sets the underlying VSX CodeClass.
53 | ///
54 | public CodeClass2 CodeClass { get; set; }
55 |
56 | #endregion Properties
57 | }
58 | }
--------------------------------------------------------------------------------
/CodeMaidShared/Integration/Commands/OptionsCommand.cs:
--------------------------------------------------------------------------------
1 | using SteveCadwallader.CodeMaid.UI.Dialogs.Options;
2 | using System.Threading.Tasks;
3 |
4 | namespace SteveCadwallader.CodeMaid.Integration.Commands
5 | {
6 | ///
7 | /// A command that provides for launching the CodeMaid Options to the general cleanup page.
8 | ///
9 | internal sealed class OptionsCommand : BaseCommand
10 | {
11 | ///
12 | /// Initializes a new instance of the class.
13 | ///
14 | /// The hosting package.
15 | internal OptionsCommand(CodeMaidPackage package)
16 | : base(package, PackageGuids.GuidCodeMaidMenuSet, PackageIds.CmdIDCodeMaidOptions)
17 | {
18 | }
19 |
20 | ///
21 | /// A singleton instance of this command.
22 | ///
23 | public static OptionsCommand Instance { get; private set; }
24 |
25 | ///
26 | /// Initializes a singleton instance of this command.
27 | ///
28 | /// The hosting package.
29 | /// A task.
30 | public static async Task InitializeAsync(CodeMaidPackage package)
31 | {
32 | Instance = new OptionsCommand(package);
33 | await Instance.SwitchAsync(on: true);
34 | }
35 |
36 | ///
37 | /// Called to execute the command.
38 | ///
39 | protected override void OnExecute()
40 | {
41 | base.OnExecute();
42 |
43 | new OptionsWindow { DataContext = new OptionsViewModel(Package) }.ShowModal();
44 | }
45 | }
46 | }
--------------------------------------------------------------------------------
/CodeMaidShared/Integration/Commands/SpadeRefreshCommand.cs:
--------------------------------------------------------------------------------
1 | using System.Threading.Tasks;
2 |
3 | namespace SteveCadwallader.CodeMaid.Integration.Commands
4 | {
5 | ///
6 | /// A command that provides for refreshing the Spade tool window.
7 | ///
8 | internal sealed class SpadeRefreshCommand : BaseCommand
9 | {
10 | ///
11 | /// Initializes a new instance of the class.
12 | ///
13 | /// The hosting package.
14 | internal SpadeRefreshCommand(CodeMaidPackage package)
15 | : base(package, PackageGuids.GuidCodeMaidMenuSet, PackageIds.CmdIDCodeMaidSpadeRefresh)
16 | {
17 | }
18 |
19 | ///
20 | /// A singleton instance of this command.
21 | ///
22 | public static SpadeRefreshCommand Instance { get; private set; }
23 |
24 | ///
25 | /// Initializes a singleton instance of this command.
26 | ///
27 | /// The hosting package.
28 | /// A task.
29 | public static async Task InitializeAsync(CodeMaidPackage package)
30 | {
31 | Instance = new SpadeRefreshCommand(package);
32 | await Instance.SwitchAsync(on: true);
33 | }
34 |
35 | ///
36 | /// Called to execute the command.
37 | ///
38 | protected override void OnExecute()
39 | {
40 | base.OnExecute();
41 |
42 | var spade = Package.Spade;
43 | if (spade != null)
44 | {
45 | spade.Refresh();
46 | }
47 | }
48 | }
49 | }
--------------------------------------------------------------------------------
/CodeMaidShared/UI/Dialogs/Options/Reorganizing/ReorganizingRegionsDataTemplate.xaml:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/CodeMaidShared/Integration/Commands/SpadeSearchCommand.cs:
--------------------------------------------------------------------------------
1 | using System.Threading.Tasks;
2 |
3 | namespace SteveCadwallader.CodeMaid.Integration.Commands
4 | {
5 | ///
6 | /// A command that provides for setting focus on the search bar in the Spade tool window.
7 | ///
8 | internal sealed class SpadeSearchCommand : BaseCommand
9 | {
10 | ///
11 | /// Initializes a new instance of the class.
12 | ///
13 | /// The hosting package.
14 | internal SpadeSearchCommand(CodeMaidPackage package)
15 | : base(package, PackageGuids.GuidCodeMaidMenuSet, PackageIds.CmdIDCodeMaidSpadeSearch)
16 | {
17 | }
18 |
19 | ///
20 | /// A singleton instance of this command.
21 | ///
22 | public static SpadeSearchCommand Instance { get; private set; }
23 |
24 | ///
25 | /// Initializes a singleton instance of this command.
26 | ///
27 | /// The hosting package.
28 | /// A task.
29 | public static async Task InitializeAsync(CodeMaidPackage package)
30 | {
31 | Instance = new SpadeSearchCommand(package);
32 | await Instance.SwitchAsync(on: true);
33 | }
34 |
35 | ///
36 | /// Called to execute the command.
37 | ///
38 | protected override void OnExecute()
39 | {
40 | base.OnExecute();
41 |
42 | var spade = Package.Spade;
43 | if (spade != null)
44 | {
45 | spade.SearchHost.Activate();
46 | }
47 | }
48 | }
49 | }
--------------------------------------------------------------------------------
/CodeMaid.VS2022/source.extension.vsixmanifest:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CodeMaid VS2022
6 | CodeMaid is an open source Visual Studio extension to cleanup and simplify our C#, C++, F#, VB, PHP, PowerShell, R, JSON, XAML, XML, ASP, HTML, CSS, LESS, SCSS, JavaScript and TypeScript coding.
7 | http://www.codemaid.net/
8 | LICENSE.txt
9 | CodeMaid.png
10 | CodeMaid_Large.png
11 | build, code, c#, beautify, cleanup, cleaning, digging, reorganizing, formatting
12 |
13 |
14 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/CodeMaidShared/UI/Dialogs/Options/Switching/SwitchingViewModel.cs:
--------------------------------------------------------------------------------
1 | using SteveCadwallader.CodeMaid.Properties;
2 |
3 | namespace SteveCadwallader.CodeMaid.UI.Dialogs.Options.Switching
4 | {
5 | ///
6 | /// The view model for switching options.
7 | ///
8 | public class SwitchingViewModel : OptionsPageViewModel
9 | {
10 | #region Constructors
11 |
12 | ///
13 | /// Initializes a new instance of the class.
14 | ///
15 | /// The hosting package.
16 | /// The active settings.
17 | public SwitchingViewModel(CodeMaidPackage package, Settings activeSettings)
18 | : base(package, activeSettings)
19 | {
20 | Mappings = new SettingsToOptionsList(ActiveSettings, this)
21 | {
22 | new SettingToOptionMapping(x => ActiveSettings.Switching_RelatedFileExtensionsExpression, x => RelatedFileExtensionsExpression)
23 | };
24 | }
25 |
26 | #endregion Constructors
27 |
28 | #region Overrides of OptionsPageViewModel
29 |
30 | ///
31 | /// Gets the header.
32 | ///
33 | public override string Header => Resources.SwitchingViewModel_Switching;
34 |
35 | #endregion Overrides of OptionsPageViewModel
36 |
37 | #region Options
38 |
39 | ///
40 | /// Gets or sets the expression for related file extensions.
41 | ///
42 | public string RelatedFileExtensionsExpression
43 | {
44 | get { return GetPropertyValue(); }
45 | set { SetPropertyValue(value); }
46 | }
47 |
48 | #endregion Options
49 | }
50 | }
--------------------------------------------------------------------------------
/CodeMaidShared/Integration/Commands/SpadeOptionsCommand.cs:
--------------------------------------------------------------------------------
1 | using SteveCadwallader.CodeMaid.UI.Dialogs.Options;
2 | using SteveCadwallader.CodeMaid.UI.Dialogs.Options.Digging;
3 | using System.Threading.Tasks;
4 |
5 | namespace SteveCadwallader.CodeMaid.Integration.Commands
6 | {
7 | ///
8 | /// A command that provides for launching the CodeMaid Options to the Spade page.
9 | ///
10 | internal sealed class SpadeOptionsCommand : BaseCommand
11 | {
12 | ///
13 | /// Initializes a new instance of the class.
14 | ///
15 | /// The hosting package.
16 | internal SpadeOptionsCommand(CodeMaidPackage package)
17 | : base(package, PackageGuids.GuidCodeMaidMenuSet, PackageIds.CmdIDCodeMaidSpadeOptions)
18 | {
19 | }
20 |
21 | ///
22 | /// A singleton instance of this command.
23 | ///
24 | public static SpadeOptionsCommand Instance { get; private set; }
25 |
26 | ///
27 | /// Initializes a singleton instance of this command.
28 | ///
29 | /// The hosting package.
30 | /// A task.
31 | public static async Task InitializeAsync(CodeMaidPackage package)
32 | {
33 | Instance = new SpadeOptionsCommand(package);
34 | await Instance.SwitchAsync(on: true);
35 | }
36 |
37 | ///
38 | /// Called to execute the command.
39 | ///
40 | protected override void OnExecute()
41 | {
42 | base.OnExecute();
43 |
44 | new OptionsWindow { DataContext = new OptionsViewModel(Package, typeof(DiggingViewModel)) }.ShowModal();
45 | }
46 | }
47 | }
--------------------------------------------------------------------------------
/CodeMaidShared/UI/Dialogs/Options/ThirdParty/ThirdPartyDataTemplate.xaml:
--------------------------------------------------------------------------------
1 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
17 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/CodeMaidShared/UI/Dialogs/Options/Cleaning/CleaningVisualStudioDataTemplate.xaml:
--------------------------------------------------------------------------------
1 |
6 |
7 |
8 |
9 |
10 |
12 |
15 |
16 |
17 |
18 |
20 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/CodeMaidShared/Model/CodeItems/ICodeItem.cs:
--------------------------------------------------------------------------------
1 | using EnvDTE;
2 |
3 | namespace SteveCadwallader.CodeMaid.Model.CodeItems
4 | {
5 | ///
6 | /// An interface for code items.
7 | ///
8 | public interface ICodeItem
9 | {
10 | #region Properties
11 |
12 | ///
13 | /// Gets the kind.
14 | ///
15 | KindCodeItem Kind { get; }
16 |
17 | ///
18 | /// Gets or sets the name, may be empty.
19 | ///
20 | string Name { get; set; }
21 |
22 | ///
23 | /// Gets or sets the start line.
24 | ///
25 | int StartLine { get; set; }
26 |
27 | ///
28 | /// Gets or sets the start offset.
29 | ///
30 | int StartOffset { get; set; }
31 |
32 | ///
33 | /// Gets or sets the start point, may be null.
34 | ///
35 | EditPoint StartPoint { get; set; }
36 |
37 | ///
38 | /// Gets or sets the end line.
39 | ///
40 | int EndLine { get; set; }
41 |
42 | ///
43 | /// Gets or sets the end offset.
44 | ///
45 | int EndOffset { get; set; }
46 |
47 | ///
48 | /// Gets or sets the end point, may be null.
49 | ///
50 | EditPoint EndPoint { get; set; }
51 |
52 | #endregion Properties
53 |
54 | #region Methods
55 |
56 | ///
57 | /// Loads all lazy initialized values immediately.
58 | ///
59 | void LoadLazyInitializedValues();
60 |
61 | ///
62 | /// Refreshes the cached position and name fields on this item.
63 | ///
64 | void RefreshCachedPositionAndName();
65 |
66 | #endregion Methods
67 | }
68 | }
--------------------------------------------------------------------------------
/CodeMaidShared/UI/Converters/BooleanInverseConverter.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Globalization;
3 | using System.Windows.Data;
4 |
5 | namespace SteveCadwallader.CodeMaid.UI.Converters
6 | {
7 | ///
8 | /// A simple converter for inverting a boolean.
9 | ///
10 | public class BooleanInverseConverter : IValueConverter
11 | {
12 | ///
13 | /// A default instance of .
14 | ///
15 | public static BooleanInverseConverter Default = new BooleanInverseConverter();
16 |
17 | ///
18 | /// Converts a value.
19 | ///
20 | /// The value produced by the binding source.
21 | /// The type of the binding target property.
22 | /// The converter parameter to use.
23 | /// The culture to use in the converter.
24 | /// A converted value. If the method returns null, the valid null value is used.
25 | public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
26 | {
27 | return !((bool)value);
28 | }
29 |
30 | ///
31 | /// Converts a value.
32 | ///
33 | /// The value that is produced by the binding target.
34 | /// The type to convert to.
35 | /// The converter parameter to use.
36 | /// The culture to use in the converter.
37 | /// A converted value. If the method returns null, the valid null value is used.
38 | public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
39 | {
40 | return !((bool)value);
41 | }
42 | }
43 | }
--------------------------------------------------------------------------------
/CodeMaidShared/UI/Converters/EnumToBooleanConverter.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Globalization;
3 | using System.Windows.Data;
4 |
5 | namespace SteveCadwallader.CodeMaid.UI.Converters
6 | {
7 | ///
8 | /// A converter for turning enumeration values into booleans.
9 | ///
10 | public class EnumToBooleanConverter : IValueConverter
11 | {
12 | ///
13 | /// A default instance of the .
14 | ///
15 | public static EnumToBooleanConverter Default = new EnumToBooleanConverter();
16 |
17 | ///
18 | /// Converts a value.
19 | ///
20 | /// The value produced by the binding source.
21 | /// The type of the binding target property.
22 | /// The converter parameter to use.
23 | /// The culture to use in the converter.
24 | /// A converted value. If the method returns null, the valid null value is used.
25 | public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
26 | {
27 | return value.Equals(parameter);
28 | }
29 |
30 | ///
31 | /// Converts a value.
32 | ///
33 | /// The value that is produced by the binding target.
34 | /// The type to convert to.
35 | /// The converter parameter to use.
36 | /// The culture to use in the converter.
37 | /// A converted value. If the method returns null, the valid null value is used.
38 | public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
39 | {
40 | return value.Equals(true) ? parameter : Binding.DoNothing;
41 | }
42 | }
43 | }
--------------------------------------------------------------------------------
/CodeMaidShared/UI/Converters/TypeStringConverter.cs:
--------------------------------------------------------------------------------
1 | using SteveCadwallader.CodeMaid.Helpers;
2 | using System;
3 | using System.Globalization;
4 | using System.Windows.Data;
5 |
6 | namespace SteveCadwallader.CodeMaid.UI.Converters
7 | {
8 | ///
9 | /// Converts a type string into a simpler value using the .
10 | ///
11 | public class TypeStringConverter : IValueConverter
12 | {
13 | ///
14 | /// A default instance of the .
15 | ///
16 | public static TypeStringConverter Default = new TypeStringConverter();
17 |
18 | ///
19 | /// Converts a value.
20 | ///
21 | /// The value produced by the binding source.
22 | /// The type of the binding target property.
23 | /// The converter parameter to use.
24 | /// The culture to use in the converter.
25 | /// A converted value. If the method returns null, the valid null value is used.
26 | public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
27 | {
28 | return TypeFormatHelper.Format(value as string);
29 | }
30 |
31 | ///
32 | /// Converts a value.
33 | ///
34 | /// The value that is produced by the binding target.
35 | /// The type to convert to.
36 | /// The converter parameter to use.
37 | /// The culture to use in the converter.
38 | /// A converted value. If the method returns null, the valid null value is used.
39 | public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
40 | {
41 | throw new NotImplementedException();
42 | }
43 | }
44 | }
--------------------------------------------------------------------------------
/CodeMaidShared/UI/Dialogs/Options/SettingsToOptionsList.cs:
--------------------------------------------------------------------------------
1 | using SteveCadwallader.CodeMaid.Properties;
2 | using System.Collections.Generic;
3 |
4 | namespace SteveCadwallader.CodeMaid.UI.Dialogs.Options
5 | {
6 | ///
7 | /// A specialized list class holding settings to options mappings.
8 | ///
9 | public class SettingsToOptionsList : List
10 | {
11 | ///
12 | /// Initializes a new instance of the class.
13 | ///
14 | /// The active settings.
15 | /// The options page view model.
16 | public SettingsToOptionsList(Settings activeSettings, OptionsPageViewModel optionsPageViewModel)
17 | {
18 | ActiveSettings = activeSettings;
19 | OptionsPageViewModel = optionsPageViewModel;
20 | }
21 |
22 | ///
23 | /// Gets the active settings.
24 | ///
25 | public Settings ActiveSettings { get; private set; }
26 |
27 | ///
28 | /// Gets or sets the that owns this list.
29 | ///
30 | public OptionsPageViewModel OptionsPageViewModel { get; set; }
31 |
32 | ///
33 | /// Iterates across all mappings, copying the setting values onto the options.
34 | ///
35 | public void CopySettingsToOptions()
36 | {
37 | foreach (var mapping in this)
38 | {
39 | mapping.CopySettingToOption(ActiveSettings, OptionsPageViewModel);
40 | }
41 | }
42 |
43 | ///
44 | /// Iterates across all mappings, copying the option values onto the settings.
45 | ///
46 | public void CopyOptionsToSettings()
47 | {
48 | foreach (var mapping in this)
49 | {
50 | mapping.CopyOptionToSetting(ActiveSettings, OptionsPageViewModel);
51 | }
52 | }
53 | }
54 | }
--------------------------------------------------------------------------------
/CodeMaidShared/Logic/Reorganizing/RegionComparerByName.cs:
--------------------------------------------------------------------------------
1 | using SteveCadwallader.CodeMaid.Model.CodeItems;
2 | using System;
3 | using System.Collections.Generic;
4 |
5 | namespace SteveCadwallader.CodeMaid.Logic.Reorganizing
6 | {
7 | ///
8 | /// An implementation of for handling region comparison by name.
9 | ///
10 | public class RegionComparerByName : IEqualityComparer
11 | {
12 | ///
13 | /// Determines whether the specified objects are equal.
14 | ///
15 | /// The first object of type to compare.
16 | /// The second object of type to compare.
17 | /// True if the specified objects are equal; otherwise, false.
18 | public bool Equals(CodeItemRegion x, CodeItemRegion y)
19 | {
20 | if (x == null && y == null) return true;
21 | if (x == null || y == null) return false;
22 |
23 | if (x.Name == null && y.Name == null) return true;
24 | if (x.Name == null || y.Name == null) return false;
25 |
26 | return x.Name.Equals(y.Name);
27 | }
28 |
29 | ///
30 | /// Returns a hash code for the specified object.
31 | ///
32 | ///
33 | /// The for which a hash code is to be returned.
34 | ///
35 | ///
36 | /// The type of is a reference type and is null.
38 | ///
39 | /// A hash code for the specified object.
40 | public int GetHashCode(CodeItemRegion region)
41 | {
42 | if (region == null)
43 | {
44 | throw new ArgumentNullException(nameof(region));
45 | }
46 |
47 | return region.Name?.GetHashCode() ?? 0;
48 | }
49 | }
50 | }
--------------------------------------------------------------------------------
/CodeMaidShared/UI/Converters/EnumDescriptionConverter.cs:
--------------------------------------------------------------------------------
1 | using SteveCadwallader.CodeMaid.Helpers;
2 | using System;
3 | using System.Globalization;
4 | using System.Windows.Data;
5 |
6 | namespace SteveCadwallader.CodeMaid.UI.Converters
7 | {
8 | ///
9 | /// A converter that retrieves the description attribute from a specified enumeration value.
10 | ///
11 | public class EnumDescriptionConverter : IValueConverter
12 | {
13 | ///
14 | /// A default instance of the .
15 | ///
16 | public static EnumDescriptionConverter Default = new EnumDescriptionConverter();
17 |
18 | ///
19 | /// Converts a value.
20 | ///
21 | /// The value produced by the binding source.
22 | /// The type of the binding target property.
23 | /// The converter parameter to use.
24 | /// The culture to use in the converter.
25 | /// A converted value. If the method returns null, the valid null value is used.
26 | public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
27 | {
28 | var enumValue = value as Enum;
29 |
30 | return enumValue?.GetDescription();
31 | }
32 |
33 | ///
34 | /// Converts a value.
35 | ///
36 | /// The value that is produced by the binding target.
37 | /// The type to convert to.
38 | /// The converter parameter to use.
39 | /// The culture to use in the converter.
40 | /// A converted value. If the method returns null, the valid null value is used.
41 | public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
42 | {
43 | throw new NotImplementedException();
44 | }
45 | }
46 | }
--------------------------------------------------------------------------------
/CodeMaidShared/UI/ToolWindows/Spade/CodeItemBaseTemplates.xaml:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
--------------------------------------------------------------------------------
/CodeMaidShared/Model/Comments/Options/XmlTagOptions.cs:
--------------------------------------------------------------------------------
1 | using SteveCadwallader.CodeMaid.Properties;
2 |
3 | namespace SteveCadwallader.CodeMaid.Model.Comments.Options
4 | {
5 | public class XmlTagOptions : IXmlTagOptions
6 | {
7 | public XmlTagOptions()
8 | {
9 | }
10 |
11 | public XmlTagOptions(FormatterOptionsXmlTag tag, IXmlTagOptions fallback)
12 | {
13 | Case = tag.Case != XmlTagCase.Default ? tag.Case : fallback.Case != XmlTagCase.Default ? fallback.Case : XmlTagCase.Keep;
14 | Indent = tag.Indent ?? fallback.Indent;
15 | KeepTogether = tag.KeepTogether ?? fallback.KeepTogether;
16 | Literal = tag.Literal ?? false;
17 | SpaceContent = tag.SpaceContent ?? fallback.SpaceContent;
18 | SpaceSelfClosing = tag.SpaceSelfClosing ?? fallback.SpaceSelfClosing;
19 | Split = tag.Split != XmlTagNewLine.Default ? tag.Split : fallback.Split != XmlTagNewLine.Default ? fallback.Split : XmlTagNewLine.Content;
20 | }
21 |
22 | public XmlTagCase Case { get; set; }
23 |
24 | public int Indent { get; set; }
25 |
26 | public bool KeepTogether { get; set; }
27 |
28 | public bool Literal { get; set; }
29 |
30 | public bool SpaceContent { get; set; }
31 |
32 | public bool SpaceSelfClosing { get; set; }
33 |
34 | public XmlTagNewLine Split { get; set; }
35 |
36 | internal static XmlTagOptions FromSettings(Settings settings)
37 | {
38 | return new XmlTagOptions
39 | {
40 | Case = settings.Formatting_CommentXmlTagsToLowerCase ? XmlTagCase.LowerCase : XmlTagCase.Keep,
41 | Indent = settings.Formatting_CommentXmlValueIndent,
42 | KeepTogether = settings.Formatting_CommentXmlKeepTagsTogether,
43 | Literal = false,
44 | SpaceContent = settings.Formatting_CommentXmlSpaceTags,
45 | SpaceSelfClosing = settings.Formatting_CommentXmlSpaceSingleTags,
46 | Split = settings.Formatting_CommentXmlSplitAllTags ? XmlTagNewLine.Always : XmlTagNewLine.Content
47 | };
48 | }
49 | }
50 | }
--------------------------------------------------------------------------------
/CodeMaidShared/UI/Dialogs/Options/Cleaning/CleaningGeneralDataTemplate.xaml:
--------------------------------------------------------------------------------
1 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/CodeMaidShared/Integration/Commands/SpadeSortOrderFileCommand.cs:
--------------------------------------------------------------------------------
1 | using SteveCadwallader.CodeMaid.Model.CodeTree;
2 | using System.Threading.Tasks;
3 |
4 | namespace SteveCadwallader.CodeMaid.Integration.Commands
5 | {
6 | ///
7 | /// A command that provides for setting Spade to file sort order.
8 | ///
9 | internal sealed class SpadeSortOrderFileCommand : BaseCommand
10 | {
11 | ///
12 | /// Initializes a new instance of the class.
13 | ///
14 | /// The hosting package.
15 | internal SpadeSortOrderFileCommand(CodeMaidPackage package)
16 | : base(package, PackageGuids.GuidCodeMaidMenuSet, PackageIds.CmdIDCodeMaidSpadeSortOrderFile)
17 | {
18 | }
19 |
20 | ///
21 | /// A singleton instance of this command.
22 | ///
23 | public static SpadeSortOrderFileCommand Instance { get; private set; }
24 |
25 | ///
26 | /// Initializes a singleton instance of this command.
27 | ///
28 | /// The hosting package.
29 | /// A task.
30 | public static async Task InitializeAsync(CodeMaidPackage package)
31 | {
32 | Instance = new SpadeSortOrderFileCommand(package);
33 | await Instance.SwitchAsync(on: true);
34 | }
35 |
36 | ///
37 | /// Called to update the current status of the command.
38 | ///
39 | protected override void OnBeforeQueryStatus()
40 | {
41 | var spade = Package.Spade;
42 | if (spade != null)
43 | {
44 | Checked = spade.SortOrder == CodeSortOrder.File;
45 | }
46 | }
47 |
48 | ///
49 | /// Called to execute the command.
50 | ///
51 | protected override void OnExecute()
52 | {
53 | base.OnExecute();
54 |
55 | var spade = Package.Spade;
56 | if (spade != null)
57 | {
58 | spade.SortOrder = CodeSortOrder.File;
59 | }
60 | }
61 | }
62 | }
--------------------------------------------------------------------------------
/CodeMaidShared/Integration/Commands/SpadeSortOrderTypeCommand.cs:
--------------------------------------------------------------------------------
1 | using SteveCadwallader.CodeMaid.Model.CodeTree;
2 | using System.Threading.Tasks;
3 |
4 | namespace SteveCadwallader.CodeMaid.Integration.Commands
5 | {
6 | ///
7 | /// A command that provides for setting Spade to type sort order.
8 | ///
9 | internal sealed class SpadeSortOrderTypeCommand : BaseCommand
10 | {
11 | ///
12 | /// Initializes a new instance of the class.
13 | ///
14 | /// The hosting package.
15 | internal SpadeSortOrderTypeCommand(CodeMaidPackage package)
16 | : base(package, PackageGuids.GuidCodeMaidMenuSet, PackageIds.CmdIDCodeMaidSpadeSortOrderType)
17 | {
18 | }
19 |
20 | ///
21 | /// A singleton instance of this command.
22 | ///
23 | public static SpadeSortOrderTypeCommand Instance { get; private set; }
24 |
25 | ///
26 | /// Initializes a singleton instance of this command.
27 | ///
28 | /// The hosting package.
29 | /// A task.
30 | public static async Task InitializeAsync(CodeMaidPackage package)
31 | {
32 | Instance = new SpadeSortOrderTypeCommand(package);
33 | await Instance.SwitchAsync(on: true);
34 | }
35 |
36 | ///
37 | /// Called to update the current status of the command.
38 | ///
39 | protected override void OnBeforeQueryStatus()
40 | {
41 | var spade = Package.Spade;
42 | if (spade != null)
43 | {
44 | Checked = spade.SortOrder == CodeSortOrder.Type;
45 | }
46 | }
47 |
48 | ///
49 | /// Called to execute the command.
50 | ///
51 | protected override void OnExecute()
52 | {
53 | base.OnExecute();
54 |
55 | var spade = Package.Spade;
56 | if (spade != null)
57 | {
58 | spade.SortOrder = CodeSortOrder.Type;
59 | }
60 | }
61 | }
62 | }
--------------------------------------------------------------------------------
/CodeMaidShared/Integration/Commands/SpadeSortOrderAlphaCommand.cs:
--------------------------------------------------------------------------------
1 | using SteveCadwallader.CodeMaid.Model.CodeTree;
2 | using System.Threading.Tasks;
3 |
4 | namespace SteveCadwallader.CodeMaid.Integration.Commands
5 | {
6 | ///
7 | /// A command that provides for setting Spade to alphabetical sort order.
8 | ///
9 | internal sealed class SpadeSortOrderAlphaCommand : BaseCommand
10 | {
11 | ///
12 | /// Initializes a new instance of the class.
13 | ///
14 | /// The hosting package.
15 | internal SpadeSortOrderAlphaCommand(CodeMaidPackage package)
16 | : base(package, PackageGuids.GuidCodeMaidMenuSet, PackageIds.CmdIDCodeMaidSpadeSortOrderAlpha)
17 | {
18 | }
19 |
20 | ///
21 | /// A singleton instance of this command.
22 | ///
23 | public static SpadeSortOrderAlphaCommand Instance { get; private set; }
24 |
25 | ///
26 | /// Initializes a singleton instance of this command.
27 | ///
28 | /// The hosting package.
29 | /// A task.
30 | public static async Task InitializeAsync(CodeMaidPackage package)
31 | {
32 | Instance = new SpadeSortOrderAlphaCommand(package);
33 | await Instance.SwitchAsync(on: true);
34 | }
35 |
36 | ///
37 | /// Called to update the current status of the command.
38 | ///
39 | protected override void OnBeforeQueryStatus()
40 | {
41 | var spade = Package.Spade;
42 | if (spade != null)
43 | {
44 | Checked = spade.SortOrder == CodeSortOrder.Alpha;
45 | }
46 | }
47 |
48 | ///
49 | /// Called to execute the command.
50 | ///
51 | protected override void OnExecute()
52 | {
53 | base.OnExecute();
54 |
55 | var spade = Package.Spade;
56 | if (spade != null)
57 | {
58 | spade.SortOrder = CodeSortOrder.Alpha;
59 | }
60 | }
61 | }
62 | }
--------------------------------------------------------------------------------
/CodeMaidShared/Integration/Events/BaseEventListener.cs:
--------------------------------------------------------------------------------
1 | using System.Threading.Tasks;
2 |
3 | namespace SteveCadwallader.CodeMaid.Integration.Events
4 | {
5 | ///
6 | /// The base implementation of an event listener.
7 | ///
8 | internal abstract class BaseEventListener : ISwitchableFeature
9 | {
10 | ///
11 | /// Initializes a new instance of the class.
12 | ///
13 | /// The package hosting the event listener.
14 | protected BaseEventListener(CodeMaidPackage package)
15 | {
16 | Package = package;
17 | }
18 |
19 | ///
20 | /// Gets or sets a value indicating whether listeners are registered.
21 | ///
22 | protected bool IsListening { get; set; }
23 |
24 | ///
25 | /// Gets the hosting package.
26 | ///
27 | protected CodeMaidPackage Package { get; private set; }
28 |
29 | #pragma warning disable CS1998 // Async method lacks 'await' operators and will run synchronously
30 |
31 | ///
32 | /// Switches the event listener on or off, registering/unregistering from events from the IDE.
33 | ///
34 | /// True if switching the event listener on, otherwise false.
35 | /// A task.
36 | public async Task SwitchAsync(bool on)
37 | #pragma warning restore CS1998 // Async method lacks 'await' operators and will run synchronously
38 | {
39 | if (on && !IsListening)
40 | {
41 | IsListening = true;
42 | RegisterListeners();
43 | }
44 | else if (IsListening && !on)
45 | {
46 | IsListening = false;
47 | UnRegisterListeners();
48 | }
49 | }
50 |
51 | ///
52 | /// Registers event handlers with the IDE.
53 | ///
54 | protected abstract void RegisterListeners();
55 |
56 | ///
57 | /// Unregisters event handlers with the IDE.
58 | ///
59 | protected abstract void UnRegisterListeners();
60 | }
61 | }
--------------------------------------------------------------------------------
/CodeMaidShared/UI/Dialogs/Options/Finding/FindingViewModel.cs:
--------------------------------------------------------------------------------
1 | using SteveCadwallader.CodeMaid.Properties;
2 |
3 | namespace SteveCadwallader.CodeMaid.UI.Dialogs.Options.Finding
4 | {
5 | ///
6 | /// The view model for finding options.
7 | ///
8 | public class FindingViewModel : OptionsPageViewModel
9 | {
10 | #region Constructors
11 |
12 | ///
13 | /// Initializes a new instance of the class.
14 | ///
15 | /// The hosting package.
16 | /// The active settings.
17 | public FindingViewModel(CodeMaidPackage package, Settings activeSettings)
18 | : base(package, activeSettings)
19 | {
20 | Mappings = new SettingsToOptionsList(ActiveSettings, this)
21 | {
22 | new SettingToOptionMapping(x => ActiveSettings.Finding_ClearSolutionExplorerSearch, x => ClearSolutionExplorerSearch),
23 | new SettingToOptionMapping(x => ActiveSettings.Finding_TemporarilyOpenSolutionFolders, x => TemporarilyOpenSolutionFolders)
24 | };
25 | }
26 |
27 | #endregion Constructors
28 |
29 | #region Overrides of OptionsPageViewModel
30 |
31 | ///
32 | /// Gets the header.
33 | ///
34 | public override string Header => Resources.FindingViewModel_Finding;
35 |
36 | #endregion Overrides of OptionsPageViewModel
37 |
38 | #region Options
39 |
40 | ///
41 | /// Gets or sets a flag indicating if Solution Explorer search should be cleared.
42 | ///
43 | public bool ClearSolutionExplorerSearch
44 | {
45 | get { return GetPropertyValue(); }
46 | set { SetPropertyValue(value); }
47 | }
48 |
49 | ///
50 | /// Gets or sets a flag indicating if solution folders should be temporarily opened.
51 | ///
52 | public bool TemporarilyOpenSolutionFolders
53 | {
54 | get { return GetPropertyValue(); }
55 | set { SetPropertyValue(value); }
56 | }
57 |
58 | #endregion Options
59 | }
60 | }
--------------------------------------------------------------------------------
/CodeMaidShared/UI/Dialogs/Options/Collapsing/CollapsingViewModel.cs:
--------------------------------------------------------------------------------
1 | using SteveCadwallader.CodeMaid.Properties;
2 |
3 | namespace SteveCadwallader.CodeMaid.UI.Dialogs.Options.Collapsing
4 | {
5 | ///
6 | /// The view model for collapsing options.
7 | ///
8 | public class CollapsingViewModel : OptionsPageViewModel
9 | {
10 | #region Constructors
11 |
12 | ///
13 | /// Initializes a new instance of the class.
14 | ///
15 | /// The hosting package.
16 | /// The active settings.
17 | public CollapsingViewModel(CodeMaidPackage package, Settings activeSettings)
18 | : base(package, activeSettings)
19 | {
20 | Mappings = new SettingsToOptionsList(ActiveSettings, this)
21 | {
22 | new SettingToOptionMapping(x => ActiveSettings.Collapsing_CollapseSolutionWhenOpened, x => CollapseSolutionWhenOpened),
23 | new SettingToOptionMapping(x => ActiveSettings.Collapsing_KeepSoloProjectExpanded, x => KeepSoloProjectExpanded)
24 | };
25 | }
26 |
27 | #endregion Constructors
28 |
29 | #region Overrides of OptionsPageViewModel
30 |
31 | ///
32 | /// Gets the header.
33 | ///
34 | public override string Header => Resources.CollapsingViewModel_Collapsing;
35 |
36 | #endregion Overrides of OptionsPageViewModel
37 |
38 | #region Options
39 |
40 | ///
41 | /// Gets or sets a flag indicating if the solution should be collapsed when it is opened.
42 | ///
43 | public bool CollapseSolutionWhenOpened
44 | {
45 | get { return GetPropertyValue(); }
46 | set { SetPropertyValue(value); }
47 | }
48 |
49 | ///
50 | /// Gets or sets a flag indicating if a solo project should be kept expanded.
51 | ///
52 | public bool KeepSoloProjectExpanded
53 | {
54 | get { return GetPropertyValue(); }
55 | set { SetPropertyValue(value); }
56 | }
57 |
58 | #endregion Options
59 | }
60 | }
--------------------------------------------------------------------------------
/CodeMaidShared/Integration/Commands/CloseAllReadOnlyCommand.cs:
--------------------------------------------------------------------------------
1 | using EnvDTE;
2 | using System.Linq;
3 | using System.Threading.Tasks;
4 |
5 | namespace SteveCadwallader.CodeMaid.Integration.Commands
6 | {
7 | ///
8 | /// A command that provides for closing all read-only files.
9 | ///
10 | internal sealed class CloseAllReadOnlyCommand : BaseCommand
11 | {
12 | ///
13 | /// Initializes a new instance of the class.
14 | ///
15 | /// The hosting package.
16 | internal CloseAllReadOnlyCommand(CodeMaidPackage package)
17 | : base(package, PackageGuids.GuidCodeMaidMenuSet, PackageIds.CmdIDCodeMaidCloseAllReadOnly)
18 | {
19 | }
20 |
21 | ///
22 | /// A singleton instance of this command.
23 | ///
24 | public static CloseAllReadOnlyCommand Instance { get; private set; }
25 |
26 | ///
27 | /// Initializes a singleton instance of this command.
28 | ///
29 | /// The hosting package.
30 | /// A task.
31 | public static async Task InitializeAsync(CodeMaidPackage package)
32 | {
33 | Instance = new CloseAllReadOnlyCommand(package);
34 | await package.SettingsMonitor.WatchAsync(s => s.Feature_CloseAllReadOnly, Instance.SwitchAsync);
35 | }
36 |
37 | ///
38 | /// Called to update the current status of the command.
39 | ///
40 | protected override void OnBeforeQueryStatus()
41 | {
42 | Enabled = Package.IDE.Documents.Cast().Any(x => x.ReadOnly && x.Saved);
43 | }
44 |
45 | ///
46 | /// Called to execute the command.
47 | ///
48 | protected override void OnExecute()
49 | {
50 | base.OnExecute();
51 |
52 | var docs = Package.IDE.Documents;
53 |
54 | foreach (Document doc in docs)
55 | {
56 | if (doc.ReadOnly && doc.Saved)
57 | {
58 | doc.Close(vsSaveChanges.vsSaveChangesNo);
59 | }
60 | }
61 | }
62 | }
63 | }
--------------------------------------------------------------------------------
/CodeMaidShared/UI/ToolWindows/BuildProgress/BuildProgressView.xaml:
--------------------------------------------------------------------------------
1 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
31 |
32 |
33 |
34 |
37 |
38 |
39 |
40 |
--------------------------------------------------------------------------------
/CodeMaidShared/Helpers/ActiveDocumentRestorer.cs:
--------------------------------------------------------------------------------
1 | using EnvDTE;
2 | using System;
3 |
4 | namespace SteveCadwallader.CodeMaid.Helpers
5 | {
6 | ///
7 | /// A class that handles tracking a document and switching back to it, typically in a using
8 | /// statement context.
9 | ///
10 | internal class ActiveDocumentRestorer : IDisposable
11 | {
12 | #region Constructors
13 |
14 | ///
15 | /// Initializes a new instance of the class.
16 | ///
17 | /// The hosting package.
18 | internal ActiveDocumentRestorer(CodeMaidPackage package)
19 | {
20 | Package = package;
21 |
22 | StartTracking();
23 | }
24 |
25 | #endregion Constructors
26 |
27 | #region Internal Methods
28 |
29 | ///
30 | /// Starts tracking the active document.
31 | ///
32 | internal void StartTracking()
33 | {
34 | // Cache the active document.
35 | TrackedDocument = Package.ActiveDocument;
36 | }
37 |
38 | ///
39 | /// Restores the tracked document if not already active.
40 | ///
41 | internal void RestoreTrackedDocument()
42 | {
43 | if (TrackedDocument != null && Package.ActiveDocument != TrackedDocument)
44 | {
45 | TrackedDocument.Activate();
46 | }
47 | }
48 |
49 | #endregion Internal Methods
50 |
51 | #region IDisposable Members
52 |
53 | ///
54 | /// Performs application-defined tasks associated with freeing, releasing, or resetting
55 | /// unmanaged resources.
56 | ///
57 | public void Dispose()
58 | {
59 | RestoreTrackedDocument();
60 | }
61 |
62 | #endregion IDisposable Members
63 |
64 | #region Private Properties
65 |
66 | ///
67 | /// Gets or sets the hosting package.
68 | ///
69 | private CodeMaidPackage Package { get; set; }
70 |
71 | ///
72 | /// Gets or sets the active document.
73 | ///
74 | private Document TrackedDocument { get; set; }
75 |
76 | #endregion Private Properties
77 | }
78 | }
--------------------------------------------------------------------------------
/CodeMaidShared/Helpers/CachedSetting.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace SteveCadwallader.CodeMaid.Helpers
4 | {
5 | ///
6 | /// A class that encapsulates caching a setting expression that can be parsed.
7 | ///
8 | public class CachedSetting
9 | where T : class
10 | {
11 | #region Fields
12 |
13 | ///
14 | /// The cached expression.
15 | ///
16 | private string _cachedExpression;
17 |
18 | ///
19 | /// The cached result from parsing the expression.
20 | ///
21 | private T _cachedResult;
22 |
23 | ///
24 | /// The function to be executed to lookup the setting expression.
25 | ///
26 | private readonly Func _lookupFunction;
27 |
28 | ///
29 | /// The function to be executed to parse a setting expression.
30 | ///
31 | private readonly Func _parseFunction;
32 |
33 | #endregion Fields
34 |
35 | #region Constructors
36 |
37 | ///
38 | /// Initializes a new instance of the class.
39 | ///
40 | /// The function to be executed to lookup the setting expression.
41 | /// The function to be executed to parse a setting expression.
42 | public CachedSetting(Func lookupFunction, Func parseFunction)
43 | {
44 | _lookupFunction = lookupFunction;
45 | _parseFunction = parseFunction;
46 | }
47 |
48 | #endregion Constructors
49 |
50 | #region Properties
51 |
52 | ///
53 | /// Retrieves the value using the specified functions and considering the cached value.
54 | ///
55 | public T Value
56 | {
57 | get
58 | {
59 | var expression = _lookupFunction();
60 | if (expression != _cachedExpression)
61 | {
62 | _cachedResult = string.IsNullOrEmpty(expression) ? default(T) : _parseFunction(expression);
63 |
64 | _cachedExpression = expression;
65 | }
66 |
67 | return _cachedResult;
68 | }
69 | }
70 |
71 | #endregion Properties
72 | }
73 | }
--------------------------------------------------------------------------------
/CodeMaidShared/UI/Converters/PropertyInfoDescriptionConverter.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.ComponentModel;
3 | using System.Globalization;
4 | using System.Reflection;
5 | using System.Windows.Data;
6 |
7 | namespace SteveCadwallader.CodeMaid.UI.Converters
8 | {
9 | ///
10 | /// A converter that retrieves the description attribute from a specified property info value.
11 | ///
12 | public class PropertyInfoDescriptionConverter : IValueConverter
13 | {
14 | ///
15 | /// A default instance of the .
16 | ///
17 | public static PropertyInfoDescriptionConverter Default = new PropertyInfoDescriptionConverter();
18 |
19 | ///
20 | /// Converts a value.
21 | ///
22 | /// The value produced by the binding source.
23 | /// The type of the binding target property.
24 | /// The converter parameter to use.
25 | /// The culture to use in the converter.
26 | /// A converted value. If the method returns null, the valid null value is used.
27 | public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
28 | {
29 | var propertyInfo = value as PropertyInfo;
30 | if (propertyInfo == null) return null;
31 |
32 | var descriptionAttribute = propertyInfo.GetCustomAttribute();
33 | if (descriptionAttribute == null) return null;
34 |
35 | return descriptionAttribute.Description;
36 | }
37 |
38 | ///
39 | /// Converts a value.
40 | ///
41 | /// The value that is produced by the binding target.
42 | /// The type to convert to.
43 | /// The converter parameter to use.
44 | /// The culture to use in the converter.
45 | /// A converted value. If the method returns null, the valid null value is used.
46 | public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
47 | {
48 | throw new NotImplementedException();
49 | }
50 | }
51 | }
--------------------------------------------------------------------------------
/CodeMaidShared/Helpers/CodeLanguageHelper.cs:
--------------------------------------------------------------------------------
1 | namespace SteveCadwallader.CodeMaid.Helpers
2 | {
3 | ///
4 | /// A helper class for mapping from a string.
5 | ///
6 | internal static class CodeLanguageHelper
7 | {
8 | ///
9 | /// Gets a based on the specified language string.
10 | ///
11 | /// The language as a string.
12 | /// A .
13 | internal static CodeLanguage GetCodeLanguage(string language)
14 | {
15 | switch (language)
16 | {
17 | case "Basic":
18 | return CodeLanguage.VisualBasic;
19 |
20 | case "CSharp":
21 | return CodeLanguage.CSharp;
22 |
23 | case "C/C++":
24 | case "C/C++ (VisualGDB)":
25 | return CodeLanguage.CPlusPlus;
26 |
27 | case "CSS":
28 | return CodeLanguage.CSS;
29 |
30 | case "F#":
31 | return CodeLanguage.FSharp;
32 |
33 | case "HTML":
34 | case "HTMLX":
35 | case "Razor":
36 | case "WebForms":
37 | return CodeLanguage.HTML;
38 |
39 | case "JavaScript":
40 | case "JScript":
41 | case "Node.js":
42 | return CodeLanguage.JavaScript;
43 |
44 | case "JSON":
45 | return CodeLanguage.JSON;
46 |
47 | case "LESS":
48 | return CodeLanguage.LESS;
49 |
50 | case "PHP":
51 | return CodeLanguage.PHP;
52 |
53 | case "PowerShell":
54 | return CodeLanguage.PowerShell;
55 |
56 | case "R":
57 | return CodeLanguage.R;
58 |
59 | case "SCSS":
60 | return CodeLanguage.SCSS;
61 |
62 | case "TypeScript":
63 | return CodeLanguage.TypeScript;
64 |
65 | case "XAML":
66 | return CodeLanguage.XAML;
67 |
68 | case "XML":
69 | return CodeLanguage.XML;
70 |
71 | default:
72 | return CodeLanguage.Unknown;
73 | }
74 | }
75 | }
76 | }
--------------------------------------------------------------------------------
/CodeMaidShared/UI/Converters/StringReplaceConverter.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Globalization;
3 | using System.Windows.Data;
4 |
5 | namespace SteveCadwallader.CodeMaid.UI.Converters
6 | {
7 | ///
8 | /// A converter for running on a specified value.
9 | ///
10 | public class StringReplaceConverter : IValueConverter
11 | {
12 | ///
13 | /// An instance of that replaces "||" with a new line.
14 | ///
15 | public static StringReplaceConverter DoublePipeToNewLine = new StringReplaceConverter { OldValue = "||", NewValue = Environment.NewLine };
16 |
17 | ///
18 | /// Gets or sets the old value.
19 | ///
20 | public string OldValue { get; set; }
21 |
22 | ///
23 | /// Gets or sets the new value.
24 | ///
25 | public string NewValue { get; set; }
26 |
27 | ///
28 | /// Converts a value.
29 | ///
30 | /// The value produced by the binding source.
31 | /// The type of the binding target property.
32 | /// The converter parameter to use.
33 | /// The culture to use in the converter.
34 | /// A converted value. If the method returns null, the valid null value is used.
35 | public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
36 | {
37 | return value.ToString().Replace(OldValue, NewValue);
38 | }
39 |
40 | ///
41 | /// Converts a value.
42 | ///
43 | /// The value that is produced by the binding target.
44 | /// The type to convert to.
45 | /// The converter parameter to use.
46 | /// The culture to use in the converter.
47 | /// A converted value. If the method returns null, the valid null value is used.
48 | public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
49 | {
50 | return value.ToString().Replace(NewValue, OldValue);
51 | }
52 | }
53 | }
--------------------------------------------------------------------------------
/CodeMaidShared/UI/WindowAttachedProperties.cs:
--------------------------------------------------------------------------------
1 | using System.Windows;
2 |
3 | namespace SteveCadwallader.CodeMaid.UI
4 | {
5 | ///
6 | /// A helper class for attached properties on .
7 | ///
8 | /// DialogResult attached property based on: http://blog.excastle.com/2010/07/25/mvvm-and-dialogresult-with-no-code-behind/.
9 | public static class WindowAttachedProperties
10 | {
11 | #region DialogResult (Attached Property)
12 |
13 | ///
14 | /// The dependency property definition for the DialogResult attached property.
15 | ///
16 | public static DependencyProperty DialogResultProperty = DependencyProperty.RegisterAttached(
17 | "DialogResult", typeof(bool?), typeof(WindowAttachedProperties),
18 | new FrameworkPropertyMetadata(OnDialogResultChanged));
19 |
20 | ///
21 | /// Gets the DialogResult value from the specified target.
22 | ///
23 | /// The target.
24 | /// The value.
25 | public static bool? GetDialogResult(Window target)
26 | {
27 | return (bool?)target.GetValue(DialogResultProperty);
28 | }
29 |
30 | ///
31 | /// Sets the DialogResult value on the specified target.
32 | ///
33 | /// The target.
34 | /// The value.
35 | public static void SetDialogResult(Window target, bool? value)
36 | {
37 | target.SetValue(DialogResultProperty, value);
38 | }
39 |
40 | ///
41 | /// Called when the DialogResult attached property has changed.
42 | ///
43 | /// The dependency object where the value has changed.
44 | ///
45 | /// The instance containing
46 | /// the event data.
47 | ///
48 | private static void OnDialogResultChanged(DependencyObject obj, DependencyPropertyChangedEventArgs e)
49 | {
50 | var window = obj as Window;
51 | if (window != null)
52 | {
53 | window.DialogResult = e.NewValue as bool?;
54 | }
55 | }
56 |
57 | #endregion DialogResult (Attached Property)
58 | }
59 | }
--------------------------------------------------------------------------------