Проверьте, открыт ли виджет предложений в редакторе Monaco - PullRequest
0 голосов
/ 29 января 2020

У меня есть редактор Monaco, и я хочу переопределить клавишу «Ввод», но если виджет предложений открыт, он должен действовать как обычно (выберите активный элемент в предложениях). Мне нужно что-то вроде

editor.isSuggestionsWidgetOpened() или лучше editor.isTextFocused()

1 Ответ

0 голосов
/ 30 января 2020

Я смог получить то, что мне нужно, с помощью этой функции:

 (editor as any).addAction({
      id: 'my-close',
      label: 'Close',
      keybindings: [monaco.KeyCode.Enter],
      // && !parameterHintsVisible
      precondition: '!suggestWidgetVisible && !markersNavigationVisible && !findWidgetVisible',
      run: async () => {
        const { lineNumber } = editor.getPosition();
        const lineCode = extend.getCodeInRange(lineNumber, lineNumber);
        if (!lineCode || !lineCode.trim()) return;
        const code = extend.getCodeInRange(1, lineNumber);
        this.drawEditorRunIcon('loadingDecoration', editor.getPosition(), `Executing "${lineCode}"`);
        await this.runModel(code);
        this.removeEditorRunIcon('loadingDecoration', editor.getPosition());
        extend.selectNextLine(true);
      }
    });
...