Skip to content

Commit d5e0d0f

Browse files
authored
Merge pull request #152 from TheAngryByrd/147-ReturnStructPartialActivePatternAnalyzer-ProjectOptions-Fix
Update FSharp.Analyzers.SDK 0.32.0 and Fixed ReturnStructPartialActivePatternAnalyzer ProjectOptions when using TransparentCompiler in EditorContext
2 parents 8bf9a68 + 4c9b9ba commit d5e0d0f

File tree

4 files changed

+19
-11
lines changed

4 files changed

+19
-11
lines changed

.config/dotnet-tools.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"isRoot": true,
44
"tools": {
55
"fsharp-analyzers": {
6-
"version": "0.31.0",
6+
"version": "0.32.0",
77
"commands": [
88
"fsharp-analyzers"
99
]

Directory.Packages.props

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
<PackageVersion Include="MSBuild.StructuredLogger" Version="2.2.374" />
1515
</ItemGroup>
1616
<ItemGroup Condition="'$(UseLocalAnalyzersSDK)' == 'false'">
17-
<PackageVersion Include="FSharp.Analyzers.SDK" Version="[0.31.0]" />
18-
<PackageVersion Include="FSharp.Analyzers.SDK.Testing" Version="[0.31.0]" />
17+
<PackageVersion Include="FSharp.Analyzers.SDK" Version="[0.32.0]" />
18+
<PackageVersion Include="FSharp.Analyzers.SDK.Testing" Version="[0.32.0]" />
1919
</ItemGroup>
2020
</Project>

src/Ionide.Analyzers/LanguageVersionShim.fs

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -98,12 +98,14 @@ module LanguageVersionShim =
9898
/// <returns></returns>
9999
let private defaultLanguageVersion = lazy (LanguageVersionShim("latest"))
100100

101-
/// <summary>Tries to parse out "--langversion:" from OtherOptions if it can't find it, returns defaultLanguageVersion</summary>
102-
/// <param name="fpo">The FSharpProjectOptions to use</param>
103-
/// <returns>A LanguageVersionShim from the parsed "--langversion:" or defaultLanguageVersion </returns>
104-
let fromFSharpProjectOptions (fpo: FSharpProjectOptions) =
105-
fpo.OtherOptions
106-
|> Array.tryFind (fun x -> x.StartsWith("--langversion:", StringComparison.Ordinal))
101+
let fromOtherOptions (otherOptions: string seq) =
102+
otherOptions
103+
|> Seq.tryFind (fun x -> x.StartsWith("--langversion:", StringComparison.Ordinal))
107104
|> Option.map (fun x -> x.Split(":")[1])
108105
|> Option.map (fun x -> LanguageVersionShim(x))
109106
|> Option.defaultWith (fun () -> defaultLanguageVersion.Value)
107+
108+
/// <summary>Tries to parse out "--langversion:" from OtherOptions if it can't find it, returns defaultLanguageVersion</summary>
109+
/// <param name="fpo">The FSharpProjectOptions to use</param>
110+
/// <returns>A LanguageVersionShim from the parsed "--langversion:" or defaultLanguageVersion </returns>
111+
let fromFSharpProjectOptions (fpo: FSharpProjectOptions) = fpo.OtherOptions |> fromOtherOptions

src/Ionide.Analyzers/Performance/ReturnStructPartialActivePatternAnalyzer.fs

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -210,10 +210,11 @@ let runIfLanguageFeatureIsSupported
210210
(sourceText: ISourceText)
211211
(parsedInput: ParsedInput)
212212
(checkResults: FSharpCheckFileResults)
213+
(projectOptions: AnalyzerProjectOptions)
213214
: Message list
214215
=
215216
let languageVersionShim =
216-
LanguageVersionShim.fromFSharpProjectOptions checkResults.ProjectContext.ProjectOptions
217+
LanguageVersionShim.fromOtherOptions projectOptions.OtherOptions
217218

218219
if not (languageVersionShim.SupportsFeature(languageFeature.Value)) then
219220
[]
@@ -229,6 +230,7 @@ let returnStructPartialActivePatternCliAnalyzer: Analyzer<CliContext> =
229230
context.SourceText
230231
context.ParseFileResults.ParseTree
231232
context.CheckFileResults
233+
context.ProjectOptions
232234
}
233235

234236
[<EditorAnalyzer(name, shortDescription, helpUri)>]
@@ -239,5 +241,9 @@ let returnStructPartialActivePatternEditorAnalyzer: Analyzer<EditorContext> =
239241
| None -> return []
240242
| Some checkResults ->
241243
return
242-
runIfLanguageFeatureIsSupported context.SourceText context.ParseFileResults.ParseTree checkResults
244+
runIfLanguageFeatureIsSupported
245+
context.SourceText
246+
context.ParseFileResults.ParseTree
247+
checkResults
248+
context.ProjectOptions
243249
}

0 commit comments

Comments
 (0)