From 8310f2052636d70b6e8dc38c83c9b73012841177 Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Mon, 1 Dec 2025 09:27:29 +0800 Subject: [PATCH] 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 --- runtime/lua/vim/filetype.lua | 2 ++ test/old/testdir/test_filetype.vim | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/runtime/lua/vim/filetype.lua b/runtime/lua/vim/filetype.lua index 47189ce51e..2de42da938 100644 --- 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 index 36ff82d2a1..0c814c916e 100644 --- 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'],