mirror of
https://github.com/neovim/neovim.git
synced 2025-12-15 19:05:40 +00:00
feat(runtime): Lua ftplugin 'includeexpr' #32719
Problem: Current `'includeexpr'` in runtime/ftplugin/lua.vim doesn't work with Nvim Lua. Solution: Provide an improved 'includeexpr' for Lua in "ftplugin/lua.lua". Closes: https://github.com/neovim/neovim/issues/32490
This commit is contained in:
26
runtime/lua/vim/_ftplugin/lua.lua
Normal file
26
runtime/lua/vim/_ftplugin/lua.lua
Normal file
@@ -0,0 +1,26 @@
|
||||
local M = {}
|
||||
|
||||
--- @param module string
|
||||
---@return string
|
||||
function M.includeexpr(module)
|
||||
---@param fname string
|
||||
---@return boolean
|
||||
local function filereadable(fname)
|
||||
return vim.fn.filereadable(fname) == 1
|
||||
end
|
||||
|
||||
local fname = module:gsub('%.', '/')
|
||||
|
||||
local root = vim.fs.root(vim.api.nvim_buf_get_name(0), 'lua') or vim.fn.getcwd()
|
||||
for _, suf in ipairs { '.lua', '/init.lua' } do
|
||||
local path = vim.fs.joinpath(root, 'lua', fname .. suf)
|
||||
if filereadable(path) then
|
||||
return path
|
||||
end
|
||||
end
|
||||
|
||||
local modInfo = vim.loader.find(module)[1]
|
||||
return modInfo and modInfo.modpath or module
|
||||
end
|
||||
|
||||
return M
|
||||
Reference in New Issue
Block a user