diff options
-rw-r--r-- | runtime/doc/dev_vimpatch.txt | 7 | ||||
-rw-r--r-- | runtime/lua/vim/filetype.lua | 2 |
2 files changed, 8 insertions, 1 deletions
diff --git a/runtime/doc/dev_vimpatch.txt b/runtime/doc/dev_vimpatch.txt index 98a4246057..a36b2a613b 100644 --- a/runtime/doc/dev_vimpatch.txt +++ b/runtime/doc/dev_vimpatch.txt @@ -310,11 +310,16 @@ FILETYPE DETECTION *dev-vimpatch-filetype* Nvim's filetype detection behavior matches Vim, but is implemented as part of |vim.filetype| (see $VIMRUNTIME/lua/vim/filetype.lua). +Prefer explicit filenames/extensions over patterns, especially for case +insensitive matches (see https://github.com/neovim/neovim/pull/29800): > + "*[mM]akefile" regex -> "makefile", "Makefile" filenames + "*.js\c" regex -> "js", "jS", "Js", "jS" extensions + Pattern matching has several differences: - It is done using explicit Lua patterns (without implicit anchoring) instead of Vim regexes: > "*/debian/changelog" -> "/debian/changelog$" - "*/bind/db.*" -> "/bind/db%." + "*/bind/db.*" -> "/bind/db%." < - Filetype patterns are grouped by their parent pattern to improve matching performance. For this to work properly, parent pattern should: diff --git a/runtime/lua/vim/filetype.lua b/runtime/lua/vim/filetype.lua index 6343a540ed..4192645acb 100644 --- a/runtime/lua/vim/filetype.lua +++ b/runtime/lua/vim/filetype.lua @@ -1896,6 +1896,8 @@ local detect_xkb = starsetf('xkb', { parent = '/usr/' }) --- Vim regexes are converted into explicit Lua patterns (without implicit anchoring): --- '*/debian/changelog' -> '/debian/changelog$' --- '*/bind/db.*' -> '/bind/db%.' +--- +--- See more info in `:h dev-vimpatch-filetype`. --- @type table<string,vim.filetype.mapping> local pattern = { -- BEGIN PATTERN |