VSCode, связывающий файл без расширения с xml

#regex #visual-studio-code #glob

#visual-studio-code

Вопрос:

Я хочу связать все файлы без расширения с форматом xml в VSCode.

Когда я делаю это ниже, он создает все файлы (даже с расширениями) в формате xml. «files.associations»: { «*»: «xml» }

Есть ли способ добиться этого?

Комментарии:

1. { "*.": "xml" } ?

2. Это не сработает. это похоже на регулярное выражение для имени файла без расширения

3. Нет, это подстановочное выражение, которое, похоже files.associations , использует. В примере в документации / комментарии используются подстановочные знаки: «Настройте ассоциации файлов с языками (например "*.extension": "html" )».

Ответ №1:

Это решение не работает для последних версий.

 "files.associations": {
    "[!.]*": "xml",
},
 

Для последних версий вам необходимо добавить правило для каждой длины файла.

В примере показано решение для файлов длиной до 30 символов.

Далеко не лучшее решение, но лучшего решения пока не найдено.

 "files.associations": {
    "[!.]": "xml",
    "[!.][!.]": "xml",
    "[!.][!.][!.]": "xml",
    "[!.][!.][!.][!.]": "xml",
    "[!.][!.][!.][!.][!.]": "xml",
    "[!.][!.][!.][!.][!.][!.]": "xml",
    "[!.][!.][!.][!.][!.][!.][!.]": "xml",
    "[!.][!.][!.][!.][!.][!.][!.][!.]": "xml",
    "[!.][!.][!.][!.][!.][!.][!.][!.][!.]": "xml",
    "[!.][!.][!.][!.][!.][!.][!.][!.][!.][!.]": "xml",
    "[!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.]": "xml",
    "[!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.]": "xml",
    "[!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.]": "xml",
    "[!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.]": "xml",
    "[!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.]": "xml",
    "[!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.]": "xml",
    "[!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.]": "xml",
    "[!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.]": "xml",
    "[!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.]": "xml",
    "[!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.]": "xml",
    "[!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.]": "xml",
    "[!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.]": "xml",
    "[!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.]": "xml",
    "[!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.]": "xml",
    "[!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.]": "xml",
    "[!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.]": "xml",
    "[!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.]": "xml",
    "[!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.]": "xml",
    "[!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.]": "xml",
    "[!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.][!.]": "xml",
}
 

Комментарии:

1. Это работало для меня для c Linux, включая файлы, например, при открытии <string> ; хотя, обратите внимание, что это работало только тогда, когда я это делал "cpp" , правильная строка языкового режима, а не "c " , которая не работала. Спасибо.

2. Обновление: на самом деле, похоже, это приводит к открытию всех файлов в любом языковом режиме… :/

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

4. Подход этого ответа приведет к тому, что буквально все открытые файлы будут открываться в указанном языковом режиме, который был указан, т. Е. "xml" Или "cpp" , Независимо от того, что было указано здесь.

5. все файлы без расширения (без точки в полном имени) будут открываться как файлы «xml».