local buf_map = require('cosmic.utils').buf_map local M = {} -- Mappings. function M.init(bufnr) -- See `:help vim.lsp.*` for documentation on any of the below functions buf_map(bufnr, 'n', 'gd', 'lua require("telescope.builtin").lsp_definitions()') buf_map(bufnr, 'n', 'gD', 'lua vim.lsp.buf.declaration()') buf_map(bufnr, 'n', 'gi', 'lua require("telescope.builtin").lsp_implementations()') buf_map(bufnr, 'n', 'gt', 'lua require("telescope.builtin").lsp_type_definitions()') buf_map(bufnr, 'n', 'gr', 'lua require("telescope.builtin").lsp_references()') buf_map(bufnr, 'n', 'gn', 'lua require("cosmic-ui").rename()') -- diagnostics buf_map(bufnr, 'n', '[g', 'lua vim.diagnostic.goto_prev()') buf_map(bufnr, 'n', ']g', 'lua vim.diagnostic.goto_next()') buf_map(bufnr, 'n', 'ge', 'lua vim.diagnostic.open_float(nil, { scope = "line", })') buf_map(bufnr, 'n', 'ge', 'Telescope diagnostics bufnr=0') -- hover buf_map(bufnr, 'n', 'K', 'lua vim.lsp.buf.hover()') -- code actions buf_map(bufnr, 'n', 'ga', 'lua require("cosmic-ui").code_actions()') buf_map(bufnr, 'v', 'ga', 'lua require("cosmic-ui").range_code_actions()') -- formatting buf_map(bufnr, 'n', 'gf', 'lua vim.lsp.buf.formatting()') buf_map(bufnr, 'v', 'gf', 'lua vim.lsp.buf.range_formatting()') -- signature help buf_map(bufnr, 'n', '', 'lua require("lsp_signature").signature()') -- lsp workspace buf_map(bufnr, 'n', 'wd', 'Telescope diagnostics') buf_map(bufnr, 'n', 'wa', 'lua vim.lsp.buf.add_workspace_folder()') buf_map(bufnr, 'n', 'wr', 'lua vim.lsp.buf.remove_workspace_folder()') buf_map( bufnr, 'n', 'wl', 'lua require("cosmic.utils.logger"):log(vim.inspect(vim.lsp.buf.list_workspace_folders()))' ) -- typescript helpers buf_map(bufnr, 'n', 'gr', ':TSLspRenameFile') buf_map(bufnr, 'n', 'go', ':TSLspOrganize') buf_map(bufnr, 'n', 'gi', ':TSLspImportAll') end return M