├── VSIX
├── RapidXaml.BuildAnalysis
│ ├── _._
│ ├── icon.png
│ ├── buildMultiTargeting
│ │ └── RapidXaml.BuildAnalysis.props
│ └── targets
│ │ ├── RapidXaml.BuildAnalysis.targets
│ │ └── RapidXaml.BuildAnalysis.props
├── RapidXaml.Generation
│ ├── Resources
│ │ ├── ImageResources.en-us.Designer.cs
│ │ ├── OptionsStringRes.en-US.Designer.cs
│ │ ├── MarkupTag_16x.png
│ │ ├── WarningIcon.png
│ │ ├── RapidXamlGeneration.ico
│ │ ├── RapidXamlGenerationLogo.png
│ │ └── RapidXamlGenerationIcons.png
│ ├── Key.snk
│ ├── Options
│ │ ├── ICanClose.cs
│ │ ├── AllowedPlaceholdersAttribute.cs
│ │ ├── VisualNode.cs
│ │ ├── WarningTriangle.xaml
│ │ ├── CanNotifyPropertyChanged.cs
│ │ ├── ProfileConfigPage.xaml.cs
│ │ └── EnumConverter.cs
│ ├── Parsers
│ │ ├── MemberType.cs
│ │ ├── ParserOutputType.cs
│ │ ├── AttributeArgumentDetails.cs
│ │ ├── AttributeDetails.cs
│ │ ├── IDocumentParser.cs
│ │ └── MemberDetails.cs
│ ├── RapidXamlGenerationExtensions.vsext
│ └── RapidXamlCommonMenus.vsct
├── RapidXamlToolkit
│ ├── Resources
│ │ ├── ImageResources.en-us.Designer.cs
│ │ ├── OptionsStringRes.en-US.Designer.cs
│ │ ├── WarningIcon.png
│ │ ├── MarkupTag_16x.png
│ │ ├── RapidXamlPackage.ico
│ │ ├── RapidXamlToolbarIcons.png
│ │ ├── RapidXamlToolkitLogo.png
│ │ └── References
│ │ │ ├── Microsoft.WebTools.Languages.Json.dll
│ │ │ └── about-Microsoft.WebTools.Languages.Json.dll.txt
│ ├── Key.snk
│ ├── EditorExtras
│ │ ├── SymbolVisualizer
│ │ │ ├── FontAwesome.otf
│ │ │ ├── SymbolType.cs
│ │ │ ├── SymbolIconTag.cs
│ │ │ ├── GlyphTagger.cs
│ │ │ ├── SymbolIconTagger.cs
│ │ │ ├── AppBarButtonTagger.cs
│ │ │ ├── FontAwesomeTagger.cs
│ │ │ └── NavigationViewTagger.cs
│ │ └── EditorExtrasOptionsGrid.cs
│ ├── Generation
│ │ ├── Options
│ │ │ ├── ICanClose.cs
│ │ │ ├── AllowedPlaceholdersAttribute.cs
│ │ │ ├── VisualNode.cs
│ │ │ ├── WarningTriangle.xaml
│ │ │ ├── CanNotifyPropertyChanged.cs
│ │ │ ├── ProfileConfigPage.xaml.cs
│ │ │ └── EnumConverter.cs
│ │ └── Parsers
│ │ │ ├── TypeOfMember.cs
│ │ │ ├── ParserOutputType.cs
│ │ │ ├── AttributeArgumentDetails.cs
│ │ │ ├── AttributeDetails.cs
│ │ │ ├── IDocumentParser.cs
│ │ │ └── MemberDetails.cs
│ ├── KnownContentTypes.cs
│ ├── Logging
│ │ └── IOutputPane.cs
│ ├── Analysis
│ │ ├── JSON
│ │ │ └── settings-schema.json
│ │ ├── ErrorList
│ │ │ ├── ErrorListService.cs
│ │ │ ├── FileErrorCollection.cs
│ │ │ └── ErrorRow.cs
│ │ └── XamlAnalysis
│ │ │ ├── Tags
│ │ │ ├── RapidXamlWarningAdornmentTag.cs
│ │ │ ├── RapidXamlSuggestionAdornmentTag.cs
│ │ │ └── InsertionTag.cs
│ │ │ ├── VsTextSpan.cs
│ │ │ └── CustomAnalysis
│ │ │ ├── BadCustomAnalyzer.cs
│ │ │ ├── ReplaceElementTestAnalyzer.cs
│ │ │ └── XamarinForms
│ │ │ └── PickerAnalyzer.cs
│ ├── Telemetry
│ │ ├── TelemetryEvents.cs
│ │ └── TelemetryProperties.cs
│ ├── VisualStudioIntegration
│ │ ├── IVisualStudioAbstractionAndDocumentModelAccess.cs
│ │ └── IDocumentModelAccess.cs
│ ├── RapidXamlToolkit.GeneratedMSBuildEditorConfig.editorconfig
│ ├── NotUnitTestableAttribute.cs
│ ├── ITypeSymbolExtensions.cs
│ ├── ProjectHelpers.cs
│ ├── Properties
│ │ ├── Settings.settings
│ │ └── AssemblyInfo.cs
│ └── source.extension.cs
├── todo-warn.config
├── BuildAnalysisUwpTestApp
│ ├── settings.XamlAnalysis
│ ├── Assets
│ │ ├── StoreLogo.png
│ │ ├── SplashScreen.scale-200.png
│ │ ├── LockScreenLogo.scale-200.png
│ │ ├── Square44x44Logo.scale-200.png
│ │ ├── Wide310x150Logo.scale-200.png
│ │ ├── Square150x150Logo.scale-200.png
│ │ └── Square44x44Logo.targetsize-24_altform-unplated.png
│ ├── App.xaml
│ └── MainPage.xaml
├── RapidXaml.CustomAnalysis.Tests
│ ├── MSTestSettings.cs
│ └── RapidXaml.CustomAnalysis.Tests.csproj
├── RapidXaml.Analysis
│ ├── Key.snk
│ ├── Resources
│ │ ├── RapidXamlAnalysis.ico
│ │ ├── RapidXamlAnalysisIcons.png
│ │ ├── RapidXamlAnalysisLogo.png
│ │ └── References
│ │ │ ├── Microsoft.WebTools.Languages.Json.dll
│ │ │ └── about-Microsoft.WebTools.Languages.Json.dll.txt
│ ├── JSON
│ │ ├── settings-schema.json
│ │ └── suppressions-schema.json
│ ├── RapidXamlAnalysisExtensions.vsext
│ ├── ErrorList
│ │ ├── ErrorListService.cs
│ │ ├── FileErrorCollection.cs
│ │ └── ErrorRow.cs
│ ├── XamlAnalysis
│ │ ├── Tags
│ │ │ ├── RapidXamlWarningAdornmentTag.cs
│ │ │ ├── RapidXamlSuggestionAdornmentTag.cs
│ │ │ ├── RowSpanOverflowTag.cs
│ │ │ ├── ColumnSpanOverflowTag.cs
│ │ │ ├── AddRowDefinitionsTag.cs
│ │ │ ├── AddColumnDefinitionsTag.cs
│ │ │ ├── AddRowAndColumnDefinitionsTag.cs
│ │ │ ├── MissingRowDefinitionTag.cs
│ │ │ ├── MissingColumnDefinitionTag.cs
│ │ │ ├── AddTextBoxInputScopeTag.cs
│ │ │ ├── SelectedItemBindingModeTag.cs
│ │ │ └── InsertionTag.cs
│ │ ├── Actions
│ │ │ ├── MissingDefinitionsAction.cs
│ │ │ ├── RowSpanOverflowAction.cs
│ │ │ └── ColumnSpanOverflowAction.cs
│ │ ├── VsTextSpan.cs
│ │ └── CustomAnalysis
│ │ │ ├── BadCustomAnalyzer.cs
│ │ │ ├── ReplaceElementTestAnalyzer.cs
│ │ │ └── XamarinForms
│ │ │ ├── PickerAnalyzer.cs
│ │ │ ├── SwipeItemAnalyzer.cs
│ │ │ └── SwitchCellAnalyzer.cs
│ └── RapidXamlCommonMenus.vsct
├── RapidXaml.AutoFix
│ ├── icon.png
│ ├── AssemblyInfo.cs
│ └── AutoFixProjectFilePath.cs
├── RapidXamlToolkit.Tests
│ ├── outfile
│ ├── Assets
│ │ └── TestLibrary.dll
│ ├── RapidXamlToolkitTestsKey.snk
│ ├── Misc
│ │ ├── XmlSpace1.xaml
│ │ ├── WpfEmptyCheckBox.xaml
│ │ └── PageWithXmlEncoding.xaml
│ ├── rxt.runsettings
│ ├── GlobalSuppressions.cs
│ ├── RapidXamlToolkit.Tests.GeneratedMSBuildEditorConfig.editorconfig
│ ├── XamlAnalysis
│ │ └── CustomAnalyzers
│ │ │ ├── FakeExtraAnalysisDetails.cs
│ │ │ └── XamarinForms
│ │ │ ├── PickerAnalyzerTests.cs
│ │ │ ├── SwipeItemAnalyzerTests.cs
│ │ │ ├── LabelAnalyzerTests.cs
│ │ │ ├── SearchBarAnalyzerTests.cs
│ │ │ ├── SwitchCellAnalyzerTests.cs
│ │ │ └── TableSectionAnalyzerTests.cs
│ ├── ProcessorEssentialsForSimpleTests.cs
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ └── TestProfile.cs
├── RapidXaml.CustomAnalysis
│ ├── icon.png
│ ├── CustomAnalysis.snk
│ ├── readme.md
│ ├── docs
│ │ └── readme.md
│ ├── ICustomAnalyzer.cs
│ ├── KnownExtraDetails.cs
│ ├── ProjectFramework.cs
│ ├── RapidXamlErrorType.cs
│ └── RapidXamlSpan.cs
├── RapidXaml.RoslynAnalyzers
│ ├── Key.snk
│ ├── Resources
│ │ ├── RapidXamlRoslynAnalyzers.ico
│ │ └── RapidXamlRoslynAnalyzersLogo.png
│ ├── RapidXamlRoslynAnalzersExtensions.vsext
│ └── RapidXaml.RoslynAnalyzers.GeneratedMSBuildEditorConfig.editorconfig
├── OptionsEmulator
│ ├── RapidXamlPackage.ico
│ ├── App.xaml
│ ├── GlobalSuppressions.cs
│ └── App.config
├── RapidXaml.Common
│ ├── Resources
│ │ ├── RapidXamlCommon.ico
│ │ └── RapidXamlCommonLogo.png
│ └── RapidXamlCommonPackage.cs
├── RapidXaml.Resources
│ └── RapidXamlStrongNameKey.snk
├── RapidXaml.Shared
│ ├── Resources
│ │ └── RapidXamlPackage.ico
│ ├── RapidXamlStrongNameDependency.snk
│ ├── KnownContentTypes.cs
│ ├── Logging
│ │ └── IOutputPane.cs
│ ├── Telemetry
│ │ ├── TelemetryEvents.cs
│ │ ├── CoreDetails.cs
│ │ └── TelemetryProperties.cs
│ ├── VisualStudioIntegration
│ │ ├── IVisualStudioAbstractionAndDocumentModelAccess.cs
│ │ └── IDocumentModelAccess.cs
│ ├── Properties
│ │ └── Settings.settings
│ ├── ProjectHelpers.cs
│ ├── NotUnitTestableAttribute.cs
│ └── ITypeSymbolExtensions.cs
├── RapidXaml.Utils
│ ├── RapidXamlUtilsStrongNameKey.snk
│ ├── VisualStudioIntegration
│ │ ├── ITextSnapshotLineAbstraction.cs
│ │ ├── ISnapshotSpanAbstraction.cs
│ │ ├── ISpanAbstraction.cs
│ │ ├── IVisualStudioProjectFilePath.cs
│ │ └── ITextSnapshotAbstraction.cs
│ ├── Telemetry
│ │ ├── MiscellaneousFeatures.cs
│ │ └── CoreDetails.cs
│ ├── IO
│ │ └── IFileSystemAbstraction.cs
│ └── ProjectType.cs
├── RapidXaml.EditorExtras
│ ├── SymbolVisualizer
│ │ ├── FontAwesome.otf
│ │ ├── SymbolType.cs
│ │ ├── SymbolIconTag.cs
│ │ ├── GlyphTagger.cs
│ │ ├── SymbolIconTagger.cs
│ │ ├── AppBarButtonTagger.cs
│ │ ├── FontAwesomeTagger.cs
│ │ └── NavigationViewTagger.cs
│ ├── Resources
│ │ └── RapidXamlEditorExtrasLogo.png
│ ├── RapidXamlEditorExtrasExtensions.vsext
│ └── EditorExtrasOptionsGrid.cs
├── RapidXaml.AnalysisCore
│ ├── app.config
│ └── XamlAnalysis
│ │ ├── ParsedAction.cs
│ │ ├── Tags
│ │ ├── IRapidXamlTag.cs
│ │ ├── TagErrorType.cs
│ │ ├── IRapidXamlAdornmentTag.cs
│ │ ├── IRapidXamlErrorListTag.cs
│ │ ├── UnexpectedErrorTag.cs
│ │ ├── RapidXamlAdornmentTagExtensions.cs
│ │ ├── RapidXamlDiscreteTag.cs
│ │ └── PredefinedErrorTypeNames.cs
│ │ ├── AttributeType.cs
│ │ ├── AnalyzerImporter.cs
│ │ ├── RapidXamlSpanExtensions.cs
│ │ └── ExclusionHelpers.cs
├── RapidXaml.InternalAnalyzers
│ └── RapidXaml.InternalAnalyzers
│ │ ├── AnalyzerReleases.Shipped.md
│ │ └── AnalyzerReleases.Unshipped.md
├── SetVersionNumbers
│ └── SetVersionNumbers.csproj
├── appsettings.json
├── RapidXamlToolkit.Tests.Manual
│ ├── testsettings.json
│ ├── TestsUsingWinAppDriver.cs
│ ├── XamlAnalysis
│ │ └── StubCustomAnalysisProcessor.cs
│ └── Properties
│ │ └── AssemblyInfo.cs
├── Benchmarking
│ └── Program.cs
├── RapidXamlToolkit.Tests.AutoFix
│ ├── WebViewMultipleActionsAnalyzer.cs
│ └── Properties
│ │ └── AssemblyInfo.cs
├── nuget.config
└── RapidXamlToolkit.Tests.AnalysisExe
│ └── Properties
│ └── AssemblyInfo.cs
├── Rider
├── dependencies.json
├── tools
│ ├── nuget.exe
│ └── vswhere.exe
├── gradle
│ └── wrapper
│ │ ├── gradle-wrapper.jar
│ │ └── gradle-wrapper.properties
├── .gitattributes
├── src
│ ├── dotnet
│ │ ├── ReSharperPlugin.RapidXaml
│ │ │ ├── OutlineZoneMarker.cs
│ │ │ ├── IRapidXamlZone.cs
│ │ │ ├── XamlNamespaceCodeFoldingProcessorFactory.cs
│ │ │ └── ReSharperPlugin.RapidXaml.Rider.csproj
│ │ ├── Plugin.props
│ │ └── ReSharperPlugin.RapidXaml.Tests
│ │ │ └── test
│ │ │ └── data
│ │ │ └── nuget.config
│ └── rider
│ │ └── main
│ │ └── resources
│ │ └── META-INF
│ │ └── plugin.xml
├── .gitignore
├── CHANGELOG.md
├── protocol
│ └── build.gradle
├── buildPlugin.ps1
├── README.md
└── gradle.properties
├── NuGet
├── RapidXaml.WinUI
│ ├── RapidXaml.WinUI.md
│ ├── globalusings.cs
│ ├── EventToCommand
│ │ └── E2C.cs
│ ├── GenConfig.cs
│ └── AssemblyInfo.cs
├── RapidXaml.WPF
│ ├── globalusings.cs
│ ├── AssemblyInfo.cs
│ └── RapidXaml.WPF.csproj
├── RapidXaml.MAUI
│ ├── AssemblyInfo.cs
│ ├── EventToCommand
│ │ ├── E2C.cs
│ │ └── On.cs
│ └── Gradients
│ │ ├── HorizontalGradientExtension.cs
│ │ ├── VerticalGradientExtension.cs
│ │ ├── NegativeDiagonalGradientExtension.cs
│ │ ├── PositiveDiagonalGradientExtension.cs
│ │ └── CircularGradientExtension.cs
├── RapidXaml.CodeGen.Maui
│ ├── Resources
│ │ └── Icon.png
│ ├── SupportedProperty.cs
│ ├── ITaskLogWrapper.cs
│ ├── IFileSystem.cs
│ └── build
│ │ └── RapidXaml.CodeGen.Maui.props
├── RapidXaml.CodeGen.Wpf
│ ├── Resources
│ │ └── Icon.png
│ └── build
│ │ └── RapidXaml.CodeGen.Wpf.props
├── Directory.Build.props
└── Tools
│ └── GenerateWinUIEventToCommand
│ └── GenerateWinUIEventToCommand.csproj
├── Assets
├── desktop.png
├── logo-32.png
├── logo-200.png
├── logo-400.png
├── Logo-blue-16.png
├── Logo-blue-24.png
├── Logo-blue-32.png
├── Logo-blue-48.png
├── Logo-blue-64.png
├── Logo-blue-96.png
├── Logo-pink-16.png
├── Logo-pink-24.png
├── Logo-pink-32.png
├── Logo-pink-48.png
├── Logo-pink-64.png
├── Logo-pink-96.png
├── Logo-red-128.png
├── Logo-red-16.png
├── Logo-red-256.png
├── Logo-red-32.png
├── Logo-red-48.png
├── Logo-red-64.png
├── social-image.png
├── Logo-blue-128.png
├── Logo-blue-256.png
├── Logo-green-128.png
├── Logo-green-16.png
├── Logo-green-24.png
├── Logo-green-256.png
├── Logo-green-32.png
├── Logo-green-48.png
├── Logo-green-64.png
├── Logo-green-96.png
├── Logo-orange-16.png
├── Logo-orange-24.png
├── Logo-orange-32.png
├── Logo-orange-48.png
├── Logo-orange-64.png
├── Logo-orange-96.png
├── Logo-pink-128.png
├── Logo-pink-256.png
├── Logo-purple-16.png
├── Logo-purple-24.png
├── Logo-purple-32.png
├── Logo-purple-48.png
├── Logo-purple-64.png
├── Logo-purple-96.png
├── Logo-silver-16.png
├── Logo-silver-24.png
├── Logo-silver-32.png
├── Logo-silver-48.png
├── Logo-silver-64.png
├── Logo-silver-96.png
├── Logo-yellow-16.png
├── Logo-yellow-32.png
├── Logo-yellow-48.png
├── Logo-yellow-64.png
├── logo-border-16.png
├── logo-border-24.png
├── logo-border-32.png
├── logo-border-48.png
├── logo-border-64.png
├── Logo-big-square.png
├── Logo-orange-128.png
├── Logo-orange-256.png
├── Logo-purple-128.png
├── Logo-purple-256.png
├── Logo-rainbow-2500.png
├── Logo-rainbow-500.png
├── Logo-silver-128.png
├── Logo-silver-256.png
├── Logo-yellow-128.png
├── Logo-yellow-256.png
├── logo-border-128.png
├── logo-border-256.png
├── logo-loves-clothing.png
├── Logo-rainbow-500x250.png
├── Marketplace
│ └── xaml-analysis-example.png
└── colors.txt
├── .github
├── CODEOWNERS
├── copilot-instructions.md
├── workflows
│ ├── doc-link-checks.yml
│ ├── markdownlint.yml
│ └── spellchecking.yml
├── ISSUE_TEMPLATE
│ ├── config.yml
│ ├── usage_feedback.md
│ └── support_question.md
├── FUNDING.yml
└── pull_request_template.md
├── docs
├── Assets
│ ├── drag-drop-gen.gif
│ ├── multi-part-fix.png
│ ├── string-res-viz.png
│ ├── xademo-tooltip.png
│ ├── install-preview.png
│ ├── enable-intellicode.png
│ ├── extension-search-d.png
│ ├── specify-target-type.png
│ ├── xademo-issue-fixed.png
│ ├── created-view-example.png
│ ├── multiple-quick-actions.png
│ ├── xademo-issue-reported.png
│ ├── xaml-analysis-example.png
│ ├── Copy-Class-To-Clipboard.gif
│ ├── Set-Datacontext-In-XAML.gif
│ ├── xademo-suggested-action.png
│ ├── Copy-Selection-To-Clipboard.gif
│ ├── custom-analyzer-single-fix.png
│ ├── new-project-custom-analyzer.png
│ ├── xademo-new-string-resources.png
│ ├── Set-Datacontext-In-CodeBehind.gif
│ ├── Create-View-In-Solution-Explorer.gif
│ └── Send-To-Toolbox-And-Drag-To-View.gif
├── warnings
│ ├── _template.md
│ ├── RXTPOC.md
│ ├── RXT331.md
│ ├── RXT500.md
│ ├── RXT320.md
│ ├── RXT330.md
│ ├── RXT160.md
│ ├── RXT335.md
│ ├── RXT700.md
│ ├── RXT325.md
│ ├── RXT451.md
│ ├── RXT452.md
│ └── RXT310.md
├── assumptions.md
└── installation.md
├── RELEASE_NOTES.md
├── Templates
├── CustomAnalysisItemTemplate
│ └── __TemplateIcon.png
├── CustomAnalysisProjectTemplate
│ ├── __TemplateIcon.png
│ ├── Analyzer
│ │ └── CustomAnalyzerProject.csproj
│ └── AnalyzerTests
│ │ └── CustomAnalyzerProjectTests.csproj
├── RapidXaml.Templates
│ ├── Resources
│ │ ├── RapidXamlTemplates.ico
│ │ └── RapidXamlTemplatesLogo.png
│ ├── ProjectTemplates
│ │ └── CustomAnalysisProjectTemplate.zip
│ └── RapidXamlTemplatesPackage.cs
└── .editorconfig
├── config
├── .markdownlint.json
└── .spellcheck.yml
├── .404-links.yml
└── CONTRIBUTING.md
/VSIX/RapidXaml.BuildAnalysis/_._:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/Rider/dependencies.json:
--------------------------------------------------------------------------------
1 | [
2 | ]
3 |
--------------------------------------------------------------------------------
/NuGet/RapidXaml.WinUI/RapidXaml.WinUI.md:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/NuGet/RapidXaml.WPF/globalusings.cs:
--------------------------------------------------------------------------------
1 | global using System.Windows;
2 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.Generation/Resources/ImageResources.en-us.Designer.cs:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/VSIX/RapidXamlToolkit/Resources/ImageResources.en-us.Designer.cs:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/VSIX/RapidXamlToolkit/Resources/OptionsStringRes.en-US.Designer.cs:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/NuGet/RapidXaml.WinUI/globalusings.cs:
--------------------------------------------------------------------------------
1 | global using Microsoft.UI.Xaml;
2 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.Generation/Resources/OptionsStringRes.en-US.Designer.cs:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/VSIX/todo-warn.config:
--------------------------------------------------------------------------------
1 | [WARN][STARTS(TODO)][DOESNOTCONTAIN(ISSUE#)]
2 |
--------------------------------------------------------------------------------
/VSIX/BuildAnalysisUwpTestApp/settings.XamlAnalysis:
--------------------------------------------------------------------------------
1 | {
2 | "RXT200": "Error"
3 | }
4 |
--------------------------------------------------------------------------------
/Assets/desktop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/Assets/desktop.png
--------------------------------------------------------------------------------
/Assets/logo-32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/Assets/logo-32.png
--------------------------------------------------------------------------------
/.github/CODEOWNERS:
--------------------------------------------------------------------------------
1 | # It's mine I tell you. Mine, all mine!
2 | * @mrlacey
3 |
--------------------------------------------------------------------------------
/Assets/logo-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/Assets/logo-200.png
--------------------------------------------------------------------------------
/Assets/logo-400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/Assets/logo-400.png
--------------------------------------------------------------------------------
/Assets/Logo-blue-16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/Assets/Logo-blue-16.png
--------------------------------------------------------------------------------
/Assets/Logo-blue-24.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/Assets/Logo-blue-24.png
--------------------------------------------------------------------------------
/Assets/Logo-blue-32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/Assets/Logo-blue-32.png
--------------------------------------------------------------------------------
/Assets/Logo-blue-48.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/Assets/Logo-blue-48.png
--------------------------------------------------------------------------------
/Assets/Logo-blue-64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/Assets/Logo-blue-64.png
--------------------------------------------------------------------------------
/Assets/Logo-blue-96.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/Assets/Logo-blue-96.png
--------------------------------------------------------------------------------
/Assets/Logo-pink-16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/Assets/Logo-pink-16.png
--------------------------------------------------------------------------------
/Assets/Logo-pink-24.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/Assets/Logo-pink-24.png
--------------------------------------------------------------------------------
/Assets/Logo-pink-32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/Assets/Logo-pink-32.png
--------------------------------------------------------------------------------
/Assets/Logo-pink-48.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/Assets/Logo-pink-48.png
--------------------------------------------------------------------------------
/Assets/Logo-pink-64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/Assets/Logo-pink-64.png
--------------------------------------------------------------------------------
/Assets/Logo-pink-96.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/Assets/Logo-pink-96.png
--------------------------------------------------------------------------------
/Assets/Logo-red-128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/Assets/Logo-red-128.png
--------------------------------------------------------------------------------
/Assets/Logo-red-16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/Assets/Logo-red-16.png
--------------------------------------------------------------------------------
/Assets/Logo-red-256.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/Assets/Logo-red-256.png
--------------------------------------------------------------------------------
/Assets/Logo-red-32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/Assets/Logo-red-32.png
--------------------------------------------------------------------------------
/Assets/Logo-red-48.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/Assets/Logo-red-48.png
--------------------------------------------------------------------------------
/Assets/Logo-red-64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/Assets/Logo-red-64.png
--------------------------------------------------------------------------------
/Assets/social-image.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/Assets/social-image.png
--------------------------------------------------------------------------------
/NuGet/RapidXaml.MAUI/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | [assembly: XmlnsDefinition("https://rapidxaml.dev", "RapidXaml")]
2 |
--------------------------------------------------------------------------------
/Rider/tools/nuget.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/Rider/tools/nuget.exe
--------------------------------------------------------------------------------
/Rider/tools/vswhere.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/Rider/tools/vswhere.exe
--------------------------------------------------------------------------------
/Assets/Logo-blue-128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/Assets/Logo-blue-128.png
--------------------------------------------------------------------------------
/Assets/Logo-blue-256.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/Assets/Logo-blue-256.png
--------------------------------------------------------------------------------
/Assets/Logo-green-128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/Assets/Logo-green-128.png
--------------------------------------------------------------------------------
/Assets/Logo-green-16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/Assets/Logo-green-16.png
--------------------------------------------------------------------------------
/Assets/Logo-green-24.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/Assets/Logo-green-24.png
--------------------------------------------------------------------------------
/Assets/Logo-green-256.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/Assets/Logo-green-256.png
--------------------------------------------------------------------------------
/Assets/Logo-green-32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/Assets/Logo-green-32.png
--------------------------------------------------------------------------------
/Assets/Logo-green-48.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/Assets/Logo-green-48.png
--------------------------------------------------------------------------------
/Assets/Logo-green-64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/Assets/Logo-green-64.png
--------------------------------------------------------------------------------
/Assets/Logo-green-96.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/Assets/Logo-green-96.png
--------------------------------------------------------------------------------
/Assets/Logo-orange-16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/Assets/Logo-orange-16.png
--------------------------------------------------------------------------------
/Assets/Logo-orange-24.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/Assets/Logo-orange-24.png
--------------------------------------------------------------------------------
/Assets/Logo-orange-32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/Assets/Logo-orange-32.png
--------------------------------------------------------------------------------
/Assets/Logo-orange-48.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/Assets/Logo-orange-48.png
--------------------------------------------------------------------------------
/Assets/Logo-orange-64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/Assets/Logo-orange-64.png
--------------------------------------------------------------------------------
/Assets/Logo-orange-96.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/Assets/Logo-orange-96.png
--------------------------------------------------------------------------------
/Assets/Logo-pink-128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/Assets/Logo-pink-128.png
--------------------------------------------------------------------------------
/Assets/Logo-pink-256.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/Assets/Logo-pink-256.png
--------------------------------------------------------------------------------
/Assets/Logo-purple-16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/Assets/Logo-purple-16.png
--------------------------------------------------------------------------------
/Assets/Logo-purple-24.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/Assets/Logo-purple-24.png
--------------------------------------------------------------------------------
/Assets/Logo-purple-32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/Assets/Logo-purple-32.png
--------------------------------------------------------------------------------
/Assets/Logo-purple-48.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/Assets/Logo-purple-48.png
--------------------------------------------------------------------------------
/Assets/Logo-purple-64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/Assets/Logo-purple-64.png
--------------------------------------------------------------------------------
/Assets/Logo-purple-96.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/Assets/Logo-purple-96.png
--------------------------------------------------------------------------------
/Assets/Logo-silver-16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/Assets/Logo-silver-16.png
--------------------------------------------------------------------------------
/Assets/Logo-silver-24.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/Assets/Logo-silver-24.png
--------------------------------------------------------------------------------
/Assets/Logo-silver-32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/Assets/Logo-silver-32.png
--------------------------------------------------------------------------------
/Assets/Logo-silver-48.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/Assets/Logo-silver-48.png
--------------------------------------------------------------------------------
/Assets/Logo-silver-64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/Assets/Logo-silver-64.png
--------------------------------------------------------------------------------
/Assets/Logo-silver-96.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/Assets/Logo-silver-96.png
--------------------------------------------------------------------------------
/Assets/Logo-yellow-16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/Assets/Logo-yellow-16.png
--------------------------------------------------------------------------------
/Assets/Logo-yellow-32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/Assets/Logo-yellow-32.png
--------------------------------------------------------------------------------
/Assets/Logo-yellow-48.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/Assets/Logo-yellow-48.png
--------------------------------------------------------------------------------
/Assets/Logo-yellow-64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/Assets/Logo-yellow-64.png
--------------------------------------------------------------------------------
/Assets/logo-border-16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/Assets/logo-border-16.png
--------------------------------------------------------------------------------
/Assets/logo-border-24.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/Assets/logo-border-24.png
--------------------------------------------------------------------------------
/Assets/logo-border-32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/Assets/logo-border-32.png
--------------------------------------------------------------------------------
/Assets/logo-border-48.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/Assets/logo-border-48.png
--------------------------------------------------------------------------------
/Assets/logo-border-64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/Assets/logo-border-64.png
--------------------------------------------------------------------------------
/Assets/Logo-big-square.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/Assets/Logo-big-square.png
--------------------------------------------------------------------------------
/Assets/Logo-orange-128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/Assets/Logo-orange-128.png
--------------------------------------------------------------------------------
/Assets/Logo-orange-256.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/Assets/Logo-orange-256.png
--------------------------------------------------------------------------------
/Assets/Logo-purple-128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/Assets/Logo-purple-128.png
--------------------------------------------------------------------------------
/Assets/Logo-purple-256.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/Assets/Logo-purple-256.png
--------------------------------------------------------------------------------
/Assets/Logo-rainbow-2500.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/Assets/Logo-rainbow-2500.png
--------------------------------------------------------------------------------
/Assets/Logo-rainbow-500.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/Assets/Logo-rainbow-500.png
--------------------------------------------------------------------------------
/Assets/Logo-silver-128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/Assets/Logo-silver-128.png
--------------------------------------------------------------------------------
/Assets/Logo-silver-256.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/Assets/Logo-silver-256.png
--------------------------------------------------------------------------------
/Assets/Logo-yellow-128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/Assets/Logo-yellow-128.png
--------------------------------------------------------------------------------
/Assets/Logo-yellow-256.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/Assets/Logo-yellow-256.png
--------------------------------------------------------------------------------
/Assets/logo-border-128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/Assets/logo-border-128.png
--------------------------------------------------------------------------------
/Assets/logo-border-256.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/Assets/logo-border-256.png
--------------------------------------------------------------------------------
/NuGet/RapidXaml.WinUI/EventToCommand/E2C.cs:
--------------------------------------------------------------------------------
1 | namespace RapidXaml;
2 |
3 | public class E2C : EventToCommand { }
4 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.CustomAnalysis.Tests/MSTestSettings.cs:
--------------------------------------------------------------------------------
1 | [assembly: Parallelize(Scope = ExecutionScope.MethodLevel)]
2 |
--------------------------------------------------------------------------------
/Assets/logo-loves-clothing.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/Assets/logo-loves-clothing.png
--------------------------------------------------------------------------------
/VSIX/RapidXamlToolkit/Key.snk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/VSIX/RapidXamlToolkit/Key.snk
--------------------------------------------------------------------------------
/docs/Assets/drag-drop-gen.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/docs/Assets/drag-drop-gen.gif
--------------------------------------------------------------------------------
/docs/Assets/multi-part-fix.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/docs/Assets/multi-part-fix.png
--------------------------------------------------------------------------------
/docs/Assets/string-res-viz.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/docs/Assets/string-res-viz.png
--------------------------------------------------------------------------------
/docs/Assets/xademo-tooltip.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/docs/Assets/xademo-tooltip.png
--------------------------------------------------------------------------------
/Assets/Logo-rainbow-500x250.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/Assets/Logo-rainbow-500x250.png
--------------------------------------------------------------------------------
/VSIX/RapidXaml.Analysis/Key.snk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/VSIX/RapidXaml.Analysis/Key.snk
--------------------------------------------------------------------------------
/VSIX/RapidXaml.AutoFix/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/VSIX/RapidXaml.AutoFix/icon.png
--------------------------------------------------------------------------------
/VSIX/RapidXaml.Generation/Key.snk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/VSIX/RapidXaml.Generation/Key.snk
--------------------------------------------------------------------------------
/docs/Assets/install-preview.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/docs/Assets/install-preview.png
--------------------------------------------------------------------------------
/VSIX/RapidXamlToolkit.Tests/outfile:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/VSIX/RapidXamlToolkit.Tests/outfile
--------------------------------------------------------------------------------
/docs/Assets/enable-intellicode.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/docs/Assets/enable-intellicode.png
--------------------------------------------------------------------------------
/docs/Assets/extension-search-d.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/docs/Assets/extension-search-d.png
--------------------------------------------------------------------------------
/docs/Assets/specify-target-type.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/docs/Assets/specify-target-type.png
--------------------------------------------------------------------------------
/docs/Assets/xademo-issue-fixed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/docs/Assets/xademo-issue-fixed.png
--------------------------------------------------------------------------------
/VSIX/RapidXaml.BuildAnalysis/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/VSIX/RapidXaml.BuildAnalysis/icon.png
--------------------------------------------------------------------------------
/VSIX/RapidXaml.CustomAnalysis/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/VSIX/RapidXaml.CustomAnalysis/icon.png
--------------------------------------------------------------------------------
/VSIX/RapidXaml.RoslynAnalyzers/Key.snk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/VSIX/RapidXaml.RoslynAnalyzers/Key.snk
--------------------------------------------------------------------------------
/docs/Assets/created-view-example.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/docs/Assets/created-view-example.png
--------------------------------------------------------------------------------
/docs/Assets/multiple-quick-actions.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/docs/Assets/multiple-quick-actions.png
--------------------------------------------------------------------------------
/docs/Assets/xademo-issue-reported.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/docs/Assets/xademo-issue-reported.png
--------------------------------------------------------------------------------
/docs/Assets/xaml-analysis-example.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/docs/Assets/xaml-analysis-example.png
--------------------------------------------------------------------------------
/NuGet/RapidXaml.WPF/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Windows.Markup;
2 |
3 | [assembly: XmlnsDefinition("https://rapidxaml.dev", "RapidXaml")]
4 |
--------------------------------------------------------------------------------
/RELEASE_NOTES.md:
--------------------------------------------------------------------------------
1 | # Release Notes
2 |
3 | Please see the [change log](https://github.com/mrlacey/Rapid-XAML-Toolkit/blob/main/CHANGELOG.md)
4 |
--------------------------------------------------------------------------------
/Rider/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/Rider/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/docs/Assets/Copy-Class-To-Clipboard.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/docs/Assets/Copy-Class-To-Clipboard.gif
--------------------------------------------------------------------------------
/docs/Assets/Set-Datacontext-In-XAML.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/docs/Assets/Set-Datacontext-In-XAML.gif
--------------------------------------------------------------------------------
/docs/Assets/xademo-suggested-action.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/docs/Assets/xademo-suggested-action.png
--------------------------------------------------------------------------------
/VSIX/OptionsEmulator/RapidXamlPackage.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/VSIX/OptionsEmulator/RapidXamlPackage.ico
--------------------------------------------------------------------------------
/docs/Assets/Copy-Selection-To-Clipboard.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/docs/Assets/Copy-Selection-To-Clipboard.gif
--------------------------------------------------------------------------------
/docs/Assets/custom-analyzer-single-fix.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/docs/Assets/custom-analyzer-single-fix.png
--------------------------------------------------------------------------------
/docs/Assets/new-project-custom-analyzer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/docs/Assets/new-project-custom-analyzer.png
--------------------------------------------------------------------------------
/docs/Assets/xademo-new-string-resources.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/docs/Assets/xademo-new-string-resources.png
--------------------------------------------------------------------------------
/Assets/Marketplace/xaml-analysis-example.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/Assets/Marketplace/xaml-analysis-example.png
--------------------------------------------------------------------------------
/docs/Assets/Set-Datacontext-In-CodeBehind.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/docs/Assets/Set-Datacontext-In-CodeBehind.gif
--------------------------------------------------------------------------------
/NuGet/RapidXaml.CodeGen.Maui/Resources/Icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/NuGet/RapidXaml.CodeGen.Maui/Resources/Icon.png
--------------------------------------------------------------------------------
/NuGet/RapidXaml.CodeGen.Wpf/Resources/Icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/NuGet/RapidXaml.CodeGen.Wpf/Resources/Icon.png
--------------------------------------------------------------------------------
/VSIX/RapidXaml.CustomAnalysis/CustomAnalysis.snk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/VSIX/RapidXaml.CustomAnalysis/CustomAnalysis.snk
--------------------------------------------------------------------------------
/VSIX/RapidXamlToolkit/Resources/WarningIcon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/VSIX/RapidXamlToolkit/Resources/WarningIcon.png
--------------------------------------------------------------------------------
/docs/Assets/Create-View-In-Solution-Explorer.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/docs/Assets/Create-View-In-Solution-Explorer.gif
--------------------------------------------------------------------------------
/docs/Assets/Send-To-Toolbox-And-Drag-To-View.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/docs/Assets/Send-To-Toolbox-And-Drag-To-View.gif
--------------------------------------------------------------------------------
/VSIX/BuildAnalysisUwpTestApp/Assets/StoreLogo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/VSIX/BuildAnalysisUwpTestApp/Assets/StoreLogo.png
--------------------------------------------------------------------------------
/VSIX/RapidXamlToolkit.Tests/Assets/TestLibrary.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/VSIX/RapidXamlToolkit.Tests/Assets/TestLibrary.dll
--------------------------------------------------------------------------------
/VSIX/RapidXamlToolkit/Resources/MarkupTag_16x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/VSIX/RapidXamlToolkit/Resources/MarkupTag_16x.png
--------------------------------------------------------------------------------
/NuGet/Directory.Build.props:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 12.0
5 |
6 |
7 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.Common/Resources/RapidXamlCommon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/VSIX/RapidXaml.Common/Resources/RapidXamlCommon.ico
--------------------------------------------------------------------------------
/VSIX/RapidXaml.Generation/Resources/MarkupTag_16x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/VSIX/RapidXaml.Generation/Resources/MarkupTag_16x.png
--------------------------------------------------------------------------------
/VSIX/RapidXaml.Generation/Resources/WarningIcon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/VSIX/RapidXaml.Generation/Resources/WarningIcon.png
--------------------------------------------------------------------------------
/VSIX/RapidXaml.Resources/RapidXamlStrongNameKey.snk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/VSIX/RapidXaml.Resources/RapidXamlStrongNameKey.snk
--------------------------------------------------------------------------------
/VSIX/RapidXaml.Shared/Resources/RapidXamlPackage.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/VSIX/RapidXaml.Shared/Resources/RapidXamlPackage.ico
--------------------------------------------------------------------------------
/VSIX/RapidXaml.Utils/RapidXamlUtilsStrongNameKey.snk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/VSIX/RapidXaml.Utils/RapidXamlUtilsStrongNameKey.snk
--------------------------------------------------------------------------------
/VSIX/RapidXamlToolkit/Resources/RapidXamlPackage.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/VSIX/RapidXamlToolkit/Resources/RapidXamlPackage.ico
--------------------------------------------------------------------------------
/Templates/CustomAnalysisItemTemplate/__TemplateIcon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/Templates/CustomAnalysisItemTemplate/__TemplateIcon.png
--------------------------------------------------------------------------------
/VSIX/RapidXaml.Analysis/Resources/RapidXamlAnalysis.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/VSIX/RapidXaml.Analysis/Resources/RapidXamlAnalysis.ico
--------------------------------------------------------------------------------
/VSIX/RapidXaml.Common/Resources/RapidXamlCommonLogo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/VSIX/RapidXaml.Common/Resources/RapidXamlCommonLogo.png
--------------------------------------------------------------------------------
/VSIX/RapidXaml.Shared/RapidXamlStrongNameDependency.snk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/VSIX/RapidXaml.Shared/RapidXamlStrongNameDependency.snk
--------------------------------------------------------------------------------
/Templates/CustomAnalysisProjectTemplate/__TemplateIcon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/Templates/CustomAnalysisProjectTemplate/__TemplateIcon.png
--------------------------------------------------------------------------------
/VSIX/RapidXamlToolkit.Tests/RapidXamlToolkitTestsKey.snk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/VSIX/RapidXamlToolkit.Tests/RapidXamlToolkitTestsKey.snk
--------------------------------------------------------------------------------
/VSIX/RapidXamlToolkit/Resources/RapidXamlToolbarIcons.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/VSIX/RapidXamlToolkit/Resources/RapidXamlToolbarIcons.png
--------------------------------------------------------------------------------
/VSIX/RapidXamlToolkit/Resources/RapidXamlToolkitLogo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/VSIX/RapidXamlToolkit/Resources/RapidXamlToolkitLogo.png
--------------------------------------------------------------------------------
/VSIX/RapidXaml.Analysis/Resources/RapidXamlAnalysisIcons.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/VSIX/RapidXaml.Analysis/Resources/RapidXamlAnalysisIcons.png
--------------------------------------------------------------------------------
/VSIX/RapidXaml.Analysis/Resources/RapidXamlAnalysisLogo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/VSIX/RapidXaml.Analysis/Resources/RapidXamlAnalysisLogo.png
--------------------------------------------------------------------------------
/VSIX/RapidXaml.EditorExtras/SymbolVisualizer/FontAwesome.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/VSIX/RapidXaml.EditorExtras/SymbolVisualizer/FontAwesome.otf
--------------------------------------------------------------------------------
/VSIX/RapidXaml.Generation/Resources/RapidXamlGeneration.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/VSIX/RapidXaml.Generation/Resources/RapidXamlGeneration.ico
--------------------------------------------------------------------------------
/Rider/.gitattributes:
--------------------------------------------------------------------------------
1 | # Set the default behavior, in case people don't have core.autocrlf set.
2 | * text=auto
3 |
4 | # Preserve line endings in gradle scripts
5 | gradlew* -text diff
6 |
--------------------------------------------------------------------------------
/Templates/RapidXaml.Templates/Resources/RapidXamlTemplates.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/Templates/RapidXaml.Templates/Resources/RapidXamlTemplates.ico
--------------------------------------------------------------------------------
/VSIX/BuildAnalysisUwpTestApp/Assets/SplashScreen.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/VSIX/BuildAnalysisUwpTestApp/Assets/SplashScreen.scale-200.png
--------------------------------------------------------------------------------
/VSIX/RapidXaml.Generation/Resources/RapidXamlGenerationLogo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/VSIX/RapidXaml.Generation/Resources/RapidXamlGenerationLogo.png
--------------------------------------------------------------------------------
/VSIX/BuildAnalysisUwpTestApp/Assets/LockScreenLogo.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/VSIX/BuildAnalysisUwpTestApp/Assets/LockScreenLogo.scale-200.png
--------------------------------------------------------------------------------
/VSIX/BuildAnalysisUwpTestApp/Assets/Square44x44Logo.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/VSIX/BuildAnalysisUwpTestApp/Assets/Square44x44Logo.scale-200.png
--------------------------------------------------------------------------------
/VSIX/BuildAnalysisUwpTestApp/Assets/Wide310x150Logo.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/VSIX/BuildAnalysisUwpTestApp/Assets/Wide310x150Logo.scale-200.png
--------------------------------------------------------------------------------
/VSIX/RapidXaml.Generation/Resources/RapidXamlGenerationIcons.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/VSIX/RapidXaml.Generation/Resources/RapidXamlGenerationIcons.png
--------------------------------------------------------------------------------
/config/.markdownlint.json:
--------------------------------------------------------------------------------
1 | {
2 | "default": true,
3 | "line-length": false,
4 | "commands-show-output": false,
5 | "no-bare-urls": false,
6 | "ol-prefix": false
7 | }
8 |
--------------------------------------------------------------------------------
/Templates/RapidXaml.Templates/Resources/RapidXamlTemplatesLogo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/Templates/RapidXaml.Templates/Resources/RapidXamlTemplatesLogo.png
--------------------------------------------------------------------------------
/VSIX/BuildAnalysisUwpTestApp/Assets/Square150x150Logo.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/VSIX/BuildAnalysisUwpTestApp/Assets/Square150x150Logo.scale-200.png
--------------------------------------------------------------------------------
/VSIX/RapidXaml.EditorExtras/Resources/RapidXamlEditorExtrasLogo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/VSIX/RapidXaml.EditorExtras/Resources/RapidXamlEditorExtrasLogo.png
--------------------------------------------------------------------------------
/VSIX/RapidXamlToolkit/EditorExtras/SymbolVisualizer/FontAwesome.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/VSIX/RapidXamlToolkit/EditorExtras/SymbolVisualizer/FontAwesome.otf
--------------------------------------------------------------------------------
/VSIX/RapidXaml.RoslynAnalyzers/Resources/RapidXamlRoslynAnalyzers.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/VSIX/RapidXaml.RoslynAnalyzers/Resources/RapidXamlRoslynAnalyzers.ico
--------------------------------------------------------------------------------
/VSIX/RapidXaml.CustomAnalysis/readme.md:
--------------------------------------------------------------------------------
1 | # RapidXaml.CustomAnalysis
2 |
3 | Create custom XAML analyzers for use with the Rapid XAML Toolkit.
4 |
5 | More details at https://rapidxaml.dev/custom-analysis
6 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.RoslynAnalyzers/Resources/RapidXamlRoslynAnalyzersLogo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/VSIX/RapidXaml.RoslynAnalyzers/Resources/RapidXamlRoslynAnalyzersLogo.png
--------------------------------------------------------------------------------
/NuGet/RapidXaml.MAUI/EventToCommand/E2C.cs:
--------------------------------------------------------------------------------
1 | namespace RapidXaml;
2 |
3 | ///
4 | /// EventToCommand functionality, but with a shorter name.
5 | ///
6 | public partial class E2C : EventToCommand { }
7 |
--------------------------------------------------------------------------------
/Templates/RapidXaml.Templates/ProjectTemplates/CustomAnalysisProjectTemplate.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/Templates/RapidXaml.Templates/ProjectTemplates/CustomAnalysisProjectTemplate.zip
--------------------------------------------------------------------------------
/VSIX/RapidXamlToolkit/Resources/References/Microsoft.WebTools.Languages.Json.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/VSIX/RapidXamlToolkit/Resources/References/Microsoft.WebTools.Languages.Json.dll
--------------------------------------------------------------------------------
/VSIX/RapidXaml.Analysis/Resources/References/Microsoft.WebTools.Languages.Json.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/VSIX/RapidXaml.Analysis/Resources/References/Microsoft.WebTools.Languages.Json.dll
--------------------------------------------------------------------------------
/VSIX/RapidXaml.AnalysisCore/app.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.BuildAnalysis/buildMultiTargeting/RapidXaml.BuildAnalysis.props:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.InternalAnalyzers/RapidXaml.InternalAnalyzers/AnalyzerReleases.Shipped.md:
--------------------------------------------------------------------------------
1 | # Release 0.0
2 |
3 | ## New Rules
4 |
5 | Rule ID | Category | Severity | Notes
6 | --------|----------|----------|--------------------
7 |
--------------------------------------------------------------------------------
/VSIX/BuildAnalysisUwpTestApp/Assets/Square44x44Logo.targetsize-24_altform-unplated.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mrlacey/Rapid-XAML-Toolkit/HEAD/VSIX/BuildAnalysisUwpTestApp/Assets/Square44x44Logo.targetsize-24_altform-unplated.png
--------------------------------------------------------------------------------
/.github/copilot-instructions.md:
--------------------------------------------------------------------------------
1 | The VSIX projects are WPF Net4.8 and the NuGet projects target NetStandard2.0.
2 |
3 | Projects are to be consumed in MAUI, WPF & WinUI3 projects.
4 |
5 | Follow existing conventions and try not to break stuff.
6 |
--------------------------------------------------------------------------------
/NuGet/RapidXaml.MAUI/EventToCommand/On.cs:
--------------------------------------------------------------------------------
1 | namespace RapidXaml;
2 |
3 | ///
4 | /// EventToCommand functionality, but with a shorter and more semantically meaningful name.
5 | ///
6 | public partial class On : EventToCommand { }
7 |
--------------------------------------------------------------------------------
/VSIX/SetVersionNumbers/SetVersionNumbers.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Exe
5 | netcoreapp3.1
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Templates/.editorconfig:
--------------------------------------------------------------------------------
1 | [*.cs]
2 |
3 | # SA1600: Elements should be documented
4 | dotnet_diagnostic.SA1600.severity = none
5 |
6 | # SA0001: XML comment analysis is disabled due to project configuration
7 | dotnet_diagnostic.SA0001.severity = none
8 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.AutoFix/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using System.Runtime.CompilerServices;
5 |
6 | [assembly: InternalsVisibleTo("RapidXamlToolkit.Tests.AutoFix")]
7 |
--------------------------------------------------------------------------------
/NuGet/RapidXaml.WinUI/GenConfig.cs:
--------------------------------------------------------------------------------
1 | namespace RapidXaml;
2 |
3 | public class GenConfig
4 | {
5 | public string Namespace { get; set; }
6 |
7 | public string IgnoreTypes { get; set; }
8 |
9 | public string AddUsing { get; set; }
10 | }
11 |
--------------------------------------------------------------------------------
/Rider/src/dotnet/ReSharperPlugin.RapidXaml/OutlineZoneMarker.cs:
--------------------------------------------------------------------------------
1 | using JetBrains.Application.BuildScript.Application.Zones;
2 |
3 | namespace ReSharperPlugin.RapidXaml;
4 |
5 | [ZoneMarker]
6 | public class OutlineZoneMarker : IRequire
7 | {
8 | }
--------------------------------------------------------------------------------
/VSIX/RapidXaml.CustomAnalysis/docs/readme.md:
--------------------------------------------------------------------------------
1 | # RapidXAML.CustomAnalysis
2 |
3 | Create custom XAML analyzers for use with the Rapid XAML Toolkit.
4 |
5 | For more details [see the docs](https://github.com/mrlacey/Rapid-XAML-Toolkit/blob/main/docs/custom-analysis.md)
6 |
--------------------------------------------------------------------------------
/VSIX/RapidXamlToolkit.Tests/Misc/XmlSpace1.xaml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/NuGet/RapidXaml.CodeGen.Maui/SupportedProperty.cs:
--------------------------------------------------------------------------------
1 | public enum SupportedProperty
2 | {
3 | Unknown,
4 | Content,
5 | Placeholder,
6 | Text,
7 | Title,
8 | ToolTipText,
9 | SemanticDescription,
10 | SemanticHint,
11 | AutomationName,
12 | AutomationHelpText,
13 | }
14 |
--------------------------------------------------------------------------------
/docs/warnings/_template.md:
--------------------------------------------------------------------------------
1 | # RXT???
2 |
3 | .
4 |
5 | ## Description
6 |
7 | .
8 |
9 | ## Why this is suggested
10 |
11 | .
12 |
13 | ## How to address the issue
14 |
15 | .
16 |
17 | ## Notes
18 |
19 | .
20 |
21 | See also
22 |
23 | - [](https://example.com)
24 |
--------------------------------------------------------------------------------
/VSIX/BuildAnalysisUwpTestApp/App.xaml:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.Generation/Options/ICanClose.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | namespace RapidXamlToolkit.Options
5 | {
6 | public interface ICanClose
7 | {
8 | void Close();
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/.404-links.yml:
--------------------------------------------------------------------------------
1 | folder: docs/ # The folder required to be parsed
2 | httpsOnly: true # enforce only HTTPS links
3 | pullRequestReview: true # If you want a nice review in your pull requests
4 | ignore:
5 | urls:
6 | - https://example.com
7 | files:
8 | - docs/warnings/_template.md
9 |
--------------------------------------------------------------------------------
/VSIX/RapidXamlToolkit/Generation/Options/ICanClose.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | namespace RapidXamlToolkit.Options
5 | {
6 | public interface ICanClose
7 | {
8 | void Close();
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.Shared/KnownContentTypes.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | namespace RapidXamlToolkit
5 | {
6 | public class KnownContentTypes
7 | {
8 | public const string Xaml = "XAML";
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/VSIX/RapidXamlToolkit.Tests/rxt.runsettings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | True
6 |
7 |
8 |
--------------------------------------------------------------------------------
/VSIX/RapidXamlToolkit/KnownContentTypes.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | namespace RapidXamlToolkit
5 | {
6 | public class KnownContentTypes
7 | {
8 | public const string Xaml = "XAML";
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.Utils/VisualStudioIntegration/ITextSnapshotLineAbstraction.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | namespace RapidXamlToolkit.VisualStudioIntegration
5 | {
6 | public interface ITextSnapshotLineAbstraction
7 | { }
8 | }
9 |
--------------------------------------------------------------------------------
/NuGet/RapidXaml.WinUI/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 |
2 | // Not yet supported.
3 | // see:
4 | // - https://github.com/microsoft/microsoft-ui-xaml/issues/1045#issuecomment-513318346
5 | // - https://github.com/MicrosoftDocs/winui-api/issues/43
6 |
7 |
8 | // [assembly: XmlnsDefinition("https://rapidxaml.dev", "RapidXaml")]
9 |
--------------------------------------------------------------------------------
/Rider/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | distributionBase=GRADLE_USER_HOME
2 | distributionPath=wrapper/dists
3 | distributionUrl=https\://cache-redirector.jetbrains.com/services.gradle.org/distributions/gradle-7.6-all.zip
4 | networkTimeout=10000
5 | zipStoreBase=GRADLE_USER_HOME
6 | zipStorePath=wrapper/dists
7 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.InternalAnalyzers/RapidXaml.InternalAnalyzers/AnalyzerReleases.Unshipped.md:
--------------------------------------------------------------------------------
1 | # New Rules
2 |
3 | Rule ID | Category | Severity | Notes
4 | --------|----------|----------|--------------------
5 | RXILOC | Naming | Warning | Only for debugging purposes. Ensure not using hardcoded text where shouldn't.
6 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.Generation/Parsers/MemberType.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | namespace RapidXamlToolkit.Parsers
5 | {
6 | public enum TypeOfMember
7 | {
8 | None,
9 | Property,
10 | Method,
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.AnalysisCore/XamlAnalysis/ParsedAction.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | namespace RapidXamlToolkit.XamlAnalysis
5 | {
6 | public enum ParsedAction
7 | {
8 | Add,
9 | Update,
10 | Unknown,
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.Utils/VisualStudioIntegration/ISnapshotSpanAbstraction.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | namespace RapidXamlToolkit.VisualStudioIntegration
5 | {
6 | public interface ISnapshotSpanAbstraction
7 | {
8 |
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/VSIX/RapidXamlToolkit/Generation/Parsers/TypeOfMember.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | namespace RapidXamlToolkit.Parsers
5 | {
6 | public enum TypeOfMember
7 | {
8 | None,
9 | Property,
10 | Method,
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.Analysis/JSON/settings-schema.json:
--------------------------------------------------------------------------------
1 | {
2 | "title": "Rapid XAML Analysis Settings schema",
3 | "$schema": "http://json-schema.org/draft-04/schema#",
4 |
5 | "type": "object",
6 | "additionalProperties": {
7 | "enum": [ "Error", "Warning", "Suggestion", "Hidden", "None" ]
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.Shared/Logging/IOutputPane.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | namespace RapidXamlToolkit.Logging
5 | {
6 | public interface IOutputPane
7 | {
8 | void Write(string message);
9 |
10 | void Activate();
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/VSIX/RapidXamlToolkit.Tests/GlobalSuppressions.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | [assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Style", "VSTHRD200:Use \"Async\" suffix for async methods", Justification = "Not for tests as names are already long enough.")]
5 |
--------------------------------------------------------------------------------
/VSIX/RapidXamlToolkit/Logging/IOutputPane.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | namespace RapidXamlToolkit.Logging
5 | {
6 | public interface IOutputPane
7 | {
8 | void Write(string message);
9 |
10 | void Activate();
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/VSIX/RapidXamlToolkit/Analysis/JSON/settings-schema.json:
--------------------------------------------------------------------------------
1 | {
2 | "title": "Rapid XAML Analysis Settings schema",
3 | "$schema": "http://json-schema.org/draft-04/schema#",
4 |
5 | "type": "object",
6 | "additionalProperties": {
7 | "enum": [ "Error", "Warning", "Suggestion", "Hidden", "None" ]
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/Rider/.gitignore:
--------------------------------------------------------------------------------
1 | # Build artifacts
2 | [Bb]in/
3 | [Oo]bj/
4 | build
5 | output
6 | .gradle
7 | .tmp
8 |
9 | # User-specific files
10 | *.suo
11 | *.user
12 | *.sln.docstates
13 | *.cache
14 |
15 | # IDEs
16 | /.idea/*.iml
17 | /.idea/*.xml
18 | /.idea/.idea.*/*.iml
19 | /.idea/.idea.*/.idea/*.xml
20 | .vs
21 | _ReSharper*
22 | _dotTrace*
--------------------------------------------------------------------------------
/VSIX/RapidXaml.AnalysisCore/XamlAnalysis/Tags/IRapidXamlTag.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | namespace RapidXamlToolkit.XamlAnalysis.Tags
5 | {
6 | public interface IRapidXamlTag
7 | {
8 | (int Start, int Length) Span { get; set; }
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.EditorExtras/SymbolVisualizer/SymbolType.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | namespace RapidXaml.EditorExtras.SymbolVisualizer
5 | {
6 | public enum SymbolType
7 | {
8 | Glyph,
9 | Symbol,
10 | FontAwesome,
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.Generation/Parsers/ParserOutputType.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | namespace RapidXamlToolkit.Parsers
5 | {
6 | public enum ParserOutputType
7 | {
8 | None,
9 | Member,
10 | Class,
11 | Selection,
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/VSIX/RapidXamlToolkit/EditorExtras/SymbolVisualizer/SymbolType.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | namespace RapidXaml.EditorExtras.SymbolVisualizer
5 | {
6 | public enum SymbolType
7 | {
8 | Glyph,
9 | Symbol,
10 | FontAwesome,
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/VSIX/OptionsEmulator/App.xaml:
--------------------------------------------------------------------------------
1 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/VSIX/RapidXamlToolkit/Generation/Parsers/ParserOutputType.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | namespace RapidXamlToolkit.Parsers
5 | {
6 | public enum ParserOutputType
7 | {
8 | None,
9 | Member,
10 | Class,
11 | Selection,
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.Analysis/RapidXamlAnalysisExtensions.vsext:
--------------------------------------------------------------------------------
1 | {
2 | "description": "Rapid XAML Analysis - Dependencies",
3 | "version": "1.0.0.0",
4 | "extensions": [
5 | {
6 | "vsixId": "RapidXaml.Common.3cb31872-64f7-49f8-91a7-31393173c5ce",
7 | "name": "Rapid XAML Common Functionality"
8 | }
9 | ]
10 | }
11 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.AnalysisCore/XamlAnalysis/Tags/TagErrorType.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | namespace RapidXamlToolkit.XamlAnalysis.Tags
5 | {
6 | public enum TagErrorType
7 | {
8 | Error,
9 | Warning,
10 | Suggestion,
11 | Hidden,
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.Generation/RapidXamlGenerationExtensions.vsext:
--------------------------------------------------------------------------------
1 | {
2 | "description": "Rapid XAML Generation - Dependencies",
3 | "version": "1.0.0.0",
4 | "extensions": [
5 | {
6 | "vsixId": "RapidXaml.Common.3cb31872-64f7-49f8-91a7-31393173c5ce",
7 | "name": "Rapid XAML Common Functionality"
8 | }
9 | ]
10 | }
11 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.Utils/VisualStudioIntegration/ISpanAbstraction.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | namespace RapidXamlToolkit.VisualStudioIntegration
5 | {
6 | public interface ISpanAbstraction
7 | {
8 | int Start { get; }
9 |
10 | int Length { get; }
11 | }
12 |
13 | }
14 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.EditorExtras/RapidXamlEditorExtrasExtensions.vsext:
--------------------------------------------------------------------------------
1 | {
2 | "description": "Rapid XAML Editor Extras - Dependencies",
3 | "version": "1.0.0.0",
4 | "extensions": [
5 | {
6 | "vsixId": "RapidXaml.Common.3cb31872-64f7-49f8-91a7-31393173c5ce",
7 | "name": "Rapid XAML Common Functionality"
8 | }
9 | ]
10 | }
11 |
--------------------------------------------------------------------------------
/VSIX/appsettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "AboutUsingThisFile": "If you don't want to change this file, create a copy called 'appsettings.json.secret' (does not need to be part of the solution & automatically excluded from git) and that file will be used instead.",
3 | "TelemetryKey": "SET HERE",
4 | "LightBulbTelemetryGuid": "SET HERE",
5 | "ExtendedOutputEnabledByDefault": "True"
6 | }
7 |
--------------------------------------------------------------------------------
/.github/workflows/doc-link-checks.yml:
--------------------------------------------------------------------------------
1 | name: 404 link checks
2 |
3 | on:
4 | push:
5 | branches: [ main ]
6 | pull_request:
7 | types: [assigned, opened, synchronize, reopened]
8 |
9 | jobs:
10 | check-links:
11 | runs-on: ubuntu-latest
12 | steps:
13 | - uses: actions/checkout@v3
14 | - name: 'restqa-404-links'
15 | uses: restqa/404-links@3.1.4
16 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.CustomAnalysis/ICustomAnalyzer.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | namespace RapidXaml
5 | {
6 | public interface ICustomAnalyzer
7 | {
8 | string TargetType();
9 |
10 | AnalysisActions Analyze(RapidXamlElement element, ExtraAnalysisDetails extraDetails);
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.RoslynAnalyzers/RapidXamlRoslynAnalzersExtensions.vsext:
--------------------------------------------------------------------------------
1 | {
2 | "description": "Rapid XAML RoslynAnalyzers - Dependencies",
3 | "version": "1.0.0.0",
4 | "extensions": [
5 | {
6 | "vsixId": "RapidXaml.Common.3cb31872-64f7-49f8-91a7-31393173c5ce",
7 | "name": "Rapid XAML Common Functionality"
8 | }
9 | ]
10 | }
11 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.Utils/VisualStudioIntegration/IVisualStudioProjectFilePath.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | namespace RapidXamlToolkit.VisualStudioIntegration
5 | {
6 | public interface IVisualStudioProjectFilePath
7 | {
8 | string GetPathOfProjectContainingFile(string fileName);
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/NuGet/RapidXaml.CodeGen.Maui/ITaskLogWrapper.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace RapidXaml.CodeGen;
4 |
5 | public interface ITaskLogWrapper
6 | {
7 | void LogNormalMessage(string message);
8 | void LogImportantMessage(string message);
9 | void LogWarning(string message);
10 | void LogError(string message);
11 | void LogErrorFromException(Exception ex, bool showStackTrace);
12 | }
13 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.Utils/Telemetry/MiscellaneousFeatures.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | namespace RapidXamlToolkit.Telemetry
5 | {
6 | public static class MiscellaneousFeatures
7 | {
8 | public static string PromptToDisableAnalysisOnSave { get; } = "PromptToDisableAnlysisOnFileSave";
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/Rider/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # Changelog
2 |
3 | All notable changes to this project will be documented in this file.
4 |
5 | The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
6 | and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
7 |
8 | ## 1.0.1
9 |
10 | - Expanded plugin description.
11 |
12 | ## 1.0.0
13 |
14 | - Initial version
15 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.Shared/Telemetry/TelemetryEvents.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | namespace RapidXamlToolkit.Telemetry
5 | {
6 | public class TelemetryEvents
7 | {
8 | public const string Prefix = "Rxt";
9 |
10 | public static string SessionStart { get; } = Prefix + "SessionStart";
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/VSIX/RapidXamlToolkit/Telemetry/TelemetryEvents.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | namespace RapidXamlToolkit.Telemetry
5 | {
6 | public class TelemetryEvents
7 | {
8 | public const string Prefix = "Rxt";
9 |
10 | public static string SessionStart { get; } = Prefix + "SessionStart";
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Assets/colors.txt:
--------------------------------------------------------------------------------
1 | BLUE = 0,120,255 #0078ff Toolkit
2 | RED = 255,36,36 #ff2424 Generation
3 | YELLOW = 255,236,36 #ffec24 Roslyn
4 | GREEN = 89,165,36 #59a524 Analysis
5 | PINK = 255,105,180 #ff69b4 EditorExtras
6 | PURPLE = 102,51,153 #663399 CustomAnalysis
7 | SILVER = 192,192,192 #C0C0C0 Common
8 | ORANGE = 255,165,0 #FFA500 Templates
9 |
10 | ????? (Styles) - in EditorExtras?
11 |
--------------------------------------------------------------------------------
/Rider/protocol/build.gradle:
--------------------------------------------------------------------------------
1 | plugins {
2 | id 'java'
3 | id 'org.jetbrains.kotlin.jvm'
4 | }
5 |
6 | dependencies {
7 | implementation "org.jetbrains.kotlin:kotlin-stdlib"
8 | implementation name: "rd-gen"
9 | implementation name: "rider-model"
10 | }
11 |
12 | repositories {
13 | mavenCentral()
14 | flatDir {
15 | dirs rdLibDirectory().absolutePath
16 | }
17 | }
--------------------------------------------------------------------------------
/VSIX/RapidXaml.Shared/VisualStudioIntegration/IVisualStudioAbstractionAndDocumentModelAccess.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | namespace RapidXamlToolkit.VisualStudioIntegration
5 | {
6 | public interface IVisualStudioAbstractionAndDocumentModelAccess : IDocumentModelAccess, IVisualStudioAbstraction
7 | {
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/VSIX/RapidXamlToolkit/VisualStudioIntegration/IVisualStudioAbstractionAndDocumentModelAccess.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | namespace RapidXamlToolkit.VisualStudioIntegration
5 | {
6 | public interface IVisualStudioAbstractionAndDocumentModelAccess : IDocumentModelAccess, IVisualStudioAbstraction
7 | {
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.BuildAnalysis/targets/RapidXaml.BuildAnalysis.targets:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | $(BuildDependsOn);
5 | AfterBuild;
6 | RapidXamlBuildAnalysis
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/Rider/buildPlugin.ps1:
--------------------------------------------------------------------------------
1 | Param(
2 | $Version = "1.0.0"
3 | )
4 |
5 | Set-StrictMode -Version Latest
6 | $ErrorActionPreference = "Stop"
7 | $PSScriptRoot = Split-Path $MyInvocation.MyCommand.Path -Parent
8 | Set-Location $PSScriptRoot
9 |
10 | . ".\settings.ps1"
11 |
12 | Invoke-Exe $MSBuildPath "/t:Restore;Rebuild;Pack" "$SolutionPath" "/v:minimal" "/p:PackageVersion=$Version" "/p:PackageOutputPath=`"$OutputDirectory`""
13 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.CustomAnalysis/KnownExtraDetails.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | namespace RapidXaml
5 | {
6 | public static class KnownExtraDetails
7 | {
8 | public const string Framework = "framework";
9 |
10 | public const string FilePath = "filepath";
11 |
12 | public const string Xmlns = "xmlns";
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.Generation/Parsers/AttributeArgumentDetails.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | namespace RapidXamlToolkit.Parsers
5 | {
6 | public class AttributeArgumentDetails
7 | {
8 | public int Index { get; set; }
9 |
10 | public string Name { get; set; }
11 |
12 | public string Value { get; set; }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/docs/warnings/RXTPOC.md:
--------------------------------------------------------------------------------
1 | # RXTPOC
2 |
3 | Congratulations, you've found something experimental.
4 |
5 | ## Description
6 |
7 | This error Id is used for experimental or "Proof of Concept" functionality.
8 |
9 | ## Notes
10 |
11 | If you have any thoughts on this be shown or on what was happening when it was reported, please [raise an issue and share them](https://github.com/mrlacey/Rapid-XAML-Toolkit/issues/new/choose).
12 |
--------------------------------------------------------------------------------
/VSIX/RapidXamlToolkit/Generation/Parsers/AttributeArgumentDetails.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | namespace RapidXamlToolkit.Parsers
5 | {
6 | public class AttributeArgumentDetails
7 | {
8 | public int Index { get; set; }
9 |
10 | public string Name { get; set; }
11 |
12 | public string Value { get; set; }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/NuGet/Tools/GenerateWinUIEventToCommand/GenerateWinUIEventToCommand.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Exe
5 | net9.0
6 | enable
7 | enable
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/Templates/CustomAnalysisProjectTemplate/Analyzer/CustomAnalyzerProject.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | netstandard2.0
5 | $ext_safeprojectname$.nuspec
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/config.yml:
--------------------------------------------------------------------------------
1 | contact_links:
2 | - name: 🆓 Support this project
3 | url: https://rapidxaml.dev/support
4 | about: See how you can help support this project.
5 | - name: ⭐ Leave a review
6 | url: https://marketplace.visualstudio.com/items?itemName=MattLaceyLtd.RapidXamlToolkit&ssr=false#review-details
7 | about: Positive reviews are a great motivator to keep working on this project and they encourage others to try using it.
8 |
--------------------------------------------------------------------------------
/VSIX/RapidXamlToolkit/RapidXamlToolkit.GeneratedMSBuildEditorConfig.editorconfig:
--------------------------------------------------------------------------------
1 | is_global = true
2 | build_property.TargetFramework =
3 | build_property.TargetPlatformMinVersion =
4 | build_property.UsingMicrosoftNETSdkWeb =
5 | build_property.ProjectTypeGuids = {82b43b9b-a64c-4715-b499-d71e9ca2bd60};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
6 | build_property.PublishSingleFile =
7 | build_property.IncludeAllContentForSelfExtract =
8 | build_property._SupportedPlatformList =
9 |
--------------------------------------------------------------------------------
/config/.spellcheck.yml:
--------------------------------------------------------------------------------
1 | matrix:
2 | - name: Markdown
3 | sources:
4 | - 'docs/*.md'
5 | default_encoding: utf-8
6 | aspell:
7 | lang: en
8 | dictionary:
9 | wordlists:
10 | - config/wordlist.txt
11 | encoding: utf-8
12 | pipeline:
13 | - pyspelling.filters.markdown:
14 | markdown_extensions:
15 | - pymdownx.superfences
16 | - pyspelling.filters.html:
17 | comments: false
18 | ignores:
19 | - code
20 | - pre
21 |
--------------------------------------------------------------------------------
/VSIX/RapidXamlToolkit.Tests/RapidXamlToolkit.Tests.GeneratedMSBuildEditorConfig.editorconfig:
--------------------------------------------------------------------------------
1 | is_global = true
2 | build_property.TargetFramework =
3 | build_property.TargetPlatformMinVersion =
4 | build_property.UsingMicrosoftNETSdkWeb =
5 | build_property.ProjectTypeGuids = {3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
6 | build_property.PublishSingleFile =
7 | build_property.IncludeAllContentForSelfExtract =
8 | build_property._SupportedPlatformList =
9 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.Analysis/ErrorList/ErrorListService.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | namespace RapidXamlToolkit.ErrorList
5 | {
6 | public class ErrorListService
7 | {
8 | public static void Process(FileErrorCollection result)
9 | {
10 | TableDataSource.Instance.CleanErrors(result.FilePath);
11 | TableDataSource.Instance.AddErrors(result);
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.RoslynAnalyzers/RapidXaml.RoslynAnalyzers.GeneratedMSBuildEditorConfig.editorconfig:
--------------------------------------------------------------------------------
1 | is_global = true
2 | build_property.TargetFramework =
3 | build_property.TargetPlatformMinVersion =
4 | build_property.UsingMicrosoftNETSdkWeb =
5 | build_property.ProjectTypeGuids = {82b43b9b-a64c-4715-b499-d71e9ca2bd60};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
6 | build_property.PublishSingleFile =
7 | build_property.IncludeAllContentForSelfExtract =
8 | build_property._SupportedPlatformList =
9 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.Analysis/ErrorList/FileErrorCollection.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using System.Collections.Generic;
5 |
6 | namespace RapidXamlToolkit.ErrorList
7 | {
8 | public class FileErrorCollection
9 | {
10 | public string FilePath { get; set; }
11 |
12 | public string Project { get; set; }
13 |
14 | public List Errors { get; set; } = new List();
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.Shared/Telemetry/CoreDetails.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using System.Reflection;
5 |
6 | namespace RapidXamlToolkit.Telemetry
7 | {
8 | public static class CoreDetails
9 | {
10 | public static string GetVersion()
11 | {
12 | var assembly = Assembly.GetCallingAssembly();
13 |
14 | return assembly.GetName().Version.ToString();
15 | }
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.Utils/Telemetry/CoreDetails.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using System.Reflection;
5 |
6 | namespace RapidXamlToolkit.Telemetry
7 | {
8 | public static class CoreDetails
9 | {
10 | public static string GetVersion()
11 | {
12 | var assembly = Assembly.GetCallingAssembly();
13 |
14 | return assembly.GetName().Version.ToString();
15 | }
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/VSIX/RapidXamlToolkit/Analysis/ErrorList/ErrorListService.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | namespace RapidXamlToolkit.ErrorList
5 | {
6 | public class ErrorListService
7 | {
8 | public static void Process(FileErrorCollection result)
9 | {
10 | TableDataSource.Instance.CleanErrors(result.FilePath);
11 | TableDataSource.Instance.AddErrors(result);
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.Generation/Parsers/AttributeDetails.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using System.Collections.Generic;
5 | using Microsoft.CodeAnalysis;
6 |
7 | namespace RapidXamlToolkit.Parsers
8 | {
9 | public class AttributeDetails
10 | {
11 | public string Name { get; set; }
12 |
13 | public List Arguments { get; set; } = new List();
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.AnalysisCore/XamlAnalysis/AttributeType.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using System;
5 |
6 | namespace RapidXamlToolkit.XamlAnalysis
7 | {
8 | [Flags]
9 | public enum AttributeType
10 | {
11 | None = 0,
12 | Inline = 1,
13 | Element = 2,
14 | InlineOrElement = Inline | Element,
15 | DefaultValue = 4,
16 | Any = Inline | Element | DefaultValue,
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/VSIX/RapidXamlToolkit/Analysis/ErrorList/FileErrorCollection.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using System.Collections.Generic;
5 |
6 | namespace RapidXamlToolkit.ErrorList
7 | {
8 | public class FileErrorCollection
9 | {
10 | public string FilePath { get; set; }
11 |
12 | public string Project { get; set; }
13 |
14 | public List Errors { get; set; } = new List();
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/VSIX/RapidXamlToolkit/Generation/Parsers/AttributeDetails.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using System.Collections.Generic;
5 | using Microsoft.CodeAnalysis;
6 |
7 | namespace RapidXamlToolkit.Parsers
8 | {
9 | public class AttributeDetails
10 | {
11 | public string Name { get; set; }
12 |
13 | public List Arguments { get; set; } = new List();
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/Rider/src/dotnet/ReSharperPlugin.RapidXaml/IRapidXamlZone.cs:
--------------------------------------------------------------------------------
1 | using JetBrains.Application.BuildScript.Application.Zones;
2 | using JetBrains.ReSharper.Feature.Services.Daemon;
3 | using JetBrains.ReSharper.Psi.CSharp;
4 | using JetBrains.ReSharper.Psi.Xaml;
5 |
6 | namespace ReSharperPlugin.RapidXaml;
7 |
8 | [ZoneDefinition]
9 | // [ZoneDefinitionConfigurableFeature("Title", "Description", IsInProductSection: false)]
10 | public interface IRapidXamlZone : IZone,
11 | IRequire,
12 | IRequire
13 | {
14 | }
--------------------------------------------------------------------------------
/VSIX/RapidXaml.Analysis/XamlAnalysis/Tags/RapidXamlWarningAdornmentTag.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using Microsoft.VisualStudio.Text.Tagging;
5 |
6 | namespace RapidXamlToolkit.XamlAnalysis.Tags
7 | {
8 | public class RapidXamlWarningAdornmentTag : ErrorTag
9 | {
10 | public RapidXamlWarningAdornmentTag(string tooltip, string adornmentErrorType)
11 | : base(adornmentErrorType, tooltip)
12 | {
13 | }
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.AnalysisCore/XamlAnalysis/Tags/IRapidXamlAdornmentTag.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using RapidXamlToolkit.VisualStudioIntegration;
5 |
6 | namespace RapidXamlToolkit.XamlAnalysis.Tags
7 | {
8 | public interface IRapidXamlAdornmentTag : IRapidXamlTag
9 | {
10 | string ToolTip { get; set; }
11 |
12 | ITextSnapshotAbstraction Snapshot { get; set; }
13 |
14 | TagErrorType ConfiguredErrorType { get; }
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.Generation/Options/AllowedPlaceholdersAttribute.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using System;
5 |
6 | namespace RapidXamlToolkit.Options
7 | {
8 | internal class AllowedPlaceholdersAttribute : Attribute
9 | {
10 | public AllowedPlaceholdersAttribute(params string[] placeholders)
11 | {
12 | this.Placeholders = placeholders;
13 | }
14 |
15 | public string[] Placeholders { get; }
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/VSIX/OptionsEmulator/GlobalSuppressions.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | [assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("StyleCop.CSharp.DocumentationRules", "SA1600:Elements should be documented", Justification = "Documentation not required for dev tooling")]
5 | [assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("StyleCop.CSharp.DocumentationRules", "SA1601:Partial elements should be documented", Justification = "Documentation not required for dev tooling")]
6 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.Analysis/XamlAnalysis/Tags/RapidXamlSuggestionAdornmentTag.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using Microsoft.VisualStudio.Text.Tagging;
5 |
6 | namespace RapidXamlToolkit.XamlAnalysis.Tags
7 | {
8 | public class RapidXamlSuggestionAdornmentTag : ErrorTag
9 | {
10 | public RapidXamlSuggestionAdornmentTag(string tooltip)
11 | : base(PredefinedErrorTypeNames.HintedSuggestion, tooltip)
12 | {
13 | }
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.Generation/Parsers/IDocumentParser.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using Microsoft.CodeAnalysis;
5 |
6 | namespace RapidXamlToolkit.Parsers
7 | {
8 | public interface IDocumentParser
9 | {
10 | ParserOutput GetSingleItemOutput(SyntaxNode documentRoot, SemanticModel semModel, int caretPosition);
11 |
12 | ParserOutput GetSelectionOutput(SyntaxNode documentRoot, SemanticModel semModel, int selStart, int selEnd);
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/VSIX/RapidXamlToolkit/Analysis/XamlAnalysis/Tags/RapidXamlWarningAdornmentTag.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using Microsoft.VisualStudio.Text.Tagging;
5 |
6 | namespace RapidXamlToolkit.XamlAnalysis.Tags
7 | {
8 | public class RapidXamlWarningAdornmentTag : ErrorTag
9 | {
10 | public RapidXamlWarningAdornmentTag(string tooltip, string adornmentErrorType)
11 | : base(adornmentErrorType, tooltip)
12 | {
13 | }
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/VSIX/RapidXamlToolkit/Generation/Options/AllowedPlaceholdersAttribute.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using System;
5 |
6 | namespace RapidXamlToolkit.Options
7 | {
8 | internal class AllowedPlaceholdersAttribute : Attribute
9 | {
10 | public AllowedPlaceholdersAttribute(params string[] placeholders)
11 | {
12 | this.Placeholders = placeholders;
13 | }
14 |
15 | public string[] Placeholders { get; }
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/docs/assumptions.md:
--------------------------------------------------------------------------------
1 | # Assumptions
2 |
3 | The XAML generation functionality of the toolkit is based on the following assumptions.
4 |
5 | - The code in the project compiles.
6 | - Each ViewModel class is in a separate file.
7 | - Wiring up the ViewModel to the View is handled by the developer, not functionality in the toolkit.
8 | - **C#** code always includes opening and closing curly braces and they are on their own lines.
9 |
10 | Where code does not meet these expectations the result of using any functionality cannot be guaranteed.
11 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.AnalysisCore/XamlAnalysis/Tags/IRapidXamlErrorListTag.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | namespace RapidXamlToolkit.XamlAnalysis.Tags
5 | {
6 | public interface IRapidXamlErrorListTag : IRapidXamlAdornmentTag
7 | {
8 | string Description { get; set; }
9 |
10 | string ExtendedMessage { get; set; }
11 |
12 | int Line { get; }
13 |
14 | int Column { get; }
15 |
16 | bool IsInternalError { get; }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/VSIX/RapidXamlToolkit/Analysis/XamlAnalysis/Tags/RapidXamlSuggestionAdornmentTag.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using Microsoft.VisualStudio.Text.Tagging;
5 |
6 | namespace RapidXamlToolkit.XamlAnalysis.Tags
7 | {
8 | public class RapidXamlSuggestionAdornmentTag : ErrorTag
9 | {
10 | public RapidXamlSuggestionAdornmentTag(string tooltip)
11 | : base(PredefinedErrorTypeNames.HintedSuggestion, tooltip)
12 | {
13 | }
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/VSIX/RapidXamlToolkit/Generation/Parsers/IDocumentParser.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using Microsoft.CodeAnalysis;
5 |
6 | namespace RapidXamlToolkit.Parsers
7 | {
8 | public interface IDocumentParser
9 | {
10 | ParserOutput GetSingleItemOutput(SyntaxNode documentRoot, SemanticModel semModel, int caretPosition);
11 |
12 | ParserOutput GetSelectionOutput(SyntaxNode documentRoot, SemanticModel semModel, int selStart, int selEnd);
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.AnalysisCore/XamlAnalysis/Tags/UnexpectedErrorTag.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | namespace RapidXamlToolkit.XamlAnalysis.Tags
5 | {
6 | public class UnexpectedErrorTag : RapidXamlDisplayedTag
7 | {
8 | public UnexpectedErrorTag(TagDependencies tagDeps)
9 | : base(tagDeps, "RXT999", TagErrorType.Error)
10 | {
11 | this.ToolTip = string.Empty;
12 | this.IsInternalError = true;
13 | }
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/NuGet/RapidXaml.WPF/RapidXaml.WPF.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | net9.0-windows
5 | enable
6 | true
7 |
8 |
9 |
10 |
11 | all
12 | runtime; build; native; contentfiles; analyzers; buildtransitive
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/VSIX/OptionsEmulator/App.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/VSIX/RapidXamlToolkit.Tests.Manual/testsettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "AboutUsingThisFile": "If you don't want to change this file, create a copy called 'testsettings.json.secret' (does not need to be part of the solution & automatically excluded from git) and that file will be used instead.",
3 | "Notes": "See more on getting a key from https://docs.microsoft.com/en-us/azure/cognitive-services/computer-vision/vision-api-how-to-topics/howtosubscribe",
4 | "TextServiceSubscriptionKey": "MUST-BE-SET",
5 | "TextServiceAzureRegion": "",
6 | "TextServiceIsFreeSubscription": "True"
7 | }
8 |
--------------------------------------------------------------------------------
/.github/workflows/markdownlint.yml:
--------------------------------------------------------------------------------
1 | name: Markdownlint Action
2 |
3 | on:
4 | push:
5 | branches: [ main ]
6 | paths:
7 | - '*.md'
8 | pull_request:
9 | types: [assigned, opened, synchronize, reopened]
10 | paths:
11 | - '*.md'
12 |
13 | jobs:
14 | build:
15 | name: Markdownlint
16 | runs-on: ubuntu-latest
17 | steps:
18 | - uses: actions/checkout@v4
19 | - uses: nosborn/github-action-markdown-cli@v3.3.0
20 | name: Markdownlint
21 | with:
22 | files: .
23 | config_file: "config/.markdownlint.json"
24 |
--------------------------------------------------------------------------------
/VSIX/RapidXamlToolkit/Resources/References/about-Microsoft.WebTools.Languages.Json.dll.txt:
--------------------------------------------------------------------------------
1 | Microsoft.WebTools.Languages.Json.dll is originally from C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\Extensions\Microsoft\Web Tools\Languages
2 | It is an internal library for Visual Studio and not officially for use as there is no guarantee of API stability.
3 | It is included here as it provides the IJsonSchemaSelector interface.
4 | Without a copy directly accessible it's not possible to build the project outside of VS (such as is needed by AppVeyor and GitHub Actions)
5 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.Analysis/Resources/References/about-Microsoft.WebTools.Languages.Json.dll.txt:
--------------------------------------------------------------------------------
1 | Microsoft.WebTools.Languages.Json.dll is originally from C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\Extensions\Microsoft\Web Tools\Languages
2 | It is an internal library for Visual Studio and not officially for use as there is no guarantee of API stability.
3 | It is included here as it provides the IJsonSchemaSelector interface.
4 | Without a copy directly accessible it's not possible to build the project outside of VS (such as is needed by AppVeyor and GitHub Actions)
5 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.Analysis/XamlAnalysis/Tags/RowSpanOverflowTag.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using RapidXamlToolkit.Resources;
5 |
6 | namespace RapidXamlToolkit.XamlAnalysis.Tags
7 | {
8 | public class RowSpanOverflowTag : MissingDefinitionTag
9 | {
10 | public RowSpanOverflowTag(TagDependencies tagDeps)
11 | : base(tagDeps, "RXT103", TagErrorType.Warning)
12 | {
13 | this.ToolTip = StringRes.UI_XamlAnalysisRowSpanOverflowTooltip;
14 | }
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.AnalysisCore/XamlAnalysis/AnalyzerImporter.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using System.Collections.Generic;
5 | using System.ComponentModel.Composition;
6 | using RapidXaml;
7 |
8 | namespace RapidXamlToolkit.XamlAnalysis
9 | {
10 | public class AnalyzerImporter
11 | {
12 | [ImportMany(typeof(ICustomAnalyzer), AllowRecomposition =true, RequiredCreationPolicy = CreationPolicy.NonShared)]
13 | public IEnumerable CustomAnalyzers { get; set; }
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.BuildAnalysis/targets/RapidXaml.BuildAnalysis.props:
--------------------------------------------------------------------------------
1 |
2 |
3 | <_BuildAnalysisAssembly Condition="'$(MSBuildRuntimeType)' == 'Core'">..\tools\netstandard2.0\RapidXaml.BuildAnalysis.dll
4 | <_BuildAnalysisAssembly Condition="'$(MSBuildRuntimeType)' != 'Core'">..\tools\net472\RapidXaml.BuildAnalysis.dll
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.Generation/Options/VisualNode.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using System.Collections.Generic;
5 |
6 | namespace RapidXamlToolkit.Options
7 | {
8 | public class VisualNode
9 | {
10 | public VisualNode(string caption = "")
11 | {
12 | this.Caption = caption;
13 | this.ChildNodes = new List();
14 | }
15 |
16 | public string Caption { get; set; }
17 |
18 | public List ChildNodes { get; set; }
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.Analysis/XamlAnalysis/Tags/ColumnSpanOverflowTag.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using RapidXamlToolkit.Resources;
5 |
6 | namespace RapidXamlToolkit.XamlAnalysis.Tags
7 | {
8 | public class ColumnSpanOverflowTag : MissingDefinitionTag
9 | {
10 | public ColumnSpanOverflowTag(TagDependencies tagDeps)
11 | : base(tagDeps, "RXT104", TagErrorType.Warning)
12 | {
13 | this.ToolTip = StringRes.UI_XamlAnalysisColumnSpanOverflowTooltip;
14 | }
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.Generation/Options/WarningTriangle.xaml:
--------------------------------------------------------------------------------
1 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.Shared/VisualStudioIntegration/IDocumentModelAccess.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using System.Threading.Tasks;
5 | using Microsoft.CodeAnalysis;
6 |
7 | namespace RapidXamlToolkit.VisualStudioIntegration
8 | {
9 | public interface IDocumentModelAccess
10 | {
11 | Task<(SyntaxTree SyntaxTree, SemanticModel SemModel)> GetDocumentModelsAsync(string fileName);
12 |
13 | Task<(SyntaxTree SyntaxTree, SemanticModel SemModel)> GetDocumentModelsAsync(Document document);
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/VSIX/RapidXamlToolkit/VisualStudioIntegration/IDocumentModelAccess.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using System.Threading.Tasks;
5 | using Microsoft.CodeAnalysis;
6 |
7 | namespace RapidXamlToolkit.VisualStudioIntegration
8 | {
9 | public interface IDocumentModelAccess
10 | {
11 | Task<(SyntaxTree SyntaxTree, SemanticModel SemModel)> GetDocumentModelsAsync(string fileName);
12 |
13 | Task<(SyntaxTree SyntaxTree, SemanticModel SemModel)> GetDocumentModelsAsync(Document document);
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/VSIX/RapidXamlToolkit.Tests/Misc/WpfEmptyCheckBox.xaml:
--------------------------------------------------------------------------------
1 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/VSIX/RapidXamlToolkit/Generation/Options/VisualNode.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using System.Collections.Generic;
5 |
6 | namespace RapidXamlToolkit.Options
7 | {
8 | public class VisualNode
9 | {
10 | public VisualNode(string caption = "")
11 | {
12 | this.Caption = caption;
13 | this.ChildNodes = new List();
14 | }
15 |
16 | public string Caption { get; set; }
17 |
18 | public List ChildNodes { get; set; }
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/Rider/README.md:
--------------------------------------------------------------------------------
1 | # Rapid XAML for Rider
2 |
3 | [](https://plugins.jetbrains.com/plugin/RIDER_PLUGIN_ID)
4 |
5 |
6 | Tools to accelerate XAML app development.
7 |
8 | - Collapse the lines containing xmlns attributes to reduce noise in files.
9 | - More coming soon....
10 |
--------------------------------------------------------------------------------
/VSIX/RapidXamlToolkit/Generation/Options/WarningTriangle.xaml:
--------------------------------------------------------------------------------
1 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/VSIX/RapidXamlToolkit.Tests/Misc/PageWithXmlEncoding.xaml:
--------------------------------------------------------------------------------
1 |
2 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.Analysis/XamlAnalysis/Tags/AddRowDefinitionsTag.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using RapidXamlToolkit.Logging;
5 | using RapidXamlToolkit.VisualStudioIntegration;
6 |
7 | namespace RapidXamlToolkit.XamlAnalysis.Tags
8 | {
9 | public class AddRowDefinitionsTag : InsertionTag
10 | {
11 | public AddRowDefinitionsTag((int Start, int Length) span, ITextSnapshotAbstraction snapshot, string fileName, ILogger logger)
12 | : base(span, snapshot, fileName, logger)
13 | {
14 | }
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/VSIX/RapidXamlToolkit.Tests/XamlAnalysis/CustomAnalyzers/FakeExtraAnalysisDetails.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using RapidXaml;
5 |
6 | namespace RapidXamlToolkit.Tests.XamlAnalysis.CustomAnalyzers
7 | {
8 | public static class FakeExtraAnalysisDetails
9 | {
10 | public static ExtraAnalysisDetails Create(ProjectFramework framework = ProjectFramework.Unknown)
11 | {
12 | return new ExtraAnalysisDetails(
13 | "TestFile.xaml",
14 | framework);
15 | }
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/usage_feedback.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: "ℹ️ Usage feedback"
3 | about: Tell us how you've been using the toolkit or other anything else that doesn't fit the other categories.
4 | title: ''
5 | labels: ''
6 | assignees: ''
7 |
8 | ---
9 |
10 |
15 |
--------------------------------------------------------------------------------
/Rider/src/dotnet/ReSharperPlugin.RapidXaml/XamlNamespaceCodeFoldingProcessorFactory.cs:
--------------------------------------------------------------------------------
1 | using JetBrains.Annotations;
2 | using JetBrains.Application.Parts;
3 | using JetBrains.ReSharper.Daemon.CodeFolding;
4 | using JetBrains.ReSharper.Psi;
5 | using JetBrains.ReSharper.Psi.Xaml;
6 |
7 | namespace ReSharperPlugin.RapidXaml;
8 |
9 | [Language(typeof(XamlLanguage), Instantiation.DemandAnyThread)]
10 | public sealed class XamlNamespaceCodeFoldingProcessorFactory : ICodeFoldingProcessorFactory
11 | {
12 | [NotNull]
13 | public ICodeFoldingProcessor CreateProcessor() => new XamlNamespaceCodeFoldingProcessor();
14 | }
15 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.Analysis/XamlAnalysis/Tags/AddColumnDefinitionsTag.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using RapidXamlToolkit.Logging;
5 | using RapidXamlToolkit.VisualStudioIntegration;
6 |
7 | namespace RapidXamlToolkit.XamlAnalysis.Tags
8 | {
9 | public class AddColumnDefinitionsTag : InsertionTag
10 | {
11 | public AddColumnDefinitionsTag((int Start, int Length) span, ITextSnapshotAbstraction snapshot, string fileName, ILogger logger)
12 | : base(span, snapshot, fileName, logger)
13 | {
14 | }
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/docs/installation.md:
--------------------------------------------------------------------------------
1 | # Installation
2 |
3 | Get the official release from the VS Marketplace.
4 |
5 | ## Official Release
6 |
7 | Get the toolkit from the [Visual Studio Marketplace](https://marketplace.visualstudio.com/items?itemName=MattLaceyLtd.RapidXamlToolkit) or by searching inside Visual Studio (Extensions > Manage Extensions).
8 |
9 | _If you had it, the preview version should be uninstalled first._
10 |
11 | ## Beta builds
12 |
13 | No longer available. - sorry.
14 |
15 | ***
16 |
17 | Once installed you can begin using the extension and should [start by configuring it for the way you work](./configuration.md).
18 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.Shared/Properties/Settings.settings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.Analysis/XamlAnalysis/Actions/MissingDefinitionsAction.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using RapidXamlToolkit.XamlAnalysis.Tags;
5 |
6 | namespace RapidXamlToolkit.XamlAnalysis.Actions
7 | {
8 | public abstract class MissingDefinitionsAction : BaseSuggestedAction
9 | {
10 | protected MissingDefinitionsAction(string file)
11 | : base(file)
12 | {
13 | }
14 |
15 | public string UndoOperationName { get; protected set; }
16 |
17 | public MissingDefinitionTag Tag { get; set; }
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.AnalysisCore/XamlAnalysis/Tags/RapidXamlAdornmentTagExtensions.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | namespace RapidXamlToolkit.XamlAnalysis.Tags
5 | {
6 | public static class RapidXamlAdornmentTagExtensions
7 | {
8 | public static int GetDesignerLineNumber(this RapidXamlAdornmentTag tag)
9 | {
10 | // ITextSnapshot uses a zero-indexed line count, while TextDocument (used in the designer) start the count at 1
11 | return tag.Snapshot.GetLineNumberFromPosition(tag.Span.Start) + 1;
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.AnalysisCore/XamlAnalysis/Tags/RapidXamlDiscreteTag.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using RapidXamlToolkit.Logging;
5 | using RapidXamlToolkit.VisualStudioIntegration;
6 |
7 | namespace RapidXamlToolkit.XamlAnalysis.Tags
8 | {
9 | public abstract class RapidXamlDiscreteTag : RapidXamlAdornmentTag
10 | {
11 | protected RapidXamlDiscreteTag((int Start, int Length) span, ITextSnapshotAbstraction snapshot, string fileName, ILogger logger)
12 | : base(span, snapshot, fileName, logger)
13 | {
14 | }
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.CustomAnalysis/ProjectFramework.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using System.ComponentModel;
5 |
6 | namespace RapidXaml
7 | {
8 | public enum ProjectFramework
9 | {
10 | Unknown = 1,
11 |
12 | [Description("UWP")]
13 | Uwp = 2,
14 |
15 | [Description("WPF")]
16 | Wpf = 4,
17 |
18 | [Description("Xamarin.Forms")]
19 | XamarinForms = 8,
20 |
21 | [Description("WinUI3")]
22 | WinUI = 16,
23 |
24 | [Description(".NET MAUI")]
25 | Maui = 32,
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.Analysis/XamlAnalysis/Tags/AddRowAndColumnDefinitionsTag.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using RapidXamlToolkit.Logging;
5 | using RapidXamlToolkit.VisualStudioIntegration;
6 |
7 | namespace RapidXamlToolkit.XamlAnalysis.Tags
8 | {
9 | public class AddRowAndColumnDefinitionsTag : InsertionTag
10 | {
11 | public AddRowAndColumnDefinitionsTag((int Start, int Length) span, ITextSnapshotAbstraction snapshot, string fileName, ILogger logger)
12 | : base(span, snapshot, fileName, logger)
13 | {
14 | }
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/VSIX/RapidXamlToolkit.Tests/ProcessorEssentialsForSimpleTests.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using RapidXamlToolkit.XamlAnalysis.Processors;
5 |
6 | namespace RapidXamlToolkit.Tests
7 | {
8 | public class ProcessorEssentialsForSimpleTests : ProcessorEssentials
9 | {
10 | public ProcessorEssentialsForSimpleTests(ProjectType projectType = ProjectType.Any)
11 | {
12 | this.ProjectType = projectType;
13 | this.Logger = new DefaultTestLogger();
14 | this.ProjectFilePath = string.Empty;
15 | }
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/support_question.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: "❓ Question"
3 | about: If you have any questions about this project or use of the extensions
4 | title: ''
5 | labels: [question]
6 | assignees: ''
7 |
8 | ---
9 |
10 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/docs/warnings/RXT331.md:
--------------------------------------------------------------------------------
1 | # RXT331
2 |
3 | `Slider` has `ThumbColor` specified but `ThumbImageSource` takes precedence.
4 |
5 | Applies to **Xamarin.Forms** only!
6 |
7 | ## Description
8 |
9 | The `ThumbColor` and `ThumbImageSource` properties are mutually exclusive.
10 |
11 | ## Why this is suggested
12 |
13 | If both properties are set, the `ThumbImageSource` property will take precedence.
14 |
15 | ## How to address the issue
16 |
17 | Press `Ctrl + .` and use the suggested action 'Remove attribute.'
18 |
19 | ## Notes
20 |
21 | See also
22 |
23 | - [Xamarin.Forms Slider](https://docs.microsoft.com/en-us/xamarin/xamarin-forms/user-interface/slider)
24 |
--------------------------------------------------------------------------------
/docs/warnings/RXT500.md:
--------------------------------------------------------------------------------
1 | # RXT500
2 |
3 | Color contrast warning.
4 |
5 | ## Description
6 |
7 | The luminosity of the foreground and background colors is below the recommended level of 4.5:1.
8 |
9 | ## Why this is suggested
10 |
11 | The WCAG recommend a luminance contrast ratio of at least 4.5:1 for normal-size text. Without this, some people will find it harder to read the text.
12 |
13 | ## How to address the issue
14 |
15 | Change the colors to meet the recommendations.
16 |
17 | ## Notes
18 |
19 | See also
20 |
21 | - [Web Content Accessibility Guidelines (WCAG) 2.0](https://www.w3.org/TR/2008/REC-WCAG20-20081211/#visual-audio-contrast-contrast)
22 |
--------------------------------------------------------------------------------
/Rider/src/rider/main/resources/META-INF/plugin.xml:
--------------------------------------------------------------------------------
1 |
2 | mattlaceyltd.rapidxaml
3 | Rapid XAML
4 | 1.0.1
5 | Mattt Lacey
6 |
7 | com.intellij.modules.rider
8 |
9 |
10 | Tools to accelerate XAML app development.
12 |
13 | - Collapse the lines containing xmlns attributes to reduce noise in files.
14 | - More coming soon....
15 |
16 | ]]>
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/VSIX/Benchmarking/Program.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using BenchmarkDotNet.Running;
5 |
6 | namespace Benchmarking
7 | {
8 | class Program
9 | {
10 | static void Main(string[] _)
11 | {
12 | var summary = BenchmarkRunner.Run();
13 |
14 | // For identifying areas for improvement,
15 | // - Comment out the above call
16 | // - Uncomment the following
17 | // - Run app through DotTrace
18 | //new AnalysisParserBenchmarks().ParseCurrent();
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/docs/warnings/RXT320.md:
--------------------------------------------------------------------------------
1 | # RXT320
2 |
3 | Setting the `Fill` property of a `Line` is unnecessary.
4 |
5 | Applies to **Xamarin.Forms** only!
6 |
7 | ## Description
8 |
9 | Setting the `Fill` property of a `Line` is unnecessary as it has no effect.
10 |
11 | ## Why this is suggested
12 |
13 | Setting the Fill property of a Line has no effect, because a line has no interior.
14 |
15 | ## How to address the issue
16 |
17 | Press `Ctrl + .` and use the suggested action 'Remove Fill attribute.'
18 |
19 | ## Notes
20 |
21 | See also
22 |
23 | - [Xamarin.Forms Shapes: Line](https://docs.microsoft.com/xamarin/xamarin-forms/user-interface/shapes/line#create-a-line)
24 |
--------------------------------------------------------------------------------
/docs/warnings/RXT330.md:
--------------------------------------------------------------------------------
1 | # RXT330
2 |
3 | `Slider` has a `Minimum` value greater than `Maximum`.
4 |
5 | Applies to **Xamarin.Forms** only!
6 |
7 | ## Description
8 |
9 | `Slider` has a `Minimum` value specified that is greater than the `Maximum` value.
10 |
11 | ## Why this is suggested
12 |
13 | If Minimum or Maximum are ever set so that Minimum is not less than Maximum, an exception is raised.
14 |
15 | ## How to address the issue
16 |
17 | Manually change the values so that Minimum is less than Maximum.
18 |
19 | ## Notes
20 |
21 | See also
22 |
23 | - [Xamarin.Forms Slider](https://docs.microsoft.com/en-us/xamarin/xamarin-forms/user-interface/slider)
24 |
--------------------------------------------------------------------------------
/docs/warnings/RXT160.md:
--------------------------------------------------------------------------------
1 | # RXT160
2 |
3 | `SelectedItem` binding should probably be `TwoWay`.
4 |
5 | ## Description
6 |
7 | To receive notification of selection changes, set `BindingMode` to `TwoWay`.
8 |
9 | ## Why this is suggested
10 |
11 | If binding the `SelectedItem` you probably want the ViewModel to be notified when the selection changes. To do this, you must set the BindingMode to `TwoWay`.
12 |
13 | ## How to address the issue
14 |
15 | Press `Ctrl + .` and use the suggested action 'Set BindingMode to TwoWay.'
16 |
17 | ## Notes
18 |
19 | See also
20 |
21 | - [BindingMode Enum](https://docs.microsoft.com/en-us/uwp/api/windows.ui.xaml.data.bindingmode)
22 |
--------------------------------------------------------------------------------
/docs/warnings/RXT335.md:
--------------------------------------------------------------------------------
1 | # RXT335
2 |
3 | `Stepper` has a `Minimum` value greater than `Maximum`.
4 |
5 | Applies to **Xamarin.Forms** only!
6 |
7 | ## Description
8 |
9 | `Stepper` has a `Minimum` value specified that is greater than the `Maximum` value.
10 |
11 | ## Why this is suggested
12 |
13 | If Minimum or Maximum are ever set so that Minimum is not less than Maximum, an exception is raised.
14 |
15 | ## How to address the issue
16 |
17 | Manually change the values so that Minimum is less than Maximum.
18 |
19 | ## Notes
20 |
21 | See also
22 |
23 | - [Xamarin.Forms Stepper](https://docs.microsoft.com/en-us/xamarin/xamarin-forms/user-interface/stepper)
24 |
--------------------------------------------------------------------------------
/docs/warnings/RXT700.md:
--------------------------------------------------------------------------------
1 | # RXT700
2 |
3 | Platform-specific Uno xmlns should be Ignorable.
4 |
5 | Applies to **UWP** only!
6 |
7 | ## Description
8 |
9 | A platform-specific UNO XML namespace alias has been specified but not listed as ignorable when it should be.
10 |
11 | ## Why this is suggested
12 |
13 | If the xmlns is not marked as ignorable the code may not compile or run as expected.
14 |
15 | ## How to address the issue
16 |
17 | Press `Crtl + .` and use the suggested action 'Mark XXXXX as ignorable.'
18 |
19 | ## Notes
20 |
21 | See also
22 |
23 | - [Platform-specific XAML markup in Uno](https://platform.uno/docs/articles/platform-specific-xaml.html)
24 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.AnalysisCore/XamlAnalysis/RapidXamlSpanExtensions.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using RapidXaml;
5 |
6 | namespace RapidXamlToolkit.XamlAnalysis
7 | {
8 | public static class RapidXamlSpanExtensions
9 | {
10 | public static RapidXamlSpan AddStartPos(this RapidXamlSpan source, int fileStartPos)
11 | {
12 | return new RapidXamlSpan(fileStartPos + source.Start, source.Length);
13 | }
14 |
15 | public static int End(this RapidXamlSpan source)
16 | {
17 | return source.Start + source.Length;
18 | }
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.Shared/ProjectHelpers.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using EnvDTE;
5 | using EnvDTE80;
6 | using Microsoft.VisualStudio.Shell;
7 | using Microsoft.VisualStudio.Text.Operations;
8 |
9 | namespace RapidXamlToolkit
10 | {
11 | public static class ProjectHelpers
12 | {
13 | static ProjectHelpers()
14 | {
15 | Dte = (DTE)Package.GetGlobalService(typeof(DTE));
16 | Dte2 = (DTE2)Package.GetGlobalService(typeof(DTE));
17 | }
18 |
19 | public static DTE Dte { get; }
20 |
21 | public static DTE2 Dte2 { get; }
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | # Contributing
2 |
3 | This project welcomes contributions and suggestions. The best place to start if you want to help is by [raising an issue](https://github.com/Microsoft/Rapid-XAML-Toolkit/issues/new). Issues are where we propose, discuss, and track bugs and feature requests. If there's something you'd like to see added or even add yourself, start by raising an issue.
4 |
5 | Before submitting a PR, please confirm that you have the legal permission to make the contribution. (i.e. It's not going to cause a problem with your employer.)
6 |
7 | To get started making contributions, please read the [guide to working with the source](docs/getting-started.md#working-with-source).
8 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.Generation/Options/CanNotifyPropertyChanged.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using System.ComponentModel;
5 | using System.Runtime.CompilerServices;
6 |
7 | namespace RapidXamlToolkit.Options
8 | {
9 | public class CanNotifyPropertyChanged : INotifyPropertyChanged
10 | {
11 | public event PropertyChangedEventHandler PropertyChanged;
12 |
13 | protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
14 | {
15 | this.PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.Generation/Options/ProfileConfigPage.xaml.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using System;
5 | using System.Windows;
6 | using Microsoft.VisualStudio.Shell;
7 | using RapidXamlToolkit.Logging;
8 |
9 | namespace RapidXamlToolkit.Options
10 | {
11 | public partial class ProfileConfigPage : ICanClose
12 | {
13 | public ProfileConfigPage()
14 | {
15 | this.InitializeComponent();
16 | }
17 |
18 | public void SetDataContext(Profile profile)
19 | {
20 | this.ProfileConfig.SetDataContextAndHost(profile, this);
21 | }
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.Utils/VisualStudioIntegration/ITextSnapshotAbstraction.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | namespace RapidXamlToolkit.VisualStudioIntegration
5 | {
6 | public interface ITextSnapshotAbstraction
7 | {
8 | int Length { get; }
9 |
10 | object TextBuffer { get; }
11 |
12 | int VersionNumber { get; }
13 |
14 | string GetText();
15 |
16 | (int StartPosition, int LineNumber) GetLineDetailsFromPosition(int position);
17 |
18 | int GetLineNumberFromPosition(int position);
19 |
20 | string GetLineTextFromLineNumber(int lineNo);
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/VSIX/RapidXamlToolkit/Generation/Options/CanNotifyPropertyChanged.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using System.ComponentModel;
5 | using System.Runtime.CompilerServices;
6 |
7 | namespace RapidXamlToolkit.Options
8 | {
9 | public class CanNotifyPropertyChanged : INotifyPropertyChanged
10 | {
11 | public event PropertyChangedEventHandler PropertyChanged;
12 |
13 | protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
14 | {
15 | this.PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.Analysis/XamlAnalysis/VsTextSpan.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using Microsoft.VisualStudio.Text;
5 | using RapidXamlToolkit.VisualStudioIntegration;
6 |
7 | namespace RapidXamlToolkit.XamlAnalysis
8 | {
9 | public class VsTextSpan : ISpanAbstraction
10 | {
11 | private Span underlyingSpan;
12 |
13 | public VsTextSpan(int start, int length)
14 | {
15 | this.underlyingSpan = new Span(start, length);
16 | }
17 |
18 | public int Start => this.underlyingSpan.Start;
19 |
20 | public int Length => this.underlyingSpan.Length;
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.Shared/NotUnitTestableAttribute.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using System;
5 |
6 | namespace RapidXamlToolkit
7 | {
8 | ///
9 | /// Informational attribute used to indicate why a piece of code is not covered by unit tests.
10 | ///
11 | [AttributeUsage(AttributeTargets.Method, AllowMultiple = false)]
12 | public sealed class NotUnitTestableAttribute : Attribute
13 | {
14 | public NotUnitTestableAttribute(string reason)
15 | {
16 | this.Reason = reason;
17 | }
18 |
19 | public string Reason { get; }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/VSIX/RapidXamlToolkit/NotUnitTestableAttribute.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using System;
5 |
6 | namespace RapidXamlToolkit
7 | {
8 | ///
9 | /// Informational attribute used to indicate why a piece of code is not covered by unit tests.
10 | ///
11 | [AttributeUsage(AttributeTargets.Method, AllowMultiple = false)]
12 | public sealed class NotUnitTestableAttribute : Attribute
13 | {
14 | public NotUnitTestableAttribute(string reason)
15 | {
16 | this.Reason = reason;
17 | }
18 |
19 | public string Reason { get; }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/docs/warnings/RXT325.md:
--------------------------------------------------------------------------------
1 | # RXT325
2 |
3 | `Pin` does not have a `Label` specified.
4 |
5 | Applies to **Xamarin.Forms** only!
6 |
7 | ## Description
8 |
9 | A `Pin` has been added but the `Label` property has not been specified.
10 |
11 | ## Why this is suggested
12 |
13 | Failure to set the Pin.Label property will result in an ArgumentException being thrown when the Pin is added to a Map.
14 |
15 | ## How to address the issue
16 |
17 | Press `Ctrl + .` and use the suggested action 'Add Label attribute.'
18 |
19 | ## Notes
20 |
21 | See also
22 |
23 | - [Xamarin.Forms Map Pins: Display a pin](https://docs.microsoft.com/en-us/xamarin/xamarin-forms/user-interface/map/pins#display-a-pin)
24 |
--------------------------------------------------------------------------------
/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | # These are supported funding model platforms
2 |
3 | github: mrlacey
4 | patreon: # Replace with a single Patreon username
5 | open_collective: # Replace with a single Open Collective username
6 | ko_fi: # Replace with a single Ko-fi username
7 | tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
9 | liberapay: # Replace with a single Liberapay username
10 | issuehunt: # Replace with a single IssueHunt username
11 | otechie: # Replace with a single Otechie username
12 | custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
13 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.Shared/ITypeSymbolExtensions.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using System.Collections.Generic;
5 | using Microsoft.CodeAnalysis;
6 |
7 | namespace RapidXamlToolkit
8 | {
9 | public static class ITypeSymbolExtensions
10 | {
11 | public static IEnumerable GetSelfAndBaseTypes(this ITypeSymbol type)
12 | {
13 | var current = type;
14 | while (current != null)
15 | {
16 | yield return current;
17 | current = current.BaseType;
18 | }
19 |
20 | yield break;
21 | }
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/VSIX/RapidXamlToolkit/Generation/Options/ProfileConfigPage.xaml.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using System;
5 | using System.Windows;
6 | using Microsoft.VisualStudio.Shell;
7 | using RapidXamlToolkit.Logging;
8 |
9 | namespace RapidXamlToolkit.Options
10 | {
11 | public partial class ProfileConfigPage : ICanClose
12 | {
13 | public ProfileConfigPage()
14 | {
15 | this.InitializeComponent();
16 | }
17 |
18 | public void SetDataContext(Profile profile)
19 | {
20 | this.ProfileConfig.SetDataContextAndHost(profile, this);
21 | }
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/VSIX/RapidXamlToolkit/ITypeSymbolExtensions.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using System.Collections.Generic;
5 | using Microsoft.CodeAnalysis;
6 |
7 | namespace RapidXamlToolkit
8 | {
9 | public static class ITypeSymbolExtensions
10 | {
11 | public static IEnumerable GetSelfAndBaseTypes(this ITypeSymbol type)
12 | {
13 | var current = type;
14 | while (current != null)
15 | {
16 | yield return current;
17 | current = current.BaseType;
18 | }
19 |
20 | yield break;
21 | }
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.Analysis/XamlAnalysis/Tags/MissingRowDefinitionTag.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using RapidXamlToolkit.Resources;
5 |
6 | namespace RapidXamlToolkit.XamlAnalysis.Tags
7 | {
8 | public class MissingRowDefinitionTag : MissingDefinitionTag
9 | {
10 | public MissingRowDefinitionTag(TagDependencies tagDeps)
11 | : base(tagDeps, "RXT101", TagErrorType.Warning)
12 | {
13 | this.ToolTip = StringRes.UI_XamlAnalysisMissingRowDefinitionTooltip;
14 | this.ExtendedMessage = StringRes.UI_XamlAnalysisMissingRowDefinitionExtendedMessage;
15 | }
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/VSIX/RapidXamlToolkit/Analysis/XamlAnalysis/VsTextSpan.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using Microsoft.VisualStudio.Text;
5 | using RapidXamlToolkit.VisualStudioIntegration;
6 |
7 | namespace RapidXamlToolkit.XamlAnalysis
8 | {
9 | public class VsTextSpan : ISpanAbstraction
10 | {
11 | private Span underlyingSpan;
12 |
13 | public VsTextSpan(int start, int length)
14 | {
15 | this.underlyingSpan = new Span(start, length);
16 | }
17 |
18 | public int Start => this.underlyingSpan.Start;
19 |
20 | public int Length => this.underlyingSpan.Length;
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/VSIX/RapidXamlToolkit/ProjectHelpers.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using EnvDTE;
5 | using EnvDTE80;
6 | using Microsoft.VisualStudio.Shell;
7 |
8 | namespace RapidXamlToolkit
9 | {
10 | public static class ProjectHelpers
11 | {
12 | static ProjectHelpers()
13 | {
14 | Microsoft.VisualStudio.Shell.ThreadHelper.ThrowIfNotOnUIThread();
15 |
16 | Dte = (DTE)Package.GetGlobalService(typeof(DTE));
17 | Dte2 = (DTE2)Package.GetGlobalService(typeof(DTE));
18 | }
19 |
20 | public static DTE Dte { get; }
21 |
22 | public static DTE2 Dte2 { get; }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/.github/pull_request_template.md:
--------------------------------------------------------------------------------
1 | This PR relates to Issue #
2 |
3 | **Description**
4 |
5 |
6 |
7 | **Confirm**
8 | - [ ] Everything builds in 'Release` mode
9 | - [ ] Docs updated
10 | - [ ] Change log updated
11 | - [ ] All tests in RapidXamlToolkit.Tests passed
12 | - [ ] If changes analysis or generation - all tests in [RapidXamlToolkit.Tests.Manual](https://github.com/mrlacey/Rapid-XAML-Toolkit/blob/main/docs/getting-started.md#vsixrapidxamltoolkiteverythingsln) passed
13 |
14 | **Important points of note**
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.Analysis/XamlAnalysis/Tags/MissingColumnDefinitionTag.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using RapidXamlToolkit.Resources;
5 |
6 | namespace RapidXamlToolkit.XamlAnalysis.Tags
7 | {
8 | public class MissingColumnDefinitionTag : MissingDefinitionTag
9 | {
10 | public MissingColumnDefinitionTag(TagDependencies tagDeps)
11 | : base(tagDeps, "RXT102", TagErrorType.Warning)
12 | {
13 | this.ToolTip = StringRes.UI_XamlAnalysisMissingColumnDefinitionTooltip;
14 | this.ExtendedMessage = StringRes.UI_XamlAnalysisMissingColumnDefinitionExtendedMessage;
15 | }
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/docs/warnings/RXT451.md:
--------------------------------------------------------------------------------
1 | # RXT451
2 |
3 | `x:Uid` should begin with an upper case character.
4 |
5 | ## Description
6 |
7 | The value specified for the `x:Uid` property should not start with a lower case letter.
8 |
9 | ## Why this is suggested
10 |
11 | Having a consistent naming convention helps with understanding the code.
12 | Capitalizing the first letter of the `Uid` follows the convention in other code.
13 |
14 | ## How to address the issue
15 |
16 | Press `Ctrl + .` and use the suggested action 'Capitalize first letter of Uid.'
17 | This will capitalize the first letter of the Uid value.
18 |
19 | After the property is altered, you will need to manually adjust the use of the value elsewhere in your code.
20 |
--------------------------------------------------------------------------------
/NuGet/RapidXaml.CodeGen.Maui/IFileSystem.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 | using System.IO;
3 |
4 | namespace RapidXaml.CodeGen;
5 |
6 | public interface IFileSystem
7 | {
8 | bool DirectoryExists(string path);
9 |
10 | IEnumerable DirectoryEnumerateFiles(string path, string searchPattern, SearchOption searchOption);
11 |
12 | string GetFileName(string path);
13 |
14 | string GetFilePath(string path);
15 |
16 | string FileReadAllText(string path);
17 |
18 | void FileWriteAllBytes(string path, byte[] bytes);
19 |
20 | string PathGetFileName(string path);
21 |
22 | string PathGetFileNameWithoutExtension(string path);
23 |
24 | string PathChangeExtension(string path, string extension);
25 | }
26 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.AnalysisCore/XamlAnalysis/ExclusionHelpers.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using System.Collections.Generic;
5 |
6 | namespace RapidXamlToolkit.XamlAnalysis
7 | {
8 | public static class ExclusionHelpers
9 | {
10 | public static bool IsInExcludedArea(this Dictionary exclusions, int position)
11 | {
12 | foreach (var item in exclusions)
13 | {
14 | if (position >= item.Key && position <= item.Value)
15 | {
16 | return true;
17 | }
18 | }
19 |
20 | return false;
21 | }
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/VSIX/RapidXamlToolkit.Tests.AutoFix/WebViewMultipleActionsAnalyzer.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using RapidXaml;
5 |
6 | namespace RapidXamlToolkit.Tests.AutoFix
7 | {
8 | public class WebViewMultipleActionsAnalyzer : ICustomAnalyzer
9 | {
10 | public string TargetType() => "WebView";
11 |
12 | public AnalysisActions Analyze(RapidXamlElement element, ExtraAnalysisDetails extraDetails)
13 | {
14 | var result = AutoFixAnalysisActions.RenameElement("WebView2");
15 |
16 | result.AndAddAttribute("Source", "https://rapidxaml.dev/");
17 |
18 | return result;
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.CustomAnalysis/RapidXamlErrorType.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | namespace RapidXaml
5 | {
6 | public enum RapidXamlErrorType
7 | {
8 | ///
9 | /// Report as a 'Message' on the ErrorList but not underlined in the editor.
10 | ///
11 | Suggestion,
12 |
13 | ///
14 | /// Report as a 'Warning' on the ErrorList and be underlined in green.
15 | ///
16 | Warning,
17 |
18 | ///
19 | /// Report as an 'Error' on the ErrorList and be underlined in red.
20 | ///
21 | Error,
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/docs/warnings/RXT452.md:
--------------------------------------------------------------------------------
1 | # RXT452
2 |
3 | `Name` should begin with an upper case character.
4 |
5 | ## Description
6 |
7 | The value specified for the `Name` or `x:Name` property should not start with a lower case letter.
8 |
9 | ## Why this is suggested
10 |
11 | Having a consistent naming convention helps with understanding the code.
12 | Capitalizing the first letter of the `Name` follows the convention in other code.
13 |
14 | ## How to address the issue
15 |
16 | Press `Ctrl + .` and use the suggested action 'Capitalize first letter of Name.'
17 | This will capitalize the first letter of the Name value.
18 |
19 | After the property is altered, you will need to manually adjust the use of the value elsewhere in your code.
20 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.Analysis/ErrorList/ErrorRow.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using Microsoft.VisualStudio.Text;
5 | using RapidXamlToolkit.XamlAnalysis.Tags;
6 |
7 | namespace RapidXamlToolkit.ErrorList
8 | {
9 | public class ErrorRow
10 | {
11 | public string ExtendedMessage { get; set; }
12 |
13 | public string Message { get; set; }
14 |
15 | public SnapshotSpan Span { get; set; }
16 |
17 | public string ErrorCode { get; set; }
18 |
19 | public bool IsInternalError { get; set; }
20 |
21 | public TagErrorType ErrorType { get; set; }
22 |
23 | public string MoreInfoUrl { get; set; }
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/Templates/RapidXaml.Templates/RapidXamlTemplatesPackage.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using System;
5 | using System.Runtime.InteropServices;
6 | using Microsoft.VisualStudio.Shell;
7 |
8 | namespace RapidXaml.Templates
9 | {
10 | [InstalledProductRegistration("#110", "#112", "0.13.1.1")] // Info on this package for Help/About
11 | [PackageRegistration(UseManagedResourcesOnly = true, AllowsBackgroundLoading = true)]
12 | [Guid(RapidXamlTemplatesPackage.PackageGuidString)]
13 | public sealed class RapidXamlTemplatesPackage : AsyncPackage
14 | {
15 | public const string PackageGuidString = "68e98cee-c636-4262-abea-0bdd809739fe";
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/VSIX/RapidXamlToolkit/Analysis/ErrorList/ErrorRow.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using Microsoft.VisualStudio.Text;
5 | using RapidXamlToolkit.XamlAnalysis.Tags;
6 |
7 | namespace RapidXamlToolkit.ErrorList
8 | {
9 | public class ErrorRow
10 | {
11 | public string ExtendedMessage { get; set; }
12 |
13 | public string Message { get; set; }
14 |
15 | public SnapshotSpan Span { get; set; }
16 |
17 | public string ErrorCode { get; set; }
18 |
19 | public bool IsInternalError { get; set; }
20 |
21 | public TagErrorType ErrorType { get; set; }
22 |
23 | public string MoreInfoUrl { get; set; }
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.Analysis/XamlAnalysis/CustomAnalysis/BadCustomAnalyzer.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | #if DEBUG
5 | using RapidXaml;
6 |
7 | namespace RapidXamlToolkit.XamlAnalysis.CustomAnalysis
8 | {
9 | // This class exists to help test error handling of custom analyzers
10 | public class BadCustomAnalyzer : ICustomAnalyzer
11 | {
12 | public string TargetType() => "Bad";
13 |
14 | public AnalysisActions Analyze(RapidXamlElement element, ExtraAnalysisDetails extraDetails)
15 | {
16 | // Just need any error here for testing.
17 | throw new System.NotImplementedException();
18 | }
19 | }
20 | }
21 | #endif
22 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.Utils/IO/IFileSystemAbstraction.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | namespace RapidXamlToolkit.Utils.IO
5 | {
6 | public interface IFileSystemAbstraction
7 | {
8 | bool FileExists(string fileName);
9 |
10 | string GetAllFileText(string fileName);
11 |
12 | string GetFileExtension(string fileName);
13 |
14 | string GetDirectoryName(string fileName);
15 |
16 | string[] ReadAllLines(string path);
17 |
18 | string PathCombine(params string[] paths);
19 |
20 | string GetFileNameWithoutExtension(string fileName);
21 |
22 | void WriteAllFileText(string fileName, string fileContents);
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/VSIX/nuget.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/Rider/src/dotnet/ReSharperPlugin.RapidXaml/ReSharperPlugin.RapidXaml.Rider.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | net472
5 | ReSharperPlugin.RapidXaml
6 | $(AssemblyName)
7 | false
8 | $(DefineConstants);RIDER
9 |
10 |
11 |
12 |
13 | all
14 | runtime; build; native; contentfiles; analyzers; buildtransitive
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/VSIX/RapidXamlToolkit/Analysis/XamlAnalysis/CustomAnalysis/BadCustomAnalyzer.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | #if DEBUG
5 | using RapidXaml;
6 |
7 | namespace RapidXamlToolkit.XamlAnalysis.CustomAnalysis
8 | {
9 | // This class exists to help test error handling of custom analyzers
10 | public class BadCustomAnalyzer : ICustomAnalyzer
11 | {
12 | public string TargetType() => "Bad";
13 |
14 | public AnalysisActions Analyze(RapidXamlElement element, ExtraAnalysisDetails extraDetails)
15 | {
16 | // Just need any error here for testing.
17 | throw new System.NotImplementedException();
18 | }
19 | }
20 | }
21 | #endif
22 |
--------------------------------------------------------------------------------
/NuGet/RapidXaml.MAUI/Gradients/HorizontalGradientExtension.cs:
--------------------------------------------------------------------------------
1 | namespace RapidXaml;
2 |
3 | internal class HorizontalGradientExtension : IMarkupExtension, IMarkupExtension
4 | {
5 | public Color Left { get; set; } = Colors.White;
6 |
7 | public Color Right { get; set; } = Colors.Black;
8 |
9 | Brush IMarkupExtension.ProvideValue(IServiceProvider serviceProvider)
10 | => new LinearGradientBrush(
11 | gradientStops: [
12 | new GradientStop(Left, 0.1f),
13 | new GradientStop(Right, 1.0f),
14 | ],
15 | startPoint: new Point(0, 0),
16 | endPoint: new Point(1, 0)
17 | );
18 |
19 | public object ProvideValue(IServiceProvider serviceProvider)
20 | => ((IMarkupExtension)this).ProvideValue(serviceProvider);
21 | }
22 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.EditorExtras/SymbolVisualizer/SymbolIconTag.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using Microsoft.VisualStudio.Text.Tagging;
5 |
6 | namespace RapidXaml.EditorExtras.SymbolVisualizer
7 | {
8 | internal class SymbolIconTag : ITag
9 | {
10 | public SymbolIconTag(string symbolName, SymbolType symbolType, string fontFamily = "")
11 | {
12 | this.SymbolName = symbolName;
13 | this.SymbolType = symbolType;
14 | this.FontFamily = fontFamily;
15 | }
16 |
17 | public string SymbolName { get; }
18 |
19 | public SymbolType SymbolType { get; }
20 |
21 | public string FontFamily { get; }
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/VSIX/RapidXamlToolkit/EditorExtras/SymbolVisualizer/SymbolIconTag.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using Microsoft.VisualStudio.Text.Tagging;
5 |
6 | namespace RapidXaml.EditorExtras.SymbolVisualizer
7 | {
8 | internal class SymbolIconTag : ITag
9 | {
10 | public SymbolIconTag(string symbolName, SymbolType symbolType, string fontFamily = "")
11 | {
12 | this.SymbolName = symbolName;
13 | this.SymbolType = symbolType;
14 | this.FontFamily = fontFamily;
15 | }
16 |
17 | public string SymbolName { get; }
18 |
19 | public SymbolType SymbolType { get; }
20 |
21 | public string FontFamily { get; }
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/VSIX/RapidXamlToolkit/Properties/Settings.settings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.Generation/Options/EnumConverter.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using System;
5 | using System.Windows.Data;
6 |
7 | namespace RapidXamlToolkit.Options
8 | {
9 | public class EnumConverter : IValueConverter
10 | {
11 | public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
12 | {
13 | return value?.Equals(parameter);
14 | }
15 |
16 | public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
17 | {
18 | return value?.Equals(true) == true ? parameter : Binding.DoNothing;
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/NuGet/RapidXaml.MAUI/Gradients/VerticalGradientExtension.cs:
--------------------------------------------------------------------------------
1 | namespace RapidXaml;
2 |
3 | internal class VerticalGradientExtension : IMarkupExtension, IMarkupExtension
4 | {
5 | public required Color Top { get; set; } = Colors.White;
6 |
7 | public required Color Bottom { get; set; } = Colors.Black;
8 |
9 | Brush IMarkupExtension.ProvideValue(IServiceProvider serviceProvider)
10 | => new LinearGradientBrush(
11 | gradientStops: [
12 | new GradientStop(Top, 0.1f),
13 | new GradientStop(Bottom, 1.0f),
14 | ],
15 | startPoint: new Point(1, 0),
16 | endPoint: new Point(1, 1)
17 | );
18 |
19 | public object ProvideValue(IServiceProvider serviceProvider)
20 | => ((IMarkupExtension)this).ProvideValue(serviceProvider);
21 | }
22 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.Analysis/XamlAnalysis/Tags/AddTextBoxInputScopeTag.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using RapidXamlToolkit.Resources;
5 |
6 | namespace RapidXamlToolkit.XamlAnalysis.Tags
7 | {
8 | public class AddTextBoxInputScopeTag : RapidXamlDisplayedTag
9 | {
10 | public AddTextBoxInputScopeTag(TagDependencies tagDeps)
11 | : base(tagDeps, "RXT150", TagErrorType.Suggestion)
12 | {
13 | this.Description = StringRes.UI_XamlAnalysisTextBoxWithoutInputScopeDescription;
14 | this.ExtendedMessage = StringRes.UI_XamlAnalysisTextBoxWithoutInputScopeExtendedMessage;
15 | }
16 |
17 | public int InsertPosition { get; set; }
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/VSIX/RapidXamlToolkit/Generation/Options/EnumConverter.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using System;
5 | using System.Windows.Data;
6 |
7 | namespace RapidXamlToolkit.Options
8 | {
9 | public class EnumConverter : IValueConverter
10 | {
11 | public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
12 | {
13 | return value?.Equals(parameter);
14 | }
15 |
16 | public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
17 | {
18 | return value?.Equals(true) == true ? parameter : Binding.DoNothing;
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.Analysis/XamlAnalysis/Actions/RowSpanOverflowAction.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using RapidXamlToolkit.XamlAnalysis.Tags;
5 |
6 | namespace RapidXamlToolkit.XamlAnalysis.Actions
7 | {
8 | public class RowSpanOverflowAction : AddMissingRowDefinitionsAction
9 | {
10 | public RowSpanOverflowAction(string file)
11 | : base(file)
12 | {
13 | }
14 |
15 | public static RowSpanOverflowAction Create(RowSpanOverflowTag tag, string file)
16 | {
17 | var result = new RowSpanOverflowAction(file)
18 | {
19 | Tag = tag,
20 | };
21 |
22 | return result;
23 | }
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/NuGet/RapidXaml.MAUI/Gradients/NegativeDiagonalGradientExtension.cs:
--------------------------------------------------------------------------------
1 | namespace RapidXaml;
2 |
3 | internal class NegativeDiagonalGradientExtension : IMarkupExtension, IMarkupExtension
4 | {
5 | public required Color Start { get; set; } = Colors.White;
6 |
7 | public required Color End { get; set; } = Colors.Black;
8 |
9 | Brush IMarkupExtension.ProvideValue(IServiceProvider serviceProvider)
10 | => new LinearGradientBrush(
11 | gradientStops: [
12 | new GradientStop(Start, 0.1f),
13 | new GradientStop(End, 1.0f),
14 | ],
15 | startPoint: new Point(0, 0),
16 | endPoint: new Point(1, 1)
17 | );
18 |
19 | public object ProvideValue(IServiceProvider serviceProvider)
20 | => ((IMarkupExtension)this).ProvideValue(serviceProvider);
21 | }
22 |
--------------------------------------------------------------------------------
/NuGet/RapidXaml.MAUI/Gradients/PositiveDiagonalGradientExtension.cs:
--------------------------------------------------------------------------------
1 | namespace RapidXaml;
2 |
3 | internal class PositiveDiagonalGradientExtension : IMarkupExtension, IMarkupExtension
4 | {
5 | public required Color Start { get; set; } = Colors.White;
6 |
7 | public required Color End { get; set; } = Colors.Black;
8 |
9 | Brush IMarkupExtension.ProvideValue(IServiceProvider serviceProvider)
10 | => new LinearGradientBrush(
11 | gradientStops: [
12 | new GradientStop(Start, 0.1f),
13 | new GradientStop(End, 1.0f),
14 | ],
15 | startPoint: new Point(0, 1),
16 | endPoint: new Point(1, 0)
17 | );
18 |
19 | public object ProvideValue(IServiceProvider serviceProvider)
20 | => ((IMarkupExtension)this).ProvideValue(serviceProvider);
21 | }
22 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.EditorExtras/EditorExtrasOptionsGrid.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using System;
5 | using System.ComponentModel;
6 | using Microsoft.VisualStudio.Shell;
7 |
8 | namespace RapidXaml.EditorExtras
9 | {
10 | public class EditorExtrasOptionsGrid : DialogPage
11 | {
12 | [DisplayName("Show Symbol Icons")]
13 | [Description("Show symbols and glyphs where used in the editor.")]
14 | [DefaultValue(true)]
15 | public bool ShowSymbolIcons { get; set; } = true;
16 |
17 | protected override void OnClosed(EventArgs e)
18 | {
19 | base.OnClosed(e);
20 |
21 | RapidXamlEditorExtrasPackage.Options = this;
22 | }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.Shared/Telemetry/TelemetryProperties.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | namespace RapidXamlToolkit.Telemetry
5 | {
6 | public class TelemetryProperties
7 | {
8 | public static string RoleInstanceName { get; } = TelemetryEvents.Prefix + "Vsix";
9 |
10 | public static string VisualStudioExeVersion { get; } = TelemetryEvents.Prefix + "VsExeVersion";
11 |
12 | public static string VisualStudioEdition { get; } = TelemetryEvents.Prefix + "VsEdition";
13 |
14 | public static string VisualStudioCulture { get; } = TelemetryEvents.Prefix + "VsCulture";
15 |
16 | public static string VisualStudioManifestId { get; } = TelemetryEvents.Prefix + "VsManifestId";
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/VSIX/RapidXamlToolkit.Tests.AutoFix/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | [assembly: AssemblyTitle("RapidXamlToolkit.Tests.AutoFix")]
6 | [assembly: AssemblyDescription("")]
7 | [assembly: AssemblyConfiguration("")]
8 | [assembly: AssemblyCompany("")]
9 | [assembly: AssemblyProduct("RapidXamlToolkit.Tests.AutoFix")]
10 | [assembly: AssemblyCopyright("Copyright © 2021")]
11 | [assembly: AssemblyTrademark("")]
12 | [assembly: AssemblyCulture("")]
13 |
14 | [assembly: ComVisible(false)]
15 |
16 | [assembly: Guid("7e321adb-5257-4251-ad0b-6f9b12637aa1")]
17 |
18 | // [assembly: AssemblyVersion("1.0.*")]
19 | [assembly: AssemblyVersion("1.0.0.0")]
20 | [assembly: AssemblyFileVersion("1.0.0.0")]
21 |
--------------------------------------------------------------------------------
/VSIX/RapidXamlToolkit/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using System.Reflection;
5 | using System.Runtime.InteropServices;
6 |
7 | [assembly: AssemblyTitle(RapidXaml.Vsix.Name)]
8 | [assembly: AssemblyDescription(RapidXaml.Vsix.Description)]
9 | [assembly: AssemblyConfiguration("")]
10 | [assembly: AssemblyCompany(RapidXaml.Vsix.Author)]
11 | [assembly: AssemblyProduct(RapidXaml.Vsix.Name)]
12 | [assembly: AssemblyCopyright("Copyright © Matt Lacey Ltd. 2018-2022")]
13 | [assembly: AssemblyTrademark("")]
14 | [assembly: AssemblyCulture("")]
15 |
16 | [assembly: ComVisible(false)]
17 |
18 | [assembly: AssemblyVersion(RapidXaml.Vsix.Version)]
19 | [assembly: AssemblyFileVersion(RapidXaml.Vsix.Version)]
20 |
--------------------------------------------------------------------------------
/VSIX/RapidXamlToolkit/Telemetry/TelemetryProperties.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | namespace RapidXamlToolkit.Telemetry
5 | {
6 | public class TelemetryProperties
7 | {
8 | public static string RoleInstanceName { get; } = TelemetryEvents.Prefix + "Vsix";
9 |
10 | public static string VisualStudioExeVersion { get; } = TelemetryEvents.Prefix + "VsExeVersion";
11 |
12 | public static string VisualStudioEdition { get; } = TelemetryEvents.Prefix + "VsEdition";
13 |
14 | public static string VisualStudioCulture { get; } = TelemetryEvents.Prefix + "VsCulture";
15 |
16 | public static string VisualStudioManifestId { get; } = TelemetryEvents.Prefix + "VsManifestId";
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.Generation/Parsers/MemberDetails.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using System.Collections.Generic;
5 |
6 | namespace RapidXamlToolkit.Parsers
7 | {
8 | public class MemberDetails
9 | {
10 | public MemberDetails(TypeOfMember type)
11 | {
12 | this.TypeOfMember = type;
13 | }
14 |
15 | public static MemberDetails Empty => new MemberDetails(TypeOfMember.None)
16 | {
17 | Name = string.Empty,
18 | };
19 |
20 | public string Name { get; set; }
21 |
22 | public List Attributes { get; set; } = new List();
23 |
24 | public TypeOfMember TypeOfMember { get; set; }
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/NuGet/RapidXaml.MAUI/Gradients/CircularGradientExtension.cs:
--------------------------------------------------------------------------------
1 | namespace RapidXaml;
2 |
3 | internal class CircularGradientExtension : IMarkupExtension, IMarkupExtension
4 | {
5 | public required Color Center { get; set; } = Colors.White;
6 |
7 | public required Color Edge { get; set; } = Colors.Black;
8 |
9 | public required double CenterRadius { get; set; } = 0.5;
10 |
11 | Brush IMarkupExtension.ProvideValue(IServiceProvider serviceProvider)
12 | => new RadialGradientBrush(
13 | gradientStops: [
14 | new GradientStop(Center, 0.1f),
15 | new GradientStop(Edge, 1.0f),
16 | ],
17 | radius: CenterRadius
18 | );
19 |
20 | public object ProvideValue(IServiceProvider serviceProvider)
21 | => ((IMarkupExtension)this).ProvideValue(serviceProvider);
22 | }
23 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.Analysis/XamlAnalysis/Actions/ColumnSpanOverflowAction.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using RapidXamlToolkit.XamlAnalysis.Tags;
5 |
6 | namespace RapidXamlToolkit.XamlAnalysis.Actions
7 | {
8 | public class ColumnSpanOverflowAction : AddMissingColumnDefinitionsAction
9 | {
10 | private ColumnSpanOverflowAction(string file)
11 | : base(file)
12 | {
13 | }
14 |
15 | public static ColumnSpanOverflowAction Create(ColumnSpanOverflowTag tag, string file)
16 | {
17 | var result = new ColumnSpanOverflowAction(file)
18 | {
19 | Tag = tag,
20 | };
21 |
22 | return result;
23 | }
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/VSIX/RapidXamlToolkit.Tests.Manual/TestsUsingWinAppDriver.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using System;
5 | using Microsoft.VisualStudio.TestTools.UnitTesting;
6 | using WindowsTestHelpers;
7 |
8 | namespace RapidXamlToolkit.Tests.Manual
9 | {
10 | public class TestsUsingWinAppDriver
11 | {
12 | [TestInitialize]
13 | public void SetUp()
14 | {
15 | WinAppDriverHelper.CheckIsInstalled();
16 |
17 | WinAppDriverHelper.StartIfNotRunning();
18 |
19 | VirtualKeyboard.MinimizeAllWindows();
20 | }
21 |
22 | [TestCleanup]
23 | public void TearDown()
24 | {
25 | WinAppDriverHelper.StopIfRunning();
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/VSIX/RapidXamlToolkit/Generation/Parsers/MemberDetails.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using System.Collections.Generic;
5 |
6 | namespace RapidXamlToolkit.Parsers
7 | {
8 | public class MemberDetails
9 | {
10 | public MemberDetails(TypeOfMember type)
11 | {
12 | this.TypeOfMember = type;
13 | }
14 |
15 | public static MemberDetails Empty => new MemberDetails(TypeOfMember.None)
16 | {
17 | Name = string.Empty,
18 | };
19 |
20 | public string Name { get; set; }
21 |
22 | public List Attributes { get; set; } = new List();
23 |
24 | public TypeOfMember TypeOfMember { get; set; }
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/VSIX/RapidXamlToolkit.Tests.AnalysisExe/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | [assembly: AssemblyTitle("RapidXamlToolkit.Tests.AnalysisExe")]
6 | [assembly: AssemblyDescription("")]
7 | [assembly: AssemblyConfiguration("")]
8 | [assembly: AssemblyCompany("")]
9 | [assembly: AssemblyProduct("RapidXamlToolkit.Tests.AnalysisExe")]
10 | [assembly: AssemblyCopyright("Copyright © 2022")]
11 | [assembly: AssemblyTrademark("")]
12 | [assembly: AssemblyCulture("")]
13 |
14 | [assembly: ComVisible(false)]
15 |
16 | [assembly: Guid("51a8c2a7-bb31-4cca-b9bd-ad227799be38")]
17 |
18 | // [assembly: AssemblyVersion("1.0.*")]
19 | [assembly: AssemblyVersion("1.0.0.0")]
20 | [assembly: AssemblyFileVersion("1.0.0.0")]
21 |
--------------------------------------------------------------------------------
/docs/warnings/RXT310.md:
--------------------------------------------------------------------------------
1 | # RXT310
2 |
3 | `Image` `source` filename may not work on all platforms.
4 |
5 | Applies to **Xamarin.Forms** only!
6 |
7 | ## Description
8 |
9 | An `Image` has been added to the document and the `Source` property set to a local filename but that may not work on all platforms.
10 |
11 | ## Why this is suggested
12 |
13 | Android drawables have strict naming restrictions. The filename being used breaks these restrictions and so you won't be able to use the same filename for all platforms.
14 |
15 | ## How to address the issue
16 |
17 | Use a filename that contains only lowercase letters, numbers, underscore, and period.
18 |
19 | ## Notes
20 |
21 | See also
22 |
23 | - [Images in Xamarin.Forms](https://docs.microsoft.com/xamarin/xamarin-forms/user-interface/images?#local-images)
24 |
--------------------------------------------------------------------------------
/Templates/CustomAnalysisProjectTemplate/AnalyzerTests/CustomAnalyzerProjectTests.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | netcoreapp3.1
5 |
6 | false
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.Analysis/RapidXamlCommonMenus.vsct:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.AutoFix/AutoFixProjectFilePath.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using RapidXamlToolkit.VisualStudioIntegration;
5 |
6 | namespace RapidXaml
7 | {
8 | public class AutoFixProjectFilePath : IVisualStudioProjectFilePath
9 | {
10 | private string projFilePath;
11 |
12 | public AutoFixProjectFilePath(string projectFilePath)
13 | {
14 | this.projFilePath = projectFilePath;
15 | }
16 |
17 | public string GetPathOfProjectContainingFile(string fileName)
18 | {
19 | // The passed in value is irrelevant as we already know the value
20 | // and so don't need to look anything up.
21 | return this.projFilePath;
22 | }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/VSIX/RapidXamlToolkit/EditorExtras/EditorExtrasOptionsGrid.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using System;
5 | using System.ComponentModel;
6 | using Microsoft.VisualStudio.Shell;
7 | using RapidXamlToolkit;
8 |
9 | namespace RapidXaml.EditorExtras
10 | {
11 | public class EditorExtrasOptionsGrid : DialogPage
12 | {
13 | [DisplayName("Show Symbol Icons")]
14 | [Description("Show symbols and glyphs where used in the editor.")]
15 | [DefaultValue(true)]
16 | public bool ShowSymbolIcons { get; set; } = true;
17 |
18 | protected override void OnClosed(EventArgs e)
19 | {
20 | base.OnClosed(e);
21 |
22 | RapidXamlPackage.EditorOptions = this;
23 | }
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.Generation/RapidXamlCommonMenus.vsct:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.Analysis/XamlAnalysis/Tags/SelectedItemBindingModeTag.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using RapidXamlToolkit.Resources;
5 |
6 | namespace RapidXamlToolkit.XamlAnalysis.Tags
7 | {
8 | public class SelectedItemBindingModeTag : RapidXamlDisplayedTag
9 | {
10 | public SelectedItemBindingModeTag(TagDependencies tagDeps)
11 | : base(tagDeps, "RXT160", TagErrorType.Warning)
12 | {
13 | this.ToolTip = StringRes.UI_XamlAnalysisSetBindingModeToTwoWayToolTip;
14 | this.Description = StringRes.UI_XamlAnalysisSetBindingModeToTwoWayDescription;
15 | }
16 |
17 | public int InsertPosition { get; set; }
18 |
19 | public string ExistingBindingMode { get; set; }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.EditorExtras/SymbolVisualizer/GlyphTagger.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using System.Text.RegularExpressions;
5 | using Microsoft.VisualStudio.Text;
6 |
7 | namespace RapidXaml.EditorExtras.SymbolVisualizer
8 | {
9 | internal sealed class GlyphTagger : SymbolIconRegexTagger
10 | {
11 | internal GlyphTagger(ITextBuffer buffer)
12 | : base(buffer, @"(="")([a-f0-9]{2,})(;"")")
13 | {
14 | }
15 |
16 | protected override SymbolIconTag TryCreateTagForMatch(Match match, int lineStart, int spanStart, string snapshotText)
17 | {
18 | return this.TryCreateSymbolIconTagForMatch(match, lineStart, spanStart, snapshotText, SymbolType.Glyph, null);
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/NuGet/RapidXaml.CodeGen.Maui/build/RapidXaml.CodeGen.Maui.props:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | lib
7 | netstandard2.0
8 |
9 | $(MSBuildThisFileDirectory)..\$(taskFoldername)\$(taskFramework)
10 |
11 | $(CustomTasksFolder)\RapidXaml.CodeGen.Maui.dll
12 |
13 |
--------------------------------------------------------------------------------
/NuGet/RapidXaml.CodeGen.Wpf/build/RapidXaml.CodeGen.Wpf.props:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | lib
7 | netstandard2.0
8 |
9 | $(MSBuildThisFileDirectory)..\$(taskFoldername)\$(taskFramework)
10 |
11 | $(CustomTasksFolder)\RapidXaml.CodeGen.Wpf.dll
12 |
13 |
--------------------------------------------------------------------------------
/VSIX/RapidXamlToolkit/EditorExtras/SymbolVisualizer/GlyphTagger.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using System.Text.RegularExpressions;
5 | using Microsoft.VisualStudio.Text;
6 |
7 | namespace RapidXaml.EditorExtras.SymbolVisualizer
8 | {
9 | internal sealed class GlyphTagger : SymbolIconRegexTagger
10 | {
11 | internal GlyphTagger(ITextBuffer buffer)
12 | : base(buffer, @"(="")([a-f0-9]{2,})(;"")")
13 | {
14 | }
15 |
16 | protected override SymbolIconTag TryCreateTagForMatch(Match match, int lineStart, int spanStart, string snapshotText)
17 | {
18 | return this.TryCreateSymbolIconTagForMatch(match, lineStart, spanStart, snapshotText, SymbolType.Glyph, null);
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/Rider/src/dotnet/Plugin.props:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | 2023.2.0
7 |
8 | Rapid XAML
9 | Tools to accelerate XAML app development.
10 |
11 | Author
12 | Copyright $([System.DateTime]::Now.Year) Matt Lacey
13 | rider plugin
14 |
15 | https://github.com/mrlacey/Rapid-XAML-Toolkit
16 | https://github.com/mrlacey/Rapid-XAML-Toolkit/blob/main/LICENSE.txt
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/VSIX/RapidXamlToolkit.Tests/XamlAnalysis/CustomAnalyzers/XamarinForms/PickerAnalyzerTests.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using Microsoft.VisualStudio.TestTools.UnitTesting;
5 | using RapidXamlToolkit.XamlAnalysis.CustomAnalysis;
6 |
7 | namespace RapidXamlToolkit.Tests.XamlAnalysis.CustomAnalyzers
8 | {
9 | [TestClass]
10 | public class PickerAnalyzerTests : AnalyzerTestsBase
11 | {
12 | [TestMethod]
13 | public void HardCoded_Text_Detected()
14 | {
15 | var xaml = @"";
16 |
17 | var actions = this.GetActions(xaml, ProjectType.XamarinForms);
18 |
19 | AnalysisActionsAssert.HasOneActionToRemoveHardCodedString(actions);
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/Rider/src/dotnet/ReSharperPlugin.RapidXaml.Tests/test/data/nuget.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.AnalysisCore/XamlAnalysis/Tags/PredefinedErrorTypeNames.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | namespace RapidXamlToolkit.XamlAnalysis.Tags
5 | {
6 | // This was copied from Microsoft.VisualStudio.Text.Adornments in Microsoft.VisualStudio.Text.UI
7 | // So as to help break the direct dependency on VSSDK
8 | public static class PredefinedErrorTypeNames
9 | {
10 | public const string SyntaxError = "syntax error";
11 | public const string CompilerError = "compiler error";
12 | public const string OtherError = "other error";
13 | public const string Warning = "compiler warning";
14 | public const string Suggestion = "suggestion";
15 | public const string HintedSuggestion = "hinted suggestion";
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/VSIX/RapidXamlToolkit.Tests/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using System.Reflection;
5 | using System.Runtime.InteropServices;
6 |
7 | [assembly: AssemblyTitle("RapidXamlToolkit.Tests")]
8 | [assembly: AssemblyDescription("")]
9 | [assembly: AssemblyConfiguration("")]
10 | [assembly: AssemblyCompany("")]
11 | [assembly: AssemblyProduct("RapidXamlToolkit.Tests")]
12 | [assembly: AssemblyCopyright("Copyright © Matt Lacey Ltd. 2019")]
13 | [assembly: AssemblyTrademark("")]
14 | [assembly: AssemblyCulture("")]
15 |
16 | [assembly: ComVisible(false)]
17 |
18 | [assembly: Guid("8a7dd653-78bc-4eab-8227-4309cc25e750")]
19 |
20 | // [assembly: AssemblyVersion("1.0.*")]
21 | [assembly: AssemblyVersion("1.0.0.0")]
22 | [assembly: AssemblyFileVersion("1.0.0.0")]
23 |
--------------------------------------------------------------------------------
/VSIX/RapidXamlToolkit.Tests/XamlAnalysis/CustomAnalyzers/XamarinForms/SwipeItemAnalyzerTests.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using Microsoft.VisualStudio.TestTools.UnitTesting;
5 | using RapidXamlToolkit.XamlAnalysis.CustomAnalysis;
6 |
7 | namespace RapidXamlToolkit.Tests.XamlAnalysis.CustomAnalyzers
8 | {
9 | [TestClass]
10 | public class SwipeItemAnalyzerTests : AnalyzerTestsBase
11 | {
12 | [TestMethod]
13 | public void HardCoded_Text_Detected()
14 | {
15 | var xaml = @"";
16 |
17 | var actions = this.GetActions(xaml, ProjectType.XamarinForms);
18 |
19 | AnalysisActionsAssert.HasOneActionToRemoveHardCodedString(actions);
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.EditorExtras/SymbolVisualizer/SymbolIconTagger.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using System.Text.RegularExpressions;
5 | using Microsoft.VisualStudio.Text;
6 |
7 | namespace RapidXaml.EditorExtras.SymbolVisualizer
8 | {
9 | internal sealed class SymbolIconTagger : SymbolIconRegexTagger
10 | {
11 | internal SymbolIconTagger(ITextBuffer buffer)
12 | : base(buffer, @"(Symbol="")([a-z2]{2,})("")")
13 | {
14 | }
15 |
16 | protected override SymbolIconTag TryCreateTagForMatch(Match match, int lineStart, int spanStart, string snapshotText)
17 | {
18 | return this.TryCreateSymbolIconTagForMatch(match, lineStart, spanStart, snapshotText, SymbolType.Symbol, "SymbolIcon");
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/VSIX/RapidXamlToolkit.Tests/XamlAnalysis/CustomAnalyzers/XamarinForms/LabelAnalyzerTests.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using Microsoft.VisualStudio.TestTools.UnitTesting;
5 | using RapidXaml;
6 | using RapidXamlToolkit.XamlAnalysis.CustomAnalysis;
7 |
8 | namespace RapidXamlToolkit.Tests.XamlAnalysis.CustomAnalyzers
9 | {
10 | [TestClass]
11 | public class LabelAnalyzerTests : AnalyzerTestsBase
12 | {
13 | [TestMethod]
14 | public void HardCoded_Text_Detected()
15 | {
16 | var xaml = @"";
17 |
18 | var actions = this.GetActions(xaml, ProjectType.XamarinForms);
19 |
20 | AnalysisActionsAssert.HasOneActionToRemoveHardCodedString(actions);
21 | }
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/VSIX/RapidXamlToolkit.Tests/XamlAnalysis/CustomAnalyzers/XamarinForms/SearchBarAnalyzerTests.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using Microsoft.VisualStudio.TestTools.UnitTesting;
5 | using RapidXamlToolkit.XamlAnalysis.CustomAnalysis;
6 |
7 | namespace RapidXamlToolkit.Tests.XamlAnalysis.CustomAnalyzers
8 | {
9 | [TestClass]
10 | public class SearchBarAnalyzerTests : AnalyzerTestsBase
11 | {
12 | [TestMethod]
13 | public void HardCoded_Text_Detected()
14 | {
15 | var xaml = @"";
16 |
17 | var actions = this.GetActions(xaml, ProjectType.XamarinForms);
18 |
19 | AnalysisActionsAssert.HasOneActionToRemoveHardCodedString(actions);
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.EditorExtras/SymbolVisualizer/AppBarButtonTagger.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using System.Text.RegularExpressions;
5 | using Microsoft.VisualStudio.Text;
6 |
7 | namespace RapidXaml.EditorExtras.SymbolVisualizer
8 | {
9 | internal sealed class AppBarButtonTagger : SymbolIconRegexTagger
10 | {
11 | internal AppBarButtonTagger(ITextBuffer buffer)
12 | : base(buffer, @"(Icon="")([a-z2]{2,})("")")
13 | {
14 | }
15 |
16 | protected override SymbolIconTag TryCreateTagForMatch(Match match, int lineStart, int spanStart, string snapshotText)
17 | {
18 | return this.TryCreateSymbolIconTagForMatch(match, lineStart, spanStart, snapshotText, SymbolType.Symbol, "AppBarButton");
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.Utils/ProjectType.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using System;
5 | using System.ComponentModel;
6 |
7 | namespace RapidXamlToolkit
8 | {
9 | [Flags]
10 | public enum ProjectType
11 | {
12 | Unknown = 1,
13 |
14 | [Description("UWP")]
15 | Uwp = 2,
16 |
17 | [Description("WPF")]
18 | Wpf = 4,
19 |
20 | [Description("Xamarin.Forms")]
21 | XamarinForms = 8,
22 |
23 | [Description("WinUI3")]
24 | WinUI = 16,
25 |
26 | [Description(".NET MAUI")]
27 | MAUI = 32,
28 |
29 | UwpOrWpf = Uwp | Wpf,
30 |
31 | WindowsOnly = Uwp | Wpf | WinUI,
32 |
33 | XamarinOrMaui = XamarinForms | MAUI,
34 |
35 | Any = Uwp | Wpf | XamarinForms,
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/VSIX/RapidXamlToolkit/EditorExtras/SymbolVisualizer/SymbolIconTagger.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using System.Text.RegularExpressions;
5 | using Microsoft.VisualStudio.Text;
6 |
7 | namespace RapidXaml.EditorExtras.SymbolVisualizer
8 | {
9 | internal sealed class SymbolIconTagger : SymbolIconRegexTagger
10 | {
11 | internal SymbolIconTagger(ITextBuffer buffer)
12 | : base(buffer, @"(Symbol="")([a-z2]{2,})("")")
13 | {
14 | }
15 |
16 | protected override SymbolIconTag TryCreateTagForMatch(Match match, int lineStart, int spanStart, string snapshotText)
17 | {
18 | return this.TryCreateSymbolIconTagForMatch(match, lineStart, spanStart, snapshotText, SymbolType.Symbol, "SymbolIcon");
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/.github/workflows/spellchecking.yml:
--------------------------------------------------------------------------------
1 | name: Spellcheck Action
2 |
3 | on:
4 | push:
5 | branches: [ main ]
6 | paths:
7 | - '*.md'
8 | pull_request:
9 | types: [assigned, opened, synchronize, reopened]
10 | paths:
11 | - '*.md'
12 |
13 | jobs:
14 | build:
15 | name: Spellcheck
16 | runs-on: ubuntu-latest
17 | steps:
18 | # The checkout step
19 | - uses: actions/checkout@v3
20 | - uses: rojopolis/spellcheck-github-actions@0.46.0
21 | name: Spellcheck
22 | with:
23 | config_path: config/.spellcheck.yml
24 | task_name: Markdown
25 | output_file: spellcheck-output.txt
26 | - uses: actions/upload-artifact@v4
27 | if: '!cancelled()' # Do not upload artifact if job was cancelled
28 | with:
29 | name: Spellcheck Output
30 | path: spellcheck-output.txt
31 |
--------------------------------------------------------------------------------
/VSIX/BuildAnalysisUwpTestApp/MainPage.xaml:
--------------------------------------------------------------------------------
1 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.EditorExtras/SymbolVisualizer/FontAwesomeTagger.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using System.Text.RegularExpressions;
5 | using Microsoft.VisualStudio.Text;
6 |
7 | namespace RapidXaml.EditorExtras.SymbolVisualizer
8 | {
9 | internal sealed class FontAwesomeTagger : SymbolIconRegexTagger
10 | {
11 | internal FontAwesomeTagger(ITextBuffer buffer)
12 | : base(buffer, @"(Icon="")([a-z0-9_]{2,})("")")
13 | {
14 | }
15 |
16 | protected override SymbolIconTag TryCreateTagForMatch(Match match, int lineStart, int spanStart, string snapshotText)
17 | {
18 | return this.TryCreateSymbolIconTagForMatch(match, lineStart, spanStart, snapshotText, SymbolType.FontAwesome, "FontAwesome");
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/VSIX/RapidXamlToolkit.Tests.Manual/XamlAnalysis/StubCustomAnalysisProcessor.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using RapidXaml;
5 |
6 | namespace RapidXamlToolkit.Tests.Manual.XamlAnalysis
7 | {
8 | public class StubCustomAnalysisProcessor : ICustomAnalyzer
9 | {
10 | public AnalysisActions Analyze(RapidXamlElement element, ExtraAnalysisDetails extraDetails)
11 | {
12 | // Don't do anything.
13 | // Knowing this is called is enough as this exists only to know
14 | // that the parsed file can be turned into a RapidXamlElement.
15 | return AnalysisActions.None;
16 | }
17 |
18 | public string TargetType()
19 | {
20 | throw new System.NotImplementedException();
21 | }
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/VSIX/RapidXamlToolkit/EditorExtras/SymbolVisualizer/AppBarButtonTagger.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using System.Text.RegularExpressions;
5 | using Microsoft.VisualStudio.Text;
6 |
7 | namespace RapidXaml.EditorExtras.SymbolVisualizer
8 | {
9 | internal sealed class AppBarButtonTagger : SymbolIconRegexTagger
10 | {
11 | internal AppBarButtonTagger(ITextBuffer buffer)
12 | : base(buffer, @"(Icon="")([a-z2]{2,})("")")
13 | {
14 | }
15 |
16 | protected override SymbolIconTag TryCreateTagForMatch(Match match, int lineStart, int spanStart, string snapshotText)
17 | {
18 | return this.TryCreateSymbolIconTagForMatch(match, lineStart, spanStart, snapshotText, SymbolType.Symbol, "AppBarButton");
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.Analysis/XamlAnalysis/CustomAnalysis/ReplaceElementTestAnalyzer.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | #if DEBUG
5 | using RapidXaml;
6 |
7 | namespace RapidXamlToolkit.XamlAnalysis.CustomAnalysis
8 | {
9 | public class ReplaceElementTestAnalyzer : ICustomAnalyzer
10 | {
11 | public string TargetType() => "NewName";
12 |
13 | public AnalysisActions Analyze(RapidXamlElement element, ExtraAnalysisDetails extraDetails)
14 | {
15 | return AnalysisActions.ReplaceElement(
16 | RapidXamlErrorType.Suggestion,
17 | "Test4",
18 | "Don't use `NewName` yet.",
19 | "Comment out NewName element",
20 | $"");
21 | }
22 | }
23 | }
24 | #endif
25 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.EditorExtras/SymbolVisualizer/NavigationViewTagger.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using System.Text.RegularExpressions;
5 | using Microsoft.VisualStudio.Text;
6 |
7 | namespace RapidXaml.EditorExtras.SymbolVisualizer
8 | {
9 | internal sealed class NavigationViewTagger : SymbolIconRegexTagger
10 | {
11 | internal NavigationViewTagger(ITextBuffer buffer)
12 | : base(buffer, @"(Icon="")([a-z2]{2,})("")")
13 | {
14 | }
15 |
16 | protected override SymbolIconTag TryCreateTagForMatch(Match match, int lineStart, int spanStart, string snapshotText)
17 | {
18 | return this.TryCreateSymbolIconTagForMatch(match, lineStart, spanStart, snapshotText, SymbolType.Symbol, "NavigationViewItem");
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/VSIX/RapidXamlToolkit.Tests.Manual/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using System.Reflection;
5 | using System.Runtime.InteropServices;
6 |
7 | [assembly: AssemblyTitle("RapidXamlToolkit.Tests.Manual")]
8 | [assembly: AssemblyDescription("")]
9 | [assembly: AssemblyConfiguration("")]
10 | [assembly: AssemblyCompany("")]
11 | [assembly: AssemblyProduct("RapidXamlToolkit.Tests.Manual")]
12 | [assembly: AssemblyCopyright("Copyright © Matt Lacey Ltd. 2019")]
13 | [assembly: AssemblyTrademark("")]
14 | [assembly: AssemblyCulture("")]
15 |
16 | [assembly: ComVisible(false)]
17 |
18 | [assembly: Guid("b950152c-1f86-4cad-ad07-ce2dad4b1589")]
19 |
20 | // [assembly: AssemblyVersion("1.0.*")]
21 | [assembly: AssemblyVersion("1.0.0.0")]
22 | [assembly: AssemblyFileVersion("1.0.0.0")]
23 |
--------------------------------------------------------------------------------
/VSIX/RapidXamlToolkit/EditorExtras/SymbolVisualizer/FontAwesomeTagger.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using System.Text.RegularExpressions;
5 | using Microsoft.VisualStudio.Text;
6 |
7 | namespace RapidXaml.EditorExtras.SymbolVisualizer
8 | {
9 | internal sealed class FontAwesomeTagger : SymbolIconRegexTagger
10 | {
11 | internal FontAwesomeTagger(ITextBuffer buffer)
12 | : base(buffer, @"(Icon="")([a-z0-9_]{2,})("")")
13 | {
14 | }
15 |
16 | protected override SymbolIconTag TryCreateTagForMatch(Match match, int lineStart, int spanStart, string snapshotText)
17 | {
18 | return this.TryCreateSymbolIconTagForMatch(match, lineStart, spanStart, snapshotText, SymbolType.FontAwesome, "FontAwesome");
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.CustomAnalysis.Tests/RapidXaml.CustomAnalysis.Tests.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | net9.0
5 | latest
6 | enable
7 | enable
8 |
12 | true
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/VSIX/RapidXamlToolkit.Tests/XamlAnalysis/CustomAnalyzers/XamarinForms/SwitchCellAnalyzerTests.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using Microsoft.VisualStudio.TestTools.UnitTesting;
5 | using RapidXaml;
6 | using RapidXamlToolkit.XamlAnalysis.CustomAnalysis;
7 |
8 | namespace RapidXamlToolkit.Tests.XamlAnalysis.CustomAnalyzers
9 | {
10 | [TestClass]
11 | public class SwitchCellAnalyzerTests : AnalyzerTestsBase
12 | {
13 | [TestMethod]
14 | public void HardCoded_Text_Detected()
15 | {
16 | var xaml = @"";
17 |
18 | var actions = this.GetActions(xaml, ProjectType.XamarinForms);
19 |
20 | AnalysisActionsAssert.HasOneActionToRemoveHardCodedString(actions);
21 | }
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/VSIX/RapidXamlToolkit/Analysis/XamlAnalysis/CustomAnalysis/ReplaceElementTestAnalyzer.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | #if DEBUG
5 | using RapidXaml;
6 |
7 | namespace RapidXamlToolkit.XamlAnalysis.CustomAnalysis
8 | {
9 | public class ReplaceElementTestAnalyzer : ICustomAnalyzer
10 | {
11 | public string TargetType() => "NewName";
12 |
13 | public AnalysisActions Analyze(RapidXamlElement element, ExtraAnalysisDetails extraDetails)
14 | {
15 | return AnalysisActions.ReplaceElement(
16 | RapidXamlErrorType.Suggestion,
17 | "Test4",
18 | "Don't use `NewName` yet.",
19 | "Comment out NewName element",
20 | $"");
21 | }
22 | }
23 | }
24 | #endif
25 |
--------------------------------------------------------------------------------
/VSIX/RapidXamlToolkit/EditorExtras/SymbolVisualizer/NavigationViewTagger.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using System.Text.RegularExpressions;
5 | using Microsoft.VisualStudio.Text;
6 |
7 | namespace RapidXaml.EditorExtras.SymbolVisualizer
8 | {
9 | internal sealed class NavigationViewTagger : SymbolIconRegexTagger
10 | {
11 | internal NavigationViewTagger(ITextBuffer buffer)
12 | : base(buffer, @"(Icon="")([a-z2]{2,})("")")
13 | {
14 | }
15 |
16 | protected override SymbolIconTag TryCreateTagForMatch(Match match, int lineStart, int spanStart, string snapshotText)
17 | {
18 | return this.TryCreateSymbolIconTagForMatch(match, lineStart, spanStart, snapshotText, SymbolType.Symbol, "NavigationViewItem");
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.Analysis/XamlAnalysis/Tags/InsertionTag.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using RapidXamlToolkit.Logging;
5 | using RapidXamlToolkit.VisualStudioIntegration;
6 |
7 | namespace RapidXamlToolkit.XamlAnalysis.Tags
8 | {
9 | public abstract class InsertionTag : RapidXamlDiscreteTag
10 | {
11 | protected InsertionTag((int Start, int Length) span, ITextSnapshotAbstraction snapshot, string fileName, ILogger logger)
12 | : base(span, snapshot, fileName, logger)
13 | {
14 | }
15 |
16 | public bool GridNeedsExpanding { get; set; }
17 |
18 | public int InsertPosition { get; set; }
19 |
20 | // Whitespace to put before each line when added to the document (but not in preview).
21 | public string LeftPad { get; set; }
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.Common/RapidXamlCommonPackage.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using System;
5 | using System.Runtime.InteropServices;
6 | using Microsoft.VisualStudio.Shell;
7 | using static Microsoft.VisualStudio.VSConstants;
8 |
9 | namespace RapidXaml.Common
10 | {
11 | [ProvideAutoLoad(UICONTEXT.CSharpProject_string, PackageAutoLoadFlags.BackgroundLoad)]
12 | [ProvideAutoLoad(UICONTEXT.VBProject_string, PackageAutoLoadFlags.BackgroundLoad)]
13 | [PackageRegistration(UseManagedResourcesOnly = true, AllowsBackgroundLoading = true)]
14 | [ProvideMenuResource("Menus.ctmenu", 1)]
15 | [Guid(PackageGuidString)]
16 | public sealed class RapidXamlCommonPackage : AsyncPackage
17 | {
18 | public const string PackageGuidString = "b6d30102-8ee9-4cdd-befe-6c8a0ae7a5ac";
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/VSIX/RapidXamlToolkit.Tests/XamlAnalysis/CustomAnalyzers/XamarinForms/TableSectionAnalyzerTests.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using Microsoft.VisualStudio.TestTools.UnitTesting;
5 | using RapidXaml;
6 | using RapidXamlToolkit.XamlAnalysis.CustomAnalysis;
7 |
8 | namespace RapidXamlToolkit.Tests.XamlAnalysis.CustomAnalyzers
9 | {
10 | [TestClass]
11 | public class TableSectionAnalyzerTests : AnalyzerTestsBase
12 | {
13 | [TestMethod]
14 | public void HardCoded_Text_Detected()
15 | {
16 | var xaml = @"";
17 |
18 | var actions = this.GetActions(xaml, ProjectType.XamarinForms);
19 |
20 | AnalysisActionsAssert.HasOneActionToRemoveHardCodedString(actions);
21 | }
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/Rider/gradle.properties:
--------------------------------------------------------------------------------
1 | # Any property can be overwritten from command-line via
2 | # -P=
3 |
4 | DotnetPluginId=ReSharperPlugin.RapidXaml
5 | DotnetSolution=ReSharperPlugin.RapidXaml.sln
6 | RiderPluginId=com.jetbrains.rider.plugins.rapidxaml
7 | PluginVersion=9999.0.0
8 |
9 | BuildConfiguration=Debug
10 |
11 | PublishToken="_PLACEHOLDER_"
12 |
13 | # See https://www.jetbrains.com/intellij-repository/snapshots
14 | # Keep in sync with SdkVersion in Plugin.props -->
15 | #
16 | # Examples:
17 | # Release: 2020.2
18 | # EAP: 2020.3-EAP2-SNAPSHOT
19 | # Nightly: 2020.3-SNAPSHOT
20 | ProductVersion=2023.2
21 |
22 | # Kotlin 1.4 will bundle the stdlib dependency by default, causing problems with the version bundled with the IDE
23 | # https://blog.jetbrains.com/kotlin/2020/07/kotlin-1-4-rc-released/#stdlib-default
24 | kotlin.stdlib.default.dependency=false
25 |
--------------------------------------------------------------------------------
/VSIX/RapidXamlToolkit/Analysis/XamlAnalysis/Tags/InsertionTag.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using RapidXamlToolkit.Logging;
5 | using RapidXamlToolkit.VisualStudioIntegration;
6 |
7 | namespace RapidXamlToolkit.XamlAnalysis.Tags
8 | {
9 | public abstract class InsertionTag : RapidXamlDiscreteTag
10 | {
11 | protected InsertionTag((int Start, int Length) span, ITextSnapshotAbstraction snapshot, string fileName, ILogger logger)
12 | : base(span, snapshot, fileName, logger)
13 | {
14 | }
15 |
16 | public bool GridNeedsExpanding { get; set; }
17 |
18 | public int InsertPosition { get; set; }
19 |
20 | // Whitespace to put before each line when added to the document (but not in preview).
21 | public string LeftPad { get; set; }
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/VSIX/RapidXamlToolkit/source.extension.cs:
--------------------------------------------------------------------------------
1 | // ------------------------------------------------------------------------------
2 | //
3 | // This file was generated by VSIX Synchronizer
4 | //
5 | // ------------------------------------------------------------------------------
6 | namespace RapidXaml
7 | {
8 | internal sealed partial class Vsix
9 | {
10 | public const string Id = "RapidXamlToolkit.0dc8e86a-836b-47e5-aa3f-f5e71c15e37a";
11 | public const string Name = "Rapid XAML Toolkit";
12 | public const string Description = @"Tools to accelerate XAML app development.";
13 | public const string Language = "en-US";
14 | public const string Version = "1.0.0.2";
15 | public const string Author = "Matt Lacey";
16 | public const string Tags = "XAML;WPF;Uno;MVVM;MAUI;WinUI;DotNetMaui";
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.Analysis/XamlAnalysis/CustomAnalysis/XamarinForms/PickerAnalyzer.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using RapidXaml;
5 | using RapidXamlToolkit.Logging;
6 |
7 | namespace RapidXamlToolkit.XamlAnalysis.CustomAnalysis
8 | {
9 | public class PickerAnalyzer : BuiltInXamlAnalyzer
10 | {
11 | public PickerAnalyzer(VisualStudioIntegration.IVisualStudioAbstraction vsa, ILogger logger)
12 | : base(vsa, logger)
13 | {
14 | }
15 |
16 | public override string TargetType() => Elements.Picker;
17 |
18 | public override AnalysisActions Analyze(RapidXamlElement element, ExtraAnalysisDetails extraDetails)
19 | {
20 | return this.CheckForHardCodedString(Attributes.Title, AttributeType.InlineOrElement, element, extraDetails);
21 | }
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.CustomAnalysis/RapidXamlSpan.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | namespace RapidXaml
5 | {
6 | public class RapidXamlSpan
7 | {
8 | public RapidXamlSpan()
9 | {
10 | }
11 |
12 | public RapidXamlSpan(int start, int length)
13 | {
14 | this.Start = start;
15 | this.Length = length;
16 | }
17 |
18 | public int Start { get; set; } = -1;
19 |
20 | public int Length { get; set; } = -1;
21 |
22 | public RapidXamlSpan CloneWithAdjustedLocationStart(int startChange)
23 | {
24 | return new RapidXamlSpan(this.Start + startChange, this.Length);
25 | }
26 |
27 | public override string ToString()
28 | {
29 | return $"({this.Start}, {this.Length})";
30 | }
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/VSIX/RapidXamlToolkit/Analysis/XamlAnalysis/CustomAnalysis/XamarinForms/PickerAnalyzer.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using RapidXaml;
5 | using RapidXamlToolkit.Logging;
6 |
7 | namespace RapidXamlToolkit.XamlAnalysis.CustomAnalysis
8 | {
9 | public class PickerAnalyzer : BuiltInXamlAnalyzer
10 | {
11 | public PickerAnalyzer(VisualStudioIntegration.IVisualStudioAbstraction vsa, ILogger logger)
12 | : base(vsa, logger)
13 | {
14 | }
15 |
16 | public override string TargetType() => Elements.Picker;
17 |
18 | public override AnalysisActions Analyze(RapidXamlElement element, ExtraAnalysisDetails extraDetails)
19 | {
20 | return this.CheckForHardCodedString(Attributes.Title, AttributeType.InlineOrElement, element, extraDetails);
21 | }
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.Analysis/XamlAnalysis/CustomAnalysis/XamarinForms/SwipeItemAnalyzer.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using RapidXaml;
5 | using RapidXamlToolkit.Logging;
6 |
7 | namespace RapidXamlToolkit.XamlAnalysis.CustomAnalysis
8 | {
9 | public class SwipeItemAnalyzer : BuiltInXamlAnalyzer
10 | {
11 | public SwipeItemAnalyzer(VisualStudioIntegration.IVisualStudioAbstraction vsa, ILogger logger)
12 | : base(vsa, logger)
13 | {
14 | }
15 |
16 | public override string TargetType() => Elements.SwipeItem;
17 |
18 | public override AnalysisActions Analyze(RapidXamlElement element, ExtraAnalysisDetails extraDetails)
19 | {
20 | return this.CheckForHardCodedString(Attributes.Text, AttributeType.InlineOrElement, element, extraDetails);
21 | }
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.Analysis/JSON/suppressions-schema.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "http://json-schema.org/draft-04/schema#",
3 | "title": "Rapid XAML Suppressions schema",
4 |
5 | "type": "array",
6 | "items": {
7 | "required": [ "FileName" ],
8 | "properties": {
9 | "TagErrorCode": {
10 | "type": "string",
11 | "description": "The error code this suppression applies to. (Optional)"
12 | },
13 | "FileName": {
14 | "type": "string",
15 | "description": "The name of the file this suppression applies to."
16 | },
17 | "ElementIdentifier": {
18 | "type": "string",
19 | "description": "A way of identifying a specific element this suppression applies to. (Optional)"
20 | },
21 | "Reason": {
22 | "type": "string",
23 | "description": "The reason for this suppression. (Optional)"
24 | }
25 | }
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/VSIX/RapidXaml.Analysis/XamlAnalysis/CustomAnalysis/XamarinForms/SwitchCellAnalyzer.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using RapidXaml;
5 | using RapidXamlToolkit.Logging;
6 |
7 | namespace RapidXamlToolkit.XamlAnalysis.CustomAnalysis
8 | {
9 | public class SwitchCellAnalyzer : BuiltInXamlAnalyzer
10 | {
11 | public SwitchCellAnalyzer(VisualStudioIntegration.IVisualStudioAbstraction vsa, ILogger logger)
12 | : base(vsa, logger)
13 | {
14 | }
15 |
16 | public override string TargetType() => Elements.SwitchCell;
17 |
18 | public override AnalysisActions Analyze(RapidXamlElement element, ExtraAnalysisDetails extraDetails)
19 | {
20 | return this.CheckForHardCodedString(Attributes.Text, AttributeType.InlineOrElement, element, extraDetails);
21 | }
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/VSIX/RapidXamlToolkit.Tests/TestProfile.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Matt Lacey Ltd. All rights reserved.
2 | // Licensed under the MIT license.
3 |
4 | using System.Collections.ObjectModel;
5 | using RapidXamlToolkit.Options;
6 |
7 | namespace RapidXamlToolkit.Tests
8 | {
9 | public static class TestProfile
10 | {
11 | public static Profile CreateEmpty()
12 | {
13 | return new Profile
14 | {
15 | Name = string.Empty,
16 | ProjectType = ProjectType.Unknown,
17 | ClassGrouping = string.Empty,
18 | FallbackOutput = string.Empty,
19 | SubPropertyOutput = string.Empty,
20 | EnumMemberOutput = string.Empty,
21 | Mappings = new ObservableCollection(),
22 | AttemptAutomaticDocumentFormatting = true,
23 | };
24 | }
25 | }
26 | }
27 |
--------------------------------------------------------------------------------