В настоящее время я занимаюсь разработкой языкового расширения для 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
Есть ли способ сделать это?