Добавить пользовательский HTML форматер для редактора Monaco - PullRequest
0 голосов
/ 20 января 2020

я пытаюсь сделать то же самое, что было сделано здесь Пользовательские средства форматирования Monaco Editor , но с html вместо css.

Моя проблема что пользовательский форматтер, который я предоставляю, не используется Монако. Согласно документации / репо это как-то связано с the last one registered wins. (https://github.com/microsoft/monaco-editor/issues/968)

Так что, если я зарегистрирую свой форматер, как показано в документах

export const documentFormatProviderHTML: languages.DocumentFormattingEditProvider = {
  provideDocumentFormattingEdits(
    model: editor.ITextModel,
    options: languages.FormattingOptions,
    token: CancellationToken,
  ) {
    return [
      {
        text: html_beautify(model.getValue(), htmlOptions),
        range: model.getFullModelRange(),
      },
    ];
  },
};

monaco.languages.registerDocumentFormattingEditProvider('html',
  documentFormatProviderHTML,
);

, то форматер по умолчанию, включенный в монако get, будет вызываться вместо моего пользовательского .

Можно ли как-то переопределить / отключить встроенный форматтер? Я могу заставить его работать, если я откладываю регистрацию моего пользовательского форматера с setTimeout(...), чтобы сделать его "последним, кто победит", но я бы не стал полагаться на этот уродливый хак: /

С уважением

...