diff --git a/runtime/lua/vim/filetype.lua b/runtime/lua/vim/filetype.lua index 42b0a109f8..631ca77258 100644 --- a/runtime/lua/vim/filetype.lua +++ b/runtime/lua/vim/filetype.lua @@ -446,6 +446,7 @@ local extension = { lc = 'elsa', elv = 'elvish', ent = detect.ent, + env = 'env', epp = 'epuppet', erl = 'erlang', hrl = 'erlang', @@ -1151,7 +1152,6 @@ local extension = { cygport = detect.bash, ebuild = detect.bash, eclass = detect.bash, - env = detect.sh, envrc = detect.sh, ksh = detect.ksh, sh = detect.sh, @@ -1627,6 +1627,7 @@ local filename = { Earthfile = 'earthfile', ['.editorconfig'] = 'editorconfig', ['elinks.conf'] = 'elinks', + ['.env'] = 'env', ['rebar.config'] = 'erlang', ['mix.lock'] = 'elixir', ['filter-rules'] = 'elmfilt', @@ -2652,11 +2653,13 @@ local pattern = { ['^%.cshrc'] = detect.csh, ['^%.login'] = detect.csh, ['^%.notmuch%-config%.'] = 'dosini', + ['^%.env%.'] = 'env', ['^%.gitsendemail%.msg%.......$'] = 'gitsendemail', ['^%.kshrc'] = detect.ksh, ['^%.article%.%d+$'] = 'mail', ['^%.letter%.%d+$'] = 'mail', ['^%.reminders'] = starsetf('remind'), + ['^%.envrc%.'] = detect.sh, ['^%.tcshrc'] = detect.tcsh, ['^%.zcompdump'] = starsetf('zsh'), }, diff --git a/runtime/syntax/env.vim b/runtime/syntax/env.vim new file mode 100644 index 0000000000..a33eb045da --- /dev/null +++ b/runtime/syntax/env.vim @@ -0,0 +1,28 @@ +" Vim syntax file +" Language: env +" Maintainer: DuckAfire +" Last Change: 2026 Jan 27 +" Version: 2 +" Changelog: +" 0. Create syntax file. +" 1. Remove unused variable (g:main_syntax). +" 2. Apply changes required by github@dkearns + +if exists("b:current_syntax") + finish +endif + +syn match envField nextgroup=envValue /^\h\%(\w\|\.\)*/ +syn region envValue matchgroup=Operator start=/=/ end=/$/ +syn match envComment contains=envTodo,envTitles /^#.*$/ +syn keyword envTodo contained CAUTION NOTE TODO WARN WARNING +syn match envTitle contained /^\s*#\s*\zs[A-Z0-9][A-Z0-9 ]*:/ + +hi def link envField Identifier +hi def link envValue String +hi def link envComment Comment +hi def link envTodo Todo +hi def link envTitle PreProc + +let b:current_syntax = "env" + diff --git a/test/old/testdir/test_filetype.vim b/test/old/testdir/test_filetype.vim index 7beb3d3734..bbaca148c3 100644 --- a/test/old/testdir/test_filetype.vim +++ b/test/old/testdir/test_filetype.vim @@ -278,6 +278,7 @@ func s:GetFilenameChecks() abort \ 'elmfilt': ['filter-rules'], \ 'elsa': ['file.lc'], \ 'elvish': ['file.elv'], + \ 'env': ['.env', '.env.file', 'file.env'], \ 'epuppet': ['file.epp'], \ 'erlang': ['file.erl', 'file.hrl', 'file.yaws', 'file.app.src', 'rebar.config'], \ 'eruby': ['file.erb', 'file.rhtml'], @@ -732,7 +733,7 @@ func s:GetFilenameChecks() abort \ 'sh': ['.bashrc', '.bash_profile', '.bash-profile', '.bash_logout', '.bash-logout', '.bash_aliases', '.bash-aliases', '.bash_history', '.bash-history', \ '/tmp/bash-fc-3Ozjlw', '/tmp/bash-fc.3Ozjlw', 'PKGBUILD', 'file.bash', '/usr/share/doc/bash-completion/filter.sh', \ '/etc/udev/cdsymlinks.conf', 'any/etc/udev/cdsymlinks.conf', 'file.bats', '.ash_history', 'any/etc/neofetch/config.conf', '.xprofile', - \ 'user-dirs.defaults', 'user-dirs.dirs', 'makepkg.conf', '.makepkg.conf', 'file.mdd', 'file.cygport', '.env', '.envrc', 'devscripts.conf', + \ 'user-dirs.defaults', 'user-dirs.dirs', 'makepkg.conf', '.makepkg.conf', 'file.mdd', 'file.cygport', '.envrc', '.envrc.file', 'file.envrc', 'devscripts.conf', \ '.devscripts', 'file.lo', 'file.la', 'file.lai'], \ 'shaderslang': ['file.slang'], \ 'sieve': ['file.siv', 'file.sieve'],