lots more fixes and pins

master
ChristianChiarulli 2 years ago
parent 9d0438502f
commit 0a9e1cad51

@ -2,97 +2,99 @@ local M = {}
-- TODO: backfill this to template -- TODO: backfill this to template
M.setup = function() M.setup = function()
local signs = { local signs = {
{ name = "DiagnosticSignError", text = "" }, { name = "DiagnosticSignError", text = "" },
{ name = "DiagnosticSignWarn", text = "" }, { name = "DiagnosticSignWarn", text = "" },
{ name = "DiagnosticSignHint", text = "" }, { name = "DiagnosticSignHint", text = "" },
{ name = "DiagnosticSignInfo", text = "" }, { name = "DiagnosticSignInfo", text = "" },
} }
for _, sign in ipairs(signs) do for _, sign in ipairs(signs) do
vim.fn.sign_define(sign.name, { texthl = sign.name, text = sign.text, numhl = "" }) vim.fn.sign_define(sign.name, { texthl = sign.name, text = sign.text, numhl = "" })
end end
local config = { local config = {
-- disable virtual text -- disable virtual text
virtual_text = false, virtual_text = false,
-- show signs -- show signs
signs = { signs = {
active = signs, active = signs,
}, },
update_in_insert = true, update_in_insert = true,
underline = true, underline = true,
severity_sort = true, severity_sort = true,
float = { float = {
focusable = false, focusable = false,
style = "minimal", style = "minimal",
border = "rounded", border = "rounded",
source = "always", source = "always",
header = "", header = "",
prefix = "", prefix = "",
}, },
} }
vim.diagnostic.config(config) vim.diagnostic.config(config)
vim.lsp.handlers["textDocument/hover"] = vim.lsp.with(vim.lsp.handlers.hover, { vim.lsp.handlers["textDocument/hover"] = vim.lsp.with(vim.lsp.handlers.hover, {
border = "rounded", border = "rounded",
}) width = 60,
})
vim.lsp.handlers["textDocument/signatureHelp"] = vim.lsp.with(vim.lsp.handlers.signature_help, { vim.lsp.handlers["textDocument/signatureHelp"] = vim.lsp.with(vim.lsp.handlers.signature_help, {
border = "rounded", border = "rounded",
}) width = 60,
})
end end
local function lsp_highlight_document(client) local function lsp_highlight_document(client)
-- Set autocommands conditional on server_capabilities -- Set autocommands conditional on server_capabilities
local status_ok, illuminate = pcall(require, "illuminate") local status_ok, illuminate = pcall(require, "illuminate")
if not status_ok then if not status_ok then
return return
end end
illuminate.on_attach(client) illuminate.on_attach(client)
-- end -- end
end end
local function lsp_keymaps(bufnr) local function lsp_keymaps(bufnr)
local opts = { noremap = true, silent = true } local opts = { noremap = true, silent = true }
vim.api.nvim_buf_set_keymap(bufnr, "n", "gD", "<cmd>lua vim.lsp.buf.declaration()<CR>", opts) vim.api.nvim_buf_set_keymap(bufnr, "n", "gD", "<cmd>lua vim.lsp.buf.declaration()<CR>", opts)
vim.api.nvim_buf_set_keymap(bufnr, "n", "gd", "<cmd>lua vim.lsp.buf.definition()<CR>", opts) vim.api.nvim_buf_set_keymap(bufnr, "n", "gd", "<cmd>lua vim.lsp.buf.definition()<CR>", opts)
vim.api.nvim_buf_set_keymap(bufnr, "n", "K", "<cmd>lua vim.lsp.buf.hover()<CR>", opts) vim.api.nvim_buf_set_keymap(bufnr, "n", "K", "<cmd>lua vim.lsp.buf.hover()<CR>", opts)
vim.api.nvim_buf_set_keymap(bufnr, "n", "gi", "<cmd>lua vim.lsp.buf.implementation()<CR>", opts) vim.api.nvim_buf_set_keymap(bufnr, "n", "gi", "<cmd>lua vim.lsp.buf.implementation()<CR>", opts)
vim.api.nvim_buf_set_keymap(bufnr, "n", "<C-k>", "<cmd>lua vim.lsp.buf.signature_help()<CR>", opts) vim.api.nvim_buf_set_keymap(bufnr, "n", "<C-k>", "<cmd>lua vim.lsp.buf.signature_help()<CR>", opts)
-- vim.api.nvim_buf_set_keymap(bufnr, "n", "<leader>rn", "<cmd>lua vim.lsp.buf.rename()<CR>", opts) -- vim.api.nvim_buf_set_keymap(bufnr, "n", "<leader>rn", "<cmd>lua vim.lsp.buf.rename()<CR>", opts)
vim.api.nvim_buf_set_keymap(bufnr, "n", "gr", "<cmd>lua vim.lsp.buf.references()<CR>", opts) vim.api.nvim_buf_set_keymap(bufnr, "n", "gr", "<cmd>lua vim.lsp.buf.references()<CR>", opts)
-- vim.api.nvim_buf_set_keymap(bufnr, "n", "<leader>ca", "<cmd>lua vim.lsp.buf.code_action()<CR>", opts) -- vim.api.nvim_buf_set_keymap(bufnr, "n", "<leader>ca", "<cmd>lua vim.lsp.buf.code_action()<CR>", opts)
-- vim.api.nvim_buf_set_keymap(bufnr, "n", "<leader>f", "<cmd>lua vim.diagnostic.open_float()<CR>", opts) -- vim.api.nvim_buf_set_keymap(bufnr, "n", "<leader>f", "<cmd>lua vim.diagnostic.open_float()<CR>", opts)
vim.api.nvim_buf_set_keymap(bufnr, "n", "[d", '<cmd>lua vim.diagnostic.goto_prev({ border = "rounded" })<CR>', opts) vim.api.nvim_buf_set_keymap(bufnr, "n", "[d", '<cmd>lua vim.diagnostic.goto_prev({ border = "rounded" })<CR>', opts)
vim.api.nvim_buf_set_keymap( vim.api.nvim_buf_set_keymap(
bufnr, bufnr,
"n", "n",
"gl", "gl",
'<cmd>lua vim.diagnostic.open_float({ border = "rounded" })<CR>', '<cmd>lua vim.diagnostic.open_float({ border = "rounded" })<CR>',
opts opts
) )
vim.api.nvim_buf_set_keymap(bufnr, "n", "]d", '<cmd>lua vim.diagnostic.goto_next({ border = "rounded" })<CR>', opts) vim.api.nvim_buf_set_keymap(bufnr, "n", "]d", '<cmd>lua vim.diagnostic.goto_next({ border = "rounded" })<CR>', opts)
vim.api.nvim_buf_set_keymap(bufnr, "n", "<leader>q", "<cmd>lua vim.diagnostic.setloclist()<CR>", opts) vim.api.nvim_buf_set_keymap(bufnr, "n", "<leader>q", "<cmd>lua vim.diagnostic.setloclist()<CR>", opts)
vim.cmd [[ command! Format execute 'lua vim.lsp.buf.formatting()' ]] vim.cmd([[ command! Format execute 'lua vim.lsp.buf.format{async=true}' ]])
end end
M.on_attach = function(client, bufnr) M.on_attach = function(client, bufnr)
-- vim.notify(client.name .. " starting...") -- vim.notify(client.name .. " starting...")
-- TODO: refactor this into a method that checks if string in list -- TODO: refactor this into a method that checks if string in list
if client.name == "tsserver" then if client.name == "tsserver" then
client.resolved_capabilities.document_formatting = false client.resolved_capabilities.document_formatting = false
end end
lsp_keymaps(bufnr) lsp_keymaps(bufnr)
lsp_highlight_document(client) lsp_highlight_document(client)
end end
local capabilities = vim.lsp.protocol.make_client_capabilities() local capabilities = vim.lsp.protocol.make_client_capabilities()
local status_ok, cmp_nvim_lsp = pcall(require, "cmp_nvim_lsp") local status_ok, cmp_nvim_lsp = pcall(require, "cmp_nvim_lsp")
if not status_ok then if not status_ok then
return return
end end
M.capabilities = cmp_nvim_lsp.update_capabilities(capabilities) M.capabilities = cmp_nvim_lsp.update_capabilities(capabilities)

