Repository Analysis

AvaloniaUI/Avalonia

Develop Desktop, Embedded, Mobile and WebAssembly apps with C# and XAML. The future of .NET UI

3.3 Likely human-written View on GitHub
3.3
Adjusted Score
3.3
Raw Score
100%
Time Factor
2026-05-29
Last Push
30,886
Stars
C#
Language
612,069
Lines of Code
4101
Files
2067
Pattern Hits
2026-05-31
Scan Date

Score History

Severity Breakdown

CRITICAL 0HIGH 8MEDIUM 12LOW 2047

Pattern Findings

2067 matches across 7 categories. Click a row to expand file-level details.

Over-Commented Block2004 hits · 1827 pts
SeverityFileLineSnippet
LOWNOTICE.md261// * Redistributions of source code must retain the above copyright
LOWNOTICE.md281// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
LOWNOTICE.md301
LOWnative/Avalonia.Native/inc/com.h21#define S_OK 0x0L
LOWnative/Avalonia.Native/inc/avalonia-native-guids.h1#define COM_GUIDS_MATERIALIZE
LOWnative/Avalonia.Native/src/OSX/AvnTextInputMethod.h1//
LOWnative/Avalonia.Native/src/OSX/AvnPanelWindow.mm1//
LOWnative/Avalonia.Native/src/OSX/TopLevelImpl.h1//
LOWnative/Avalonia.Native/src/OSX/StorageProvider.mm1#include "common.h"
LOWnative/Avalonia.Native/src/OSX/StorageProvider.mm481 [constraints addObject:[group.trailingAnchor
LOWnative/Avalonia.Native/src/OSX/WindowBaseImpl.h1//
LOWnative/Avalonia.Native/src/OSX/KeyTransform.mm161 //{ , AvnPhysicalKeyPrintScreen, 0 },
LOWnative/Avalonia.Native/src/OSX/KeyTransform.mm181 //{ , AvnPhysicalKeyMediaTrackPrevious, 0 },
LOWnative/Avalonia.Native/src/OSX/AvnWindow.mm1//
LOWnative/Avalonia.Native/src/OSX/WindowBaseImpl.mm1//
LOWnative/Avalonia.Native/src/OSX/PopupImpl.mm1//
LOWnukebuild/ApiDiffHelper.cs161 AbsolutePath packageOutputFolderPath,
LOW…s/Avalonia.Markup.UnitTests/Properties/AssemblyInfo.cs21[assembly: ComVisible(false)]
LOWtests/Avalonia.Controls.UnitTests/CalendarTests.cs141 }
LOW…onia.Controls.UnitTests/VirtualizingStackPanelTests.cs641 // OnEffectiveViewportChanged doesn't trigger a measure (needsMeasure=false because
LOWtests/Avalonia.Controls.UnitTests/GridTests.cs1301 // Assert.All(grid.ColumnDefinitions.Where(cd => cd.SharedSizeGroup == "A"), cd => Assert.Equal(6 + 2 * 6, c
LOW…a.UnitTests/Media/TextFormatting/SplitTextRunsTests.cs21 /// runs), but the method is also called by <c>TextCollapsingProperties</c>
LOWtests/Avalonia.UnitTests/Properties/AssemblyInfo.cs21
LOW…op/WindowsInteropTest/Properties/Resources.Designer.cs1//------------------------------------------------------------------------------
LOWsamples/ControlCatalog.Browser/Program.cs41 }
LOW…lCatalog/Pages/Transitions/WaveRevealPageTransition.cs41 /// Gets or sets the bulge factor along the movement axis (0-1).
LOWsrc/Skia/Avalonia.Skia/SkiaOptions.cs1using System;
LOWsrc/Skia/Avalonia.Skia/SkiaOptions.cs21 /// Use Skia's SaveLayer API to handling opacity.
LOWsrc/Skia/Avalonia.Skia/IDrawableBitmapImpl.cs1using Avalonia.Platform;
LOWsrc/Skia/Avalonia.Skia/SKPaintCache.cs1using System.Collections.Concurrent;
LOWsrc/Skia/Avalonia.Skia/SurfaceRenderTarget.cs201 public struct CreateInfo
LOWsrc/Skia/Avalonia.Skia/DrawingContextImpl.cs61
LOWsrc/Skia/Avalonia.Skia/DrawingContextImpl.cs1201 private void ConfigureSceneBrushContentWithPicture(ref PaintWrapper paintWrapper, ISceneBrushContent content,
LOWsrc/Skia/Avalonia.Skia/Gpu/ISkiaGpu.cs21 /// </summary>
LOWsrc/Skia/Avalonia.Skia/Helpers/ImageSavingHelper.cs1using System;
LOWsrc/Avalonia.Controls/TickBar.cs181 /// <summary>
LOWsrc/Avalonia.Controls/TickBar.cs201 /// Ticks can be draw in 8 different ways depends on Placement property and IsDirectionReversed property.
LOWsrc/Avalonia.Controls/Control.cs21 /// </summary>
LOWsrc/Avalonia.Controls/Control.cs141 /// and both layout and render are complete.
LOWsrc/Avalonia.Controls/Control.cs161 /// <remarks>
LOWsrc/Avalonia.Controls/WindowResizedEventArgs.cs21
LOWsrc/Avalonia.Controls/IMenuElement.cs21 IEnumerable<IMenuItem> SubItems { get; }
LOWsrc/Avalonia.Controls/WindowBase.cs81 /// <summary>
LOWsrc/Avalonia.Controls/WindowBase.cs301 /// ArrangeCore (such as margins and alignment) make no sense.
LOWsrc/Avalonia.Controls/Design.cs21 /// <remarks>
LOWsrc/Avalonia.Controls/Design.cs81 /// </summary>
LOWsrc/Avalonia.Controls/Design.cs121 {
LOWsrc/Avalonia.Controls/Design.cs181 /// </summary>
LOWsrc/Avalonia.Controls/Design.cs221 /// <summary>
LOWsrc/Avalonia.Controls/Design.cs241 /// Template must return ContentControl, and IDataTemplate will be set assigned to ContentControl.ContentTemplat
LOWsrc/Avalonia.Controls/Design.cs301 public static Control? GetPreviewWith(IStyle target)
LOWsrc/Avalonia.Controls/GridLength.cs21 /// <summary>
LOWsrc/Avalonia.Controls/GridLength.cs81 /// Gets an instance of <see cref="GridLength"/> that indicates that a row or column should
LOWsrc/Avalonia.Controls/GridLength.cs101 /// <summary>
LOWsrc/Avalonia.Controls/GridLength.cs121
LOWsrc/Avalonia.Controls/ToolTip.cs21 /// assigning the content that you want displayed.
LOWsrc/Avalonia.Controls/ToolTip.cs61 /// Defines the ToolTip.ShowDelay property.
LOWsrc/Avalonia.Controls/ToolTip.cs81 public static readonly AttachedProperty<bool> ServiceEnabledProperty =
LOWsrc/Avalonia.Controls/ToolTip.cs121 IsOpenProperty.Changed.Subscribe(IsOpenChanged);
LOWsrc/Avalonia.Controls/ToolTip.cs181 /// Sets the value of the ToolTip.Placement attached property.
1944 more matches not shown…
Synthetic Comment Markers8 hits · 60 pts
SeverityFileLineSnippet
HIGH…rop/WindowsInteropTest/Properties/Settings.Designer.cs3// This code was generated by a tool.
HIGH…op/WindowsInteropTest/Properties/Resources.Designer.cs3// This code was generated by a tool.
HIGH…/DevGenerators/CompilerDynamicDependenciesGenerator.cs44// This code was generated by CompilerDynamicDependenciesGenerator source generator.
HIGH…/Avalonia.UnicodeTrieGenerator/UnicodeDataGenerator.cs77 // This code was generated by UnicodeDataGenerator.
HIGH…ase/Media/TextFormatting/Unicode/GraphemeBreak.trie.cs3// This code was generated by UnicodeDataGenerator.
HIGH….Base/Media/TextFormatting/Unicode/UnicodeData.trie.cs3// This code was generated by UnicodeDataGenerator.
HIGH…valonia.Base/Media/TextFormatting/Unicode/BiDi.trie.cs3// This code was generated by UnicodeDataGenerator.
HIGH…se/Media/TextFormatting/Unicode/EastAsianWidth.trie.cs3// This code was generated by UnicodeDataGenerator.
Verbosity Indicators25 hits · 47 pts
SeverityFileLineSnippet
LOW…sts/Data/Core/BindingExpressionTests.DataValidation.cs150 // Step 1: Set a valid value.
LOW…sts/Data/Core/BindingExpressionTests.DataValidation.cs155 // Step 2: Set an invalid value — setter throws, error appears.
LOW…sts/Data/Core/BindingExpressionTests.DataValidation.cs164 // Step 3: Revert to the same valid value (10). The error must clear.
LOW…ts/Avalonia.Generators.Tests/XamlXNameResolverTests.cs129 // Step 1: parse XAML as xml nodes, without any type information.
LOW…ts/Avalonia.Generators.Tests/XamlXNameResolverTests.cs135 // Step 2: use compilation context to resolve types
LOW…Generators.Tests/OnlyProperties/OnlyPropertiesTests.cs31 // Step 1: parse XAML as xml nodes, without any type information.
LOW…Generators.Tests/OnlyProperties/OnlyPropertiesTests.cs40 // Step 2: use compilation context to resolve types
LOW…Generators.Tests/OnlyProperties/OnlyPropertiesTests.cs46 // Step 3: run generator
LOW….Tests/InitializeComponent/InitializeComponentTests.cs37 // Step 1: parse XAML as xml nodes, without any type information.
LOW….Tests/InitializeComponent/InitializeComponentTests.cs46 // Step 2: use compilation context to resolve types
LOW….Tests/InitializeComponent/InitializeComponentTests.cs52 // Step 3: run generator
LOW…onia.IntegrationTests.Appium/WindowDecorationsTests.cs21 // Step 1: keep extend client area to false, but adjust some value that should not have any effect.
LOW…onia.IntegrationTests.Appium/WindowDecorationsTests.cs26 // Step 2: enable and disable extended client area.
LOWsrc/Avalonia.Base/Threading/DispatcherPriorityQueue.cs54 // Step 1: Append this to the end of the "sequential" linked list.
LOWsrc/Avalonia.Base/Threading/DispatcherPriorityQueue.cs57 // Step 2: Append the item into the priority chain.
LOWsrc/Avalonia.Base/Threading/DispatcherPriorityQueue.cs108 // Step 1: Remove the item from its priority chain.
LOWsrc/Avalonia.Base/Threading/DispatcherPriorityQueue.cs111 // Step 2: Remove the item from the sequential chain.
LOWsrc/Avalonia.Base/Threading/DispatcherPriorityQueue.cs121 // Step 1: Remove the item from the priority chain.
LOWsrc/Avalonia.Base/Threading/DispatcherPriorityQueue.cs124 // Step 2: Insert the item into the new priority chain.
LOWsrc/Avalonia.Base/Threading/DispatcherPriorityQueue.cs260 // Step 1: Fix up the previous link
LOWsrc/Avalonia.Base/Threading/DispatcherPriorityQueue.cs276 // Step 2: Fix up the next link
LOWsrc/Avalonia.Base/Threading/DispatcherPriorityQueue.cs292 // Step 3: cleanup
LOWsrc/Avalonia.Base/Threading/DispatcherPriorityQueue.cs366 // Step 1: Fix up the previous link
LOWsrc/Avalonia.Base/Threading/DispatcherPriorityQueue.cs382 // Step 2: Fix up the next link
LOWsrc/Avalonia.Base/Threading/DispatcherPriorityQueue.cs398 // Step 3: cleanup
Decorative Section Separators10 hits · 39 pts
SeverityFileLineSnippet
MEDIUMnative/Avalonia.Native/src/OSX/StorageProvider.mm450 // ┌───────────────────┐
MEDIUMnative/Avalonia.Native/src/OSX/StorageProvider.mm454 // └───────────────────┘
MEDIUMnative/Avalonia.Native/src/OSX/StorageProvider.mm494 // ┌──────────────┐
MEDIUMnative/Avalonia.Native/src/OSX/StorageProvider.mm498 // └──────────────┘
MEDIUMsrc/Skia/Avalonia.Skia/DrawingContextImpl.cs1210 // ╔════════════════════════════════════╗ <--- target control
MEDIUMsrc/Skia/Avalonia.Skia/DrawingContextImpl.cs1212 // ║ ╔═════╗───────────┐ <--- content ║
MEDIUMsrc/Skia/Avalonia.Skia/DrawingContextImpl.cs1214 // ║ ╚═════╝ ╔══╗ ║
MEDIUMsrc/Skia/Avalonia.Skia/DrawingContextImpl.cs1216 // ║ │ ╔═════╗content^ │ ║
MEDIUMsrc/Skia/Avalonia.Skia/DrawingContextImpl.cs1217 // ║ └─╚═════╝─────────┘ ║
MEDIUMsrc/Skia/Avalonia.Skia/DrawingContextImpl.cs1219 // ╚════════════════════════════════════╝
Fake / Example Data17 hits · 19 pts
SeverityFileLineSnippet
LOWtests/Avalonia.RenderTests/Controls/TextBlockTests.cs84 Text = "Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit"
LOWtests/Avalonia.RenderTests/Controls/TextBlockTests.cs84 Text = "Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit"
LOW…ia.RenderTests/Media/TextFormatting/TextLayoutTests.cs27"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus magna. Cras in mi at felis " +
LOW…ia.RenderTests/Media/TextFormatting/TextLayoutTests.cs27"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus magna. Cras in mi at felis " +
LOWtests/Avalonia.Base.UnitTests/Layout/LayoutableTests.cs446 Text = "Lorem ipsum dolor sit amet",
LOWtests/Avalonia.Base.UnitTests/Layout/LayoutableTests.cs446 Text = "Lorem ipsum dolor sit amet",
LOW…Skia.UnitTests/Media/TextFormatting/TextLayoutTests.cs394 "Multiline TextBox with TextWrapping.\r\rLorem ipsum dolor sit amet";
LOW…Skia.UnitTests/Media/TextFormatting/TextLayoutTests.cs394 "Multiline TextBox with TextWrapping.\r\rLorem ipsum dolor sit amet";
LOW…a.UnitTests/Media/TextFormatting/TextFormatterTests.cs542 "Multiline TextBlock with TextWrapping.\r\rLorem ipsum dolor sit amet, consectetur adipiscing elit.
LOW…a.UnitTests/Media/TextFormatting/TextFormatterTests.cs542 "Multiline TextBlock with TextWrapping.\r\rLorem ipsum dolor sit amet, consectetur adipiscing elit.
LOW…a.UnitTests/Media/TextFormatting/TextFormatterTests.cs601 [InlineData("Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor",
LOW…a.UnitTests/Media/TextFormatting/TextFormatterTests.cs601 [InlineData("Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor",
LOW…a.UnitTests/Media/TextFormatting/TextFormatterTests.cs602 new[] { "Lorem ipsum ", "dolor sit amet, ", "consectetur ", "adipisicing ", "elit, sed do ", "eiusmod tempor
LOW…a.UnitTests/Media/TextFormatting/TextFormatterTests.cs602 new[] { "Lorem ipsum ", "dolor sit amet, ", "consectetur ", "adipisicing ", "elit, sed do ", "eiusmod tempor
LOWsamples/RenderDemo/Pages/FormattedTextPage.axaml.cs24 const string testString = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor";
LOWsamples/RenderDemo/Pages/FormattedTextPage.axaml.cs24 const string testString = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor";
LOW…mples/IntegrationTestApp/Pages/AutomationPage.axaml.cs15 textLiveRegion.Text += " Lorem ipsum.";
AI Slop Vocabulary2 hits · 6 pts
SeverityFileLineSnippet
MEDIUMsrc/Avalonia.Controls/Platform/ITopLevelImpl.cs46 /// Rendering platform will check that list and see if it can utilize one of them to output.
MEDIUM…ase/Media/TextFormatting/Unicode/GraphemeEnumerator.cs73 // Essentially, if we saw Prepend data, we can't have Control | CR | LF data afterward (rule GB5).
Slop Phrases1 hit · 2 pts
SeverityFileLineSnippet
LOWsrc/tools/Avalonia.Generators/GeneratorOptions.cs9// When update these enum values, don't forget to update Avalonia.Generators.props.