Я смотрю на Рослин-х CompletionService
и ShouldTriggerCompletion
определяется какКаков наиболее эффективный способ использования CompletionSevice Roslyn при наборе текста?
public virtual bool ShouldTriggerCompletion(
SourceText text,
int caretPosition,
CompletionTrigger trigger,
ImmutableHashSet<string> roles = null,
OptionSet options = null
) { … }
где CompletionTrigger
является оболочкой для одного char Character
.
Это, кажется, подразумевает, я должен назвать ShouldTriggerCompletion
на каждый полукокс при вводе - однако это будет означать, мне нужно обновить SourceText
на каждый полукокс, который выделяет массив TextChange
, новые SourceText
и потенциально другие вещи, в зависимости от его внутренней структуры ,
Правильно ли я понял этот API? Каков наиболее эффективный способ его использования при наборе текста?
Edit: Чтобы уточнить, я знаю, что могу предугадывать его и только назвать его, скажем, .
. Но моя цель - использовать API так, как он предназначен для использования, без каких-либо оптимизаций, кроме тех, которые уже были предоставлены.
Спасибо. Я уточню вопрос, чтобы уточнить, но моя цель - представить стандартное поведение Roslyn настолько близко, насколько это возможно, поэтому я не хочу угадывать API. Я просто привык к настройке операций ввода, поэтому я удивлен, увидев несколько распределений, не вызывающих никаких проблем здесь (хотя, конечно, я должен измерить фактическое воздействие). –
Задать вопрос по этому вопросу [Как правильно обновить документ Рослина при наборе текста?] (http://stackoverflow.com/questions/39422126/whats-the-right-way-to-update-roslyns-document-while-typing), так как мне это понадобится для 'GetCompletionsAsync'. –