├── 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 | [![Rider](https://img.shields.io/jetbrains/plugin/v/RIDER_PLUGIN_ID.svg?label=Rider&colorB=0A7BBB&style=for-the-badge&logo=rider)](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, @"(=""&#x)([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, @"(=""&#x)([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 = @"