From 731f682628837e6934b8b04b470211d3866fd0d8 Mon Sep 17 00:00:00 2001 From: seth Date: Mon, 23 Jan 2023 15:44:26 -0500 Subject: update neovim config --- users/seth/programs/neovim/config/init.lua | 23 +++++ .../neovim/config/lua/getchoo/ftdetect.lua | 12 +++ .../programs/neovim/config/lua/getchoo/init.lua | 37 +++++++ .../programs/neovim/config/lua/getchoo/keymap.lua | 27 +++++ .../neovim/config/lua/getchoo/lsp/config/cmp.lua | 71 +++++++++++++ .../neovim/config/lua/getchoo/lsp/config/init.lua | 31 ++++++ .../config/lua/getchoo/lsp/config/lsp_config.lua | 44 ++++++++ .../neovim/config/lua/getchoo/lsp/config/mason.lua | 17 ++++ .../config/lua/getchoo/lsp/config/null_ls.lua | 42 ++++++++ .../config/lua/getchoo/lsp/config/sources.lua | 31 ++++++ .../neovim/config/lua/getchoo/lsp/init.lua | 11 ++ .../neovim/config/lua/getchoo/lsp/keymap.lua | 21 ++++ .../neovim/config/lua/getchoo/lsp/server.lua | 22 ++++ .../programs/neovim/config/lua/getchoo/plugins.lua | 111 +++++++++++++++++++++ users/seth/programs/neovim/default.nix | 8 +- users/seth/programs/neovim/lua/init.lua | 39 -------- .../programs/neovim/lua/lua/getchoo/config.lua | 25 ----- .../programs/neovim/lua/lua/getchoo/ftdetect.lua | 10 -- .../seth/programs/neovim/lua/lua/getchoo/init.lua | 4 - .../programs/neovim/lua/lua/getchoo/keymap.lua | 27 ----- .../neovim/lua/lua/getchoo/lsp/config/cmp.lua | 67 ------------- .../neovim/lua/lua/getchoo/lsp/config/init.lua | 28 ------ .../lua/lua/getchoo/lsp/config/lsp_config.lua | 40 -------- .../neovim/lua/lua/getchoo/lsp/config/mason.lua | 14 --- .../neovim/lua/lua/getchoo/lsp/config/null_ls.lua | 38 ------- .../neovim/lua/lua/getchoo/lsp/config/sources.lua | 32 ------ .../programs/neovim/lua/lua/getchoo/lsp/init.lua | 10 -- .../programs/neovim/lua/lua/getchoo/lsp/keymap.lua | 21 ---- .../programs/neovim/lua/lua/getchoo/lsp/server.lua | 22 ---- .../programs/neovim/lua/lua/getchoo/plugins.lua | 111 --------------------- 30 files changed, 504 insertions(+), 492 deletions(-) create mode 100644 users/seth/programs/neovim/config/init.lua create mode 100644 users/seth/programs/neovim/config/lua/getchoo/ftdetect.lua create mode 100644 users/seth/programs/neovim/config/lua/getchoo/init.lua create mode 100644 users/seth/programs/neovim/config/lua/getchoo/keymap.lua create mode 100644 users/seth/programs/neovim/config/lua/getchoo/lsp/config/cmp.lua create mode 100644 users/seth/programs/neovim/config/lua/getchoo/lsp/config/init.lua create mode 100644 users/seth/programs/neovim/config/lua/getchoo/lsp/config/lsp_config.lua create mode 100644 users/seth/programs/neovim/config/lua/getchoo/lsp/config/mason.lua create mode 100644 users/seth/programs/neovim/config/lua/getchoo/lsp/config/null_ls.lua create mode 100644 users/seth/programs/neovim/config/lua/getchoo/lsp/config/sources.lua create mode 100644 users/seth/programs/neovim/config/lua/getchoo/lsp/init.lua create mode 100644 users/seth/programs/neovim/config/lua/getchoo/lsp/keymap.lua create mode 100644 users/seth/programs/neovim/config/lua/getchoo/lsp/server.lua create mode 100644 users/seth/programs/neovim/config/lua/getchoo/plugins.lua delete mode 100644 users/seth/programs/neovim/lua/init.lua delete mode 100644 users/seth/programs/neovim/lua/lua/getchoo/config.lua delete mode 100644 users/seth/programs/neovim/lua/lua/getchoo/ftdetect.lua delete mode 100644 users/seth/programs/neovim/lua/lua/getchoo/init.lua delete mode 100644 users/seth/programs/neovim/lua/lua/getchoo/keymap.lua delete mode 100644 users/seth/programs/neovim/lua/lua/getchoo/lsp/config/cmp.lua delete mode 100644 users/seth/programs/neovim/lua/lua/getchoo/lsp/config/init.lua delete mode 100644 users/seth/programs/neovim/lua/lua/getchoo/lsp/config/lsp_config.lua delete mode 100644 users/seth/programs/neovim/lua/lua/getchoo/lsp/config/mason.lua delete mode 100644 users/seth/programs/neovim/lua/lua/getchoo/lsp/config/null_ls.lua delete mode 100644 users/seth/programs/neovim/lua/lua/getchoo/lsp/config/sources.lua delete mode 100644 users/seth/programs/neovim/lua/lua/getchoo/lsp/init.lua delete mode 100644 users/seth/programs/neovim/lua/lua/getchoo/lsp/keymap.lua delete mode 100644 users/seth/programs/neovim/lua/lua/getchoo/lsp/server.lua delete mode 100644 users/seth/programs/neovim/lua/lua/getchoo/plugins.lua (limited to 'users/seth') diff --git a/users/seth/programs/neovim/config/init.lua b/users/seth/programs/neovim/config/init.lua new file mode 100644 index 0000000..1dbf9bc --- /dev/null +++ b/users/seth/programs/neovim/config/init.lua @@ -0,0 +1,23 @@ +-- +-- getchoo's neovim config (but in lua :p) +-- + +local cmd = vim.cmd +local opt = vim.opt + +vim.g.use_lsp_plugins = false +vim.g.use_mason = false + +require("getchoo") + +-- text options +opt.tabstop = 2 +opt.shiftwidth = 2 +opt.expandtab = false +opt.smartindent = true +opt.wrap = false + +-- appearance +opt.syntax = "on" +cmd("filetype plugin indent on") +opt.termguicolors = true diff --git a/users/seth/programs/neovim/config/lua/getchoo/ftdetect.lua b/users/seth/programs/neovim/config/lua/getchoo/ftdetect.lua new file mode 100644 index 0000000..c13bdb6 --- /dev/null +++ b/users/seth/programs/neovim/config/lua/getchoo/ftdetect.lua @@ -0,0 +1,12 @@ +-- +-- load custom file types +-- + +local filetypes = { + filename = { + PKGBUILD = "text", + [".makepkg.conf"] = "text", + }, +} + +vim.filetype.add(filetypes) diff --git a/users/seth/programs/neovim/config/lua/getchoo/init.lua b/users/seth/programs/neovim/config/lua/getchoo/init.lua new file mode 100644 index 0000000..83233ea --- /dev/null +++ b/users/seth/programs/neovim/config/lua/getchoo/init.lua @@ -0,0 +1,37 @@ +-- +-- setup plugins +-- + +require("getchoo.plugins") + +local M = {} + +M.bufferline = { + animation = true, + auto_hide = true, + icons = true, + maximum_padding = 2, + semantic_letters = true, +} + +M.lualine = { + options = { + theme = "catppuccin", + }, + extensions = { "nvim-tree" }, +} + +M.tree = {} + +require("bufferline").setup(M.bufferline) +require("lualine").setup(M.lualine) +require("nvim-tree").setup(M.tree) + +if vim.g.use_lsp_plugins then + require("getchoo.ftdetect") + require("getchoo.lsp") +end + +require("getchoo.keymap") + +return M diff --git a/users/seth/programs/neovim/config/lua/getchoo/keymap.lua b/users/seth/programs/neovim/config/lua/getchoo/keymap.lua new file mode 100644 index 0000000..9a4484c --- /dev/null +++ b/users/seth/programs/neovim/config/lua/getchoo/keymap.lua @@ -0,0 +1,27 @@ +-- +-- keymaps for general plugins +-- + +local opts = { noremap = true, silent = true } +local set = function(mode, key, cmd) + vim.keymap.set(mode, key, cmd, opts) +end + +set("n", "t", function() + vim.cmd("NvimTreeToggle") +end) + +for i = 1, 9 do + set("n", "" .. i, function() + local cmd = "BufferGoto " .. i + vim.cmd(cmd) + end) +end + +set("n", "p", function() + vim.cmd("BufferPick") +end) + +set("n", "q", function() + vim.cmd("BufferClose") +end) diff --git a/users/seth/programs/neovim/config/lua/getchoo/lsp/config/cmp.lua b/users/seth/programs/neovim/config/lua/getchoo/lsp/config/cmp.lua new file mode 100644 index 0000000..cef2ad1 --- /dev/null +++ b/users/seth/programs/neovim/config/lua/getchoo/lsp/config/cmp.lua @@ -0,0 +1,71 @@ +-- +-- config for nvim-cmp +-- + +local cmp = require("cmp") +local mapping = cmp.mapping +local luasnip = require("luasnip") + +local M = {} + +local has_words_before = function() + local line, col = unpack(vim.api.nvim_win_get_cursor(0)) + return col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match("%s") == nil +end + +local feedkey = function(key, mode) + vim.api.nvim_feedkeys(vim.api.nvim_replace_termcodes(key, true, true, true), mode, true) +end + +M.config = { + snippet = { + expand = function(args) + vim.fn["vsnip#anonymous"](args.body) + luasnip.lsp_expand(args.body) + end, + }, + mapping = mapping.preset.insert({ + [""] = cmp.mapping(function(fallback) + if cmp.visible() then + cmp.select_next_item() + elseif luasnip.expand_or_jumpable() then + luasnip.expand_or_jump() + elseif vim.fn["vsnip#available"](1) == 1 then + feedkey("(vsnip-expand-or-jump)", "") + elseif has_words_before() then + cmp.complete() + else + fallback() + end + end, { "i", "s" }), + [""] = cmp.mapping(function(fallback) + if cmp.visible() then + cmp.select_prev_item() + elseif luasnip.jumpable(-1) then + luasnip.jump(-1) + elseif vim.fn["vsnip#available"](-1) == 1 then + feedkey("(vsnip-jump-prev)", "") + else + fallback() + end + end, { "i", "s" }), + }), + sources = cmp.config.sources({ + { name = "nvim_lsp" }, + { name = "luasnip" }, + { name = "vsnip" }, + { name = "buffer" }, + { name = "path" }, + }), +} + +local capabilities = require("cmp_nvim_lsp").default_capabilities() +capabilities.textDocument.completion.completionItem.snippetSupport = true + +M.capabilities = capabilities + +M.on_attach = function(_, bufnr) + vim.api.nvim_buf_set_option(bufnr, "omnifunc", "v:lua.vim.lsp.omnifunc") +end + +return M diff --git a/users/seth/programs/neovim/config/lua/getchoo/lsp/config/init.lua b/users/seth/programs/neovim/config/lua/getchoo/lsp/config/init.lua new file mode 100644 index 0000000..b3e58dd --- /dev/null +++ b/users/seth/programs/neovim/config/lua/getchoo/lsp/config/init.lua @@ -0,0 +1,31 @@ +-- +-- load all lsp configs +-- + +local cmp = require("getchoo.lsp.config.cmp") +local lsp_config = require("getchoo.lsp.config.lsp_config") +local mason = require("getchoo.lsp.config.mason") +local null_ls = require("getchoo.lsp.config.null_ls") + +local M = {} + +M.cmp = cmp.config + +M.lsp_servers = lsp_config.servers + +M.mason_tool_installer = mason.mason_tool_installer +M.mason_lspconfig = mason.mason_lspconfig + +M.null_ls = null_ls.config + +M.treesitter = { + auto_install = true, + highlight = { + enable = true, + additional_vim_regex_highlighting = false, + }, +} + +M.trouble = {} + +return M diff --git a/users/seth/programs/neovim/config/lua/getchoo/lsp/config/lsp_config.lua b/users/seth/programs/neovim/config/lua/getchoo/lsp/config/lsp_config.lua new file mode 100644 index 0000000..9874820 --- /dev/null +++ b/users/seth/programs/neovim/config/lua/getchoo/lsp/config/lsp_config.lua @@ -0,0 +1,44 @@ +-- +-- setup lsp_config +-- + +local cmp = require("getchoo.lsp.config.cmp") +local sources = require("getchoo.lsp.config.sources") + +local M = {} + +local on_attach = function(client, bufnr) + cmp.on_attach(client, bufnr) +end + +local all_config = { + capabilities = cmp.capabilities, + on_attach = on_attach, +} + +local servers = {} +for _, server in ipairs(sources.lsp_servers) do + servers[server] = all_config +end + +servers["sumneko_lua"] = { + capabilities = cmp.capabilities, + on_attach = on_attach, + settings = { + Lua = { + runtime = { + version = "LuaJIT", + }, + diagnostics = { + globals = { "vim" }, + }, + workspace = { + library = vim.api.nvim_get_runtime_file("", true), + }, + }, + }, +} + +M.servers = servers + +return M diff --git a/users/seth/programs/neovim/config/lua/getchoo/lsp/config/mason.lua b/users/seth/programs/neovim/config/lua/getchoo/lsp/config/mason.lua new file mode 100644 index 0000000..24adffb --- /dev/null +++ b/users/seth/programs/neovim/config/lua/getchoo/lsp/config/mason.lua @@ -0,0 +1,17 @@ +-- +-- config for mason tools +-- + +local sources = require("getchoo.lsp.config.sources") + +local M = {} + +M.mason_tool_installer = { + ensure_installed = sources.mason, +} + +M.mason_lspconfig = { + automatic_installation = true, +} + +return M diff --git a/users/seth/programs/neovim/config/lua/getchoo/lsp/config/null_ls.lua b/users/seth/programs/neovim/config/lua/getchoo/lsp/config/null_ls.lua new file mode 100644 index 0000000..16b1b3c --- /dev/null +++ b/users/seth/programs/neovim/config/lua/getchoo/lsp/config/null_ls.lua @@ -0,0 +1,42 @@ +-- +-- config for null_ls +-- + +local sources = require("getchoo.lsp.config.sources") + +local M = {} + +-- only use null-ls for formatting +-- for neovim >= 8 +local lsp_formatting = function(bufnr) + vim.lsp.buf.format({ + filter = function(client) + return client.name == "null-ls" + end, + bufnr = bufnr, + }) +end + +local augroup = vim.api.nvim_create_augroup("LspFormatting", {}) +local formatting_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() + -- for neovim < 8 + ---- local params = require("vim.lsp.util").make_formatting_params({}) + ---- client.request("textDocument/formatting", params, nil, bufnr) + lsp_formatting(bufnr) -- neovim >= 8 + end, + }) + end +end + +M.config = { + on_attach = formatting_on_attach, + sources = sources.null_ls, +} + +return M diff --git a/users/seth/programs/neovim/config/lua/getchoo/lsp/config/sources.lua b/users/seth/programs/neovim/config/lua/getchoo/lsp/config/sources.lua new file mode 100644 index 0000000..3b67ab2 --- /dev/null +++ b/users/seth/programs/neovim/config/lua/getchoo/lsp/config/sources.lua @@ -0,0 +1,31 @@ +-- +-- sources for lsp +-- + +local null_ls = require("null-ls") +local diagnostics = null_ls.builtins.diagnostics +local formatting = null_ls.builtins.formatting + +local M = { + lsp_servers = { "rust_analyzer", "pyright", "bashls" }, + null_ls = { + diagnostics.alex, + diagnostics.codespell, + diagnostics.pylint, + formatting.codespell, + formatting.prettier, + formatting.rustfmt, + formatting.stylua, + formatting.yapf, + }, + mason = { + "alex", + "codespell", + "prettier", + "pylint", + "stylua", + "yapf", + }, +} + +return M diff --git a/users/seth/programs/neovim/config/lua/getchoo/lsp/init.lua b/users/seth/programs/neovim/config/lua/getchoo/lsp/init.lua new file mode 100644 index 0000000..f354b2a --- /dev/null +++ b/users/seth/programs/neovim/config/lua/getchoo/lsp/init.lua @@ -0,0 +1,11 @@ +-- +-- setup lsp environment +-- + +require("getchoo.lsp.server") +require("getchoo.lsp.keymap") +local config = require("getchoo.lsp.config") + +require("gitsigns").setup() +require("nvim-treesitter.configs").setup(config.treesitter) +require("trouble").setup(config.trouble) diff --git a/users/seth/programs/neovim/config/lua/getchoo/lsp/keymap.lua b/users/seth/programs/neovim/config/lua/getchoo/lsp/keymap.lua new file mode 100644 index 0000000..9f34ffa --- /dev/null +++ b/users/seth/programs/neovim/config/lua/getchoo/lsp/keymap.lua @@ -0,0 +1,21 @@ +-- +-- keymaps for lsp +-- + +local opts = { noremap = true, silent = true } +local set = function(mode, key, cmd) + vim.keymap.set(mode, key, cmd, opts) +end + +set("n", "e", vim.diagnostic.open_float) +set("n", "[d", vim.diagnostic.goto_prev) +set("n", "]d", vim.diagnostic.goto_next) +set("n", "q", vim.diagnostic.setloclist) + +set("n", "f", function() + vim.cmd("Telescope") +end) + +set("n", "t", function() + vim.cmd("TroubleToggle") +end) diff --git a/users/seth/programs/neovim/config/lua/getchoo/lsp/server.lua b/users/seth/programs/neovim/config/lua/getchoo/lsp/server.lua new file mode 100644 index 0000000..325e1c7 --- /dev/null +++ b/users/seth/programs/neovim/config/lua/getchoo/lsp/server.lua @@ -0,0 +1,22 @@ +-- +-- initialize lsp servers +-- + +local cmp = require("cmp") +local lspconfig = require("lspconfig") +local null_ls = require("null-ls") +local config = require("getchoo.lsp.config") + +if vim.g.use_mason then + require("mason").setup() + require("mason-lspconfig").setup(config.mason_lspconfig) + require("mason-tool-installer").setup(config.mason_tool_installer) + vim.opt.runtimepath:append("~/.local/share/nvim/mason/bin/") +end + +null_ls.setup(config.null_ls) +cmp.setup(config.cmp) + +for server, settings in pairs(config.lsp_servers) do + lspconfig[server].setup(settings) +end diff --git a/users/seth/programs/neovim/config/lua/getchoo/plugins.lua b/users/seth/programs/neovim/config/lua/getchoo/plugins.lua new file mode 100644 index 0000000..d3f1863 --- /dev/null +++ b/users/seth/programs/neovim/config/lua/getchoo/plugins.lua @@ -0,0 +1,111 @@ +-- +-- plugins for neovim +-- + +local fn = vim.fn +local cmd = vim.cmd + +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") +end + +require("packer").startup(function(use) + use("wbthomason/packer.nvim") + + -- comsetic plugins + use({ "nvim-lualine/lualine.nvim", requires = { "kyazdani42/nvim-web-devicons" } }) + + use({ + "catppuccin/nvim", + as = "catppuccin", + config = function() + require("catppuccin").setup({ + flavour = "mocha", -- mocha, macchiato, frappe, latte + integrations = { + barbar = true, + gitsigns = true, + lightspeed = true, + mason = true, + cmp = true, + nvimtree = true, + treesitter_context = true, + treesitter = true, + telescope = true, + lsp_trouble = true, + }, + no_italic = true, + }) + vim.api.nvim_command("colorscheme catppuccin") + end, + }) + + ---- use("shaunsingh/nord.nvim") + ---- use({ "rose-pine/neovim", as = "rose-pine" }) + + -- general use plugins + use({ + "romgrk/barbar.nvim", + requires = { "kyazdani42/nvim-web-devicons" }, + }) + + use("ggandor/lightspeed.nvim") + use("kyazdani42/nvim-tree.lua") + + -- lsp plugins + if vim.g.use_lsp_plugins then + use("neovim/nvim-lspconfig") + + use({ + "jose-elias-alvarez/null-ls.nvim", + requires = { "nvim-lua/plenary.nvim" }, + }) + + if vim.g.use_mason then + use("williamboman/mason.nvim") + use("williamboman/mason-lspconfig") + use("whoissethdaniel/mason-tool-installer.nvim") + end + + use({ + "nvim-treesitter/nvim-treesitter", + run = function() + require("nvim-treesitter.install").update({ with_sync = true }) + end, + }) + + use("hrsh7th/nvim-cmp") + use("hrsh7th/cmp-nvim-lsp") + use("hrsh7th/cmp-buffer") + use("hrsh7th/cmp-path") + use("hrsh7th/cmp-vsnip") + use("hrsh7th/vim-vsnip") + use("L3MON4D3/LuaSnip") + use("saadparwaiz1/cmp_luasnip") + + use({ + "folke/trouble.nvim", + requires = { "kyazdani42/nvim-web-devicons" }, + }) + use({ + "nvim-telescope/telescope.nvim", + requires = { "nvim-lua/plenary.nvim" }, + }) + + use("lewis6991/gitsigns.nvim") + use("editorconfig/editorconfig-vim") + end + + if Packer_bootstrap then + require("packer").sync() + end +end) diff --git a/users/seth/programs/neovim/default.nix b/users/seth/programs/neovim/default.nix index 471c885..16d6ad5 100644 --- a/users/seth/programs/neovim/default.nix +++ b/users/seth/programs/neovim/default.nix @@ -8,7 +8,6 @@ enable = true; extraPackages = with pkgs; [ alejandra - black clang codespell deadnix @@ -16,12 +15,13 @@ nodePackages.bash-language-server nodePackages.prettier nodePackages.pyright - python310Packages.flake8 + pylint rust-analyzer rustfmt statix stylua sumneko-lua-language-server + yapf ]; plugins = with pkgs.vimPlugins; [ lualine-nvim @@ -49,8 +49,8 @@ ]; }; - xdg.configFile."nvim" = { - source = ./lua; + xdg.configFile.nvim = { + source = ./config; recursive = true; }; } diff --git a/users/seth/programs/neovim/lua/init.lua b/users/seth/programs/neovim/lua/init.lua deleted file mode 100644 index 262f556..0000000 --- a/users/seth/programs/neovim/lua/init.lua +++ /dev/null @@ -1,39 +0,0 @@ --- --- getchoo's neovim config (but in lua :p) --- - -local cmd = vim.cmd -local opt = vim.opt - -require("getchoo") -require("getchoo.ftdetect") -require("getchoo.lsp") - --- text options -opt.tabstop = 2 -opt.shiftwidth = 2 -opt.expandtab = false -opt.smartindent = true -opt.wrap = false - --- appearance -opt.syntax = "on" -cmd("filetype plugin indent on") -opt.termguicolors = true - -require("catppuccin").setup({ - flavour = "mocha", -- mocha, macchiato, frappe, latte - integrations = { - barbar = true, - gitsigns = true, - lightspeed = true, - mason = true, - cmp = true, - nvimtree = true, - treesitter_context = true, - treesitter = true, - telescope = true, - lsp_trouble = true, - }, -}) -vim.api.nvim_command("colorscheme catppuccin") diff --git a/users/seth/programs/neovim/lua/lua/getchoo/config.lua b/users/seth/programs/neovim/lua/lua/getchoo/config.lua deleted file mode 100644 index a67f734..0000000 --- a/users/seth/programs/neovim/lua/lua/getchoo/config.lua +++ /dev/null @@ -1,25 +0,0 @@ --- --- config for regular plugins --- - -local M = {} - -M.bufferline = { - animation = true, - auto_hide = true, - icons = true, - maximum_padding = 2, - semantic_letters = true, -} - -M.lualine = { - options = { - theme = "catppuccin", - }, - extensions = { "nvim-tree" }, -} - -M.tree = {} - -require("getchoo.keymap") -return M diff --git a/users/seth/programs/neovim/lua/lua/getchoo/ftdetect.lua b/users/seth/programs/neovim/lua/lua/getchoo/ftdetect.lua deleted file mode 100644 index 5dd569d..0000000 --- a/users/seth/programs/neovim/lua/lua/getchoo/ftdetect.lua +++ /dev/null @@ -1,10 +0,0 @@ --- load custom file types - -local filetypes = { - filename = { - PKGBUILD = "text", - [".makepkg.conf"] = "text", - }, -} - -vim.filetype.add(filetypes) diff --git a/users/seth/programs/neovim/lua/lua/getchoo/init.lua b/users/seth/programs/neovim/lua/lua/getchoo/init.lua deleted file mode 100644 index f44f622..0000000 --- a/users/seth/programs/neovim/lua/lua/getchoo/init.lua +++ /dev/null @@ -1,4 +0,0 @@ -local config = require("getchoo.config") -require("bufferline").setup(config.bufferline) -require("lualine").setup(config.lualine) -require("nvim-tree").setup(config.tree) diff --git a/users/seth/programs/neovim/lua/lua/getchoo/keymap.lua b/users/seth/programs/neovim/lua/lua/getchoo/keymap.lua deleted file mode 100644 index 9a4484c..0000000 --- a/users/seth/programs/neovim/lua/lua/getchoo/keymap.lua +++ /dev/null @@ -1,27 +0,0 @@ --- --- keymaps for general plugins --- - -local opts = { noremap = true, silent = true } -local set = function(mode, key, cmd) - vim.keymap.set(mode, key, cmd, opts) -end - -set("n", "t", function() - vim.cmd("NvimTreeToggle") -end) - -for i = 1, 9 do - set("n", "" .. i, function() - local cmd = "BufferGoto " .. i - vim.cmd(cmd) - end) -end - -set("n", "p", function() - vim.cmd("BufferPick") -end) - -set("n", "q", function() - vim.cmd("BufferClose") -end) diff --git a/users/seth/programs/neovim/lua/lua/getchoo/lsp/config/cmp.lua b/users/seth/programs/neovim/lua/lua/getchoo/lsp/config/cmp.lua deleted file mode 100644 index 0f0f51f..0000000 --- a/users/seth/programs/neovim/lua/lua/getchoo/lsp/config/cmp.lua +++ /dev/null @@ -1,67 +0,0 @@ -local cmp = require("cmp") -local mapping = cmp.mapping -local luasnip = require("luasnip") - -local M = {} - -local has_words_before = function() - local line, col = unpack(vim.api.nvim_win_get_cursor(0)) - return col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match("%s") == nil -end - -local feedkey = function(key, mode) - vim.api.nvim_feedkeys(vim.api.nvim_replace_termcodes(key, true, true, true), mode, true) -end - -M.config = { - snippet = { - expand = function(args) - vim.fn["vsnip#anonymous"](args.body) - luasnip.lsp_expand(args.body) - end, - }, - mapping = mapping.preset.insert({ - [""] = cmp.mapping(function(fallback) - if cmp.visible() then - cmp.select_next_item() - elseif luasnip.expand_or_jumpable() then - luasnip.expand_or_jump() - elseif vim.fn["vsnip#available"](1) == 1 then - feedkey("(vsnip-expand-or-jump)", "") - elseif has_words_before() then - cmp.complete() - else - fallback() - end - end, { "i", "s" }), - [""] = cmp.mapping(function(fallback) - if cmp.visible() then - cmp.select_prev_item() - elseif luasnip.jumpable(-1) then - luasnip.jump(-1) - elseif vim.fn["vsnip#available"](-1) == 1 then - feedkey("(vsnip-jump-prev)", "") - else - fallback() - end - end, { "i", "s" }), - }), - sources = cmp.config.sources({ - { name = "nvim_lsp" }, - { name = "luasnip" }, - { name = "vsnip" }, - { name = "buffer" }, - { name = "path" }, - }), -} - -local capabilities = require("cmp_nvim_lsp").default_capabilities() -capabilities.textDocument.completion.completionItem.snippetSupport = true - -M.capabilities = capabilities - -M.on_attach = function(_, bufnr) - vim.api.nvim_buf_set_option(bufnr, "omnifunc", "v:lua.vim.lsp.omnifunc") -end - -return M diff --git a/users/seth/programs/neovim/lua/lua/getchoo/lsp/config/init.lua b/users/seth/programs/neovim/lua/lua/getchoo/lsp/config/init.lua deleted file mode 100644 index 1c928d3..0000000 --- a/users/seth/programs/neovim/lua/lua/getchoo/lsp/config/init.lua +++ /dev/null @@ -1,28 +0,0 @@ --- wrapper for all configs -local cmp = require("getchoo.lsp.config.cmp") -local lsp_config = require("getchoo.lsp.config.lsp_config") -local mason = require("getchoo.lsp.config.mason") -local null_ls = require("getchoo.lsp.config.null_ls") - -local M = {} - -M.cmp = cmp.config - -M.lsp_servers = lsp_config.servers - -M.mason_tool_installer = mason.mason_tool_installer -M.mason_lspconfig = mason.mason_lspconfig - -M.null_ls = null_ls.config - -M.treesitter = { - auto_install = true, - highlight = { - enable = true, - additional_vim_regex_highlighting = false, - }, -} - -M.trouble = {} - -return M diff --git a/users/seth/programs/neovim/lua/lua/getchoo/lsp/config/lsp_config.lua b/users/seth/programs/neovim/lua/lua/getchoo/lsp/config/lsp_config.lua deleted file mode 100644 index 4df3fe0..0000000 --- a/users/seth/programs/neovim/lua/lua/getchoo/lsp/config/lsp_config.lua +++ /dev/null @@ -1,40 +0,0 @@ -local cmp = require("getchoo.lsp.config.cmp") -local sources = require("getchoo.lsp.config.sources") - -local M = {} - -local on_attach = function(client, bufnr) - cmp.on_attach(client, bufnr) -end - -local all_config = { - capabilities = cmp.capabilities, - on_attach = on_attach, -} - -local servers = {} -for _, server in ipairs(sources.lsp_servers) do - servers[server] = all_config -end - -servers["sumneko_lua"] = { - capabilities = cmp.capabilities, - on_attach = on_attach, - settings = { - Lua = { - runtime = { - version = "LuaJIT", - }, - diagnostics = { - globals = { "vim" }, - }, - workspace = { - library = vim.api.nvim_get_runtime_file("", true), - }, - }, - }, -} - -M.servers = servers - -return M diff --git a/users/seth/programs/neovim/lua/lua/getchoo/lsp/config/mason.lua b/users/seth/programs/neovim/lua/lua/getchoo/lsp/config/mason.lua deleted file mode 100644 index 6814697..0000000 --- a/users/seth/programs/neovim/lua/lua/getchoo/lsp/config/mason.lua +++ /dev/null @@ -1,14 +0,0 @@ --- config for mason tools -local sources = require("getchoo.lsp.config.sources") - -local M = {} - -M.mason_tool_installer = { - ensure_installed = sources.mason, -} - -M.mason_lspconfig = { - automatic_installation = true, -} - -return M diff --git a/users/seth/programs/neovim/lua/lua/getchoo/lsp/config/null_ls.lua b/users/seth/programs/neovim/lua/lua/getchoo/lsp/config/null_ls.lua deleted file mode 100644 index 42cd30e..0000000 --- a/users/seth/programs/neovim/lua/lua/getchoo/lsp/config/null_ls.lua +++ /dev/null @@ -1,38 +0,0 @@ -local sources = require("getchoo.lsp.config.sources") - -local M = {} - --- only use null-ls for formatting - --- for neovim >= 8 -local lsp_formatting = function(bufnr) - vim.lsp.buf.format({ - filter = function(client) - return client.name == "null-ls" - end, - bufnr = bufnr, - }) -end - -local augroup = vim.api.nvim_create_augroup("LspFormatting", {}) -local formatting_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() - -- local params = require("vim.lsp.util").make_formatting_params({}) - -- client.request("textDocument/formatting", params, nil, bufnr) - lsp_formatting(bufnr) -- neovim >= 8 - end, - }) - end -end - -M.config = { - on_attach = formatting_on_attach, - sources = sources.null_ls, -} - -return M diff --git a/users/seth/programs/neovim/lua/lua/getchoo/lsp/config/sources.lua b/users/seth/programs/neovim/lua/lua/getchoo/lsp/config/sources.lua deleted file mode 100644 index c8c67d1..0000000 --- a/users/seth/programs/neovim/lua/lua/getchoo/lsp/config/sources.lua +++ /dev/null @@ -1,32 +0,0 @@ -local null_ls = require("null-ls") -local code_actions = null_ls.builtins.code_actions -local diagnostics = null_ls.builtins.diagnostics -local formatting = null_ls.builtins.formatting - -local M = { - lsp_servers = { "rust_analyzer", "pyright", "bashls" }, - null_ls = { - code_actions.statix, - diagnostics.alex, - diagnostics.codespell, - diagnostics.statix, - diagnostics.deadnix, - diagnostics.flake8, - formatting.alejandra, - formatting.black, - formatting.codespell, - formatting.prettier, - formatting.rustfmt, - formatting.stylua, - }, - mason = { - "alex", - "black", - "codespell", - "flake8", - "prettier", - "stylua", - }, -} - -return M diff --git a/users/seth/programs/neovim/lua/lua/getchoo/lsp/init.lua b/users/seth/programs/neovim/lua/lua/getchoo/lsp/init.lua deleted file mode 100644 index aa3dde5..0000000 --- a/users/seth/programs/neovim/lua/lua/getchoo/lsp/init.lua +++ /dev/null @@ -1,10 +0,0 @@ --- --- setup lsp environment --- -require("getchoo.lsp.server") -require("getchoo.lsp.keymap") -local config = require("getchoo.lsp.config") - -require("gitsigns").setup() -require("nvim-treesitter.configs").setup(config.treesitter) -require("trouble").setup(config.trouble) diff --git a/users/seth/programs/neovim/lua/lua/getchoo/lsp/keymap.lua b/users/seth/programs/neovim/lua/lua/getchoo/lsp/keymap.lua deleted file mode 100644 index 9f34ffa..0000000 --- a/users/seth/programs/neovim/lua/lua/getchoo/lsp/keymap.lua +++ /dev/null @@ -1,21 +0,0 @@ --- --- keymaps for lsp --- - -local opts = { noremap = true, silent = true } -local set = function(mode, key, cmd) - vim.keymap.set(mode, key, cmd, opts) -end - -set("n", "e", vim.diagnostic.open_float) -set("n", "[d", vim.diagnostic.goto_prev) -set("n", "]d", vim.diagnostic.goto_next) -set("n", "q", vim.diagnostic.setloclist) - -set("n", "f", function() - vim.cmd("Telescope") -end) - -set("n", "t", function() - vim.cmd("TroubleToggle") -end) diff --git a/users/seth/programs/neovim/lua/lua/getchoo/lsp/server.lua b/users/seth/programs/neovim/lua/lua/getchoo/lsp/server.lua deleted file mode 100644 index 325e1c7..0000000 --- a/users/seth/programs/neovim/lua/lua/getchoo/lsp/server.lua +++ /dev/null @@ -1,22 +0,0 @@ --- --- initialize lsp servers --- - -local cmp = require("cmp") -local lspconfig = require("lspconfig") -local null_ls = require("null-ls") -local config = require("getchoo.lsp.config") - -if vim.g.use_mason then - require("mason").setup() - require("mason-lspconfig").setup(config.mason_lspconfig) - require("mason-tool-installer").setup(config.mason_tool_installer) - vim.opt.runtimepath:append("~/.local/share/nvim/mason/bin/") -end - -null_ls.setup(config.null_ls) -cmp.setup(config.cmp) - -for server, settings in pairs(config.lsp_servers) do - lspconfig[server].setup(settings) -end diff --git a/users/seth/programs/neovim/lua/lua/getchoo/plugins.lua b/users/seth/programs/neovim/lua/lua/getchoo/plugins.lua deleted file mode 100644 index fe510d0..0000000 --- a/users/seth/programs/neovim/lua/lua/getchoo/plugins.lua +++ /dev/null @@ -1,111 +0,0 @@ --- --- plugins for neovim --- - -local fn = vim.fn -local cmd = vim.cmd - -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") -end - -require("packer").startup(function(use) - use("wbthomason/packer.nvim") - - -- comsetic plugins - use({ "nvim-lualine/lualine.nvim", requires = { "kyazdani42/nvim-web-devicons" } }) - - use({ - "catppuccin/nvim", - as = "catppuccin", - config = function() - require("catppuccin").setup({ - flavour = "mocha", -- mocha, macchiato, frappe, latte - integrations = { - barbar = true, - gitsigns = true, - lightspeed = true, - mason = true, - cmp = true, - nvimtree = true, - treesitter_context = true, - treesitter = true, - telescope = true, - lsp_trouble = true, - }, - }) - vim.api.nvim_command("colorscheme catppuccin") - end, - }) - - ---- use("shaunsingh/nord.nvim") - ---- use({ "rose-pine/neovim", as = "rose-pine" }) - - -- general use plugins - use({ - "romgrk/barbar.nvim", - requires = { "kyazdani42/nvim-web-devicons" }, - }) - - use("ggandor/lightspeed.nvim") - use("kyazdani42/nvim-tree.lua") - - -- lsp plugins - if vim.g.use_lsp_plugins then - use("neovim/nvim-lspconfig") - - use({ - "jose-elias-alvarez/null-ls.nvim", - requires = { "nvim-lua/plenary.nvim" }, - }) - - if vim.g.use_mason then - use("williamboman/mason.nvim") - use("williamboman/mason-lspconfig") - use("whoissethdaniel/mason-tool-installer.nvim") - end - - use({ - "nvim-treesitter/nvim-treesitter", - run = function() - require("nvim-treesitter.install").update({ with_sync = true }) - end, - }) - - use("hrsh7th/nvim-cmp") - use("hrsh7th/cmp-nvim-lsp") - use("hrsh7th/cmp-buffer") - use("hrsh7th/cmp-path") - use("hrsh7th/cmp-vsnip") - use("hrsh7th/vim-vsnip") - use("L3MON4D3/LuaSnip") - use("saadparwaiz1/cmp_luasnip") - - use({ - "folke/trouble.nvim", - requires = { "kyazdani42/nvim-web-devicons" }, - }) - use({ - "nvim-telescope/telescope.nvim", - requires = { "nvim-lua/plenary.nvim" }, - }) - - use("lewis6991/gitsigns.nvim") - use("editorconfig/editorconfig-vim") - end - - if Packer_bootstrap then - require("packer").sync() - end -end) - -- cgit v1.2.3