提交 939050e3 编写于 作者: P Phillip Carter 提交者: Kevin Ransom (msft)

Add option to toggle unused declarations analyzer (#4074)

* Add option to toggle unused declarations analyzer

* Better name and handle registering code fixes.

This will ensure that if someone uses warnon:1182, we won't suggest
fixes if they've turned off the feature.
上级 c6a5a986
......@@ -47,6 +47,9 @@ type internal FSharpRenameUnusedValueCodeFixProvider
override __.RegisterCodeFixesAsync context : Task =
asyncMaybe {
// Don't show code fixes for unused values, even if they are compiler-generated.
do! Option.guard Settings.CodeFixes.UnusedDeclarations
let document = context.Document
let! sourceText = document.GetTextAsync()
let ident = sourceText.ToString(context.Span)
......
......@@ -100,6 +100,8 @@ type internal UnusedDeclarationsAnalyzer() =
override __.AnalyzeSemanticsAsync(document, cancellationToken) =
asyncMaybe {
do! Option.guard Settings.CodeFixes.UnusedDeclarations
do Trace.TraceInformation("{0:n3} (start) UnusedDeclarationsAnalyzer", DateTime.Now.TimeOfDay.TotalSeconds)
do! Async.Sleep DefaultTuning.UnusedDeclarationsAnalyzerInitialDelay |> liftAsync // be less intrusive, give other work priority most of the time
match getProjectInfoManager(document).TryGetOptionsForEditingDocumentOrProject(document) with
......
......@@ -34,7 +34,8 @@ type QuickInfoOptions =
type CodeFixesOptions =
{ SimplifyName: bool
AlwaysPlaceOpensAtTopLevel: bool
UnusedOpens: bool }
UnusedOpens: bool
UnusedDeclarations: bool }
[<CLIMutable>]
type LanguageServicePerformanceOptions =
......@@ -59,7 +60,8 @@ type internal Settings [<ImportingConstructor>](store: SettingsStore) =
// See https://github.com/Microsoft/visualfsharp/pull/3238#issue-237699595
SimplifyName = false
AlwaysPlaceOpensAtTopLevel = false
UnusedOpens = true }
UnusedOpens = true
UnusedDeclarations = true }
store.RegisterDefault
{ EnableInMemoryCrossProjectReferences = true
......
......@@ -26,6 +26,8 @@
<StackPanel Margin="15 0 0 0"/>
<CheckBox x:Name="unusedOpens" IsChecked="{Binding UnusedOpens}"
Content="{x:Static local:Strings.Unused_opens_code_fix}"/>
<CheckBox x:Name="unusedDeclaration" IsChecked="{Binding UnusedDeclarations}"
Content="{x:Static local:Strings.Unused_declaration_code_fix}"/>
</StackPanel>
</GroupBox>
</StackPanel>
......
......@@ -19,7 +19,7 @@ namespace Microsoft.VisualStudio.FSharp.UIResources {
// class via a tool like ResGen or Visual Studio.
// To add or remove a member, edit your .ResX file then rerun ResGen
// with the /str option, or rebuild your VS project.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
public class Strings {
......@@ -195,6 +195,15 @@ public class Strings {
}
}
/// <summary>
/// Looks up a localized string similar to Analyze and suggest fixes for unused values.
/// </summary>
public static string Unused_declaration_code_fix {
get {
return ResourceManager.GetString("Unused_declaration_code_fix", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Remove unused open statements.
/// </summary>
......
......@@ -165,4 +165,7 @@
<data name="Unused_opens_code_fix" xml:space="preserve">
<value>Remove unused open statements</value>
</data>
<data name="Unused_declaration_code_fix" xml:space="preserve">
<value>Analyze and suggest fixes for unused values</value>
</data>
</root>
\ No newline at end of file
......@@ -82,6 +82,11 @@
<target state="translated">Odebrat nepoužívané otevřené výkazy</target>
<note />
</trans-unit>
<trans-unit id="Unused_declaration_code_fix">
<source>Analyze and suggest fixes for unused values</source>
<target state="new">Analyze and suggest fixes for unused values</target>
<note />
</trans-unit>
</body>
</file>
</xliff>
\ No newline at end of file
......@@ -82,6 +82,11 @@
<target state="translated">Nicht verwendete "open"-Anweisungen entfernen</target>
<note />
</trans-unit>
<trans-unit id="Unused_declaration_code_fix">
<source>Analyze and suggest fixes for unused values</source>
<target state="new">Analyze and suggest fixes for unused values</target>
<note />
</trans-unit>
</body>
</file>
</xliff>
\ No newline at end of file
......@@ -82,6 +82,11 @@
<target state="new">Remove unused open statements</target>
<note />
</trans-unit>
<trans-unit id="Unused_declaration_code_fix">
<source>Analyze and suggest fixes for unused values</source>
<target state="new">Analyze and suggest fixes for unused values</target>
<note />
</trans-unit>
</body>
</file>
</xliff>
\ No newline at end of file
......@@ -82,6 +82,11 @@
<target state="translated">Quitar instrucciones open no usadas</target>
<note />
</trans-unit>
<trans-unit id="Unused_declaration_code_fix">
<source>Analyze and suggest fixes for unused values</source>
<target state="new">Analyze and suggest fixes for unused values</target>
<note />
</trans-unit>
</body>
</file>
</xliff>
\ No newline at end of file
......@@ -82,6 +82,11 @@
<target state="translated">Supprimer les instructions open inutilisées</target>
<note />
</trans-unit>
<trans-unit id="Unused_declaration_code_fix">
<source>Analyze and suggest fixes for unused values</source>
<target state="new">Analyze and suggest fixes for unused values</target>
<note />
</trans-unit>
</body>
</file>
</xliff>
\ No newline at end of file
......@@ -82,6 +82,11 @@
<target state="translated">Rimuovi istruzioni OPEN inutilizzate</target>
<note />
</trans-unit>
<trans-unit id="Unused_declaration_code_fix">
<source>Analyze and suggest fixes for unused values</source>
<target state="new">Analyze and suggest fixes for unused values</target>
<note />
</trans-unit>
</body>
</file>
</xliff>
\ No newline at end of file
......@@ -82,6 +82,11 @@
<target state="translated">未使用の Open ステートメントを削除する</target>
<note />
</trans-unit>
<trans-unit id="Unused_declaration_code_fix">
<source>Analyze and suggest fixes for unused values</source>
<target state="new">Analyze and suggest fixes for unused values</target>
<note />
</trans-unit>
</body>
</file>
</xliff>
\ No newline at end of file
......@@ -82,6 +82,11 @@
<target state="translated">사용되지 않는 open 문 제거</target>
<note />
</trans-unit>
<trans-unit id="Unused_declaration_code_fix">
<source>Analyze and suggest fixes for unused values</source>
<target state="new">Analyze and suggest fixes for unused values</target>
<note />
</trans-unit>
</body>
</file>
</xliff>
\ No newline at end of file
......@@ -82,6 +82,11 @@
<target state="translated">Usuń nieużywane otwarte instrukcje</target>
<note />
</trans-unit>
<trans-unit id="Unused_declaration_code_fix">
<source>Analyze and suggest fixes for unused values</source>
<target state="new">Analyze and suggest fixes for unused values</target>
<note />
</trans-unit>
</body>
</file>
</xliff>
\ No newline at end of file
......@@ -82,6 +82,11 @@
<target state="translated">Remover instruções abertas não usadas</target>
<note />
</trans-unit>
<trans-unit id="Unused_declaration_code_fix">
<source>Analyze and suggest fixes for unused values</source>
<target state="new">Analyze and suggest fixes for unused values</target>
<note />
</trans-unit>
</body>
</file>
</xliff>
\ No newline at end of file
......@@ -82,6 +82,11 @@
<target state="translated">Удалить неиспользуемые открытые операторы</target>
<note />
</trans-unit>
<trans-unit id="Unused_declaration_code_fix">
<source>Analyze and suggest fixes for unused values</source>
<target state="new">Analyze and suggest fixes for unused values</target>
<note />
</trans-unit>
</body>
</file>
</xliff>
\ No newline at end of file
......@@ -82,6 +82,11 @@
<target state="translated">Kullanılmayan açık deyimleri kaldır</target>
<note />
</trans-unit>
<trans-unit id="Unused_declaration_code_fix">
<source>Analyze and suggest fixes for unused values</source>
<target state="new">Analyze and suggest fixes for unused values</target>
<note />
</trans-unit>
</body>
</file>
</xliff>
\ No newline at end of file
......@@ -82,6 +82,11 @@
<target state="translated">删除未使用的 open 语句</target>
<note />
</trans-unit>
<trans-unit id="Unused_declaration_code_fix">
<source>Analyze and suggest fixes for unused values</source>
<target state="new">Analyze and suggest fixes for unused values</target>
<note />
</trans-unit>
</body>
</file>
</xliff>
\ No newline at end of file
......@@ -82,6 +82,11 @@
<target state="translated">移除未使用的 open 陳述式</target>
<note />
</trans-unit>
<trans-unit id="Unused_declaration_code_fix">
<source>Analyze and suggest fixes for unused values</source>
<target state="new">Analyze and suggest fixes for unused values</target>
<note />
</trans-unit>
</body>
</file>
</xliff>
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册