|
16 | 16 | using Microsoft.Extensions.Logging;
|
17 | 17 | using Microsoft.PowerShell.EditorServices.CodeLenses;
|
18 | 18 | using Microsoft.PowerShell.EditorServices.Logging;
|
| 19 | +using Microsoft.PowerShell.EditorServices.Services.Configuration; |
19 | 20 | using Microsoft.PowerShell.EditorServices.Services.PowerShell;
|
20 | 21 | using Microsoft.PowerShell.EditorServices.Services.PowerShell.Runspace;
|
21 | 22 | using Microsoft.PowerShell.EditorServices.Services.PowerShell.Utility;
|
@@ -66,17 +67,15 @@ public SymbolsService(
|
66 | 67 | _workspaceService = workspaceService;
|
67 | 68 |
|
68 | 69 | _codeLensProviders = new ConcurrentDictionary<string, ICodeLensProvider>();
|
69 |
| - ICodeLensProvider[] codeLensProviders = new ICodeLensProvider[] |
| 70 | + if (configurationService.CurrentSettings.EnableReferencesCodeLens) |
70 | 71 | {
|
71 |
| - new ReferencesCodeLensProvider(_workspaceService, this), |
72 |
| - new PesterCodeLensProvider(configurationService) |
73 |
| - }; |
74 |
| - |
75 |
| - foreach (ICodeLensProvider codeLensProvider in codeLensProviders) |
76 |
| - { |
77 |
| - _codeLensProviders.TryAdd(codeLensProvider.ProviderId, codeLensProvider); |
| 72 | + ReferencesCodeLensProvider referencesProvider = new(_workspaceService, this); |
| 73 | + _codeLensProviders.TryAdd(referencesProvider.ProviderId, referencesProvider); |
78 | 74 | }
|
79 | 75 |
|
| 76 | + PesterCodeLensProvider pesterProvider = new(configurationService); |
| 77 | + _codeLensProviders.TryAdd(pesterProvider.ProviderId, pesterProvider); |
| 78 | + |
80 | 79 | _documentSymbolProviders = new ConcurrentDictionary<string, IDocumentSymbolProvider>();
|
81 | 80 | IDocumentSymbolProvider[] documentSymbolProviders = new IDocumentSymbolProvider[]
|
82 | 81 | {
|
@@ -671,5 +670,21 @@ public static FunctionDefinitionAst GetFunctionDefinitionAtLine(
|
671 | 670 |
|
672 | 671 | return functionDefinitionAst as FunctionDefinitionAst;
|
673 | 672 | }
|
| 673 | + |
| 674 | + internal void OnConfigurationUpdated(object _, LanguageServerSettings e) |
| 675 | + { |
| 676 | + if (e.EnableReferencesCodeLens) |
| 677 | + { |
| 678 | + if (_codeLensProviders.ContainsKey(ReferencesCodeLensProvider.Id)) |
| 679 | + { |
| 680 | + return; |
| 681 | + } |
| 682 | + |
| 683 | + TryRegisterCodeLensProvider(new ReferencesCodeLensProvider(_workspaceService, this)); |
| 684 | + return; |
| 685 | + } |
| 686 | + |
| 687 | + DeregisterCodeLensProvider(ReferencesCodeLensProvider.Id); |
| 688 | + } |
674 | 689 | }
|
675 | 690 | }
|
0 commit comments