@ -1,102 +1,100 @@
local fn = vim.fn local fn = vim.fn
-- Automatically install packer -- Automatically install packer
local install_path = fn.stdpath "data" .. "/site/pack/packer/start/packer.nvim" local install_path = fn.stdpath("data") .. "/site/pack/packer/start/packer.nvim"
if fn.empty(fn.glob(install_path)) > 0 then if fn.empty(fn.glob(install_path)) > 0 then
PACKER_BOOTSTRAP = fn.system { PACKER_BOOTSTRAP = fn.system({
"git", "git",
"clone", "clone",
"--depth", "--depth",
"1", "1",
"https://github.com/wbthomason/packer.nvim", "https://github.com/wbthomason/packer.nvim",
install_path, install_path,
} })
print "Installing packer close and reopen Neovim..." print("Installing packer close and reopen Neovim...")
vim.cmd [[packadd packer.nvim]] vim.cmd([[packadd packer.nvim]])
end end
-- Autocommand that reloads neovim whenever you save the plugins.lua file -- Autocommand that reloads neovim whenever you save the plugins.lua file
vim.cmd [[ vim.cmd([[
augroup packer_user_config augroup packer_user_config
autocmd! autocmd!
autocmd BufWritePost plugins.lua source <afile> | PackerSync autocmd BufWritePost plugins.lua source <afile> | PackerSync
augroup end augroup end
]] ]])
-- Use a protected call so we don't error out on first use -- Use a protected call so we don't error out on first use
local status_ok, packer = pcall(require, "packer") local status_ok, packer = pcall(require, "packer")
if not status_ok then if not status_ok then
return return
end end
-- Have packer use a popup window -- Have packer use a popup window
packer.init { packer.init({
display = { display = {
open_fn = function() open_fn = function()
return require("packer.util").float { border = "rounded" } return require("packer.util").float({ border = "rounded" })
end, end,
}, },
} })
-- Install your plugins here -- Install your plugins here
return packer.startup(function(use) return packer.startup(function(use)
-- My plugins here -- My plugins here
use "wbthomason/packer.nvim" -- Have packer manage itself
use "nvim-lua/popup.nvim" -- An implementation of the Popup API from vim in Neovim
use "nvim-lua/plenary.nvim" -- Useful lua functions used ny lots of plugins
use "windwp/nvim-autopairs" -- Autopairs, integrates with both cmp and treesitter
use "numToStr/Comment.nvim" -- Easily comment stuff
use "kyazdani42/nvim-web-devicons"
use "kyazdani42/nvim-tree.lua"
use "akinsho/bufferline.nvim"
use "moll/vim-bbye"
use "nvim-lualine/lualine.nvim"
use "akinsho/toggleterm.nvim"
use "ahmedkhalf/project.nvim"
use "lewis6991/impatient.nvim"
use "lukas-reineke/indent-blankline.nvim"
use "goolord/alpha-nvim"
use "antoinemadec/FixCursorHold.nvim" -- This is needed to fix lsp doc highlight
use "folke/which-key.nvim"
-- Colorschemes use({ "wbthomason/packer.nvim", commit = "00ec5adef58c5ff9a07f11f45903b9dbbaa1b422" }) -- Have packer manage itself
-- use "lunarvim/colorschemes" -- A bunch of colorschemes you can try out use({ "nvim-lua/plenary.nvim", commit = "968a4b9afec0c633bc369662e78f8c5db0eba249" }) -- Useful lua functions used by lots of plugins
use "lunarvim/darkplus.nvim" use({ "windwp/nvim-autopairs", commit = "fa6876f832ea1b71801c4e481d8feca9a36215ec" }) -- Autopairs, integrates with both cmp and treesitter
use({ "numToStr/Comment.nvim", commit = "2c26a00f32b190390b664e56e32fd5347613b9e2" })
use({ "JoosepAlviste/nvim-ts-context-commentstring", commit = "88343753dbe81c227a1c1fd2c8d764afb8d36269" })
use({ "kyazdani42/nvim-web-devicons", commit = "8d2c5337f0a2d0a17de8e751876eeb192b32310e" })
use({ "kyazdani42/nvim-tree.lua", commit = "bdb6d4a25410da35bbf7ce0dbdaa8d60432bc243" })
use({ "akinsho/bufferline.nvim", commit = "c78b3ecf9539a719828bca82fc7ddb9b3ba0c353" })
use({ "moll/vim-bbye", commit = "25ef93ac5a87526111f43e5110675032dbcacf56" })
use({ "nvim-lualine/lualine.nvim", commit = "3362b28f917acc37538b1047f187ff1b5645ecdd" })
use({ "akinsho/toggleterm.nvim", commit = "aaeed9e02167c5e8f00f25156895a6fd95403af8" })
use({ "ahmedkhalf/project.nvim", commit = "541115e762764bc44d7d3bf501b6e367842d3d4f" })
use({ "lewis6991/impatient.nvim", commit = "969f2c5c90457612c09cf2a13fee1adaa986d350" })
use({ "lukas-reineke/indent-blankline.nvim", commit = "6177a59552e35dfb69e1493fd68194e673dc3ee2" })
use({ "goolord/alpha-nvim", commit = "ef27a59e5b4d7b1c2fe1950da3fe5b1c5f3b4c94" })
use("folke/which-key.nvim")
-- cmp plugins -- Colorschemes
use "hrsh7th/nvim-cmp" -- The completion plugin use({ "folke/tokyonight.nvim", commit = "8223c970677e4d88c9b6b6d81bda23daf11062bb" })
use "hrsh7th/cmp-buffer" -- buffer completions use("lunarvim/darkplus.nvim")
use "hrsh7th/cmp-path" -- path completions
use "hrsh7th/cmp-cmdline" -- cmdline completions
use "saadparwaiz1/cmp_luasnip" -- snippet completions
use "hrsh7th/cmp-nvim-lsp"
-- snippets -- cmp plugins
use "L3MON4D3/LuaSnip" --snippet engine use({ "hrsh7th/nvim-cmp", commit = "df6734aa018d6feb4d76ba6bda94b1aeac2b378a" }) -- The completion plugin
use "rafamadriz/friendly-snippets" -- a bunch of snippets to use use({ "hrsh7th/cmp-buffer", commit = "62fc67a2b0205136bc3e312664624ba2ab4a9323" }) -- buffer completions
use({ "hrsh7th/cmp-path", commit = "466b6b8270f7ba89abd59f402c73f63c7331ff6e" }) -- path completions
use({ "saadparwaiz1/cmp_luasnip", commit = "a9de941bcbda508d0a45d28ae366bb3f08db2e36" }) -- snippet completions
use({ "hrsh7th/cmp-nvim-lsp", commit = "affe808a5c56b71630f17aa7c38e15c59fd648a8" })
use({ "hrsh7th/cmp-nvim-lua", commit = "d276254e7198ab7d00f117e88e223b4bd8c02d21" })
-- LSP -- snippets
use "neovim/nvim-lspconfig" -- enable LSP use({ "L3MON4D3/LuaSnip", commit = "79b2019c68a2ff5ae4d732d50746c901dd45603a" }) --snippet engine
use "williamboman/nvim-lsp-installer" -- simple to use language server installer use({ "rafamadriz/friendly-snippets", commit = "d27a83a363e61009278b6598703a763ce9c8e617" }) -- a bunch of snippets to use
use "tamago324/nlsp-settings.nvim" -- language server settings defined in json for
use "jose-elias-alvarez/null-ls.nvim" -- for formatters and linters
-- Telescope -- LSP
use "nvim-telescope/telescope.nvim" use({ "neovim/nvim-lspconfig", commit = "148c99bd09b44cf3605151a06869f6b4d4c24455" }) -- enable LSP
use({ "williamboman/nvim-lsp-installer", commit = "e9f13d7acaa60aff91c58b923002228668c8c9e6" }) -- simple to use language server installer
use({ "jose-elias-alvarez/null-ls.nvim", commit = "ff40739e5be6581899b43385997e39eecdbf9465" }) -- for formatters and linters
-- Treesitter -- Telescope
use { use({ "nvim-telescope/telescope.nvim", commit = "d96eaa914aab6cfc4adccb34af421bdd496468b0" })
"nvim-treesitter/nvim-treesitter",
run = ":TSUpdate",
}
use "JoosepAlviste/nvim-ts-context-commentstring"
-- Git -- Treesitter
use "lewis6991/gitsigns.nvim" use({
"nvim-treesitter/nvim-treesitter",
commit = "518e27589c0463af15463c9d675c65e464efc2fe",
})
-- Automatically set up your configuration after cloning packer.nvim -- Git
-- Put this at the end after all plugins use({ "lewis6991/gitsigns.nvim", commit = "c18e016864c92ecf9775abea1baaa161c28082c3" })
if PACKER_BOOTSTRAP then
require("packer").sync() -- Automatically set up your configuration after cloning packer.nvim
end -- Put this at the end after all plugins
if PACKER_BOOTSTRAP then
require("packer").sync()
end
end) end)

@ -139,7 +139,7 @@ local mappings = {
"<cmd>Telescope lsp_workspace_diagnostics<cr>", "<cmd>Telescope lsp_workspace_diagnostics<cr>",
"Workspace Diagnostics", "Workspace Diagnostics",
}, },
f = { "<cmd>lua vim.lsp.buf.formatting()<cr>", "Format" }, f = { "<cmd>lua vim.lsp.buf.format{async=true}<cr>", "Format" },
i = { "<cmd>LspInfo<cr>", "Info" }, i = { "<cmd>LspInfo<cr>", "Info" },
I = { "<cmd>LspInstallInfo<cr>", "Installer Info" }, I = { "<cmd>LspInstallInfo<cr>", "Installer Info" },
j = { j = {

Loading…
Cancel
Save