Я много искал, но все говорят о распознавании языка на основе расширений. Я спрашиваю об этом, потому что мы используем определенное имя файла для некоторых целей, и содержимое этого файла написано на каком-то языке, однако этот файл не имеет расширения.Можно ли настроить распознавание языка Atom на основе имени файла, а не расширения?
ответ
Ответы Мэтта и Дмитрия поучительны, вот что я сделал: Сначала я прочитал документ Atom о customizing-language-recognition. Первоначально я думал, что это относится только к расширению файла, но на самом деле оно также относится к имени файла.
'*'
core:
customFileTypes:
'source.python': [
'my file's name'
]
Выполнено.
Да, это вполне возможно.
В вашем языковом пакете у вас, скорее всего, будет grammars/language.cson
. Внутри этого cson
вы получите ключ fileTypes
со значением массива.
Значения в этом массиве могут быть расширениями или именами файлов. Например, пример для ruby: https://github.com/atom/language-ruby/blob/master/grammars/ruby.cson#L3
Внутри этого массива мы видим расширения, такие как rb
(рубиновый скрипт) и gemspec
(ruby gemspec). Тем не менее, мы также видим полные имена файлов, такие как Gemfile
(bundler), Puppetfile
(r10k), Rakefile
(rake) и Vagrantfile
(бродяга).
Не смотря на исходный код, следует догадаться, что Atom выполняет совпадение с тем, что находится в этом массиве, по сравнению с окончанием имени файла, включая, но не обязательно, расширение.
Существует плагин file-types, чтобы отобразить тип файла на новый язык. Вы можете сделать это, основываясь не только на расширении файла, но и на основании имени файла. Посмотрите раздел «RegExp Matchers».