В настоящее время я занимаюсь разработкой языкового расширения для VS Code. Язык, для которого я его разрабатываю, обычно поставляется с собственным расширением файла (назовем его .myext
) или просто .txt
(это просто язык сценариев).
Я столкнулся с проблемой, что я не уверен, как сказать VS Code использовать мое расширение, когда первая строка соответствует определенной строке при открытии .txt
файлов.
Это то, что я пытаюсь (выдержка из моего package.json
):
"contributes": {
"languages": [
{
"id": "mylang",
"aliases": [
"mylang"
],
"extensions": [
".myext"
],
"firstLine": "^MyLang.*",
"configuration": "./language-configuration.json"
}
]
}
Это не работает, когда я открываю файл .txt
, который начинается с MyLang
. Однако он работает, если я открываю файл с неизвестным (например, file.foobar1234
) или вообще без расширения.
Когда я сейчас изменю конфигурацию для включения .txt
файлов, будет активировано мое расширение для любого .txt
файла, который я открываю:
"contributes": {
"languages": [
{
"id": "mylang",
"aliases": [
"mylang"
],
"extensions": [
".myext",
".txt"
],
"firstLine": "^MyLang.*",
"configuration": "./language-configuration.json"
}
]
}
Однако я не хочу этого, я хочу оставить настройку по умолчанию plain text
при открытии обычных .txt
файлов.
Короче говоря, чего я хочу достичь:
- активировать расширение для моего пользовательского расширения файла
.myext
(это уже работает без проблем)
- активировать мое расширение при открытии файлов
.txt
, которые начинаются со строки, указанной в firstLine
- не активировать мое расширение при открытии
.txt
файлов, которые не начинаются со строки, указанной в firstLine
Есть ли способ сделать это?