summaryrefslogtreecommitdiff
path: root/.config/nvim/lua/getchoo
diff options
context:
space:
mode:
Diffstat (limited to '.config/nvim/lua/getchoo')
-rw-r--r--.config/nvim/lua/getchoo/lsp.lua134
-rw-r--r--.config/nvim/lua/getchoo/plugins.lua102
2 files changed, 130 insertions, 106 deletions
diff --git a/.config/nvim/lua/getchoo/lsp.lua b/.config/nvim/lua/getchoo/lsp.lua
index 7bd16ce..980d77e 100644
--- a/.config/nvim/lua/getchoo/lsp.lua
+++ b/.config/nvim/lua/getchoo/lsp.lua
@@ -1,80 +1,82 @@
--
--- lsp settings using nvim-lspconfig & coq-nvim
+-- lsp settings using coq-nvim, null-ls, bufferline, nvim-tree, trouble, & telescope
--
-local fn = vim.fn
-local cmd = vim.cmd
-local opt = vim.opt
+--- require lsp plugins
+require("nvim-tree").setup()
+require("alpha").setup(require("alpha.themes.dashboard").config)
+require("bufferline").setup()
+require("trouble").setup()
+require("telescope").setup()
+require("mason").setup()
+require("mason-lspconfig").setup()
+vim.opt.runtimepath:append("~/.local/share/nvim/mason/bin/")
+local lspconfig = require("lspconfig")
+local null_ls = require("null-ls")
+vim.g.coq_settings = { auto_start = "shut-up" }
-vim.g.coq_settings = { auto_start = 'shut-up' }
+--- mappings
+local opts = { noremap = true, silent = true }
+vim.keymap.set("n", "<space>e", vim.diagnostic.open_float, opts)
+vim.keymap.set("n", "[d", vim.diagnostic.goto_prev, opts)
+vim.keymap.set("n", "]d", vim.diagnostic.goto_next, opts)
+vim.keymap.set("n", "<space>q", vim.diagnostic.setloclist, opts)
---- Mappings.
---- See `:help vim.diagnostic.*` for documentation on any of the below functions
-local opts = { noremap=true, silent=true }
-vim.keymap.set('n', '<space>e', vim.diagnostic.open_float, opts)
-vim.keymap.set('n', '[d', vim.diagnostic.goto_prev, opts)
-vim.keymap.set('n', ']d', vim.diagnostic.goto_next, opts)
-vim.keymap.set('n', '<space>q', vim.diagnostic.setloclist, opts)
+--- setup lsp servers
+---- null-ls builtins shorthand
+local completion = null_ls.builtins.completion
+local diagnostics = null_ls.builtins.diagnostics
+local formatting = null_ls.builtins.formatting
---- Use an on_attach function to only map the following keys
---- after the language server attaches to the current buffer
-local on_attach = function(client, bufnr)
- ---- Enable completion triggered by <c-x><c-o>
- vim.api.nvim_buf_set_option(bufnr, 'omnifunc', 'v:lua.vim.lsp.omnifunc')
-
- ---- Mappings.
- ---- See `:help vim.lsp.*` for documentation on any of the below functions
- local bufopts = { noremap=true, silent=true, buffer=bufnr }
- vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, bufopts)
- vim.keymap.set('n', 'gd', vim.lsp.buf.definition, bufopts)
- vim.keymap.set('n', 'K', vim.lsp.buf.hover, bufopts)
- vim.keymap.set('n', 'gi', vim.lsp.buf.implementation, bufopts)
- vim.keymap.set('n', '<C-k>', vim.lsp.buf.signature_help, bufopts)
- vim.keymap.set('n', '<space>wa', vim.lsp.buf.add_workspace_folder, bufopts)
- vim.keymap.set('n', '<space>wr', vim.lsp.buf.remove_workspace_folder, bufopts)
- vim.keymap.set('n', '<space>wl', function()
- print(vim.inspect(vim.lsp.buf.list_workspace_folders()))
- end, bufopts)
- vim.keymap.set('n', '<space>D', vim.lsp.buf.type_definition, bufopts)
- vim.keymap.set('n', '<space>rn', vim.lsp.buf.rename, bufopts)
- vim.keymap.set('n', '<space>ca', vim.lsp.buf.code_action, bufopts)
- vim.keymap.set('n', 'gr', vim.lsp.buf.references, bufopts)
- vim.keymap.set('n', '<space>f', vim.lsp.buf.formatting, bufopts)
-end
+local servers = { "rust_analyzer", "pyright", "bashls" } -- lspconfig servers
+local sources = { -- null-ls sources
+ diagnostics.alex,
+ diagnostics.codespell,
+ diagnostics.flake8,
+ formatting.black,
+ formatting.codespell,
+ formatting.prettier,
+ formatting.rustfmt,
+ formatting.stylua,
+}
-local servers = { 'rust_analyzer', 'pyright', 'bashls' }
for _, lsp in ipairs(servers) do
- require('lspconfig')[lsp].setup(require('coq').lsp_ensure_capabilities({
- on_attach = on_attatch,
- flags = lsp_flags
- }))
+ lspconfig[lsp].setup(require("coq").lsp_ensure_capabilities({}))
end
-require('lspconfig')['sumneko_lua'].setup(require('coq').lsp_ensure_capabilities({
- on_attatch = on_attatch,
- flags = lsp_flags,
- settings = {
- Lua = {
- runtime = {
- version = 'LuaJIT',
- },
- diagnostics = {
- globals = {'vim'},
- },
- workspace = {
- library = vim.api.nvim_get_runtime_file("", true),
- }
- },
- },
+lspconfig["sumneko_lua"].setup(require("coq").lsp_ensure_capabilities({
+ settings = {
+ Lua = {
+ runtime = {
+ version = "LuaJIT",
+ },
+ diagnostics = {
+ globals = { "vim" }, -- ignore regular vim errors
+ },
+ format = {
+ enable = false,
+ },
+ workspace = {
+ library = vim.api.nvim_get_runtime_file("", true),
+ },
+ },
+ },
}))
-require('lint').linters_by_ft = {
- python = {'flake8',}
-}
-
-vim.api.nvim_create_autocmd({ "BufWritePost" }, {
- callback = function()
- require('lint').try_lint()
- end,
+local augroup = vim.api.nvim_create_augroup("LspFormatting", {})
+null_ls.setup({
+ on_attach = function(client, bufnr)
+ if client.supports_method("textDocument/formatting") then
+ vim.api.nvim_clear_autocmds({ group = augroup, buffer = bufnr })
+ vim.api.nvim_create_autocmd("BufWritePre", {
+ group = augroup,
+ buffer = bufnr,
+ callback = function()
+ vim.lsp.buf.formatting_sync()
+ end,
+ })
+ end
+ end,
+ sources = sources,
})
diff --git a/.config/nvim/lua/getchoo/plugins.lua b/.config/nvim/lua/getchoo/plugins.lua
index 756a983..9c77dc2 100644
--- a/.config/nvim/lua/getchoo/plugins.lua
+++ b/.config/nvim/lua/getchoo/plugins.lua
@@ -4,52 +4,74 @@
local fn = vim.fn
local cmd = vim.cmd
-local opt = vim.opt
-
-local packer_path = fn.stdpath('data')..'/site/pack/packer/start/packer.nvim'
+local packer_path = fn.stdpath("data") .. "/site/pack/packer/start/packer.nvim"
if fn.empty(fn.glob(packer_path)) > 0 then
- packer_bootstrap = fn.system({
- 'git',
- 'clone',
- '--depth', '1',
- 'https://github.com/wbthomason/packer.nvim',
- packer_path
- })
- cmd [[packadd packer.nvim]]
+ Packer_bootstrap = fn.system({
+ "git",
+ "clone",
+ "--depth",
+ "1",
+ "https://github.com/wbthomason/packer.nvim",
+ packer_path,
+ })
+ cmd([[packadd packer.nvim]])
end
-require('packer').startup(function(use)
- use 'wbthomason/packer.nvim'
- use {
- 'nvim-treesitter/nvim-treesitter',
- run = function() require('nvim-treesitter.install').update({ with_sync = true }) end,
- }
- use 'neovim/nvim-lspconfig'
- use { 'ms-jpq/coq_nvim', run = 'python3 -m coq deps' }
- use 'ms-jpq/coq.artifacts'
- use 'ms-jpq/coq.thirdparty'
- use 'mfussenegger/nvim-lint'
- use {
- 'nvim-lualine/lualine.nvim',
- requires = { 'kyazdani42/nvim-web-devicons', opt = true }
- }
- use 'arcticicestudio/nord-vim'
- use {'rose-pine/neovim', as = 'rose-pine'}
+require("packer").startup(function(use)
+ use("wbthomason/packer.nvim")
+ use({
+ "nvim-treesitter/nvim-treesitter",
+ run = function()
+ require("nvim-treesitter.install").update({ with_sync = true })
+ end,
+ })
+ use({
+ "goolord/alpha-nvim",
+ requires = { "kyazdani42/nvim-web-devicons" },
+ })
+ use("kyazdani42/nvim-tree.lua")
+ use("williamboman/mason.nvim")
+ use("williamboman/mason-lspconfig")
+ use("neovim/nvim-lspconfig")
+ use({ "ms-jpq/coq_nvim", run = "python3 -m coq deps" })
+ use("ms-jpq/coq.artifacts")
+ use("ms-jpq/coq.thirdparty")
+ use({
+ "jose-elias-alvarez/null-ls.nvim",
+ requires = { "nvim-lua/plenary.nvim" },
+ })
+ use({
+ "folke/trouble.nvim",
+ requires = { "kyazdani42/nvim-web-devicons" },
+ })
+ use({
+ "akinsho/bufferline.nvim",
+ tag = "v2.*",
+ requires = { "kyazdani42/nvim-web-devicons" },
+ })
+ use({
+ "nvim-telescope/telescope.nvim",
+ branch = "0.1.x",
+ requires = { "nvim-lua/plenary.nvim" },
+ })
+ use({ "nvim-lualine/lualine.nvim", requires = { "kyazdani42/nvim-web-devicons", opt = true } })
+ use("arcticicestudio/nord-vim")
+ use({ "rose-pine/neovim", as = "rose-pine" })
- if packer_bootstrap then
- require('packer').sync()
- end
+ if Packer_bootstrap then
+ require("packer").sync()
+ end
end)
-require('nvim-treesitter.configs').setup {
- auto_install = true
-}
+require("nvim-treesitter.configs").setup({
+ auto_install = true,
+})
-require('lualine').setup {
- options = {
- theme = 'nord'
- },
- extensions = {'nvim-tree'}
-}
+require("lualine").setup({
+ options = {
+ theme = "nord",
+ },
+ extensions = { "nvim-tree" },
+})