feat(mappings): attach lsp mappings to buffers only
This commit is contained in:
parent
d6befbeb79
commit
18c4971497
4 changed files with 57 additions and 38 deletions
|
@ -16,4 +16,3 @@ require('cosmic.plugins.auto-session.mappings')
|
||||||
require('cosmic.plugins.telescope.mappings').init()
|
require('cosmic.plugins.telescope.mappings').init()
|
||||||
require('cosmic.plugins.nvim-tree.mappings')
|
require('cosmic.plugins.nvim-tree.mappings')
|
||||||
require('cosmic.plugins.terminal.mappings')
|
require('cosmic.plugins.terminal.mappings')
|
||||||
require('cosmic.lsp.mappings')
|
|
||||||
|
|
|
@ -1,46 +1,52 @@
|
||||||
local map = require('cosmic.utils').map
|
local buf_map = require('cosmic.utils').buf_map
|
||||||
|
local M = {}
|
||||||
|
|
||||||
-- Mappings.
|
-- Mappings.
|
||||||
|
|
||||||
|
function M.init(bufnr)
|
||||||
-- See `:help vim.lsp.*` for documentation on any of the below functions
|
-- See `:help vim.lsp.*` for documentation on any of the below functions
|
||||||
map('n', 'gd', '<cmd>lua require("telescope.builtin").lsp_definitions()<cr>')
|
buf_map(bufnr, 'n', 'gd', '<cmd>lua require("telescope.builtin").lsp_definitions()<cr>')
|
||||||
map('n', 'gD', '<cmd>lua vim.lsp.buf.declaration()<cr>')
|
buf_map(bufnr, 'n', 'gD', '<cmd>lua vim.lsp.buf.declaration()<cr>')
|
||||||
map('n', 'gi', '<cmd>lua require("telescope.builtin").lsp_implementations()<cr>')
|
buf_map(bufnr, 'n', 'gi', '<cmd>lua require("telescope.builtin").lsp_implementations()<cr>')
|
||||||
map('n', 'gt', '<cmd>lua require("telescope.builtin").lsp_type_definitions()<cr>')
|
buf_map(bufnr, 'n', 'gt', '<cmd>lua require("telescope.builtin").lsp_type_definitions()<cr>')
|
||||||
map('n', 'gr', '<cmd>lua require("telescope.builtin").lsp_references()<cr>')
|
buf_map(bufnr, 'n', 'gr', '<cmd>lua require("telescope.builtin").lsp_references()<cr>')
|
||||||
map('n', 'gn', '<cmd>lua require("cosmic-ui").rename()<cr>')
|
buf_map(bufnr, 'n', 'gn', '<cmd>lua require("cosmic-ui").rename()<cr>')
|
||||||
|
|
||||||
-- diagnostics
|
-- diagnostics
|
||||||
map('n', '[g', '<cmd>lua vim.diagnostic.goto_prev()<cr>')
|
buf_map(bufnr, 'n', '[g', '<cmd>lua vim.diagnostic.goto_prev()<cr>')
|
||||||
map('n', ']g', '<cmd>lua vim.diagnostic.goto_next()<cr>')
|
buf_map(bufnr, 'n', ']g', '<cmd>lua vim.diagnostic.goto_next()<cr>')
|
||||||
map('n', 'ge', '<cmd>lua vim.diagnostic.open_float(nil, { scope = "line", })<cr>')
|
buf_map(bufnr, 'n', 'ge', '<cmd>lua vim.diagnostic.open_float(nil, { scope = "line", })<cr>')
|
||||||
map('n', '<leader>ge', '<cmd>Telescope diagnostics bufnr=0<cr>')
|
buf_map(bufnr, 'n', '<leader>ge', '<cmd>Telescope diagnostics bufnr=0<cr>')
|
||||||
|
|
||||||
-- hover
|
-- hover
|
||||||
map('n', 'K', '<cmd>lua vim.lsp.buf.hover()<cr>')
|
buf_map(bufnr, 'n', 'K', '<cmd>lua vim.lsp.buf.hover()<cr>')
|
||||||
|
|
||||||
-- code actions
|
-- code actions
|
||||||
map('n', '<leader>ga', '<cmd>lua require("cosmic-ui").code_actions()<cr>')
|
buf_map(bufnr, 'n', '<leader>ga', '<cmd>lua require("cosmic-ui").code_actions()<cr>')
|
||||||
map('v', '<leader>ga', '<cmd>lua require("cosmic-ui").range_code_actions()<cr>')
|
buf_map(bufnr, 'v', '<leader>ga', '<cmd>lua require("cosmic-ui").range_code_actions()<cr>')
|
||||||
|
|
||||||
-- formatting
|
-- formatting
|
||||||
map('n', '<leader>gf', '<cmd>lua vim.lsp.buf.formatting()<cr>')
|
buf_map(bufnr, 'n', '<leader>gf', '<cmd>lua vim.lsp.buf.formatting()<cr>')
|
||||||
map('v', '<leader>gf', '<cmd>lua vim.lsp.buf.range_formatting()<cr>')
|
buf_map(bufnr, 'v', '<leader>gf', '<cmd>lua vim.lsp.buf.range_formatting()<cr>')
|
||||||
|
|
||||||
-- signature help
|
-- signature help
|
||||||
map('n', '<C-K>', '<cmd>lua require("lsp_signature").signature()<cr>')
|
buf_map(bufnr, 'n', '<C-K>', '<cmd>lua require("lsp_signature").signature()<cr>')
|
||||||
|
|
||||||
-- lsp workspace
|
-- lsp workspace
|
||||||
map('n', '<leader>wd', '<cmd>Telescope diagnostics<cr>')
|
buf_map(bufnr, 'n', '<leader>wd', '<cmd>Telescope diagnostics<cr>')
|
||||||
map('n', '<leader>wa', '<cmd>lua vim.lsp.buf.add_workspace_folder()<cr>')
|
buf_map(bufnr, 'n', '<leader>wa', '<cmd>lua vim.lsp.buf.add_workspace_folder()<cr>')
|
||||||
map('n', '<leader>wr', '<cmd>lua vim.lsp.buf.remove_workspace_folder()<cr>')
|
buf_map(bufnr, 'n', '<leader>wr', '<cmd>lua vim.lsp.buf.remove_workspace_folder()<cr>')
|
||||||
map(
|
buf_map(
|
||||||
|
bufnr,
|
||||||
'n',
|
'n',
|
||||||
'<leader>wl',
|
'<leader>wl',
|
||||||
'<cmd>lua require("cosmic.utils.logger"):log(vim.inspect(vim.lsp.buf.list_workspace_folders()))<cr>'
|
'<cmd>lua require("cosmic.utils.logger"):log(vim.inspect(vim.lsp.buf.list_workspace_folders()))<cr>'
|
||||||
)
|
)
|
||||||
|
|
||||||
-- typescript helpers
|
-- typescript helpers
|
||||||
map('n', '<leader>gr', ':TSLspRenameFile<CR>')
|
buf_map(bufnr, 'n', '<leader>gr', ':TSLspRenameFile<CR>')
|
||||||
map('n', '<leader>go', ':TSLspOrganize<CR>')
|
buf_map(bufnr, 'n', '<leader>go', ':TSLspOrganize<CR>')
|
||||||
map('n', '<leader>gi', ':TSLspImportAll<CR>')
|
buf_map(bufnr, 'n', '<leader>gi', ':TSLspImportAll<CR>')
|
||||||
|
end
|
||||||
|
|
||||||
|
return M
|
||||||
|
|
|
@ -36,6 +36,8 @@ function M.on_attach(client, bufnr)
|
||||||
client.resolved_capabilities.document_formatting = false
|
client.resolved_capabilities.document_formatting = false
|
||||||
client.resolved_capabilities.document_range_formatting = false
|
client.resolved_capabilities.document_range_formatting = false
|
||||||
end
|
end
|
||||||
|
|
||||||
|
require('cosmic.lsp.mappings').init(bufnr)
|
||||||
end
|
end
|
||||||
|
|
||||||
M.flags = {
|
M.flags = {
|
||||||
|
|
|
@ -4,11 +4,23 @@ local M = {}
|
||||||
function M.map(mode, lhs, rhs, opts)
|
function M.map(mode, lhs, rhs, opts)
|
||||||
local options = { noremap = true, silent = true }
|
local options = { noremap = true, silent = true }
|
||||||
if opts then
|
if opts then
|
||||||
options = vim.tbl_extend('force', options, opts)
|
options = M.merge(options, opts)
|
||||||
end
|
end
|
||||||
vim.api.nvim_set_keymap(mode, lhs, rhs, options)
|
vim.api.nvim_set_keymap(mode, lhs, rhs, options)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function M.buf_map(bufnr, mode, lhs, rhs, opts)
|
||||||
|
local options = { noremap = true, silent = true }
|
||||||
|
if opts then
|
||||||
|
options = M.merge(options, opts)
|
||||||
|
end
|
||||||
|
vim.api.nvim_buf_set_keymap(bufnr, mode, lhs, rhs, options)
|
||||||
|
end
|
||||||
|
|
||||||
|
M.merge = function(...)
|
||||||
|
return vim.tbl_deep_extend('force', ...)
|
||||||
|
end
|
||||||
|
|
||||||
function M.split(str, sep)
|
function M.split(str, sep)
|
||||||
local res = {}
|
local res = {}
|
||||||
for w in str:gmatch('([^' .. sep .. ']*)') do
|
for w in str:gmatch('([^' .. sep .. ']*)') do
|
||||||
|
|
Loading…
Add table
Reference in a new issue