commit 8310f2052636d70b6e8dc38c83c9b73012841177
parent 23ddb2028bce0998f53f5d23f3b6c2aac616f28e
Author: zeertzjq <zeertzjq@outlook.com>
Date: Mon, 1 Dec 2025 09:27:29 +0800
vim-patch:9.1.1935: filetype: not all Erlang files are recognized
Problem: filetype: not all Erlang files are recognized
Solution: Detect *.app.src and rebar.config files as erlang filetype
(John Parise).
*.app.src files contain Erlang application definitions. (There are also
*.app files, which are similar but more often build artifacts, and that
file extension is too ambiguous to be recognized by default.)
Reference:
- https://www.erlang.org/doc/system/applications.html
Rebar is the Erlang build tool. rebar.config uses Erlang syntax.
Reference:
- https://rebar3.org/docs/configuration/configuration/
closes: vim/vim#18835
https://github.com/vim/vim/commit/2b2580e61a853617173f907bd42e12a073cf2410
Co-authored-by: Jon Parise <jon@indelible.org>
Diffstat:
2 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/runtime/lua/vim/filetype.lua b/runtime/lua/vim/filetype.lua
@@ -1605,6 +1605,7 @@ local filename = {
Earthfile = 'earthfile',
['.editorconfig'] = 'editorconfig',
['elinks.conf'] = 'elinks',
+ ['rebar.config'] = 'erlang',
['mix.lock'] = 'elixir',
['filter-rules'] = 'elmfilt',
['exim.conf'] = 'exim',
@@ -2631,6 +2632,7 @@ local pattern = {
['^www%.conf'] = starsetf('dosini'),
['^drac%.'] = starsetf('dracula'),
['/dtrace/.*%.d$'] = 'dtrace',
+ ['%.app%.src$'] = 'erlang',
['esmtprc$'] = 'esmtprc',
['/0%.orig/'] = starsetf(detect.foam),
['/0/'] = starsetf(detect.foam),
diff --git a/test/old/testdir/test_filetype.vim b/test/old/testdir/test_filetype.vim
@@ -275,7 +275,7 @@ func s:GetFilenameChecks() abort
\ 'elsa': ['file.lc'],
\ 'elvish': ['file.elv'],
\ 'epuppet': ['file.epp'],
- \ 'erlang': ['file.erl', 'file.hrl', 'file.yaws'],
+ \ 'erlang': ['file.erl', 'file.hrl', 'file.yaws', 'file.app.src', 'rebar.config'],
\ 'eruby': ['file.erb', 'file.rhtml'],
\ 'esdl': ['file.esdl'],
\ 'esmtprc': ['anyesmtprc', 'esmtprc', 'some-esmtprc'],