Могу ли я расширить существующий Colorizer или язык в VS Code

Что я хотел бы сделать, так это создать расширение, которое расширяет поддержку HTML, то есть оно делает все, что делает поддержка HTML, и даже больше, включая следующее:

  1. Подсветка синтаксиса (раскрашивание)
  2. IntelliSense
  3. Формат HTML
  4. Фрагменты Эммета

Эти сведения перечислены на этой странице HTML Programming in VS Code

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

Я заставил №1 работать самостоятельно в качестве раскрашивателя, а №2 можно выполнить через языковой сервер.

Поскольку выражения Liquid вставляются в HTML-документы, плагин должен быть построен поверх/расширять поддержку HTML, а не переопределять ее. Это возможно?


person Ian R. O'Brien    schedule 15.07.2016    source источник
comment
Почему минус? Документация VS Code на самом деле рекомендует задавать вопросы Stackoverflow с использованием тега vscode. code.visualstudio.com/Docs/supporting/faq#_technical-support   -  person Ian R. O'Brien    schedule 17.07.2016
comment
Вы нашли решение?   -  person Tom Doodler    schedule 15.07.2019


Ответы (1)


Не похоже, что это возможно в качестве расширения. Глядя на исходный код src\vs\languages\html\common, если я хочу расширить существующую встроенную языковую поддержку, я могу создать расширение класса.

Например, языковая поддержка Handlebars является расширением HTML и реализована следующим образом:

// handlebars.ts
import htmlMode = require('vs/languages/html/common/html');
export class HandlebarsState extends htmlMode.State { ... }
export class HandlebarsMode extends htmlMode.HTMLMode<htmlWorker.HTMLWorker> { ... }

Итак, в моем конкретном случае я либо хочу расширить HTML, либо Handlebars (я еще не определил, что имеет больше смысла), чтобы добавить поддержку Liquid языков.

person Ian R. O'Brien    schedule 19.07.2016