* Use new Lock objects
* Fix CA1513: Use ObjectDisposedException.ThrowIf
* Fix CA1860: Avoid using 'Enumerable.Any()' extension method
* Fix IDE0028: Use collection initializers or expressions
* Fix CA2263: Prefer generic overload when type is known
* Fix CA1862: Use the 'StringComparison' method overloads to perform case-insensitive string comparisons
* Fix IDE0270: Null check can be simplified
* Fix IDE0280: Use 'nameof'
* Fix IDE0009: Add '.this'
* Fix IDE0007: Use 'var' instead of explicit type
* Fix IDE0062: Make local function static
* Fix CA1859: Use concrete types when possible for improved performance
* Fix IDE0066: Use switch expression
Only applied to where it doesn't look horrendous.
* Use is over switch
* Fix CA1847: Use String.Contains(char) instead of String.Contains(string) with single characters
* Fix SYSLIB1045: Use 'GeneratedRegexAttribute' to generate the regular expression implementation at compile-time.
* Fix CA1866: Use 'string.EndsWith(char)' instead of 'string.EndsWith(string)' when you have a string with a single char
* Fix IDE0057: Substring can be simplified
* Fix IDE0059: Remove unnecessary value assignment
* Fix CA1510: Use ArgumentNullException throw helper
* Fix IDE0300: Use collection expression for array
* Fix IDE0250: Struct can be made 'readonly'
* Fix IDE0018: Inline variable declaration
* Fix CA1850: Prefer static HashData method over ComputeHash
* Fi CA1872: Prefer 'Convert.ToHexString' and 'Convert.ToHexStringLower' over call chains based on 'BitConverter.ToString'
* Update ModuleLog instantiations
* Organize usings
Refactored repository selection logic. Reduced code duplication and improving maintainability. Added caching for third-party repo list to avoid unnecessary rebuilds. Updated repo filter logic to use normalized URLs for more reliable matching.
Introduces new plugin categories for enabled, disabled, and incompatible plugins in PluginCategoryManager and PluginInstallerWindow. Updates filtering logic, UI strings, and groupings to support these new categories, allowing users to view plugins by their enabled/disabled/incompatible status.
Refactored repository selection logic. Reduced code duplication and improving maintainability. Added caching for third-party repo list to avoid unnecessary rebuilds. Updated repo filter logic to use normalized URLs for more reliable matching.
Introduces new plugin categories for enabled, disabled, and incompatible plugins in PluginCategoryManager and PluginInstallerWindow. Updates filtering logic, UI strings, and groupings to support these new categories, allowing users to view plugins by their enabled/disabled/incompatible status.