VSCode - это редактор, который мы используем каждый день. Мы будем использовать множество плагинов VSCode, некоторые из которых более мощные, но очень простые в реализации. Сегодня я познакомлю вас с таким API.
прохождение концепции
Давайте сначала разберемся с несколькими понятиями:
Каждое такое окно редактирования называется редактором иvscode.window.visibleTextEditors
Вы можете получить все видимые экземпляры редактора.
Что в редакторе?
Конечно, то, что редактируется в редакторе, — это документ, черезeditor.document
Вы можете получить образец документа.
документ может, в свою очередь, пройтиdocument.getText()
Получить содержимое документа.
Далее идет простой, но мощный API:editor.setDecorations(decoration, range)
Его роль заключается в том, чтобы добавить некоторые CSS из определенной позиции в определенную позицию в редакторе, то есть определенный диапазон Эти CSS называются украшениями.
API для создания декораторовwindow.createTextEditorDecorationType
:
vscode.window.createTextEditorDecorationType({
textDecoration: 'line-through',
})
Параметр css, можно добавлять разные стили. Вы также можете добавить псевдоэлементы (до или после):
vscode.window.createTextEditorDecorationType({
before: {
contentText:'',
textDecoration: `none;`
},
})
Где эти украшения? Задается вторым диапазоном параметров, который определяется двумя позициями в документе.
const startPos = activeEditor.document.positionAt(ndex1);
const endPos = activeEditor.document.positionAt(index2);
const range = new vscode.Range(startPos, endPos);
Таким образом, вы можете добавлять украшения в редактор.
Давайте соединим вещи, упомянутые выше:
Получите документ из редактора, затемdocument.getText()
Получите текстовое содержимое, найдите две позиции position1 и position2 и создайте его в диапазоне,
затем пройтиeditor.setDecorations
Добавьте к этому диапазону оформление, оформление — это различные css или псевдоэлементы.
Можно сказать, это все? Что такого мощного в этом API.
Тогда давайте посмотрим, что может сделать этот API.
Применение декораторов
предварительный просмотр цвета css
Вы никогда не использовали плагин для подсветки цвета css vscode-color-highlight.Реализация этого заключается в том, чтобы сопоставить диапазон, в котором находится цвет, а затем добавить украшение перед псевдоэлементом, чтобы добавить цвет фона.
Изображение выше — это функция предварительного просмотра цвета, которую я делал раньше, и она также поддерживает градиентные цвета.
Встроенная информация о коммите для gitlens
gitlens, пожалуй, самый популярный плагин VSCode.Как он отображает информацию о коммите в редакторе?
Да еще и через декоратор.
Редактировать спецэффекты
Так же плагин vscode-power-mode который ставит фейерверк в редактор, такой классный эффект тоже на основе декоратора. Принцип заключается в том, чтобы добавить псевдоэлемент before при изменении содержимого документа, поставить gif-изображение и через некоторое время исчезнуть.
Эти функции основаны на той, которую мы узнали ранее.editor.setDecorations
API простой и мощный.
Суммировать
Каждое окно редактирования в VSCode является экземпляром редактора, доступ к которому можно получить черезvscode.window.visibleTextEditors
Получить все видимые редакторы.
Есть документ в редакторе, а дальше можно пройтиdocument.getText
Получите текст.
После этого путем регулярного сопоставления текста определяется область оформления, а затем создается объект оформления, то есть кусок CSS. Затем вы можете использовать этот простой и мощный API:editor.setDecorations
Украсил редактор.
На самом деле, в функциях VSCode, которые мы обычно используем, есть много декораторов, таких как предварительный просмотр цвета css, встроенная информация о вине git и эффекты редактирования, такие как фейерверк.
Молодой человек, я буду обучать вас этому API-интерфейсу плагина VSCode, которым я дорожу.Единственное, что может вас ограничивать, должно быть ваше воображение.