Join GitHub today
GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.
Sign upWhat the hosted PSSA could look like #1078
Draft
Conversation
...hellEditorServices/Services/TextDocument/Handlers/TextDocumentHandler.cs
Outdated
Show resolved
Hide resolved
04c3440
to
e5aac44
JamesWTruher
added a commit
to JamesWTruher/PSScriptAnalyzer
that referenced
this pull request
Nov 12, 2019
e5aac44
to
a038c32
|
Issues
======
+ Solved 18
- Added 1
Complexity increasing per file
==============================
- src/PowerShellEditorServices/Services/Analysis/AnalysisService.cs 5
- src/PowerShellEditorServices/Services/Analysis/MarkerCorrection.cs 1
- src/PowerShellEditorServices/Services/Analysis/DiagnosticCreationHelper.cs 4
Complexity decreasing per file
==============================
+ src/PowerShellEditorServices/Services/TextDocument/Handlers/FormattingHandlers.cs -1
+ src/PowerShellEditorServices/Services/PowerShellContext/Handlers/GetCommentHelpHandler.cs -4
See the complete overview on Codacy |
| } | ||
| // If cancellation didn't throw an exception, | ||
| // clean up the existing token | ||
| _existingRequestCancellation.Dispose(); |
| _analyzerSettings = _analyzer.CreateSettings(s_includedRules); | ||
| _analyzerSettings.Severities.AddRange(new [] { | ||
| RuleSeverity.Error.ToString(), | ||
| RuleSeverity.Information.ToString(), |
rjmholt
Dec 10, 2019
Member
Should this be RuleSeverity.Warning? Why is it that these are strings if we've gone to the effort to load the types?
Should this be RuleSeverity.Warning? Why is it that these are strings if we've gone to the effort to load the types?
| scriptFile.DiagnosticMarkers); | ||
| } | ||
| } | ||
| if (!ct.CanBeCanceled || ct.IsCancellationRequested) |
rjmholt
Dec 10, 2019
Member
Why do we break if we can't cancel the token?
Why do we break if we can't cancel the token?
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
This is DRAFT. CI will fail because there's no nuget package on nuget.org!
This is the bare minimum work that I would do to adopt the hosted analyzer. It already cuts the code in
AnalysisService.csby half!I recommend just looking at my version of the
AnalysisService.csand looking around forHostedAnalyzer,Analyze(,Format(- so you can see how the hosted analyzer is used there.Some additional work that could be done:
Hashtable(when pertaining to PSSA) with the properSettingstypeRemove theScriptFileMarkertype which seems to be some intermediate type between aDiagnosticRecordfrom PSSA and the outgoing (aka language server protocol) type ofDiagnostic. I tried it, it's totally possible to switch over to usingDiagnosticeverywhereScriptFileMarkeris used. That would remove another type and a good chunk of code.ScriptFileMarkeris gone, we can continue to remove random types likeMarkerCorrectioncould be removed but this involves understanding CodeAction request morecc @JamesWTruher
Some notes that I took on the Hosted Analyzer:
Analyze()-Invoke-ScriptAnalyzerhas a-Severityparam. Can we have aseverityparam?Fix()-Invoke-FormatterHas a-Rangeparameter that we use. Can we have arangeparameter?Settings.*RuleArgument()- should returnSettingsobjects so we can chain them like the builder patternFormat()-Invoke-FormatterHas a-Rangeparameter that we use. Can we have arangeparameter?Settingsobject from a list of strings (which are the rules we care about)?No they should not.Fix()&Format()- should those also have the ability to pass the AST in addition to the script?Cancellation support... this might be too much work... but it'd be nice. I've kinda worked around it in this PR by "cancelling" anything else after we get a response back fromdeferred.Analyze()