Refactor back to a more modular configuration
This commit is contained in:
parent
f85d4968ed
commit
f7ba471218
178 changed files with 2245 additions and 1847 deletions
modules/home-manager/coding/neovim/config/lua/opdavies
|
@ -0,0 +1,13 @@
|
|||
P = function(v)
|
||||
print(vim.inspect(v))
|
||||
return v
|
||||
end
|
||||
|
||||
RELOAD = function(...)
|
||||
return require("plenary.reload").reload_module(...)
|
||||
end
|
||||
|
||||
R = function(name)
|
||||
RELOAD(name)
|
||||
return require(name)
|
||||
end
|
|
@ -0,0 +1,4 @@
|
|||
require "opdavies.globals"
|
||||
require "opdavies.options"
|
||||
require "opdavies.keymaps"
|
||||
require "opdavies.lsp"
|
|
@ -0,0 +1,86 @@
|
|||
local set = vim.keymap.set
|
||||
|
||||
set("n", "<C-f>", "<cmd>silent !tmux new-window tmux-sessionizer<CR>")
|
||||
|
||||
-- Execute Lua in the current file, line or range.
|
||||
set("n", "<leader><leader>x", "<cmd>source %<CR>")
|
||||
set("n", "<leader>x", ":.lua<CR>")
|
||||
set("v", "<leader>x", ":lua<CR>")
|
||||
|
||||
-- Yank from the current column to the end of the line
|
||||
set("n", "Y", "yg$")
|
||||
|
||||
-- Keep things centred
|
||||
set("n", "n", "nzzzv")
|
||||
set("n", "N", "Nzzzv")
|
||||
|
||||
-- Disable up and down arrow keys.
|
||||
set("v", "<down>", "<nop>")
|
||||
set("v", "<up>", "<nop>")
|
||||
|
||||
-- Easily switch back to visual mode.
|
||||
set("i", "jj", "<Esc>")
|
||||
set("i", "jk", "<Esc>")
|
||||
|
||||
-- Easy insertion of a trailing ; or , from insert mode
|
||||
set("i", ",,", "<Esc>A,<Esc>")
|
||||
set("i", ";;", "<Esc>A;<Esc>")
|
||||
|
||||
-- Automatically resize buffers.
|
||||
set("n", "<leader>=", ":wincmd =<cr>", { noremap = true, silent = true })
|
||||
|
||||
-- Move line(s) up and down.
|
||||
local opts = { noremap = true, silent = true }
|
||||
set("i", "<M-j>", "<Esc>:m .+1<CR>==gi", opts)
|
||||
set("i", "<M-k>", "<Esc>:m .-2<CR>==gi", opts)
|
||||
set("n", "<M-j>", ":m .+1<CR>==", opts)
|
||||
set("n", "<M-k>", ":m .-2<CR>==", opts)
|
||||
set("v", "<M-j>", ":m '>+1<CR>gv=gv", opts)
|
||||
set("v", "<M-k>", ":m '<-2<CR>gv=gv", opts)
|
||||
|
||||
-- Re-centre when navigating.
|
||||
set("n", "#", "#zz", opts)
|
||||
set("n", "%", "%zz", opts)
|
||||
set("n", "*", "*zz", opts)
|
||||
set("n", "<C-d>", "<C-d>zz", opts)
|
||||
set("n", "<C-i>", "<C-i>zz", opts)
|
||||
set("n", "<C-o>", "<C-o>zz", opts)
|
||||
set("n", "<C-u>", "<C-u>zz", opts)
|
||||
set("n", "G", "Gzz", opts)
|
||||
set("n", "N", "Nzz", opts)
|
||||
set("n", "gg", "ggzz", opts)
|
||||
set("n", "n", "Nzz", opts)
|
||||
set("n", "{", "{zz", opts)
|
||||
set("n", "}", "}zz", opts)
|
||||
|
||||
-- Clears hlsearch after doing a search, otherwise just does normal <CR> stuff
|
||||
vim.cmd [[ nnoremap <expr> <CR> {-> v:hlsearch ? ":nohl\<CR>" : "\<CR>"}() ]]
|
||||
|
||||
-- Quicker macro playback.
|
||||
set("n", "Q", "@qj")
|
||||
set("x", "Q", ":norm @q<CR>")
|
||||
|
||||
set("v", "Q", "<nop>")
|
||||
|
||||
set("v", "J", ":m '>+1<CR>gvrgv")
|
||||
set("v", "K", ":m '<-2<CR>gv=gv")
|
||||
|
||||
set("n", "J", "mzJ`z")
|
||||
set("n", "<C-d>", "<C-d>zz")
|
||||
set("n", "<C-u>", "<C-u>zz")
|
||||
set("n", "n", "nzzzv")
|
||||
set("n", "N", "Nzzzv")
|
||||
|
||||
set("n", "<leader>ec", ":edit composer.json<CR>")
|
||||
set("n", "<leader>ef", ":edit flake.nix<CR>")
|
||||
set("n", "<leader>er", ":edit run<CR>")
|
||||
|
||||
set({ "n", "v" }, "<leader>y", [["+y]])
|
||||
set("n", "<leader>Y", [["+Y]])
|
||||
|
||||
-- Re-add functionality to open the URL under the cursor.
|
||||
-- This is overridden by mini.operators to exchange text regions.
|
||||
vim.keymap.set("n", "<leader>gx", function()
|
||||
local url = vim.fn.expand "<cfile>"
|
||||
vim.fn["netrw#BrowseX"](url, 0)
|
||||
end, { desc = "Open URL under cursor" })
|
|
@ -0,0 +1,73 @@
|
|||
local M = {}
|
||||
|
||||
local function should_remove_diagnostic(messages_to_filter, message)
|
||||
for _, filter_message in ipairs(messages_to_filter) do
|
||||
if message:match(filter_message) then
|
||||
return true
|
||||
end
|
||||
end
|
||||
|
||||
return false
|
||||
end
|
||||
|
||||
M.definition = function()
|
||||
local params = vim.lsp.util.make_position_params()
|
||||
|
||||
vim.lsp.buf_request(0, "textDocument/definition", params, function(err, result, ctx, config)
|
||||
local bufnr = ctx.bufnr
|
||||
local ft = vim.api.nvim_buf_get_option(bufnr, "filetype")
|
||||
|
||||
local new_result = vim.tbl_filter(function(v)
|
||||
-- Remove any definitions within the nix store via the .direnv directory.
|
||||
if string.find(v.targetUri, ".direnv") then
|
||||
return false
|
||||
end
|
||||
|
||||
-- Remove definitions within vendor-bin directory for PHP files.
|
||||
if ft == "php" then
|
||||
if string.find(v.targetUri, "vendor%-bin") then
|
||||
return false
|
||||
end
|
||||
end
|
||||
|
||||
return true
|
||||
end, result)
|
||||
|
||||
if #new_result > 0 then
|
||||
result = new_result
|
||||
end
|
||||
|
||||
vim.lsp.handlers["textDocument/definition"](err, result, ctx, config)
|
||||
vim.cmd [[normal! zz]]
|
||||
end)
|
||||
end
|
||||
|
||||
M.on_publish_diagnostics = function(_, result, ctx, config)
|
||||
local client = vim.lsp.get_client_by_id(ctx.client_id)
|
||||
|
||||
if client.name == "cssls" then
|
||||
local filtered_diagnostics = {}
|
||||
|
||||
local messages_to_filter = {
|
||||
"Unknown at rule @apply",
|
||||
"Unknown at rule @plugin",
|
||||
"Unknown at rule @tailwind",
|
||||
"Unknown at rule @theme",
|
||||
}
|
||||
|
||||
-- For each diagnostic, ensure its mesages doesn't match one I want to
|
||||
-- ignore before adding it to the result. If it matches, don't add it to the
|
||||
-- result and it won't be shown.
|
||||
for _, diagnostic in ipairs(result.diagnostics) do
|
||||
if not should_remove_diagnostic(messages_to_filter, diagnostic.message) then
|
||||
table.insert(filtered_diagnostics, diagnostic)
|
||||
end
|
||||
end
|
||||
|
||||
result.diagnostics = filtered_diagnostics
|
||||
end
|
||||
|
||||
vim.lsp.diagnostic.on_publish_diagnostics(_, result, ctx, config)
|
||||
end
|
||||
|
||||
return M
|
|
@ -0,0 +1,142 @@
|
|||
local cmp_nvim_lsp = require "cmp_nvim_lsp"
|
||||
local handlers = require "opdavies.lsp.handlers"
|
||||
local lspconfig = require "lspconfig"
|
||||
|
||||
local capabilities = cmp_nvim_lsp.default_capabilities(vim.lsp.protocol.make_client_capabilities())
|
||||
|
||||
lspconfig.bashls.setup {
|
||||
capabilities = capabilities,
|
||||
}
|
||||
|
||||
lspconfig.cssls.setup {
|
||||
capabilities = capabilities,
|
||||
on_attach = function(_, _)
|
||||
vim.lsp.handlers["textDocument/publishDiagnostics"] = vim.lsp.with(handlers.on_publish_diagnostics, {})
|
||||
end,
|
||||
}
|
||||
|
||||
lspconfig.emmet_language_server.setup {
|
||||
capabilities = capabilities,
|
||||
filetypes = { "css", "html", "sass", "scss", "twig" },
|
||||
}
|
||||
|
||||
lspconfig.gopls.setup {
|
||||
capabilities = capabilities,
|
||||
}
|
||||
|
||||
lspconfig.html.setup {
|
||||
capabilities = capabilities,
|
||||
}
|
||||
|
||||
lspconfig.phpactor.setup {
|
||||
capabilities = capabilities,
|
||||
}
|
||||
|
||||
lspconfig.lua_ls.setup {
|
||||
capabilities = capabilities,
|
||||
settings = {
|
||||
Lua = {
|
||||
completion = {
|
||||
callSnippet = "Replace",
|
||||
},
|
||||
diagnostics = {
|
||||
globals = { "vim" },
|
||||
},
|
||||
runtime = {
|
||||
version = "LuaJIT",
|
||||
},
|
||||
telemetry = {
|
||||
enabled = false,
|
||||
},
|
||||
workspace = {
|
||||
library = vim.api.nvim_get_runtime_file("", true),
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
lspconfig.marksman.setup {
|
||||
capabilities = capabilities,
|
||||
}
|
||||
|
||||
lspconfig.nixd.setup {
|
||||
capabilities = capabilities,
|
||||
cmd = { "nixd" },
|
||||
settings = {
|
||||
nixd = {
|
||||
nixpkgs = {
|
||||
expr = "import <nixpkgs> { }",
|
||||
},
|
||||
formatting = {
|
||||
command = "nix fmt",
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
lspconfig.tailwindcss.setup {
|
||||
capabilities = capabilities,
|
||||
filetypes = { "html", "javascript", "twig", "typescript", "vue" },
|
||||
settings = {
|
||||
init_options = {
|
||||
userLanguages = {
|
||||
["html.twig"] = "html",
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
lspconfig.terraformls.setup {
|
||||
capabilities = capabilities,
|
||||
}
|
||||
|
||||
lspconfig.ts_ls.setup {
|
||||
capabilities = capabilities,
|
||||
}
|
||||
|
||||
lspconfig.vuels.setup {
|
||||
capabilities = capabilities,
|
||||
}
|
||||
|
||||
lspconfig.yamlls.setup {
|
||||
capabilities = capabilities,
|
||||
settings = {
|
||||
yaml = {
|
||||
keyOrdering = false,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
vim.diagnostic.config {
|
||||
float = { source = true },
|
||||
signs = true,
|
||||
underline = false,
|
||||
update_in_insert = false,
|
||||
virtual_text = { spacing = 2 },
|
||||
}
|
||||
|
||||
vim.api.nvim_create_autocmd("LspAttach", {
|
||||
callback = function()
|
||||
local builtin = require "telescope.builtin"
|
||||
|
||||
vim.keymap.set("n", "gd", builtin.lsp_definitions, { buffer = 0 })
|
||||
vim.keymap.set("n", "gr", builtin.lsp_references, { buffer = 0 })
|
||||
vim.keymap.set("n", "gD", vim.lsp.buf.declaration, { buffer = 0 })
|
||||
vim.keymap.set("n", "gT", vim.lsp.buf.type_definition, { buffer = 0 })
|
||||
vim.keymap.set("n", "K", vim.lsp.buf.hover, { buffer = 0 })
|
||||
|
||||
vim.keymap.set("n", "<leader>ca", vim.lsp.buf.code_action, { buffer = 0 })
|
||||
vim.keymap.set("n", "<leader>cr", vim.lsp.buf.rename, { buffer = 0 })
|
||||
|
||||
vim.keymap.set("n", "<leader>dl", vim.diagnostic.setqflist, { buffer = 0 })
|
||||
end,
|
||||
})
|
||||
|
||||
vim.keymap.set("n", "<leader>dd", function()
|
||||
vim.diagnostic.enable(false)
|
||||
vim.diagnostic.reset()
|
||||
end)
|
||||
|
||||
vim.keymap.set("n", "<leader>de", function()
|
||||
vim.diagnostic.enable(true)
|
||||
end)
|
|
@ -0,0 +1,53 @@
|
|||
vim.g.mapleader = " "
|
||||
vim.g.snippets = "luasnip"
|
||||
|
||||
local settings = {
|
||||
autoindent = true,
|
||||
backup = false,
|
||||
breakindent = true,
|
||||
expandtab = true,
|
||||
exrc = true,
|
||||
foldlevel = 1,
|
||||
foldlevelstart = 99,
|
||||
foldmethod = "indent",
|
||||
formatoptions = "clqjp",
|
||||
hidden = false,
|
||||
hlsearch = false,
|
||||
inccommand = "split",
|
||||
laststatus = 3,
|
||||
linebreak = true,
|
||||
list = true,
|
||||
mouse = "a",
|
||||
number = true,
|
||||
pumblend = 10,
|
||||
pumheight = 10,
|
||||
relativenumber = true,
|
||||
scrolloff = 5,
|
||||
shiftwidth = 2,
|
||||
showmode = false,
|
||||
signcolumn = "yes:1",
|
||||
smartindent = true,
|
||||
softtabstop = 2,
|
||||
spellfile = "/home/opdavies/Code/personal/nixos-config/modules/home-manager/cli/neovim/config/spell/en.utf-8.add",
|
||||
splitbelow = true,
|
||||
splitright = true,
|
||||
swapfile = false,
|
||||
syntax = "on",
|
||||
tabstop = 2,
|
||||
termguicolors = true,
|
||||
textwidth = 0,
|
||||
undodir = os.getenv "XDG_STATE_HOME" .. "/nvim/undodir",
|
||||
undofile = true,
|
||||
updatetime = 1000,
|
||||
wrap = false,
|
||||
}
|
||||
|
||||
for key, value in pairs(settings) do
|
||||
vim.o[key] = value
|
||||
end
|
||||
|
||||
vim.opt.backupdir:remove "." -- keep backups out of the current directory
|
||||
vim.opt.completeopt = { "menu", "menuone", "noinsert", "noselect" }
|
||||
vim.opt.listchars:append {
|
||||
trail = "·",
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
require("luasnip.session.snippet_collection").clear_snippets "javascript"
|
||||
|
||||
local ls = require "luasnip"
|
||||
|
||||
local i = ls.insert_node
|
||||
local s = ls.snippet
|
||||
|
||||
local fmta = require("luasnip.extras.fmt").fmta
|
||||
|
||||
ls.add_snippets("javascript", {
|
||||
s("log", fmta("console.log(<>);", { i(1, "value") })),
|
||||
})
|
|
@ -0,0 +1,23 @@
|
|||
require("luasnip.session.snippet_collection").clear_snippets "lua"
|
||||
|
||||
local ls = require "luasnip"
|
||||
|
||||
local f = ls.function_node
|
||||
local i = ls.insert_node
|
||||
local s = ls.snippet
|
||||
|
||||
local fmt = require("luasnip.extras.fmt").fmt
|
||||
|
||||
ls.add_snippets("lua", {
|
||||
s(
|
||||
"req",
|
||||
fmt([[local {} = require "{}"]], {
|
||||
f(function(import_name)
|
||||
local parts = vim.split(import_name[1][1], ".", true)
|
||||
|
||||
return parts[#parts] or ""
|
||||
end, { 1 }),
|
||||
i(1),
|
||||
})
|
||||
),
|
||||
})
|
|
@ -0,0 +1,66 @@
|
|||
require("luasnip.session.snippet_collection").clear_snippets "php"
|
||||
|
||||
local ls = require "luasnip"
|
||||
|
||||
local c = ls.choice_node
|
||||
local i = ls.insert_node
|
||||
local s = ls.snippet
|
||||
local t = ls.text_node
|
||||
|
||||
local fmta = require("luasnip.extras.fmt").fmta
|
||||
|
||||
ls.add_snippets("php", {
|
||||
s("func", fmta("function <>(<>)<> {\n <>\n}<>", { i(1), i(2), i(3), i(4), i(0) })),
|
||||
|
||||
s(
|
||||
"met",
|
||||
fmta(
|
||||
[[
|
||||
<> function <>(<>)<> {
|
||||
<>
|
||||
}<>
|
||||
]],
|
||||
{ c(1, { t "public", t "protected", t "private" }), i(2), i(3), i(4), i(5), i(0) }
|
||||
)
|
||||
),
|
||||
|
||||
s("pest", fmta("<>('<>', function() {\n <>\n});", { c(1, { t "it", t "test" }), i(2), i(0) })),
|
||||
|
||||
s(
|
||||
"test",
|
||||
fmta(
|
||||
[[
|
||||
public function test<>(): void {
|
||||
<>
|
||||
}<>
|
||||
]],
|
||||
{ i(1), i(2), i(0) }
|
||||
)
|
||||
),
|
||||
|
||||
s(
|
||||
"testan",
|
||||
fmta(
|
||||
[[
|
||||
/** @test */
|
||||
public function <>(): void {
|
||||
<>
|
||||
}<>
|
||||
]],
|
||||
{ i(1), i(2), i(0) }
|
||||
)
|
||||
),
|
||||
|
||||
s(
|
||||
"testat",
|
||||
fmta(
|
||||
[[
|
||||
[#Test]
|
||||
public function <>(): void {
|
||||
<>
|
||||
}<>
|
||||
]],
|
||||
{ i(1), i(2), i(0) }
|
||||
)
|
||||
),
|
||||
})
|
|
@ -0,0 +1,63 @@
|
|||
require("luasnip.session.snippet_collection").clear_snippets "rst"
|
||||
|
||||
local ls = require "luasnip"
|
||||
|
||||
local i = ls.insert_node
|
||||
local f = ls.function_node
|
||||
local s = ls.snippet
|
||||
local t = ls.text_node
|
||||
|
||||
local fmta = require("luasnip.extras.fmt").fmta
|
||||
|
||||
local fill_line = function(char)
|
||||
return function()
|
||||
local row = vim.api.nvim_win_get_cursor(0)[1]
|
||||
local lines = vim.api.nvim_buf_get_lines(0, row - 2, row, false)
|
||||
return string.rep(char, #lines[1])
|
||||
end
|
||||
end
|
||||
|
||||
ls.add_snippets("rst", {
|
||||
s("class", t(".. class:: ", i(1))),
|
||||
|
||||
s("footer", t(".. footer:: ", i(1))),
|
||||
|
||||
s("link", t(".. _", i(1), ":")),
|
||||
|
||||
s("raw", t(".. raw:: ", i(1))),
|
||||
|
||||
-- TODO: add an optional new line and ":width" property.
|
||||
s("image", t(".. image:: ", i(1))),
|
||||
|
||||
s("head", f(fill_line "=", {})),
|
||||
|
||||
s("sub", f(fill_line "-", {})),
|
||||
|
||||
s("subsub", f(fill_line "^", {})),
|
||||
|
||||
-- Add a page break with an optional page template.
|
||||
s(
|
||||
"pb",
|
||||
fmta(
|
||||
[[
|
||||
.. raw:: pdf
|
||||
|
||||
PageBreak<>
|
||||
]],
|
||||
{ i(0) }
|
||||
)
|
||||
),
|
||||
|
||||
-- Add a new speaker note.
|
||||
s(
|
||||
"ta",
|
||||
fmta(
|
||||
[[
|
||||
.. raw:: pdf
|
||||
|
||||
TextAnnotation "<>"
|
||||
]],
|
||||
{ i(0) }
|
||||
)
|
||||
),
|
||||
})
|
|
@ -0,0 +1,12 @@
|
|||
require("luasnip.session.snippet_collection").clear_snippets "scss"
|
||||
|
||||
local ls = require "luasnip"
|
||||
|
||||
local i = ls.insert_node
|
||||
local s = ls.snippet
|
||||
|
||||
local fmta = require("luasnip.extras.fmt").fmta
|
||||
|
||||
ls.add_snippets("scss", {
|
||||
s("bp", fmta("@include breakpoint(<>) {\n <>\n}", { i(1), i(0) })),
|
||||
})
|
|
@ -0,0 +1,28 @@
|
|||
require("luasnip.session.snippet_collection").clear_snippets "twig"
|
||||
|
||||
local ls = require "luasnip"
|
||||
|
||||
local s = ls.snippet
|
||||
local i = ls.insert_node
|
||||
|
||||
local fmta = require("luasnip.extras.fmt").fmta
|
||||
|
||||
ls.add_snippets("twig", {
|
||||
s("do", fmta("{% <> %}<>", { i(1), i(0) })),
|
||||
s("dump", fmta("{{ dump(<>) }}<>", { i(1), i(0) })),
|
||||
s("echo", fmta("{{ <> }}<>", { i(1), i(0) })),
|
||||
|
||||
s(
|
||||
"for",
|
||||
fmta(
|
||||
[[
|
||||
{% for <> in <> %}
|
||||
<>
|
||||
{% endfor %}<>
|
||||
]],
|
||||
{ i(1), i(2), i(3), i(0) }
|
||||
)
|
||||
),
|
||||
|
||||
s("if", fmta("{% if <> %}<>{% endif %}<>", { i(1), i(2), i(0) })),
|
||||
})
|
|
@ -0,0 +1,47 @@
|
|||
require("luasnip.session.snippet_collection").clear_snippets "yaml"
|
||||
|
||||
local ls = require "luasnip"
|
||||
|
||||
local c = ls.choice_node
|
||||
local i = ls.insert_node
|
||||
local s = ls.snippet
|
||||
local t = ls.text_node
|
||||
|
||||
local fmta = require("luasnip.extras.fmt").fmta
|
||||
local rep = require("luasnip.extras").rep
|
||||
|
||||
ls.add_snippets("yaml", {
|
||||
s(
|
||||
"drupal_info",
|
||||
fmta(
|
||||
[[
|
||||
name: <module_name>
|
||||
description: <description>
|
||||
core_version_requirement: ^10 || ^11
|
||||
type: <type>
|
||||
package: <package>
|
||||
]],
|
||||
{ module_name = i(1), description = i(2), type = c(3, { t "module", t "theme" }), package = i(0) }
|
||||
)
|
||||
),
|
||||
|
||||
s(
|
||||
"drupal_route",
|
||||
fmta(
|
||||
[[
|
||||
<module>.<route>:
|
||||
path: /<path>
|
||||
defaults:
|
||||
_controller: Drupal\<module_same>\Controller\<class>
|
||||
# _form:
|
||||
# _title:
|
||||
# _title_callback:
|
||||
methods: [GET]
|
||||
requirements:
|
||||
_permission: access content
|
||||
# _access: TRUE<finish>
|
||||
]],
|
||||
{ module = i(1), route = i(2), path = i(3), module_same = rep(1), class = i(4), finish = i(0) }
|
||||
)
|
||||
),
|
||||
})
|
|
@ -0,0 +1,57 @@
|
|||
local conf = require("telescope.config").values
|
||||
local finders = require "telescope.finders"
|
||||
local make_entry = require "telescope.make_entry"
|
||||
local pickers = require "telescope.pickers"
|
||||
|
||||
local M = {}
|
||||
|
||||
local live_multigrep = function(opts)
|
||||
opts = opts or {}
|
||||
opts.cwd = opts.cwd or vim.uv.cwd()
|
||||
|
||||
local finder = finders.new_async_job {
|
||||
command_generator = function(prompt)
|
||||
if not prompt or prompt == "" then
|
||||
return nil
|
||||
end
|
||||
|
||||
local pieces = vim.split(prompt, " ")
|
||||
local args = { "rg" }
|
||||
|
||||
if pieces[1] then
|
||||
table.insert(args, "-e")
|
||||
table.insert(args, pieces[1])
|
||||
end
|
||||
|
||||
if pieces[2] then
|
||||
table.insert(args, "-g")
|
||||
table.insert(args, pieces[2])
|
||||
end
|
||||
|
||||
---@diagnostic disable-next-line: deprecated
|
||||
return vim.tbl_flatten {
|
||||
args,
|
||||
{ "--color=never", "--no-heading", "--with-filename", "--line-number", "--column", "--smart-case" },
|
||||
}
|
||||
end,
|
||||
|
||||
cwd = opts.cwd,
|
||||
entry_maker = make_entry.gen_from_vimgrep(opts),
|
||||
}
|
||||
|
||||
pickers
|
||||
.new(opts, {
|
||||
debounce = 100,
|
||||
finder = finder,
|
||||
previewer = conf.grep_previewer(opts),
|
||||
prompt_title = "Multi Grep",
|
||||
sorter = require("telescope.sorters").empty(),
|
||||
})
|
||||
:find()
|
||||
end
|
||||
|
||||
M.setup = function()
|
||||
vim.keymap.set("n", "<leader>fg", live_multigrep)
|
||||
end
|
||||
|
||||
return M
|
Loading…
Add table
Add a link
Reference in a new issue