ПРОТИВ расширения кода получить текущее количество предложений?

#typescript #visual-studio-code #vscode-extensions

#машинописный текст #visual-studio-код #vscode-расширения

Вопрос:

Я впервые пытаюсь разработать расширение VS-кода, цель которого-запустить editor.action.triggerSuggest его во второй раз, если текущий список предложений пуст. Это может быть связано с тем, что сервер фонового языка еще не завершил анализ документа. Грубо говоря, это то, что я хочу сделать, в псевдокоде:

 trigger suggestions; if ( suggestions list has 0 elements ) {  trigger suggestions; }  

Однако я понятия не имею, как это реализовать suggestions list has 0 elements . Документация по API расширения не помогла выяснить, сколько кандидатов в настоящее время находится в списке предложений.

Мое нынешнее решение было менее чем удовлетворительным. Я просто запускаю предложения во второй раз после короткого периода ожидания, но этот код плох, потому что он снова запускает предложения, даже если список предложений уже заполнен:

 import * as vscode from 'vscode';  // Wait for ms milliseconds function delay(ms: number) {  if (ms gt; 0) {  return new Promise((resolve) =gt; setTimeout(resolve, ms));  } }  async function multiSuggestionsCommand(interval: number = 300) {  await vscode.commands.executeCommand('editor.action.triggerSuggest');  await delay(interval);  await vscode.commands.executeCommand('editor.action.triggerSuggest'); }  // Runs at extension activation export function activate(context: vscode.ExtensionContext) {   console.log('Activated the SuggestionsMultiTrigger extension');   let triggerSuggestionCmd = vscode.commands.registerCommand(  'suggestions-multi-trigger.toggleSuggestions',  multiSuggestionsCommand);   context.subscriptions.push(triggerSuggestionCmd); }  // Runs at extension deactivation export function deactivate() {}   

Комментарии:

1. обновление предложений выполняется асинхронно, вы никогда не узнаете, останется ли список пустым, возможно, никогда не будет предложения о том, как часто вы запрашиваете список предложений