Форматирование содержимого разметки с помощью MarkupKind.PlainText

В рамках реализации LSP я хочу вернуть некоторый простой текст в ответ на запрос наведения курсора. Я использую для этого MarkupContent . Я устанавливаю kindв «открытый текст». Я обнаружил, что VS Code обрабатывает текст и (я думаю) просто удаляет части, похожие на теги HTML. Например, если я возвращаю текст «name :: <string>», он отображается как «name ::». Я сам могу экранировать теги с помощью объектов HTML, например, заменяя '<' на '&lt;' и это отображается правильно в коде VS, но теперь emacs-lsp этого не делает и отображает текст буквально, поэтому я вижу 'name :: &lt;string&gt;'.

В спецификации LSP говорится: « Обратите внимание, что клиенты могут очистить возвратную уценку. Клиент может решить удалить HTML из уценки, чтобы избежать выполнения скрипта». но подразумевается, что это относится к разметке, а не к обычному тексту.

Есть ли способ обойти это, чтобы получить единообразное отображение как в vscode, так и в emacs-lsp? Есть ли ошибка в реализации vscode? В идеале я бы не хотел добавлять клиентскую логику в серверный код.

vscode версии 1.56.2, lsp-mode версии 20210530.1518 (от MELPA)

0 ответов

Другие вопросы по тегам