From b661efb3179e9ee7c44c5b2f885f5a7e837ea19d Mon Sep 17 00:00:00 2001 From: kylo252 <59826753+kylo252@users.noreply.github.com> Date: Sat, 17 Dec 2022 12:33:57 +0100 Subject: refactor(autocmds): clean up filetype detection rules (#3625) * refactor(lua): simplify gf utility * refactor(autocmds): cleanup * refactor(ftdetect): use vim.filetype.add instead --- lua/lvim/core/autocmds.lua | 56 ++++++++++++++++++++++++++-------------------- 1 file changed, 32 insertions(+), 24 deletions(-) (limited to 'lua/lvim/core') 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 q :close - 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 q :close", + pattern = { + "qf", + "help", + "man", + "floaterm", + "lspinfo", + "lir", + "lsp-installer", + "null-ls-info", + "tsplayground", + "DressingSelect", + "Jaq", + }, + callback = function() + vim.keymap.set("n", "q", "close", { buffer = true }) + vim.opt_local.buflisted = false + end, }, }, { -- cgit v1.2.3