From 32e249dfa6fcf2d079df962473bd257bf04c2a16 Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Tue, 21 Apr 2026 10:24:07 +0800 Subject: [PATCH] vim-patch:9.2.0371: filetype: ghostty config files are not recognized (#39267) Problem: filetype: ghostty config files are not recognized Solution: Detect ghostty configuration files as ghostty filetype, include a simple ghostty filetype plugin (Bez Hermoso) closes: vim/vim#20002 https://github.com/vim/vim/commit/b30803b231beea13e2efa42fefc04be71a4e9bb5 Co-authored-by: Bez Hermoso Co-authored-by: Christian Brabandt --- runtime/ftplugin/ghostty.vim | 10 ++++++++++ runtime/lua/vim/filetype.lua | 4 ++++ test/old/testdir/test_filetype.vim | 3 +++ 3 files changed, 17 insertions(+) create mode 100644 runtime/ftplugin/ghostty.vim diff --git a/runtime/ftplugin/ghostty.vim b/runtime/ftplugin/ghostty.vim new file mode 100644 index 0000000000..479fd610bd --- /dev/null +++ b/runtime/ftplugin/ghostty.vim @@ -0,0 +1,10 @@ +" Vim filetype plugin file +" Language: ghostty + +" Quit if a ftplugin file was already loaded +if exists("b:did_ftplugin") + finish +endif + +" Use the cfg plugin, it's similar enough. +runtime! ftplugin/cfg.vim diff --git a/runtime/lua/vim/filetype.lua b/runtime/lua/vim/filetype.lua index 622fedb23a..c1edd148b5 100644 --- a/runtime/lua/vim/filetype.lua +++ b/runtime/lua/vim/filetype.lua @@ -565,6 +565,7 @@ local extension = { gel = 'gel', gmi = 'gemtext', gemini = 'gemtext', + ghostty = 'ghostty', gift = 'gift', prettierignore = 'gitignore', gleam = 'gleam', @@ -2487,6 +2488,8 @@ local pattern = { ['/mypy/config$'] = 'dosini', ['^${HOME}/%.config/notmuch/.*/config$'] = 'dosini', ['^${XDG_CONFIG_HOME}/notmuch/.*/config$'] = 'dosini', + ['/ghostty/config$'] = 'ghostty', + ['/com%.mitchellh%.ghostty/config$'] = 'ghostty', ['^${XDG_CONFIG_HOME}/git/config$'] = 'gitconfig', ['%.git/config%.worktree$'] = 'gitconfig', ['%.git/config$'] = 'gitconfig', @@ -2743,6 +2746,7 @@ local pattern = { ['^[a-zA-Z].*Properties%.'] = starsetf(detect.foam), ['^[a-zA-Z].*Properties$'] = detect.foam, ['/tmp/lltmp'] = starsetf('gedcom'), + ['/ghostty/themes/'] = starsetf('ghostty'), ['^gkrellmrc_.$'] = 'gkrellmrc', ['^${GNUPGHOME}/options$'] = 'gpg', ['/boot/grub/menu%.lst$'] = 'grub', diff --git a/test/old/testdir/test_filetype.vim b/test/old/testdir/test_filetype.vim index 62b32b5e9e..d11ec3fbb0 100644 --- a/test/old/testdir/test_filetype.vim +++ b/test/old/testdir/test_filetype.vim @@ -327,6 +327,9 @@ func s:GetFilenameChecks() abort \ 'gedcom': ['file.ged', 'lltxxxxx.txt', '/tmp/lltmp', '/tmp/lltmp-file', 'any/tmp/lltmp', 'any/tmp/lltmp-file'], \ 'gel': ['file.gel'], \ 'gemtext': ['file.gmi', 'file.gemini'], + \ 'ghostty': ['ghostty/config', 'ghostty/keymaps.ghostty', '/.config/ghostty/config', '/.config/ghostty/keymaps.ghostty', + \ '~/Library/Application Support/com.mitchellh.ghostty/config.ghostty', '~/Library/Application Support/com.mitchellh.ghostty/config', + \ '~/.config/ghostty/themes/Custom Theme', '/usr/share/ghostty/themes/Builtin Theme'], \ 'gift': ['file.gift'], \ 'gitattributes': ['file.git/info/attributes', '.gitattributes', '/.config/git/attributes', '/etc/gitattributes', '/usr/local/etc/gitattributes', 'some.git/info/attributes'] + s:WhenConfigHome('$XDG_CONFIG_HOME/git/attributes'), \ 'gitcommit': ['COMMIT_EDITMSG', 'MERGE_MSG', 'TAG_EDITMSG', 'NOTES_EDITMSG', 'EDIT_DESCRIPTION'],