Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
dotNET Platform
fsharp
提交
c5ef51f7
F
fsharp
项目概览
dotNET Platform
/
fsharp
11 个月 前同步成功
通知
0
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
F
fsharp
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
c5ef51f7
编写于
4月 06, 2023
作者:
P
Petr
提交者:
GitHub
4月 06, 2023
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Extra telemetry for codefixes (#15035)
上级
b1619b62
变更
27
隐藏空白更改
内联
并排
Showing
27 changed file
with
188 addition
and
54 deletion
+188
-54
vsintegration/src/FSharp.Editor/CodeFix/AddInstanceMemberParameter.fs
...n/src/FSharp.Editor/CodeFix/AddInstanceMemberParameter.fs
+2
-1
vsintegration/src/FSharp.Editor/CodeFix/AddMissingEqualsToTypeDefinition.fs
...FSharp.Editor/CodeFix/AddMissingEqualsToTypeDefinition.fs
+2
-3
vsintegration/src/FSharp.Editor/CodeFix/AddMissingFunKeyword.fs
...gration/src/FSharp.Editor/CodeFix/AddMissingFunKeyword.fs
+2
-1
vsintegration/src/FSharp.Editor/CodeFix/AddNewKeywordToDisposableConstructorInvocation.fs
...CodeFix/AddNewKeywordToDisposableConstructorInvocation.fs
+2
-1
vsintegration/src/FSharp.Editor/CodeFix/AddOpenCodeFixProvider.fs
...ation/src/FSharp.Editor/CodeFix/AddOpenCodeFixProvider.fs
+2
-1
vsintegration/src/FSharp.Editor/CodeFix/ChangePrefixNegationToInfixSubtraction.fs
....Editor/CodeFix/ChangePrefixNegationToInfixSubtraction.fs
+2
-1
vsintegration/src/FSharp.Editor/CodeFix/ChangeRefCellDerefToNotExpression.fs
...Sharp.Editor/CodeFix/ChangeRefCellDerefToNotExpression.fs
+7
-2
vsintegration/src/FSharp.Editor/CodeFix/ChangeToUpcast.fs
vsintegration/src/FSharp.Editor/CodeFix/ChangeToUpcast.fs
+2
-1
vsintegration/src/FSharp.Editor/CodeFix/CodeFixHelpers.fs
vsintegration/src/FSharp.Editor/CodeFix/CodeFixHelpers.fs
+16
-3
vsintegration/src/FSharp.Editor/CodeFix/ConvertCSharpLambdaToFSharpLambda.fs
...Sharp.Editor/CodeFix/ConvertCSharpLambdaToFSharpLambda.fs
+7
-2
vsintegration/src/FSharp.Editor/CodeFix/ConvertCSharpUsingToFSharpOpen.fs
...c/FSharp.Editor/CodeFix/ConvertCSharpUsingToFSharpOpen.fs
+7
-2
vsintegration/src/FSharp.Editor/CodeFix/ConvertToNotEqualsEqualityExpression.fs
...rp.Editor/CodeFix/ConvertToNotEqualsEqualityExpression.fs
+7
-2
vsintegration/src/FSharp.Editor/CodeFix/ConvertToSingleEqualsEqualityExpression.fs
...Editor/CodeFix/ConvertToSingleEqualsEqualityExpression.fs
+7
-2
vsintegration/src/FSharp.Editor/CodeFix/FixIndexerAccess.fs
vsintegration/src/FSharp.Editor/CodeFix/FixIndexerAccess.fs
+5
-4
vsintegration/src/FSharp.Editor/CodeFix/MakeDeclarationMutable.fs
...ation/src/FSharp.Editor/CodeFix/MakeDeclarationMutable.fs
+2
-4
vsintegration/src/FSharp.Editor/CodeFix/MakeOuterBindingRecursive.fs
...on/src/FSharp.Editor/CodeFix/MakeOuterBindingRecursive.fs
+2
-1
vsintegration/src/FSharp.Editor/CodeFix/RemoveReturnOrYield.fs
...egration/src/FSharp.Editor/CodeFix/RemoveReturnOrYield.fs
+2
-1
vsintegration/src/FSharp.Editor/CodeFix/RemoveSuperflousCaptureForUnionCaseWithNoData.fs
.../CodeFix/RemoveSuperflousCaptureForUnionCaseWithNoData.fs
+2
-7
vsintegration/src/FSharp.Editor/CodeFix/RemoveUnusedBinding.fs
...egration/src/FSharp.Editor/CodeFix/RemoveUnusedBinding.fs
+7
-2
vsintegration/src/FSharp.Editor/CodeFix/RemoveUnusedOpens.fs
vsintegration/src/FSharp.Editor/CodeFix/RemoveUnusedOpens.fs
+2
-2
vsintegration/src/FSharp.Editor/CodeFix/RenameParamToMatchSignature.fs
.../src/FSharp.Editor/CodeFix/RenameParamToMatchSignature.fs
+2
-2
vsintegration/src/FSharp.Editor/CodeFix/RenameUnusedValue.fs
vsintegration/src/FSharp.Editor/CodeFix/RenameUnusedValue.fs
+3
-1
vsintegration/src/FSharp.Editor/CodeFix/ReplaceWithSuggestion.fs
...ration/src/FSharp.Editor/CodeFix/ReplaceWithSuggestion.fs
+2
-1
vsintegration/src/FSharp.Editor/CodeFix/SimplifyName.fs
vsintegration/src/FSharp.Editor/CodeFix/SimplifyName.fs
+2
-1
vsintegration/src/FSharp.Editor/CodeFix/UseMutationWhenValueIsMutable.fs
...rc/FSharp.Editor/CodeFix/UseMutationWhenValueIsMutable.fs
+2
-4
vsintegration/src/FSharp.Editor/CodeFix/UseTripleQuotedInterpolation.fs
...src/FSharp.Editor/CodeFix/UseTripleQuotedInterpolation.fs
+7
-2
vsintegration/src/FSharp.Editor/Common/Constants.fs
vsintegration/src/FSharp.Editor/Common/Constants.fs
+83
-0
未找到文件。
vsintegration/src/FSharp.Editor/CodeFix/AddInstanceMemberParameter.fs
浏览文件 @
c5ef51f7
...
...
@@ -8,7 +8,7 @@ open System.Threading.Tasks
open
Microsoft
.
CodeAnalysis
.
Text
open
Microsoft
.
CodeAnalysis
.
CodeFixes
[<
ExportCodeFixProvider
(
FSharpConstants
.
FSharpLanguageName
,
Name
=
"AddInstanceMemberParameter"
);
Shared
>]
[<
ExportCodeFixProvider
(
FSharpConstants
.
FSharpLanguageName
,
Name
=
CodeFix
.
AddInstanceMemberParameter
);
Shared
>]
type
internal
FSharpAddInstanceMemberParameterCodeFixProvider
()
=
inherit
CodeFixProvider
()
...
...
@@ -27,6 +27,7 @@ type internal FSharpAddInstanceMemberParameterCodeFixProvider() =
let
codeFix
=
CodeFixHelpers
.
createTextChangeCodeFix
(
CodeFix
.
AddInstanceMemberParameter
,
title
,
context
,
(
fun
()
->
asyncMaybe
.
Return
[|
TextChange
(
TextSpan
(
context
.
Span
.
Start
,
0
),
"x."
)
|])
...
...
vsintegration/src/FSharp.Editor/CodeFix/AddMissingEqualsToTypeDefinition.fs
浏览文件 @
c5ef51f7
...
...
@@ -6,12 +6,10 @@ open System
open
System
.
Composition
open
System
.
Threading
.
Tasks
open
Microsoft
.
VisualStudio
.
FSharp
.
Editor
.
Logging
open
Microsoft
.
CodeAnalysis
.
Text
open
Microsoft
.
CodeAnalysis
.
CodeFixes
[<
ExportCodeFixProvider
(
FSharpConstants
.
FSharpLanguageName
,
Name
=
"AddMissingEqualsToTypeDefinition"
);
Shared
>]
[<
ExportCodeFixProvider
(
FSharpConstants
.
FSharpLanguageName
,
Name
=
CodeFix
.
AddMissingEqualsToTypeDefinition
);
Shared
>]
type
internal
FSharpAddMissingEqualsToTypeDefinitionCodeFixProvider
()
=
inherit
CodeFixProvider
()
...
...
@@ -43,6 +41,7 @@ type internal FSharpAddMissingEqualsToTypeDefinitionCodeFixProvider() =
let
codeFix
=
CodeFixHelpers
.
createTextChangeCodeFix
(
CodeFix
.
AddMissingEqualsToTypeDefinition
,
title
,
context
,
// 'pos + 1' is here because 'pos' is now the position of the first non-whitespace character.
...
...
vsintegration/src/FSharp.Editor/CodeFix/AddMissingFunKeyword.fs
浏览文件 @
c5ef51f7
...
...
@@ -11,7 +11,7 @@ open Microsoft.CodeAnalysis.CodeFixes
open
FSharp
.
Compiler
open
FSharp
.
Compiler
.
CodeAnalysis
[<
ExportCodeFixProvider
(
FSharpConstants
.
FSharpLanguageName
,
Name
=
"AddMissingFunKeyword"
);
Shared
>]
[<
ExportCodeFixProvider
(
FSharpConstants
.
FSharpLanguageName
,
Name
=
CodeFix
.
AddMissingFunKeyword
);
Shared
>]
type
internal
FSharpAddMissingFunKeywordCodeFixProvider
[<
ImportingConstructor
>]
()
=
inherit
CodeFixProvider
()
...
...
@@ -65,6 +65,7 @@ type internal FSharpAddMissingFunKeywordCodeFixProvider [<ImportingConstructor>]
let
codeFix
=
CodeFixHelpers
.
createTextChangeCodeFix
(
CodeFix
.
AddMissingFunKeyword
,
title
,
context
,
(
fun
()
->
asyncMaybe
.
Return
[|
TextChange
(
TextSpan
(
intendedArgSpan
.
Start
,
0
),
"fun "
)
|])
...
...
vsintegration/src/FSharp.Editor/CodeFix/AddNewKeywordToDisposableConstructorInvocation.fs
浏览文件 @
c5ef51f7
...
...
@@ -8,7 +8,7 @@ open System.Threading.Tasks
open
Microsoft
.
CodeAnalysis
.
Text
open
Microsoft
.
CodeAnalysis
.
CodeFixes
[<
ExportCodeFixProvider
(
FSharpConstants
.
FSharpLanguageName
,
Name
=
"AddNewKeyword"
);
Shared
>]
[<
ExportCodeFixProvider
(
FSharpConstants
.
FSharpLanguageName
,
Name
=
CodeFix
.
AddNewKeyword
);
Shared
>]
type
internal
FSharpAddNewKeywordCodeFixProvider
()
=
inherit
CodeFixProvider
()
...
...
@@ -27,6 +27,7 @@ type internal FSharpAddNewKeywordCodeFixProvider() =
let
codeFix
=
CodeFixHelpers
.
createTextChangeCodeFix
(
CodeFix
.
AddNewKeyword
,
title
,
context
,
(
fun
()
->
asyncMaybe
.
Return
[|
TextChange
(
TextSpan
(
context
.
Span
.
Start
,
0
),
"new "
)
|])
...
...
vsintegration/src/FSharp.Editor/CodeFix/AddOpenCodeFixProvider.fs
浏览文件 @
c5ef51f7
...
...
@@ -17,7 +17,7 @@ open FSharp.Compiler.CodeAnalysis
open
FSharp
.
Compiler
.
EditorServices
open
FSharp
.
Compiler
.
Text
[<
ExportCodeFixProvider
(
FSharpConstants
.
FSharpLanguageName
,
Name
=
"AddOpen"
);
Shared
>]
[<
ExportCodeFixProvider
(
FSharpConstants
.
FSharpLanguageName
,
Name
=
CodeFix
.
AddOpen
);
Shared
>]
type
internal
FSharpAddOpenCodeFixProvider
[<
ImportingConstructor
>]
(
assemblyContentProvider
:
AssemblyContentProvider
)
=
inherit
CodeFixProvider
()
...
...
@@ -27,6 +27,7 @@ type internal FSharpAddOpenCodeFixProvider [<ImportingConstructor>] (assemblyCon
let
qualifySymbolFix
(
context
:
CodeFixContext
)
(
fullName
,
qualifier
)
=
CodeFixHelpers
.
createTextChangeCodeFix
(
CodeFix
.
AddOpen
,
fixUnderscoresInMenuText
fullName
,
context
,
(
fun
()
->
asyncMaybe
.
Return
[|
TextChange
(
context
.
Span
,
qualifier
)
|])
...
...
vsintegration/src/FSharp.Editor/CodeFix/ChangePrefixNegationToInfixSubtraction.fs
浏览文件 @
c5ef51f7
...
...
@@ -9,7 +9,7 @@ open System.Threading.Tasks
open
Microsoft
.
CodeAnalysis
.
Text
open
Microsoft
.
CodeAnalysis
.
CodeFixes
[<
ExportCodeFixProvider
(
FSharpConstants
.
FSharpLanguageName
,
Name
=
"ChangePrefixNegationToInfixSubtraction"
);
Shared
>]
[<
ExportCodeFixProvider
(
FSharpConstants
.
FSharpLanguageName
,
Name
=
CodeFix
.
ChangePrefixNegationToInfixSubtraction
);
Shared
>]
type
internal
FSharpChangePrefixNegationToInfixSubtractionodeFixProvider
()
=
inherit
CodeFixProvider
()
...
...
@@ -44,6 +44,7 @@ type internal FSharpChangePrefixNegationToInfixSubtractionodeFixProvider() =
let
codeFix
=
CodeFixHelpers
.
createTextChangeCodeFix
(
CodeFix
.
ChangePrefixNegationToInfixSubtraction
,
title
,
context
,
(
fun
()
->
asyncMaybe
.
Return
[|
TextChange
(
TextSpan
(
pos
,
1
),
"- "
)
|])
...
...
vsintegration/src/FSharp.Editor/CodeFix/ChangeRefCellDerefToNotExpression.fs
浏览文件 @
c5ef51f7
...
...
@@ -8,7 +8,7 @@ open System.Threading.Tasks
open
Microsoft
.
CodeAnalysis
.
Text
open
Microsoft
.
CodeAnalysis
.
CodeFixes
[<
ExportCodeFixProvider
(
FSharpConstants
.
FSharpLanguageName
,
Name
=
"ChangeRefCellDerefToNotExpression"
);
Shared
>]
[<
ExportCodeFixProvider
(
FSharpConstants
.
FSharpLanguageName
,
Name
=
CodeFix
.
ChangeRefCellDerefToNotExpression
);
Shared
>]
type
internal
FSharpChangeRefCellDerefToNotExpressionCodeFixProvider
[<
ImportingConstructor
>]
()
=
inherit
CodeFixProvider
()
...
...
@@ -40,7 +40,12 @@ type internal FSharpChangeRefCellDerefToNotExpressionCodeFixProvider [<Importing
|>
Seq
.
toImmutableArray
let
codeFix
=
CodeFixHelpers
.
createTextChangeCodeFix
(
title
,
context
,
(
fun
()
->
asyncMaybe
.
Return
[|
TextChange
(
derefSpan
,
"not "
)
|]))
CodeFixHelpers
.
createTextChangeCodeFix
(
CodeFix
.
ChangeRefCellDerefToNotExpression
,
title
,
context
,
(
fun
()
->
asyncMaybe
.
Return
[|
TextChange
(
derefSpan
,
"not "
)
|])
)
context
.
RegisterCodeFix
(
codeFix
,
diagnostics
)
}
...
...
vsintegration/src/FSharp.Editor/CodeFix/ChangeToUpcast.fs
浏览文件 @
c5ef51f7
...
...
@@ -8,7 +8,7 @@ open System.Threading.Tasks
open
Microsoft
.
CodeAnalysis
.
Text
open
Microsoft
.
CodeAnalysis
.
CodeFixes
[<
ExportCodeFixProvider
(
FSharpConstants
.
FSharpLanguageName
,
Name
=
"ChangeToUpcast"
);
Shared
>]
[<
ExportCodeFixProvider
(
FSharpConstants
.
FSharpLanguageName
,
Name
=
CodeFix
.
ChangeToUpcast
);
Shared
>]
type
internal
FSharpChangeToUpcastCodeFixProvider
()
=
inherit
CodeFixProvider
()
...
...
@@ -50,6 +50,7 @@ type internal FSharpChangeToUpcastCodeFixProvider() =
let
codeFix
=
CodeFixHelpers
.
createTextChangeCodeFix
(
CodeFix
.
ChangeToUpcast
,
title
,
context
,
(
fun
()
->
asyncMaybe
.
Return
[|
TextChange
(
context
.
Span
,
replacement
)
|])
...
...
vsintegration/src/FSharp.Editor/CodeFix/CodeFixHelpers.fs
浏览文件 @
c5ef51f7
...
...
@@ -11,9 +11,22 @@ open Microsoft.VisualStudio.FSharp.Editor.Telemetry
[<
RequireQualifiedAccess
>]
module
internal
CodeFixHelpers
=
let
createTextChangeCodeFix
(
title
:
string
,
context
:
CodeFixContext
,
computeTextChanges
:
unit
->
Async
<
TextChange
[]
option
>)
=
let
createTextChangeCodeFix
(
name
:
string
,
title
:
string
,
context
:
CodeFixContext
,
computeTextChanges
:
unit
->
Async
<
TextChange
[]
option
>
)
=
// I don't understand how we can get anything but a single diagnostic here - as we get a single "title" here.
// But since we don't have proper testing yet, keeping it like this to verify this theory in telemetry.
let
ids
=
context
.
Diagnostics
|>
Seq
.
map
(
fun
d
->
d
.
Id
)
|>
String
.
concat
","
let
props
:
(
string
*
obj
)
list
=
[
"name"
,
name
"ids"
,
ids
"title"
,
title
// The following can help building a unique but anonymized codefix target:
...
...
@@ -53,8 +66,8 @@ module internal CodeFixExtensions =
member
this
.
GetPrunedDiagnostics
(
context
:
CodeFixContext
)
=
context
.
Diagnostics
.
RemoveAll
(
fun
x
->
this
.
FixableDiagnosticIds
.
Contains
(
x
.
Id
)
|>
not
)
member
this
.
RegisterFix
(
context
:
CodeFixContext
,
fixName
,
fixChange
)
=
member
this
.
RegisterFix
(
name
,
title
,
context
:
CodeFixContext
,
fixChange
)
=
let
replaceCodeFix
=
CodeFixHelpers
.
createTextChangeCodeFix
(
fixNam
e
,
context
,
(
fun
()
->
asyncMaybe
.
Return
[|
fixChange
|]))
CodeFixHelpers
.
createTextChangeCodeFix
(
name
,
titl
e
,
context
,
(
fun
()
->
asyncMaybe
.
Return
[|
fixChange
|]))
context
.
RegisterCodeFix
(
replaceCodeFix
,
this
.
GetPrunedDiagnostics
(
context
))
vsintegration/src/FSharp.Editor/CodeFix/ConvertCSharpLambdaToFSharpLambda.fs
浏览文件 @
c5ef51f7
...
...
@@ -7,7 +7,7 @@ open System.Composition
open
Microsoft
.
CodeAnalysis
.
Text
open
Microsoft
.
CodeAnalysis
.
CodeFixes
[<
ExportCodeFixProvider
(
FSharpConstants
.
FSharpLanguageName
,
Name
=
"ConvertCSharpLambdaToFSharpLambda"
);
Shared
>]
[<
ExportCodeFixProvider
(
FSharpConstants
.
FSharpLanguageName
,
Name
=
CodeFix
.
ConvertCSharpLambdaToFSharpLambda
);
Shared
>]
type
internal
FSharpConvertCSharpLambdaToFSharpLambdaCodeFixProvider
[<
ImportingConstructor
>]
()
=
inherit
CodeFixProvider
()
...
...
@@ -46,7 +46,12 @@ type internal FSharpConvertCSharpLambdaToFSharpLambdaCodeFixProvider [<Importing
let
title
=
SR
.
UseFSharpLambda
()
let
codeFix
=
CodeFixHelpers
.
createTextChangeCodeFix
(
title
,
context
,
(
fun
()
->
asyncMaybe
.
Return
[|
replacement
|]))
CodeFixHelpers
.
createTextChangeCodeFix
(
CodeFix
.
ConvertCSharpLambdaToFSharpLambda
,
title
,
context
,
(
fun
()
->
asyncMaybe
.
Return
[|
replacement
|])
)
context
.
RegisterCodeFix
(
codeFix
,
diagnostics
)
}
...
...
vsintegration/src/FSharp.Editor/CodeFix/ConvertCSharpUsingToFSharpOpen.fs
浏览文件 @
c5ef51f7
...
...
@@ -10,7 +10,7 @@ open Microsoft.CodeAnalysis
open
Microsoft
.
CodeAnalysis
.
Text
open
Microsoft
.
CodeAnalysis
.
CodeFixes
[<
ExportCodeFixProvider
(
FSharpConstants
.
FSharpLanguageName
,
Name
=
"ConvertCSharpUsingToFSharpOpen"
);
Shared
>]
[<
ExportCodeFixProvider
(
FSharpConstants
.
FSharpLanguageName
,
Name
=
CodeFix
.
ConvertCSharpUsingToFSharpOpen
);
Shared
>]
type
internal
FSharpConvertCSharpUsingToFSharpOpen
[<
ImportingConstructor
>]
()
=
inherit
CodeFixProvider
()
...
...
@@ -47,7 +47,12 @@ type internal FSharpConvertCSharpUsingToFSharpOpen [<ImportingConstructor>] () =
let
title
=
SR
.
ConvertCSharpUsingToFSharpOpen
()
let
codeFix
=
CodeFixHelpers
.
createTextChangeCodeFix
(
title
,
context
,
(
fun
()
->
asyncMaybe
.
Return
[|
replacement
|]))
CodeFixHelpers
.
createTextChangeCodeFix
(
CodeFix
.
ConvertCSharpUsingToFSharpOpen
,
title
,
context
,
(
fun
()
->
asyncMaybe
.
Return
[|
replacement
|])
)
context
.
RegisterCodeFix
(
codeFix
,
diagnostics
)
...
...
vsintegration/src/FSharp.Editor/CodeFix/ConvertToNotEqualsEqualityExpression.fs
浏览文件 @
c5ef51f7
...
...
@@ -8,7 +8,7 @@ open System.Threading.Tasks
open
Microsoft
.
CodeAnalysis
.
Text
open
Microsoft
.
CodeAnalysis
.
CodeFixes
[<
ExportCodeFixProvider
(
FSharpConstants
.
FSharpLanguageName
,
Name
=
"ConvertToNotEqualsEqualityExpression"
);
Shared
>]
[<
ExportCodeFixProvider
(
FSharpConstants
.
FSharpLanguageName
,
Name
=
CodeFix
.
ConvertToNotEqualsEqualityExpression
);
Shared
>]
type
internal
FSharpConvertToNotEqualsEqualityExpressionCodeFixProvider
()
=
inherit
CodeFixProvider
()
...
...
@@ -33,7 +33,12 @@ type internal FSharpConvertToNotEqualsEqualityExpressionCodeFixProvider() =
|>
Seq
.
toImmutableArray
let
codeFix
=
CodeFixHelpers
.
createTextChangeCodeFix
(
title
,
context
,
(
fun
()
->
asyncMaybe
.
Return
[|
TextChange
(
context
.
Span
,
"<>"
)
|]))
CodeFixHelpers
.
createTextChangeCodeFix
(
CodeFix
.
ConvertToNotEqualsEqualityExpression
,
title
,
context
,
(
fun
()
->
asyncMaybe
.
Return
[|
TextChange
(
context
.
Span
,
"<>"
)
|])
)
context
.
RegisterCodeFix
(
codeFix
,
diagnostics
)
}
...
...
vsintegration/src/FSharp.Editor/CodeFix/ConvertToSingleEqualsEqualityExpression.fs
浏览文件 @
c5ef51f7
...
...
@@ -8,7 +8,7 @@ open System.Threading.Tasks
open
Microsoft
.
CodeAnalysis
.
Text
open
Microsoft
.
CodeAnalysis
.
CodeFixes
[<
ExportCodeFixProvider
(
FSharpConstants
.
FSharpLanguageName
,
Name
=
"ConvertToSingleEqualsEqualityExpression"
);
Shared
>]
[<
ExportCodeFixProvider
(
FSharpConstants
.
FSharpLanguageName
,
Name
=
CodeFix
.
ConvertToSingleEqualsEqualityExpression
);
Shared
>]
type
internal
FSharpConvertToSingleEqualsEqualityExpressionCodeFixProvider
()
=
inherit
CodeFixProvider
()
...
...
@@ -33,7 +33,12 @@ type internal FSharpConvertToSingleEqualsEqualityExpressionCodeFixProvider() =
|>
Seq
.
toImmutableArray
let
codeFix
=
CodeFixHelpers
.
createTextChangeCodeFix
(
title
,
context
,
(
fun
()
->
asyncMaybe
.
Return
[|
TextChange
(
context
.
Span
,
"="
)
|]))
CodeFixHelpers
.
createTextChangeCodeFix
(
CodeFix
.
ConvertToSingleEqualsEqualityExpression
,
title
,
context
,
(
fun
()
->
asyncMaybe
.
Return
[|
TextChange
(
context
.
Span
,
"="
)
|])
)
context
.
RegisterCodeFix
(
codeFix
,
diagnostics
)
}
...
...
vsintegration/src/FSharp.Editor/CodeFix/FixIndexerAccess.fs
浏览文件 @
c5ef51f7
...
...
@@ -10,7 +10,7 @@ open Microsoft.CodeAnalysis.Text
open
Microsoft
.
CodeAnalysis
.
CodeFixes
open
FSharp
.
Compiler
.
Diagnostics
[<
ExportCodeFixProvider
(
FSharpConstants
.
FSharpLanguageName
,
Name
=
"FixIndexerAccess"
);
Shared
>]
[<
ExportCodeFixProvider
(
FSharpConstants
.
FSharpLanguageName
,
Name
=
CodeFix
.
FixIndexerAccess
);
Shared
>]
type
internal
LegacyFsharpFixAddDotToIndexerAccess
()
=
inherit
CodeFixProvider
()
let
fixableDiagnosticIds
=
set
[
"FS3217"
]
...
...
@@ -49,6 +49,7 @@ type internal LegacyFsharpFixAddDotToIndexerAccess() =
let
codefix
=
CodeFixHelpers
.
createTextChangeCodeFix
(
CodeFix
.
FixIndexerAccess
,
CompilerDiagnostics
.
GetErrorMessage
FSharpDiagnosticKind
.
AddIndexerDot
,
context
,
(
fun
()
->
asyncMaybe
.
Return
[|
TextChange
(
span
,
replacement
.
TrimEnd
()
+
"."
)
|])
...
...
@@ -58,12 +59,12 @@ type internal LegacyFsharpFixAddDotToIndexerAccess() =
}
|>
RoslynHelpers
.
StartAsyncUnitAsTask
(
context
.
CancellationToken
)
[<
ExportCodeFixProvider
(
FSharpConstants
.
FSharpLanguageName
,
Name
=
"RemoveIndexerDotBeforeBracket"
);
Shared
>]
[<
ExportCodeFixProvider
(
FSharpConstants
.
FSharpLanguageName
,
Name
=
CodeFix
.
RemoveIndexerDotBeforeBracket
);
Shared
>]
type
internal
FsharpFixRemoveDotFromIndexerAccessOptIn
()
as
this
=
inherit
CodeFixProvider
()
let
fixableDiagnosticIds
=
set
[
"FS3366"
]
static
let
fixNam
e
=
static
let
titl
e
=
CompilerDiagnostics
.
GetErrorMessage
FSharpDiagnosticKind
.
RemoveIndexerDot
override
_.
FixableDiagnosticIds
=
Seq
.
toImmutableArray
fixableDiagnosticIds
...
...
@@ -73,5 +74,5 @@ type internal FsharpFixRemoveDotFromIndexerAccessOptIn() as this =
let
relevantDiagnostics
=
this
.
GetPrunedDiagnostics
(
context
)
if
not
relevantDiagnostics
.
IsEmpty
then
this
.
RegisterFix
(
context
,
fixName
,
TextChange
(
context
.
Span
,
""
))
this
.
RegisterFix
(
CodeFix
.
RemoveIndexerDotBeforeBracket
,
title
,
context
,
TextChange
(
context
.
Span
,
""
))
}
vsintegration/src/FSharp.Editor/CodeFix/MakeDeclarationMutable.fs
浏览文件 @
c5ef51f7
...
...
@@ -3,18 +3,15 @@
namespace
Microsoft
.
VisualStudio
.
FSharp
.
Editor
open
System
.
Composition
open
System
.
Threading
open
System
.
Threading
.
Tasks
open
Microsoft
.
CodeAnalysis
.
Text
open
Microsoft
.
CodeAnalysis
.
CodeFixes
open
FSharp
.
Compiler
open
FSharp
.
Compiler
.
CodeAnalysis
open
FSharp
.
Compiler
.
EditorServices
open
FSharp
.
Compiler
.
Text
[<
ExportCodeFixProvider
(
FSharpConstants
.
FSharpLanguageName
,
Name
=
"MakeDeclarationMutable"
);
Shared
>]
[<
ExportCodeFixProvider
(
FSharpConstants
.
FSharpLanguageName
,
Name
=
CodeFix
.
MakeDeclarationMutable
);
Shared
>]
type
internal
FSharpMakeDeclarationMutableFixProvider
[<
ImportingConstructor
>]
()
=
inherit
CodeFixProvider
()
...
...
@@ -73,6 +70,7 @@ type internal FSharpMakeDeclarationMutableFixProvider [<ImportingConstructor>] (
let
codeFix
=
CodeFixHelpers
.
createTextChangeCodeFix
(
CodeFix
.
MakeDeclarationMutable
,
title
,
context
,
(
fun
()
->
asyncMaybe
.
Return
[|
TextChange
(
TextSpan
(
span
.
Start
,
0
),
"mutable "
)
|])
...
...
vsintegration/src/FSharp.Editor/CodeFix/MakeOuterBindingRecursive.fs
浏览文件 @
c5ef51f7
...
...
@@ -8,7 +8,7 @@ open System.Composition
open
Microsoft
.
CodeAnalysis
.
Text
open
Microsoft
.
CodeAnalysis
.
CodeFixes
[<
ExportCodeFixProvider
(
FSharpConstants
.
FSharpLanguageName
,
Name
=
"MakeOuterBindingRecursive"
);
Shared
>]
[<
ExportCodeFixProvider
(
FSharpConstants
.
FSharpLanguageName
,
Name
=
CodeFix
.
MakeOuterBindingRecursive
);
Shared
>]
type
internal
FSharpMakeOuterBindingRecursiveCodeFixProvider
[<
ImportingConstructor
>]
()
=
inherit
CodeFixProvider
()
...
...
@@ -50,6 +50,7 @@ type internal FSharpMakeOuterBindingRecursiveCodeFixProvider [<ImportingConstruc
let
codeFix
=
CodeFixHelpers
.
createTextChangeCodeFix
(
CodeFix
.
MakeOuterBindingRecursive
,
title
,
context
,
(
fun
()
->
asyncMaybe
.
Return
[|
TextChange
(
TextSpan
(
outerBindingNameSpan
.
Start
,
0
),
"rec "
)
|])
...
...
vsintegration/src/FSharp.Editor/CodeFix/RemoveReturnOrYield.fs
浏览文件 @
c5ef51f7
...
...
@@ -7,7 +7,7 @@ open System.Composition
open
Microsoft
.
CodeAnalysis
.
Text
open
Microsoft
.
CodeAnalysis
.
CodeFixes
[<
ExportCodeFixProvider
(
FSharpConstants
.
FSharpLanguageName
,
Name
=
"RemoveReturnOrYield"
);
Shared
>]
[<
ExportCodeFixProvider
(
FSharpConstants
.
FSharpLanguageName
,
Name
=
CodeFix
.
RemoveReturnOrYield
);
Shared
>]
type
internal
FSharpRemoveReturnOrYieldCodeFixProvider
[<
ImportingConstructor
>]
()
=
inherit
CodeFixProvider
()
...
...
@@ -44,6 +44,7 @@ type internal FSharpRemoveReturnOrYieldCodeFixProvider [<ImportingConstructor>]
let
codeFix
=
CodeFixHelpers
.
createTextChangeCodeFix
(
CodeFix
.
RemoveReturnOrYield
,
title
,
context
,
(
fun
()
->
asyncMaybe
.
Return
[|
TextChange
(
context
.
Span
,
sourceText
.
GetSubText
(
exprSpan
).
ToString
()
)
|])
...
...
vsintegration/src/FSharp.Editor/CodeFix/RemoveSuperflousCaptureForUnionCaseWithNoData.fs
浏览文件 @
c5ef51f7
...
...
@@ -2,20 +2,15 @@
namespace
Microsoft
.
VisualStudio
.
FSharp
.
Editor
open
System
open
System
.
Composition
open
System
.
Threading
.
Tasks
open
Microsoft
.
CodeAnalysis
.
Text
open
Microsoft
.
CodeAnalysis
.
CodeFixes
open
FSharp
.
Compiler
open
FSharp
.
Compiler
.
CodeAnalysis
open
FSharp
.
Compiler
.
Symbols
open
FSharp
.
Compiler
.
Syntax
open
FSharp
.
Compiler
.
EditorServices
[<
ExportCodeFixProvider
(
FSharpConstants
.
FSharpLanguageName
,
Name
=
"RemoveSuperflousCapture"
);
Shared
>]
[<
ExportCodeFixProvider
(
FSharpConstants
.
FSharpLanguageName
,
Name
=
CodeFix
.
RemoveSuperfluousCapture
);
Shared
>]
type
internal
RemoveSuperflousCaptureForUnionCaseWithNoDataProvider
[<
ImportingConstructor
>]
()
=
inherit
CodeFixProvider
()
...
...
@@ -51,7 +46,7 @@ type internal RemoveSuperflousCaptureForUnionCaseWithNoDataProvider [<ImportingC
let
reminderSpan
=
new
TextSpan
(
context
.
Span
.
Start
+
typeInfoLength
,
context
.
Span
.
Length
-
typeInfoLength
)
this
.
RegisterFix
(
context
,
SR
.
RemoveUnusedBinding
()
,
TextChange
(
reminderSpan
,
""
))
this
.
RegisterFix
(
CodeFix
.
RemoveSuperfluousCapture
,
SR
.
RemoveUnusedBinding
()
,
context
,
TextChange
(
reminderSpan
,
""
))
}
|>
Async
.
Ignore
|>
RoslynHelpers
.
StartAsyncUnitAsTask
(
context
.
CancellationToken
)
vsintegration/src/FSharp.Editor/CodeFix/RemoveUnusedBinding.fs
浏览文件 @
c5ef51f7
...
...
@@ -9,7 +9,7 @@ open System.Threading.Tasks
open
Microsoft
.
CodeAnalysis
.
Text
open
Microsoft
.
CodeAnalysis
.
CodeFixes
[<
ExportCodeFixProvider
(
FSharpConstants
.
FSharpLanguageName
,
Name
=
"RemoveUnusedBinding"
);
Shared
>]
[<
ExportCodeFixProvider
(
FSharpConstants
.
FSharpLanguageName
,
Name
=
CodeFix
.
RemoveUnusedBinding
);
Shared
>]
type
internal
FSharpRemoveUnusedBindingCodeFixProvider
[<
ImportingConstructor
>]
()
=
inherit
CodeFixProvider
()
...
...
@@ -57,7 +57,12 @@ type internal FSharpRemoveUnusedBindingCodeFixProvider [<ImportingConstructor>]
let
prefixTitle
=
SR
.
RemoveUnusedBinding
()
let
removalCodeFix
=
CodeFixHelpers
.
createTextChangeCodeFix
(
prefixTitle
,
context
,
(
fun
()
->
asyncMaybe
.
Return
[|
TextChange
(
fullSpan
,
""
)
|]))
CodeFixHelpers
.
createTextChangeCodeFix
(
CodeFix
.
RemoveUnusedBinding
,
prefixTitle
,
context
,
(
fun
()
->
asyncMaybe
.
Return
[|
TextChange
(
fullSpan
,
""
)
|])
)
context
.
RegisterCodeFix
(
removalCodeFix
,
diagnostics
)
}
...
...
vsintegration/src/FSharp.Editor/CodeFix/RemoveUnusedOpens.fs
浏览文件 @
c5ef51f7
...
...
@@ -11,7 +11,7 @@ open Microsoft.CodeAnalysis.ExternalAccess.FSharp.Diagnostics
open
FSharp
.
Compiler
.
Text
[<
ExportCodeFixProvider
(
FSharpConstants
.
FSharpLanguageName
,
Name
=
"RemoveUnusedOpens"
);
Shared
>]
[<
ExportCodeFixProvider
(
FSharpConstants
.
FSharpLanguageName
,
Name
=
CodeFix
.
RemoveUnusedOpens
);
Shared
>]
type
internal
FSharpRemoveUnusedOpensCodeFixProvider
[<
ImportingConstructor
>]
()
=
inherit
CodeFixProvider
()
...
...
@@ -41,7 +41,7 @@ type internal FSharpRemoveUnusedOpensCodeFixProvider [<ImportingConstructor>] ()
let
title
=
SR
.
RemoveUnusedOpens
()
let
codefix
=
CodeFixHelpers
.
createTextChangeCodeFix
(
title
,
context
,
(
fun
()
->
asyncMaybe
.
Return
changes
))
CodeFixHelpers
.
createTextChangeCodeFix
(
CodeFix
.
RemoveUnusedOpens
,
title
,
context
,
(
fun
()
->
asyncMaybe
.
Return
changes
))
context
.
RegisterCodeFix
(
codefix
,
diagnostics
)
}
...
...
vsintegration/src/FSharp.Editor/CodeFix/RenameParamToMatchSignature.fs
浏览文件 @
c5ef51f7
...
...
@@ -13,7 +13,7 @@ open Microsoft.VisualStudio.FSharp.Editor.SymbolHelpers
open
FSharp
.
Compiler
.
Diagnostics
open
FSharp
.
Compiler
.
Tokenization
.
FSharpKeywords
[<
ExportCodeFixProvider
(
FSharpConstants
.
FSharpLanguageName
,
Name
=
"FSharpRenameParamToMatchSignature"
);
Shared
>]
[<
ExportCodeFixProvider
(
FSharpConstants
.
FSharpLanguageName
,
Name
=
CodeFix
.
FSharpRenameParamToMatchSignature
);
Shared
>]
type
internal
FSharpRenameParamToMatchSignature
[<
ImportingConstructor
>]
()
=
inherit
CodeFixProvider
()
...
...
@@ -65,7 +65,7 @@ type internal FSharpRenameParamToMatchSignature [<ImportingConstructor>] () =
CompilerDiagnostics
.
GetErrorMessage
(
FSharpDiagnosticKind
.
ReplaceWithSuggestion
suggestion
)
let
codefix
=
CodeFixHelpers
.
createTextChangeCodeFix
(
title
,
context
,
computeChanges
)
CodeFixHelpers
.
createTextChangeCodeFix
(
CodeFix
.
FSharpRenameParamToMatchSignature
,
title
,
context
,
computeChanges
)
context
.
RegisterCodeFix
(
codefix
,
diagnostics
)
|
_
->
()
...
...
vsintegration/src/FSharp.Editor/CodeFix/RenameUnusedValue.fs
浏览文件 @
c5ef51f7
...
...
@@ -14,7 +14,7 @@ open FSharp.Compiler.CodeAnalysis
open
FSharp
.
Compiler
.
Symbols
open
FSharp
.
Compiler
.
Syntax
[<
ExportCodeFixProvider
(
FSharpConstants
.
FSharpLanguageName
,
Name
=
"RenameUnusedValue"
);
Shared
>]
[<
ExportCodeFixProvider
(
FSharpConstants
.
FSharpLanguageName
,
Name
=
CodeFix
.
RenameUnusedValue
);
Shared
>]
type
internal
FSharpRenameUnusedValueCodeFixProvider
[<
ImportingConstructor
>]
()
=
inherit
CodeFixProvider
()
...
...
@@ -67,6 +67,7 @@ type internal FSharpRenameUnusedValueCodeFixProvider [<ImportingConstructor>] ()
let
prefixCodeFix
=
CodeFixHelpers
.
createTextChangeCodeFix
(
CodeFix
.
RenameUnusedValue
,
prefixTitle
,
context
,
(
fun
()
->
asyncMaybe
.
Return
[|
TextChange
(
TextSpan
(
context
.
Span
.
Start
,
0
),
"_"
)
|])
...
...
@@ -79,6 +80,7 @@ type internal FSharpRenameUnusedValueCodeFixProvider [<ImportingConstructor>] ()
let
replaceCodeFix
=
CodeFixHelpers
.
createTextChangeCodeFix
(
CodeFix
.
RenameUnusedValue
,
replaceTitle
,
context
,
(
fun
()
->
asyncMaybe
.
Return
[|
TextChange
(
context
.
Span
,
"_"
)
|])
...
...
vsintegration/src/FSharp.Editor/CodeFix/ReplaceWithSuggestion.fs
浏览文件 @
c5ef51f7
...
...
@@ -14,7 +14,7 @@ open FSharp.Compiler.Syntax
open
FSharp
.
Compiler
.
Text
open
FSharp
.
Compiler
.
Tokenization
[<
ExportCodeFixProvider
(
FSharpConstants
.
FSharpLanguageName
,
Name
=
"ReplaceWithSuggestion"
);
Shared
>]
[<
ExportCodeFixProvider
(
FSharpConstants
.
FSharpLanguageName
,
Name
=
CodeFix
.
ReplaceWithSuggestion
);
Shared
>]
type
internal
FSharpReplaceWithSuggestionCodeFixProvider
[<
ImportingConstructor
>]
(
settings
:
EditorOptions
)
=
inherit
CodeFixProvider
()
...
...
@@ -61,6 +61,7 @@ type internal FSharpReplaceWithSuggestionCodeFixProvider [<ImportingConstructor>
let
codeFix
=
CodeFixHelpers
.
createTextChangeCodeFix
(
CodeFix
.
ReplaceWithSuggestion
,
CompilerDiagnostics
.
GetErrorMessage
(
FSharpDiagnosticKind
.
ReplaceWithSuggestion
suggestion
),
context
,
(
fun
()
->
asyncMaybe
.
Return
[|
TextChange
(
context
.
Span
,
replacement
)
|])
...
...
vsintegration/src/FSharp.Editor/CodeFix/SimplifyName.fs
浏览文件 @
c5ef51f7
...
...
@@ -10,7 +10,7 @@ open Microsoft.CodeAnalysis.Text
open
Microsoft
.
CodeAnalysis
.
CodeFixes
open
Microsoft
.
CodeAnalysis
.
ExternalAccess
.
FSharp
.
Diagnostics
[<
ExportCodeFixProvider
(
FSharpConstants
.
FSharpLanguageName
,
Name
=
"SimplifyNames"
);
Shared
>]
[<
ExportCodeFixProvider
(
FSharpConstants
.
FSharpLanguageName
,
Name
=
CodeFix
.
SimplifyName
);
Shared
>]
type
internal
FSharpSimplifyNameCodeFixProvider
()
=
inherit
CodeFixProvider
()
let
fixableDiagnosticId
=
FSharpIDEDiagnosticIds
.
SimplifyNamesDiagnosticId
...
...
@@ -27,6 +27,7 @@ type internal FSharpSimplifyNameCodeFixProvider() =
let
codefix
=
CodeFixHelpers
.
createTextChangeCodeFix
(
CodeFix
.
SimplifyName
,
title
,
context
,
(
fun
()
->
asyncMaybe
.
Return
[|
TextChange
(
context
.
Span
,
""
)
|])
...
...
vsintegration/src/FSharp.Editor/CodeFix/UseMutationWhenValueIsMutable.fs
浏览文件 @
c5ef51f7
...
...
@@ -4,18 +4,15 @@ namespace Microsoft.VisualStudio.FSharp.Editor
open
System
open
System
.
Composition
open
System
.
Threading
open
System
.
Threading
.
Tasks
open
Microsoft
.
CodeAnalysis
.
Text
open
Microsoft
.
CodeAnalysis
.
CodeFixes
open
FSharp
.
Compiler
open
FSharp
.
Compiler
.
CodeAnalysis
open
FSharp
.
Compiler
.
Symbols
open
FSharp
.
Compiler
.
Text
[<
ExportCodeFixProvider
(
FSharpConstants
.
FSharpLanguageName
,
Name
=
"UseMutationWhenValueIsMutable"
);
Shared
>]
[<
ExportCodeFixProvider
(
FSharpConstants
.
FSharpLanguageName
,
Name
=
CodeFix
.
UseMutationWhenValueIsMutable
);
Shared
>]
type
internal
FSharpUseMutationWhenValueIsMutableFixProvider
[<
ImportingConstructor
>]
()
=
inherit
CodeFixProvider
()
...
...
@@ -83,6 +80,7 @@ type internal FSharpUseMutationWhenValueIsMutableFixProvider [<ImportingConstruc
let
codeFix
=
CodeFixHelpers
.
createTextChangeCodeFix
(
CodeFix
.
UseMutationWhenValueIsMutable
,
title
,
context
,
(
fun
()
->
asyncMaybe
.
Return
[|
TextChange
(
TextSpan
(
pos
+
1
,
1
),
"<-"
)
|])
...
...
vsintegration/src/FSharp.Editor/CodeFix/UseTripleQuotedInterpolation.fs
浏览文件 @
c5ef51f7
...
...
@@ -7,7 +7,7 @@ open System.Composition
open
Microsoft
.
CodeAnalysis
.
Text
open
Microsoft
.
CodeAnalysis
.
CodeFixes
[<
ExportCodeFixProvider
(
FSharpConstants
.
FSharpLanguageName
,
Name
=
"UseTripleQuotedInterpolation"
);
Shared
>]
[<
ExportCodeFixProvider
(
FSharpConstants
.
FSharpLanguageName
,
Name
=
CodeFix
.
UseTripleQuotedInterpolation
);
Shared
>]
type
internal
FSharpUseTripleQuotedInterpolationCodeFixProvider
[<
ImportingConstructor
>]
()
=
inherit
CodeFixProvider
()
...
...
@@ -41,7 +41,12 @@ type internal FSharpUseTripleQuotedInterpolationCodeFixProvider [<ImportingConst
let
title
=
SR
.
UseTripleQuotedInterpolation
()
let
codeFix
=
CodeFixHelpers
.
createTextChangeCodeFix
(
title
,
context
,
(
fun
()
->
asyncMaybe
.
Return
[|
replacement
|]))
CodeFixHelpers
.
createTextChangeCodeFix
(
CodeFix
.
UseTripleQuotedInterpolation
,
title
,
context
,
(
fun
()
->
asyncMaybe
.
Return
[|
replacement
|])
)
context
.
RegisterCodeFix
(
codeFix
,
diagnostics
)
}
...
...
vsintegration/src/FSharp.Editor/Common/Constants.fs
浏览文件 @
c5ef51f7
...
...
@@ -94,3 +94,86 @@ module internal Guids =
let
formattingOptionPageIdString
=
"9EBEBCE8-A79B-46B0-A8C5-A9818AEED17D"
let
blueHighContrastThemeId
=
Guid
"{ce94d289-8481-498b-8ca9-9b6191a315b9}"
[<
RequireQualifiedAccess
>]
module
internal
CodeFix
=
[<
Literal
>]
let
AddInstanceMemberParameter
=
"AddInstanceMemberParameter"
[<
Literal
>]
let
ConvertCSharpLambdaToFSharpLambda
=
"ConvertCSharpLambdaToFSharpLambda"
[<
Literal
>]
let
ConvertToNotEqualsEqualityExpression
=
"ConvertToNotEqualsEqualityExpression"
[<
Literal
>]
let
UseTripleQuotedInterpolation
=
"UseTripleQuotedInterpolation"
[<
Literal
>]
let
SimplifyName
=
"SimplifyName"
[<
Literal
>]
let
RemoveUnusedBinding
=
"RemoveUnusedBinding"
[<
Literal
>]
let
ChangeToUpcast
=
"ChangeToUpcast"
[<
Literal
>]
let
UseMutationWhenValueIsMutable
=
"UseMutationWhenValueIsMutable"
[<
Literal
>]
let
RenameUnusedValue
=
"RenameUnusedValue"
[<
Literal
>]
let
FixIndexerAccess
=
"FixIndexerAccess"
[<
Literal
>]
let
RemoveReturnOrYield
=
"RemoveReturnOrYield"
[<
Literal
>]
let
ReplaceWithSuggestion
=
"ReplaceWithSuggestion"
[<
Literal
>]
let
MakeOuterBindingRecursive
=
"MakeOuterBindingRecursive"
[<
Literal
>]
let
ConvertToSingleEqualsEqualityExpression
=
"ConvertToSingleEqualsEqualityExpression"
[<
Literal
>]
let
MakeDeclarationMutable
=
"MakeDeclarationMutable"
[<
Literal
>]
let
ChangePrefixNegationToInfixSubtraction
=
"ChangePrefixNegationToInfixSubtraction"
[<
Literal
>]
let
AddMissingFunKeyword
=
"AddMissingFunKeyword"
[<
Literal
>]
let
AddNewKeyword
=
"AddNewKeyword"
[<
Literal
>]
let
RemoveUnusedOpens
=
"RemoveUnusedOpens"
[<
Literal
>]
let
AddOpen
=
"AddOpen"
[<
Literal
>]
let
ConvertCSharpUsingToFSharpOpen
=
"ConvertCSharpUsingToFSharpOpen"
[<
Literal
>]
let
ChangeRefCellDerefToNotExpression
=
"ChangeRefCellDerefToNotExpression"
[<
Literal
>]
let
AddMissingEqualsToTypeDefinition
=
"AddMissingEqualsToTypeDefinition"
[<
Literal
>]
let
FSharpRenameParamToMatchSignature
=
"FSharpRenameParamToMatchSignature"
[<
Literal
>]
let
RemoveIndexerDotBeforeBracket
=
"RemoveIndexerDotBeforeBracket"
[<
Literal
>]
let
RemoveSuperfluousCapture
=
"RemoveSuperfluousCapture"
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录