mirror of
https://github.com/neovim/neovim.git
synced 2024-12-20 03:05:11 -07:00
Merge pull request #24864 from gpanders/filetype-on-detect-order
This commit is contained in:
commit
0b0d912763
@ -2600,7 +2600,8 @@ vim.filetype.add({filetypes}) *vim.filetype.add()*
|
|||||||
matched pattern, if any) and should return a string that will be used as
|
matched pattern, if any) and should return a string that will be used as
|
||||||
the buffer's filetype. Optionally, the function can return a second
|
the buffer's filetype. Optionally, the function can return a second
|
||||||
function value which, when called, modifies the state of the buffer. This
|
function value which, when called, modifies the state of the buffer. This
|
||||||
can be used to, for example, set filetype-specific buffer variables.
|
can be used to, for example, set filetype-specific buffer variables. This
|
||||||
|
function will be called by Nvim before setting the buffer's filetype.
|
||||||
|
|
||||||
Filename patterns can specify an optional priority to resolve cases when a
|
Filename patterns can specify an optional priority to resolve cases when a
|
||||||
file path matches multiple patterns. Higher priorities are matched first.
|
file path matches multiple patterns. Higher priorities are matched first.
|
||||||
|
@ -18,12 +18,15 @@ vim.api.nvim_create_autocmd({ 'BufRead', 'BufNewFile', 'StdinReadPost' }, {
|
|||||||
end)
|
end)
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
vim.api.nvim_buf_call(args.buf, function()
|
-- on_detect is called before setting the filetype so that it can set any buffer local
|
||||||
vim.api.nvim_cmd({ cmd = 'setf', args = { ft } }, {})
|
-- variables that may be used the filetype's ftplugin
|
||||||
end)
|
|
||||||
if on_detect then
|
if on_detect then
|
||||||
on_detect(args.buf)
|
on_detect(args.buf)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
vim.api.nvim_buf_call(args.buf, function()
|
||||||
|
vim.api.nvim_cmd({ cmd = 'setf', args = { ft } }, {})
|
||||||
|
end)
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
@ -2061,7 +2061,8 @@ end
|
|||||||
--- pattern, if any) and should return a string that will be used as the
|
--- pattern, if any) and should return a string that will be used as the
|
||||||
--- buffer's filetype. Optionally, the function can return a second function
|
--- buffer's filetype. Optionally, the function can return a second function
|
||||||
--- value which, when called, modifies the state of the buffer. This can be used
|
--- value which, when called, modifies the state of the buffer. This can be used
|
||||||
--- to, for example, set filetype-specific buffer variables.
|
--- to, for example, set filetype-specific buffer variables. This function will
|
||||||
|
--- be called by Nvim before setting the buffer's filetype.
|
||||||
---
|
---
|
||||||
--- Filename patterns can specify an optional priority to resolve cases when a
|
--- Filename patterns can specify an optional priority to resolve cases when a
|
||||||
--- file path matches multiple patterns. Higher priorities are matched first.
|
--- file path matches multiple patterns. Higher priorities are matched first.
|
||||||
@ -2376,11 +2377,16 @@ function M.match(args)
|
|||||||
-- If the function tries to use the filename that is nil then it will fail,
|
-- If the function tries to use the filename that is nil then it will fail,
|
||||||
-- but this enables checks which do not need a filename to still work.
|
-- but this enables checks which do not need a filename to still work.
|
||||||
local ok
|
local ok
|
||||||
ok, ft = pcall(require('vim.filetype.detect').match_contents, contents, name, function(ext)
|
ok, ft, on_detect = pcall(
|
||||||
return dispatch(extension[ext], name, bufnr)
|
require('vim.filetype.detect').match_contents,
|
||||||
end)
|
contents,
|
||||||
if ok and ft then
|
name,
|
||||||
return ft
|
function(ext)
|
||||||
|
return dispatch(extension[ext], name, bufnr)
|
||||||
|
end
|
||||||
|
)
|
||||||
|
if ok then
|
||||||
|
return ft, on_detect
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
Loading…
Reference in New Issue
Block a user