| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
Sorry, something went wrong.
There was a problem hiding this comment.
This PR refactors rule metadata to expose SourceType as a property rather than a GetSourceType() method, and renames the enum backing that metadata to RuleSourceType, updating the engine and built-in rules to match. The goal is to reduce boilerplate and standardize how built-in rules report their origin.
Changes:
Copilot reviewed 83 out of 83 changed files in this pull request and generated 1 comment.
Show a summary per file| File | Description |
|---|---|
| Utils/RuleMaker.psm1 | Updates the rule-generation template to emit the new SourceType property. |
| Rules/UseVerboseMessageInDSCResource.cs | Replaces GetSourceType() with SourceType property. |
| Rules/UseUTF8EncodingForHelpFile.cs | Replaces GetSourceType() with SourceType property. |
| Rules/UseUsingScopeModifierInNewRunspaces.cs | Replaces GetSourceType() with SourceType property; whitespace cleanup. |
| Rules/UseToExportFieldsInManifest.cs | Replaces GetSourceType() with SourceType property; whitespace cleanup. |
| Rules/UseSupportsShouldProcess.cs | Replaces GetSourceType() with SourceType property. |
| Rules/UseStandardDSCFunctionsInResource.cs | Replaces GetSourceType() with SourceType property; whitespace cleanup. |
| Rules/UseSingularNouns.cs | Replaces GetSourceType() override with SourceType override; whitespace cleanup. |
| Rules/UseSingleValueFromPipelineParameter.cs | Replaces GetSourceType() override with SourceType override; whitespace cleanup. |
| Rules/UseShouldProcessForStateChangingFunctions.cs | Replaces GetSourceType() with SourceType property; whitespace cleanup. |
| Rules/UseShouldProcessCorrectly.cs | Replaces GetSourceType() with SourceType property. |
| Rules/UsePSCredentialType.cs | Replaces GetSourceType() with SourceType property. |
| Rules/UseProcessBlockForPipelineCommand.cs | Replaces GetSourceType() with SourceType property; whitespace cleanup. |
| Rules/UseOutputTypeCorrectly.cs | Replaces GetSourceType() with SourceType property. |
| Rules/UseLiteralInitializerForHashtable.cs | Replaces GetSourceType() with SourceType property. |
| Rules/UseIdenticalParametersDSC.cs | Replaces GetSourceType() with SourceType property; whitespace cleanup. |
| Rules/UseIdenticalMandatoryParametersDSC.cs | Replaces GetSourceType() with SourceType property. |
| Rules/UseDeclaredVarsMoreThanAssignments.cs | Replaces GetSourceType() with SourceType property. |
| Rules/UseCorrectCasing.cs | Replaces GetSourceType() override with SourceType override. |
| Rules/UseConstrainedLanguageMode.cs | Replaces GetSourceType() override with SourceType override; whitespace cleanup. |
| Rules/UseConsistentWhitespace.cs | Replaces GetSourceType() override with SourceType override; whitespace cleanup. |
| Rules/UseConsistentParametersKind.cs | Replaces GetSourceType() override with SourceType override. |
| Rules/UseConsistentParameterSetName.cs | Replaces GetSourceType() override with SourceType override. |
| Rules/UseConsistentIndentation.cs | Replaces GetSourceType() override with SourceType override; whitespace cleanup. |
| Rules/UseCompatibleCmdlets.cs | Replaces GetSourceType() with SourceType property. |
| Rules/UseCmdletCorrectly.cs | Replaces GetSourceType() with SourceType property. |
| Rules/UseBOMForUnicodeEncodedFile.cs | Replaces GetSourceType() with SourceType property; whitespace cleanup. |
| Rules/UseApprovedVerbs.cs | Replaces GetSourceType() with SourceType property. |
| Rules/ReviewUnusedParameter.cs | Replaces GetSourceType() with SourceType property; whitespace cleanup. |
| Rules/ReturnCorrectTypesForDSCFunctions.cs | Replaces GetSourceType() with SourceType property; whitespace cleanup. |
| Rules/ProvideCommentHelp.cs | Replaces GetSourceType() override with SourceType override. |
| Rules/PossibleIncorrectUsageOfRedirectionOperator.cs | Replaces GetSourceType() with SourceType property. |
| Rules/PossibleIncorrectUsageOfAssignmentOperator.cs | Replaces GetSourceType() with SourceType property. |
| Rules/PossibleIncorrectComparisonWithNull.cs | Replaces GetSourceType() with SourceType property; whitespace cleanup. |
| Rules/PlaceOpenBrace.cs | Replaces GetSourceType() override with SourceType override. |
| Rules/PlaceCloseBrace.cs | Replaces GetSourceType() override with SourceType override. |
| Rules/MissingModuleManifestField.cs | Replaces GetSourceType() with SourceType property; whitespace cleanup. |
| Rules/MisleadingBacktick.cs | Replaces GetSourceType() with SourceType property. |
| Rules/DscTestsPresent.cs | Replaces GetSourceType() with SourceType property; whitespace cleanup. |
| Rules/DscExamplesPresent.cs | Replaces GetSourceType() with SourceType property; whitespace cleanup. |
| Rules/CompatibilityRules/UseCompatibleSyntax.cs | Replaces GetSourceType() override with SourceType override. |
| Rules/CompatibilityRules/CompatibilityRule.cs | Replaces GetSourceType() override with SourceType override. |
| Rules/AvoidUsingWriteHost.cs | Replaces GetSourceType() with SourceType property. |
| Rules/AvoidUsingWMICmdlet.cs | Replaces GetSourceType() with SourceType property; whitespace cleanup. |
| Rules/AvoidUsingPlainTextForPassword.cs | Replaces GetSourceType() with SourceType property. |
| Rules/AvoidUsingInvokeExpression.cs | Replaces GetSourceType() override with SourceType override. |
| Rules/AvoidUsingDoubleQuotesForConstantString.cs | Replaces GetSourceType() override with SourceType override; whitespace cleanup. |
| Rules/AvoidUsingDeprecatedManifestFields.cs | Replaces GetSourceType() with SourceType property. |
| Rules/AvoidUsingConvertToSecureStringWithPlainText.cs | Replaces GetSourceType() override with SourceType override. |
| Rules/AvoidUsingComputerNameHardcoded.cs | Replaces GetSourceType() override with SourceType override. |
| Rules/AvoidUsingBrokenHashAlgorithms.cs | Replaces GetSourceType() override with SourceType override. |
| Rules/AvoidUsingAllowUnencryptedAuthentication.cs | Replaces GetSourceType() override with SourceType override. |
| Rules/AvoidUserNameAndPasswordParams.cs | Replaces GetSourceType() with SourceType property; whitespace cleanup. |
| Rules/AvoidTrailingWhitespace.cs | Replaces GetSourceType() with SourceType property. |
| Rules/AvoidShouldContinueWithoutForce.cs | Replaces GetSourceType() with SourceType property; whitespace cleanup. |
| Rules/AvoidSemicolonsAsLineTerminators.cs | Replaces GetSourceType() override with SourceType override. |
| Rules/AvoidReservedWordsAsFunctionNames.cs | Replaces GetSourceType() with SourceType property; whitespace cleanup. |
| Rules/AvoidReservedParams.cs | Replaces GetSourceType() with SourceType property. |
| Rules/AvoidReservedCharInCmdlet.cs | Replaces GetSourceType() with SourceType property; whitespace cleanup. |
| Rules/AvoidPositionalParameters.cs | Replaces GetSourceType() override with SourceType override; whitespace cleanup. |
| Rules/AvoidOverwritingBuiltInCmdlets.cs | Replaces GetSourceType() override with SourceType override. |
| Rules/AvoidNullOrEmptyHelpMessageAttribute.cs | Replaces GetSourceType() with SourceType property; whitespace cleanup. |
| Rules/AvoidMultipleTypeAttributes.cs | Replaces GetSourceType() with SourceType property; whitespace cleanup. |
| Rules/AvoidLongLines.cs | Replaces GetSourceType() override with SourceType override; whitespace cleanup. |
| Rules/AvoidInvokingEmptyMembers.cs | Replaces GetSourceType() with SourceType property; whitespace cleanup. |
| Rules/AvoidGlobalVars.cs | Replaces GetSourceType() with SourceType property. |
| Rules/AvoidGlobalFunctions.cs | Replaces GetSourceType() with SourceType property. |
| Rules/AvoidGlobalAliases.cs | Replaces GetSourceType() with SourceType property. |
| Rules/AvoidExclaimOperator.cs | Replaces GetSourceType() override with SourceType override; whitespace cleanup. |
| Rules/AvoidEmptyCatchBlock.cs | Replaces GetSourceType() with SourceType property. |
| Rules/AvoidDefaultValueForMandatoryParameter.cs | Replaces GetSourceType() with SourceType property; whitespace cleanup. |
| Rules/AvoidDefaultTrueValueSwitchParameter.cs | Replaces GetSourceType() with SourceType property. |
| Rules/AvoidAssignmentToAutomaticVariable.cs | Replaces GetSourceType() with SourceType property. |
| Rules/AvoidAlias.cs | Replaces GetSourceType() with SourceType property; whitespace cleanup. |
| Rules/AlignAssignmentStatement.cs | Replaces GetSourceType() override with SourceType override; whitespace cleanup. |
| Engine/Generic/RuleSourceType.cs | Renames the enum type from SourceType to RuleSourceType; updates doc comment. |
| Engine/Generic/RuleInfo.cs | Updates RuleInfo.SourceType and constructors to use RuleSourceType. |
| Engine/Generic/IRule.cs | Changes the rule contract from GetSourceType() to a SourceType property. |
| Engine/Generic/ExternalRule.cs | Updates external rule implementation to SourceType property. |
| Engine/Generic/ConfigurableRule.cs | Replaces abstract GetSourceType() with abstract SourceType property. |
| Engine/Generic/AvoidParameterGeneric.cs | Replaces abstract GetSourceType() with abstract SourceType property. |
| Engine/Generic/AvoidCmdletGeneric.cs | Replaces abstract GetSourceType() with abstract SourceType property. |
| Engine/Commands/GetScriptAnalyzerRuleCommand.cs | Switches to reading rule.SourceType when producing RuleInfo. |
Engine/Generic/RuleSourceType.cs:10
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Sorry, something went wrong.
There was a problem hiding this comment.
since the only value of this is to reduce number of lines of code and there are still many others methods left, it leaves state after this PR inconsistent. I think we have to make a decision first whether we want to go through this or not Andy Jordan (@andyleejordan) and if so we need to do it all in one go
Sorry, something went wrong.
This seems like something that could all be done in go by Opus 4.7 pretty easily. Let's not piecemeal it. |
Sorry, something went wrong.
Sure. I am marking request as "wip", will finish it soon. |
Sorry, something went wrong.
* Refactor methods into one-liners using lambda operator. * Add automatic code style check into build process.
| function Test-CodeStyle | ||
| { | ||
| if ( -not $script:DotnetExe ) { | ||
| $script:DotnetExe = Get-DotnetExe | ||
| } | ||
| $dotnetArgs = "format", | ||
| "--verify-no-changes", | ||
| "style" | ||
| $formatOutput = & $script:DotnetExe $dotnetArgs 2>&1 | ||
| if ( $LASTEXITCODE -ne 0 ) { | ||
| Write-Verbose -Verbose -Message "dotnet is $(${script:DotnetExe}.Source)" | ||
| $dotnetArgs | Foreach-Object {"dotnetArg: $_"} | Write-Verbose -Verbose | ||
| Get-PSCallStack | Write-Verbose -Verbose | ||
| Write-Verbose -Verbose -Message "$formatOutput" | ||
| throw "Please, fix code style via running 'dotnet format style' command." | ||
| } | ||
| } |
| Back | FazBrowse Home | New Git URL |
PR Summary
Motivation:
I consider these changes useful, because such refactoring allows to reduce the total amount of code in the rules, thereby the developer will be more focused on the logic of the rule itself. In the future, it is planned to complete refactoring with other code style rules.
PR Checklist