Фрагменты относятся к языкам и вводятся в VS Code как глобальный или локальный для рабочей области. Языки могут быть добавлены в VS Code с помощью исключений. Обычно путем объявления языка в package.json
, добавления файлов синтаксиса и фрагментов. Обновление: Вот руководство , как добавить фрагмент к любому языку через ваше расширение . Если вы следуете руководству и добавите фрагмент в текущее рабочее пространство, вы заметите, что файл с расширением .code-snippets
создается в папке .vscode
в рабочем пространстве. Поэтому вы можете перечислять все такие файлы, используя API vscode.workspace.workspaceFolders
и fs.readDir
.
vscode.workspace.workspaceFolders!.forEach(workspaceFolder => {
const snippetFiles = fs.readdirSync(path.join(workspaceFolder.uri.fsPath, '.vscode'))
.filter(el => /\.code-snippets$/.test(el));
});
Аналогично, глобальные фрагменты добавляются в виде файлов .code-snippets
в папку профиля пользователя - в Windows это выглядит такэто: C:\Users\currentUser\AppData\Roaming\Code\User\snippets\*.code-snippets
. В обоих местах можно сканировать файлы *.code-snippets
, а также программно добавлять такие файлы в эти папки.
Ниже приведена документация о том, как добавлять фрагменты в область с помощью файла . Кажется, что нет никакого открытого API для перечисления всех таких файлов фрагментов программным способом.
Но если вы хотите получить список языков на скриншоте, который вы разместили, используйте этот API:
vscode.languages.getLanguages()
Это может помочь, если вы объясните, что выпытаясь достичь. Вы хотите узнать, откуда исходит конкретный фрагмент, чтобы изменить его? Хотите добавить фрагмент к языку в этом списке? Или к языку, которого нет в этом списке?