From a3ecc682f75f58d10592d23e7426f430449d1503 Mon Sep 17 00:00:00 2001 From: Leonard Kleinhans Date: Tue, 2 Mar 2021 17:07:59 +0100 Subject: [PATCH 1/2] Add option for additional filters for codelens suppression --- src/features/codeLensProvider.ts | 8 ++++++-- src/omnisharp/options.ts | 3 +++ test/unitTests/Fakes/FakeOptions.ts | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/features/codeLensProvider.ts b/src/features/codeLensProvider.ts index df331b9d4..b1bbf88cb 100644 --- a/src/features/codeLensProvider.ts +++ b/src/features/codeLensProvider.ts @@ -194,7 +194,7 @@ function createCodeLenses(elements: Structure.CodeElement[], fileName: string, o function createCodeLensesForElement(element: Structure.CodeElement, fileName: string, options: Options): vscode.CodeLens[] { let results: vscode.CodeLens[] = []; - if (options.showReferencesCodeLens && isValidElementForReferencesCodeLens(element)) { + if (options.showReferencesCodeLens && isValidElementForReferencesCodeLens(element, options)) { let range = element.Ranges[SymbolRangeNames.Name]; if (range) { results.push(new ReferencesCodeLens(range, fileName)); @@ -246,7 +246,7 @@ const filteredSymbolNames: { [name: string]: boolean } = { 'GetEnumerator': true, }; -function isValidElementForReferencesCodeLens(element: Structure.CodeElement): boolean { +function isValidElementForReferencesCodeLens(element: Structure.CodeElement, options: Options): boolean { if (element.Kind === SymbolKinds.Namespace) { return false; } @@ -255,6 +255,10 @@ function isValidElementForReferencesCodeLens(element: Structure.CodeElement): bo return false; } + if(options.filteredSymbolsCodeLens.includes(element.Name)) { + return false; + } + return true; } diff --git a/src/omnisharp/options.ts b/src/omnisharp/options.ts index 2d856ed5c..74f62b57b 100644 --- a/src/omnisharp/options.ts +++ b/src/omnisharp/options.ts @@ -18,6 +18,7 @@ export class Options { public useFormatting: boolean, public showReferencesCodeLens: boolean, public showTestsCodeLens: boolean, + public filteredSymbolsCodeLens: string[], public disableCodeActions: boolean, public disableMSBuildDiagnosticWarning: boolean, public minFindSymbolsFilterLength: number, @@ -77,6 +78,7 @@ export class Options { const showReferencesCodeLens = csharpConfig.get('referencesCodeLens.enabled', true); const showTestsCodeLens = csharpConfig.get('testsCodeLens.enabled', true); + const filteredSymbolsCodeLens = csharpConfig.get('referencesCodeLens.filteredSymbols', []); const useSemanticHighlighting = csharpConfig.get('semanticHighlighting.enabled', false); @@ -109,6 +111,7 @@ export class Options { useFormatting, showReferencesCodeLens, showTestsCodeLens, + filteredSymbolsCodeLens, disableCodeActions, disableMSBuildDiagnosticWarning, minFindSymbolsFilterLength, diff --git a/test/unitTests/Fakes/FakeOptions.ts b/test/unitTests/Fakes/FakeOptions.ts index 07885d295..78fbce746 100644 --- a/test/unitTests/Fakes/FakeOptions.ts +++ b/test/unitTests/Fakes/FakeOptions.ts @@ -6,5 +6,5 @@ import { Options } from "../../../src/omnisharp/options"; export function getEmptyOptions(): Options { - return new Options("", "", false, "", false, 0, 0, false, false, false, false, false, false, 0, 0, false, false, false, false, false, false, false, undefined, "", ""); + return new Options("", "", false, "", false, 0, 0, false, false, false, false, [], false, false, 0, 0, false, false, false, false, false, false, false, undefined, "", ""); } From 256f50d8ca8d87b74ae51d2997e528956cf4c54d Mon Sep 17 00:00:00 2001 From: Leonard Kleinhans Date: Mon, 3 May 2021 21:48:03 +0200 Subject: [PATCH 2/2] Define newly added referencesCodeLens.filteredSymbols option in package.json --- package.json | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/package.json b/package.json index a926f3b65..146bad44e 100644 --- a/package.json +++ b/package.json @@ -663,6 +663,14 @@ "default": true, "description": "Specifies whether the references CodeLens should be shown." }, + "csharp.referencesCodeLens.filteredSymbols": { + "type": "array", + "items": { + "type": "string" + }, + "default": [], + "description": "Array of custom symbol names for which CodeLens should be disabled." + }, "csharp.testsCodeLens.enabled": { "type": "boolean", "default": true,