diff options
| -rw-r--r-- | ftdetect/json.lua | 3 | ||||
| -rw-r--r-- | ftdetect/plaintex.lua | 1 | ||||
| -rw-r--r-- | ftdetect/zig.lua | 3 | ||||
| -rw-r--r-- | ftplugin/lua.lua | 88 | ||||
| -rw-r--r-- | lua/lvim/config/settings.lua | 10 | ||||
| -rw-r--r-- | lua/lvim/core/autocmds.lua | 56 | 
6 files changed, 42 insertions, 119 deletions
| diff --git a/ftdetect/json.lua b/ftdetect/json.lua deleted file mode 100644 index 9824e3e4..00000000 --- a/ftdetect/json.lua +++ /dev/null @@ -1,3 +0,0 @@ -vim.cmd [[ - au BufRead,BufNewFile tsconfig.json set filetype=jsonc -]] diff --git a/ftdetect/plaintex.lua b/ftdetect/plaintex.lua deleted file mode 100644 index aa01dec8..00000000 --- a/ftdetect/plaintex.lua +++ /dev/null @@ -1 +0,0 @@ -vim.cmd [[ au BufRead,BufNewFile *.tex set filetype=tex ]] diff --git a/ftdetect/zig.lua b/ftdetect/zig.lua deleted file mode 100644 index 343c56c0..00000000 --- a/ftdetect/zig.lua +++ /dev/null @@ -1,3 +0,0 @@ -vim.cmd [[ -  au BufRead,BufNewFile *.zir set filetype=zir -]] 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)" diff --git a/lua/lvim/config/settings.lua b/lua/lvim/config/settings.lua index 5724406a..5b818034 100644 --- a/lua/lvim/config/settings.lua +++ b/lua/lvim/config/settings.lua @@ -64,6 +64,16 @@ M.load_default_options = function()    for k, v in pairs(default_options) do      vim.opt[k] = v    end + +  vim.filetype.add { +    extension = { +      tex = "tex", +      zir = "zir", +    }, +    pattern = { +      ["[jt]sconfig.*.json"] = "jsonc", +    }, +  }  end  M.load_headless_options = function() diff --git a/lua/lvim/core/autocmds.lua b/lua/lvim/core/autocmds.lua index 79c9089b..6d1cc6cd 100644 --- a/lua/lvim/core/autocmds.lua +++ b/lua/lvim/core/autocmds.lua @@ -3,25 +3,6 @@ local Log = require "lvim.core.log"  --- Load the default set of autogroups and autocommands.  function M.load_defaults() -  vim.api.nvim_create_autocmd({ "FileType" }, { -    pattern = { -      "Jaq", -      "qf", -      "help", -      "man", -      "lspinfo", -      "spectre_panel", -      "lir", -      "DressingSelect", -      "tsplayground", -    }, -    callback = function() -      vim.cmd [[ -      nnoremap <silent> <buffer> q :close<CR> -      set nobuflisted -    ]] -    end, -  })    local definitions = {      {        "TextYankPost", @@ -30,7 +11,7 @@ function M.load_defaults()          pattern = "*",          desc = "Highlight text on yank",          callback = function() -          require("vim.highlight").on_yank { higroup = "Search", timeout = 100 } +          vim.highlight.on_yank { higroup = "Search", timeout = 100 }          end,        },      }, @@ -46,16 +27,43 @@ function M.load_defaults()        "FileType",        {          group = "_filetype_settings", -        pattern = "qf", -        command = "set nobuflisted", +        pattern = { "lua" }, +        desc = "fix gf functionality inside .lua files", +        callback = function() +          ---@diagnostic disable: assign-type-mismatch +          -- credit: https://github.com/sam4llis/nvim-lua-gf +          vim.opt_local.include = [[\v<((do|load)file|require|reload)[^''"]*[''"]\zs[^''"]+]] +          vim.opt_local.includeexpr = "substitute(v:fname,'\\.','/','g')" +          vim.opt_local.suffixesadd:prepend ".lua" +          vim.opt_local.suffixesadd:prepend "init.lua" + +          for _, path in pairs(vim.api.nvim_list_runtime_paths()) do +            vim.opt_local.path:append(path .. "/lua") +          end +        end,        },      },      {        "FileType",        {          group = "_buffer_mappings", -        pattern = { "qf", "help", "man", "floaterm", "lspinfo", "lsp-installer", "null-ls-info" }, -        command = "nnoremap <silent> <buffer> q :close<CR>", +        pattern = { +          "qf", +          "help", +          "man", +          "floaterm", +          "lspinfo", +          "lir", +          "lsp-installer", +          "null-ls-info", +          "tsplayground", +          "DressingSelect", +          "Jaq", +        }, +        callback = function() +          vim.keymap.set("n", "q", "<cmd>close<cr>", { buffer = true }) +          vim.opt_local.buflisted = false +        end,        },      },      { | 
