Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitbac94be

Browse files
cartermpKevinRansom
authored andcommitted
Trigger add open for FS0043 (dotnet#2474)
* Trigger add open for FS0043* Contains -> StartsWith* fixed: AddOpenCodeFixProvider may suggest name qualifying for operators
1 parentaf61981 commitbac94be

File tree

2 files changed

+10
-7
lines changed

2 files changed

+10
-7
lines changed

‎src/fsharp/vs/ServiceAssemblyContent.fs‎

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -437,7 +437,8 @@ type internal Entity =
437437
{ FullRelativeName:LongIdent
438438
Qualifier:LongIdent
439439
Namespace:LongIdent option
440-
Name:LongIdent}
440+
Name:LongIdent
441+
LastIdent:string}
441442
overridex.ToString()= sprintf"%A" x
442443

443444
[<CompilationRepresentation(CompilationRepresentationFlags.ModuleSuffix)>]
@@ -512,7 +513,8 @@ module internal Entity =
512513
{ FullRelativeName= String.concat"." fullRelativeName//.[0..fullRelativeName.Length - identCount - 1]
513514
Qualifier= String.concat"." qualifier
514515
Namespace= ns
515-
Name=match restIdentswith[|_|]->""|_-> String.concat"." restIdents})
516+
Name=match restIdentswith[|_|]->""|_-> String.concat"." restIdents
517+
LastIdent= Array.tryLast restIdents|> Option.defaultValue""})
516518

517519
typeinternalScopeKind=
518520
| Namespace

‎vsintegration/src/FSharp.Editor/CodeFix/AddOpenCodeFixProvider.fs‎

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ type internal FSharpAddOpenCodeFixProvider
8585
assemblyContentProvider: AssemblyContentProvider
8686
)=
8787
inherit CodeFixProvider()
88-
letfixableDiagnosticIds=["FS0039"]
88+
letfixableDiagnosticIds=["FS0039";"FS0043"]
8989

9090
letchecker= checkerProvider.Checker
9191
letfixUnderscoresInMenuText(text:string)= text.Replace("_","__")
@@ -131,15 +131,16 @@ type internal FSharpAddOpenCodeFixProvider
131131
openNamespaceFix context ctx name ns multipleNames)
132132
|> Seq.toList
133133

134-
letquilifySymbolFixes=
134+
letqualifiedSymbolFixes=
135135
candidates
136+
|> Seq.filter(fun(entity,_)->not(entity.LastIdent.StartsWith"op_"))// Don't include qualified operator names. The resultant codefix won't compile because it won't be an infix operator anymore.
136137
|> Seq.map(fun(entity,_)-> entity.FullRelativeName, entity.Qualifier)
137138
|> Seq.distinct
138139
|> Seq.sort
139140
|> Seq.map(qualifySymbolFix context)
140141
|> Seq.toList
141142

142-
for codeFixin openNamespaceFixes@quilifySymbolFixesdo
143+
for codeFixin openNamespaceFixes@qualifiedSymbolFixesdo
143144
context.RegisterCodeFix(codeFix,(context.Diagnostics|> Seq.filter(fun x-> fixableDiagnosticIds|> List.contains x.Id)).ToImmutableArray())
144145

145146
override__.FixableDiagnosticIds= fixableDiagnosticIds.ToImmutableArray()
@@ -181,9 +182,9 @@ type internal FSharpAddOpenCodeFixProvider
181182
longIdent
182183
|> List.map(fun ident->
183184
{ Ident= ident.idText
184-
Resolved=not(ident.idRange= unresolvedIdentRange)})
185+
Resolved=not(ident.idRange= unresolvedIdentRange)})
185186
|> List.toArray)
186-
187+
187188
letcreateEntity= ParsedInput.tryFindInsertionContext unresolvedIdentRange.StartLine parsedInput maybeUnresolvedIdents
188189
return entities|> Seq.map createEntity|> Seq.concat|> Seq.toList|> getSuggestions context
189190
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp