-- lua_add {{{ local vimx = require("artemis") local prefix = "<Plug>(ddu-prefix)" vimx.keymap.set("n", "<C-p>", prefix) vimx.keymap.set("n", prefix .. "<C-p>", function() vimx.fn.ddu.start({ ui = "ff", sources = { { name = "file_external", } }, }) end) vimx.keymap.set("n", prefix .. "<C-w>", function() vimx.fn.ddu.start({ ui = "ff", sources = { { name = "mr", } }, }) end) vimx.keymap.set("n", prefix .. "<C-i>", function() vimx.fn.ddu.start({ ui = "ff", sources = { { name = "redmine_issue", } }, }) end) vimx.keymap.set("n", prefix .. "<C-b>", function() vimx.fn.ddu.start({ ui = "ff", sources = { { name = "buffer", } }, }) end) vimx.keymap.set("n", prefix .. "<C-l>", function() vimx.fn.ddu.start({ ui = "ff", sources = { { name = "rg", options = { marcher = {} }, } }, uiParams = { ff = { ignoreEmpty = false }, }, volatile = true, }) end) vimx.keymap.set("n", prefix .. "<C-t>", function() local id = vimx.fn.denops.callback.register(function(s) vimx.fn.sonictemplate.apply(s, "n") end, { once = true }) vimx.fn.ddu.start({ sources = { { name = "custom-list", params = { texts = vimx.fn.sonictemplate.complete("", "", 0), callbackId = id, }, }, }, }) end) vimx.keymap.set("n", prefix .. "<C-d>", function() vimx.fn.ddu.start({ sources = { { name = "git_diff", uiParams = { ff = { ignoreEmpty = false }, }, options = { path = vimx.fn.expand("%:p"), }, }, }, }) end) local function grepWrapper(word) if word == "" then return end vimx.fn.ddu.start({ ui = "ff", sources = { { name = "rg", params = { input = word }, } }, sourceOptions = { rg = { matchers = { "converter_display_word", "matcher_fzf", }, }, }, }) end vimx.create_command("DduGrep", function(opts) grepWrapper(opts.args) end, { nargs = 1 }) vimx.keymap.set("n", prefix .. "<C-g>", ":<C-u>DduGrep<Space>") vimx.keymap.set("n", prefix .. "g", function() grepWrapper(vimx.fn.expand("<cword>")) end) vimx.keymap.set("n", "gd", function() vimx.fn.ddu.start({ ui = "ff", sources = { { name = "anyjump_definition", } }, }) end) vimx.keymap.set("n", "gr", function() vimx.fn.ddu.start({ ui = "ff", sources = { { name = "anyjump_reference", } }, }) end) local function DduHelp() vimx.fn.ddu.start({ ui = "ff", sources = { { name = "help", } }, sourceOptions = { rg = { matchers = { "matcher_fzf", }, }, }, }) end vimx.create_command("Dhelp", DduHelp, { nargs = 0 }) vimx.keymap.set("ca", "dhelp", "Dhelp") -- DONT MAP DEFAULTLY {{{ vim.keymap.del("n", "grr") vim.keymap.del("n", "gra") vim.keymap.del("n", "grn") --- }}} vimx.create_autocmd("LspAttach", { pattern = "*", group = vimx.create_augroup("vimrc#ddu#lsp", { clear = true }), callback = function() vimx.keymap.set("n", "gr", function() vimx.fn.ddu.start({ ui = "ff", sources = { { name = "lsp_references", } }, }) end, { buffer = true }) vimx.keymap.set("n", "gd", function() vimx.fn.ddu.start({ ui = "ff", uiParams = { ff = { immediateAction = "open", }, }, sources = { { name = "lsp_definition", params = { method = "textDocument/definition" }, }, }, sync = true, }) end, { buffer = true }) vimx.keymap.set("n", "<Space>a", function() vimx.fn.ddu.start({ ui = "ff", sources = { { name = "lsp_codeAction", } }, }) end, { buffer = true }) end, }) -- }}} -- lua_source {{{ local vimx = require("artemis") vimx.fn.ddu.custom.load_config(vimx.fn.expand("$DEIN_RC_DIR/ts/ddu.ts")) -- }}}