/
githubmirror
/
roslyn
Обзор
Документация
Войти
/
githubmirror
/
roslyn
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/EditorFeatures/Core/SignatureHelp/AbstractSignatureHelpCommandHandler.cs
51 строка
2 KB
Cyrus Najmabadi
Move files
25 апр 2025, 01:10
25 апр 2025, 01:10
46f9987
Код
Авторство
О чём код?
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. #nullable disable using Microsoft.CodeAnalysis.Editor.Implementation.IntelliSense.SignatureHelp; using Microsoft.CodeAnalysis.Editor.Options; using Microsoft.CodeAnalysis.Editor.Shared.Extensions; using Microsoft.CodeAnalysis.Editor.Shared.Utilities; using Microsoft.CodeAnalysis.Options; using Microsoft.VisualStudio.Text.Editor.Commanding; using Microsoft.VisualStudio.Text.Editor.Commanding.Commands; namespace Microsoft.CodeAnalysis.Editor.CommandHandlers; internal abstract class AbstractSignatureHelpCommandHandler { protected readonly IThreadingContext ThreadingContext; private readonly SignatureHelpControllerProvider _controllerProvider; private readonly IGlobalOptionService _globalOptions; public AbstractSignatureHelpCommandHandler( IThreadingContext threadingContext, SignatureHelpControllerProvider controllerProvider, IGlobalOptionService globalOptions) { ThreadingContext = threadingContext; _controllerProvider = controllerProvider; _globalOptions = globalOptions; } protected bool TryGetController(EditorCommandArgs args, out Controller controller) { this.ThreadingContext.ThrowIfNotOnUIThread(); // If args is `InvokeSignatureHelpCommandArgs` then sig help was explicitly invoked by the user and should // be shown whether or not the option is set. var languageName = args.SubjectBuffer.GetLanguageName(); if (args is not InvokeSignatureHelpCommandArgs && languageName != null && !_globalOptions.GetOption(SignatureHelpViewOptionsStorage.ShowSignatureHelp, languageName)) { controller = null; return false; } controller = _controllerProvider.GetController(args.TextView, args.SubjectBuffer); return controller is not null; } }