summaryrefslogtreecommitdiff
path: root/ftplugin/lua.lua
diff options
context:
space:
mode:
authorkylo252 <[email protected]>2022-12-17 12:33:57 +0100
committerGitHub <[email protected]>2022-12-17 12:33:57 +0100
commitb661efb3179e9ee7c44c5b2f885f5a7e837ea19d (patch)
tree6e672b2cb60119931ec49fcec45f5cb087367d1a /ftplugin/lua.lua
parent277079ff453fcd951447110fbc745e2241e0490f (diff)
refactor(autocmds): clean up filetype detection rules (#3625)
* refactor(lua): simplify gf utility * refactor(autocmds): cleanup * refactor(ftdetect): use vim.filetype.add instead
Diffstat (limited to 'ftplugin/lua.lua')
-rw-r--r--ftplugin/lua.lua88
1 files changed, 0 insertions, 88 deletions
diff --git a/ftplugin/lua.lua b/ftplugin/lua.lua
deleted file mode 100644
index 138332e9..00000000
--- a/ftplugin/lua.lua
+++ /dev/null
@@ -1,88 +0,0 @@
-local fmt = string.format
--- luacheck: ignore
--- TODO: fix lint violations
-
--- Iterator that splits a string o a given delimiter
-local function split(str, delim)
- delim = delim or "%s"
- return string.gmatch(str, fmt("[^%s]+", delim))
-end
-
--- Find the proper directory separator depending
--- on lua installation or OS.
-local function dir_separator()
- -- Look at package.config for directory separator string (it's the first line)
- if package.config then
- return string.match(package.config, "^[^\n]")
- elseif vim.fn.has "win32" == 1 then
- return "\\"
- else
- return "/"
- end
-end
-
--- Search for lua traditional include paths.
--- This mimics how require internally works.
-local function include_paths(fname, ext)
- ext = ext or "lua"
- local sep = dir_separator()
- local paths = string.gsub(package.path, "%?", fname)
- for path in split(paths, "%;") do
- if vim.fn.filereadable(path) == 1 then
- return path
- end
- end
-end
-
--- Search for nvim lua include paths
-local function include_rtpaths(fname, ext)
- ext = ext or "lua"
- local sep = dir_separator()
- local rtpaths = vim.api.nvim_list_runtime_paths()
- local modfile, initfile = fmt("%s.%s", fname, ext), fmt("init.%s", ext)
- for _, path in ipairs(rtpaths) do
- -- Look on runtime path for 'lua/*.lua' files
- local path1 = table.concat({ path, ext, modfile }, sep)
- if vim.fn.filereadable(path1) == 1 then
- return path1
- end
- -- Look on runtime path for 'lua/*/init.lua' files
- local path2 = table.concat({ path, ext, fname, initfile }, sep)
- if vim.fn.filereadable(path2) == 1 then
- return path2
- end
- end
-end
-
--- Global function that searches the path for the required file
-function find_required_path(module)
- -- Look at package.config for directory separator string (it's the first line)
- local sep = string.match(package.config, "^[^\n]")
- -- Properly change '.' to separator (probably '/' on *nix and '\' on Windows)
- local fname = vim.fn.substitute(module, "\\.", sep, "g")
- local f
- ---- First search for lua modules
- f = include_paths(fname, "lua")
- if f then
- return f
- end
- -- This part is just for nvim modules
- f = include_rtpaths(fname, "lua")
- if f then
- return f
- end
- ---- Now search for Fennel modules
- f = include_paths(fname, "fnl")
- if f then
- return f
- end
- -- This part is just for nvim modules
- f = include_rtpaths(fname, "fnl")
- if f then
- return f
- end
-end
-
--- Set options to open require with gf
-vim.opt_local.include = [=[\v<((do|load)file|require)\s*\(?['"]\zs[^'"]+\ze['"]]=]
-vim.opt_local.includeexpr = "v:lua.find_required_path(v:fname)"