local hooks = require "core.hooks" vim.g.mapleader = " " hooks.add("install_plugins", function(use) use { "neovim/nvim-lspconfig", "williamboman/nvim-lsp-installer", config = function() local lsp_installer = require("nvim-lsp-installer") require("packer").loader("coq_nvim coq.artifacts") buf_set_option('omnifunc', 'v:lua.vim.lsp.omnifunc') lsp_installer.on_server_ready(function(server) local opts = {} server:setup(require("coq")().lsp_ensure_capabilities(opts)) -- server:setup(opts) vim.cmd [[ do User LspAttachBuffers ]] vim.cmd(":COQnow") end) end, } use { "karb94/neoscroll.nvim", opt = true, config = function() require("neoscroll").setup() end, setup = function() require("core.utils").packer_lazy_load "neoscroll.nvim" end, } use { "ms-jpq/coq_nvim", branch="coq" } use { "ms-jpq/coq.artifacts", branch="artifacts" } use { "ms-jpq/coq.thirdparty", branch="3p" } use { "gennaro-tedesco/nvim-peekup" } end) hooks.add("setup_mappings", function(map) -- LSP MAPPINGS -- local lsp_opts = { noremap=true } map('n', 'gd', 'lua vim.lsp.buf.definition()', lsp_opts) map('n', 'K', 'lua vim.lsp.buf.hover()', lsp_opts) map('n', 'gi', 'lua vim.lsp.buf.implementation()', lsp_opts) map('n', '', 'lua vim.lsp.buf.signature_help()', lsp_opts) map('n', 'wa', 'lua vim.lsp.buf.add_workspace_folder()', lsp_opts) map('n', 'wr', 'lua vim.lsp.buf.remove_workspace_folder()', lsp_opts) map('n', 'wl', 'lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))', lsp_opts) map('n', 'D', 'lua vim.lsp.buf.type_definition()', lsp_opts) map('n', 'rn', 'lua vim.lsp.buf.rename()', lsp_opts) map('n', 'ca', 'lua vim.lsp.buf.code_action()', lsp_opts) map('n', 'gr', 'lua vim.lsp.buf.references()', lsp_opts) map('n', 'e', 'lua vim.lsp.diagnostic.show_line_diagnostics()', lsp_opts) map('n', '[d', 'lua vim.lsp.diagnostic.goto_prev()', lsp_opts) map('n', ']d', 'lua vim.lsp.diagnostic.goto_next()', lsp_opts) map('n', 'q', 'lua vim.lsp.diagnostic.set_loclist()', lsp_opts) map('n', 'f', 'lua vim.lsp.buf.formatting()', lsp_opts) end)