diff options
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | after/plugin/cfg.vim | 6 | ||||
| -rw-r--r-- | after/plugin/fzf-lua.lua | 2 | ||||
| -rw-r--r-- | after/plugin/lsp.lua | 79 | ||||
| -rw-r--r-- | after/plugin/vimtex.vim | 2 | ||||
| -rw-r--r-- | init.lua | 72 | ||||
| -rw-r--r-- | lua/plugins/blink.nvim.lua | 53 | ||||
| -rw-r--r-- | lua/plugins/fzf.lua | 6 | ||||
| -rw-r--r-- | lua/plugins/gruvbox.lua | 13 | ||||
| -rw-r--r-- | lua/plugins/lspconfig.lua | 12 | ||||
| -rw-r--r-- | lua/plugins/lualine.lua | 11 | ||||
| -rw-r--r-- | lua/plugins/vimtex.lua | 9 | ||||
| -rw-r--r-- | lua/util.lua | 7 |
13 files changed, 138 insertions, 135 deletions
diff --git a/.gitignore b/.gitignore deleted file mode 100644 index e033bc6..0000000 --- a/.gitignore +++ /dev/null @@ -1 +0,0 @@ -lazy-lock.json diff --git a/after/plugin/cfg.vim b/after/plugin/cfg.vim deleted file mode 100644 index 1527a6f..0000000 --- a/after/plugin/cfg.vim +++ /dev/null @@ -1,6 +0,0 @@ -set number -set autoindent -set sw=4 ts=4 noet tw=80 cc=80 -set spr sb pb=12 winbl=12 nowrap ruler autoread -set gfn=Hack:h10 noshowmode -color oxocarbon diff --git a/after/plugin/fzf-lua.lua b/after/plugin/fzf-lua.lua deleted file mode 100644 index d687fda..0000000 --- a/after/plugin/fzf-lua.lua +++ /dev/null @@ -1,2 +0,0 @@ -require('util').nn('<leader>ff', '<cmd>FzfLua files<CR>') - diff --git a/after/plugin/lsp.lua b/after/plugin/lsp.lua deleted file mode 100644 index 3f790d7..0000000 --- a/after/plugin/lsp.lua +++ /dev/null @@ -1,79 +0,0 @@ -local lspconfig = require('lspconfig') -local cmp = require('cmp') -local cmp_lsp = require('cmp_nvim_lsp') - -local nn = require('util').nn - -cmp.setup({ - snippet = { - expand = function(args) - require('luasnip').lsp_expand(args.body) - end, - }, - window = { - -- completion = cmp.config.window.bordered(), - -- documentation = cmp.config.window.bordered(), - }, - mapping = cmp.mapping.preset.insert({ - ['<C-b>'] = cmp.mapping.scroll_docs(-4), - ['<C-f>'] = cmp.mapping.scroll_docs(4), - ['<C-Space>'] = cmp.mapping.complete(), - ['<C-e>'] = cmp.mapping.abort(), - ['<Tab>'] = cmp.mapping.select_next_item(), - ['<S-Tab>'] = cmp.mapping.select_prev_item(), - -- Accept currently selected item. Set `select` to `false` to only - -- confirm explicitly selected items. - ['<Tab>'] = cmp.mapping.confirm({ select = true }), - }), - sources = { - { name = 'nvim_lsp' }, - { name = 'buffer' }, - { name = 'path' }, - -- For luasnip users. - { name = 'luasnip' }, - }, -}) - --- Use buffer source for `/` and `?` (if you enabled `native_menu`, this won't work anymore). -cmp.setup.cmdline({ '/', '?' }, { - mapping = cmp.mapping.preset.cmdline(), - sources = { - { name = 'buffer' } - } -}) - --- Use cmdline & path source for ':' (if you enabled `native_menu`, this won't work anymore). -cmp.setup.cmdline(':', { - mapping = cmp.mapping.preset.cmdline(), - sources = cmp.config.sources({ - { name = 'path' } - }, { - { name = 'cmdline' } - }), - matching = { disallow_symbol_nonprefix_matching = false } -}) - -local function onattach(client, buf) - nn("gD", vim.lsp.buf.declaration) - nn("gd", vim.lsp.buf.definition) - nn("<Leader>K", vim.lsp.buf.hover) - nn("gi", vim.lsp.buf.implementation) - nn("<C-k>", vim.lsp.buf.signature_help) - nn("<Leader>D", vim.lsp.buf.type_definition) - nn("<Leader>r", vim.lsp.buf.rename) - nn("<Leader>A", vim.lsp.buf.code_action) - nn("<Leader>R", vim.lsp.buf.references) - nn("<Leader>f", vim.lsp.buf.format) -end - -local caps = vim.lsp.protocol.make_client_capabilities() -caps = cmp_lsp.default_capabilities(caps) - -local servers = {'clangd', 'rust_analyzer', 'zls', 'texlab', 'biome'} -for _, lsp in pairs(servers) do - lspconfig[lsp].setup { - capabilities = caps, - on_attach = onattach, - flags = { debounce_text_changes = 500 } - } -end diff --git a/after/plugin/vimtex.vim b/after/plugin/vimtex.vim deleted file mode 100644 index c45ed12..0000000 --- a/after/plugin/vimtex.vim +++ /dev/null @@ -1,2 +0,0 @@ -let g:vimtex_view_method = 'zathura' - @@ -1,17 +1,18 @@ -- Bootstrap lazy.nvim local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" if not (vim.uv or vim.loop).fs_stat(lazypath) then - local lazyrepo = "https://github.com/folke/lazy.nvim.git" - local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath }) - if vim.v.shell_error ~= 0 then - vim.api.nvim_echo({ - { "Failed to clone lazy.nvim:\n", "ErrorMsg" }, - { out, "WarningMsg" }, - { "\nPress any key to exit..." }, - }, true, {}) - vim.fn.getchar() - os.exit(1) - end + local lazyrepo = "https://github.com/folke/lazy.nvim.git" + local out = vim.fn.system({ "git", "clone", "--filter=blob:none", + "--branch=stable", lazyrepo, lazypath }) + if vim.v.shell_error ~= 0 then + vim.api.nvim_echo({ + { "Failed to clone lazy.nvim:\n", "ErrorMsg" }, + { out, "WarningMsg" }, + { "\nPress any key to exit..." }, + }, true, {}) + vim.fn.getchar() + os.exit(1) + end end vim.opt.rtp:prepend(lazypath) @@ -20,34 +21,29 @@ vim.opt.rtp:prepend(lazypath) -- This is also a good place to setup other settings (vim.opt) vim.g.mapleader = " " vim.g.maplocalleader = "\\" +vim.o.number = true +vim.o.showmode = false +vim.o.et = false +vim.o.ts = 4 +vim.o.sw = 4 +vim.o.tw = 80 +vim.o.cc = "80" -- Setup lazy.nvim require("lazy").setup({ - spec = { - { - "ibhagwan/fzf-lua", - dependencies = { "nvim-tree/nvim-web-devicons" }, - opts = {}, - }, - { "m4xshen/autoclose.nvim", opts = {} }, - { "nyoom-engineering/oxocarbon.nvim" }, - { "neovim/nvim-lspconfig" }, - { 'hrsh7th/cmp-nvim-lsp' }, - { 'hrsh7th/cmp-buffer' }, - { 'hrsh7th/cmp-path' }, - { 'hrsh7th/cmp-cmdline' }, - { 'hrsh7th/nvim-cmp' }, - { 'L3MON4D3/LuaSnip' }, - { 'lervag/vimtex', lazy = false }, - { - 'nvim-lualine/lualine.nvim', - dependencies = { 'nvim-tree/nvim-web-devicons' }, - opts = {}, - }, - }, - -- Configure any other settings here. See the documentation for more details. - -- colorscheme that will be used when installing plugins. - install = { colorscheme = { "monokai" } }, - -- automatically check for plugin updates - checker = { enabled = true, notify = false }, + spec = { + -- import your plugins + { import = "plugins" }, + }, + + -- colorscheme that will be used when installing plugins. + install = { colorscheme = { "gruvbox" } }, + -- automatically check for plugin updates, but don't tell me + checker = { enabled = true, notify = false }, }) + +vim.keymap.set('n', '<leader>ff', FzfLua.files) +vim.keymap.set('n', '<leader>b', FzfLua.buffers) +vim.keymap.set('n', '<leader>s', FzfLua.lsp_workspace_symbols) + +vim.cmd[[colorscheme gruvbox]] diff --git a/lua/plugins/blink.nvim.lua b/lua/plugins/blink.nvim.lua new file mode 100644 index 0000000..d0e5836 --- /dev/null +++ b/lua/plugins/blink.nvim.lua @@ -0,0 +1,53 @@ +return { + 'saghen/blink.cmp', + -- optional: provides snippets for the snippet source + dependencies = { 'rafamadriz/friendly-snippets' }, + + -- use a release tag to download pre-built binaries + version = '1.*', + -- AND/OR build from source, requires nightly: https://rust-lang.github.io/rustup/concepts/channels.html#working-with-nightly-rust + -- build = 'cargo build --release', + -- If you use nix, you can build from source using latest nightly rust with: + -- build = 'nix run .#build-plugin', + + ---@module 'blink.cmp' + ---@type blink.cmp.Config + opts = { + -- 'default' (recommended) for mappings similar to built-in completions (C-y to accept) + -- 'super-tab' for mappings similar to vscode (tab to accept) + -- 'enter' for enter to accept + -- 'none' for no mappings + -- + -- All presets have the following mappings: + -- C-space: Open menu or open docs if already open + -- C-n/C-p or Up/Down: Select next/previous item + -- C-e: Hide menu + -- C-k: Toggle signature help (if signature.enabled = true) + -- + -- See :h blink-cmp-config-keymap for defining your own keymap + keymap = { preset = 'default' }, + + appearance = { + -- 'mono' (default) for 'Nerd Font Mono' or 'normal' for 'Nerd Font' + -- Adjusts spacing to ensure icons are aligned + nerd_font_variant = 'mono' + }, + + -- (Default) Only show the documentation popup when manually triggered + completion = { documentation = { auto_show = false } }, + + -- Default list of enabled providers defined so that you can extend it + -- elsewhere in your config, without redefining it, due to `opts_extend` + sources = { + default = { 'lsp', 'path', 'snippets', 'buffer' }, + }, + + -- (Default) Rust fuzzy matcher for typo resistance and significantly better performance + -- You may use a lua implementation instead by using `implementation = "lua"` or fallback to the lua implementation, + -- when the Rust fuzzy matcher is not available, by using `implementation = "prefer_rust"` + -- + -- See the fuzzy documentation for more information + fuzzy = { implementation = "prefer_rust_with_warning" } + }, + opts_extend = { "sources.default" } +} diff --git a/lua/plugins/fzf.lua b/lua/plugins/fzf.lua new file mode 100644 index 0000000..e622d29 --- /dev/null +++ b/lua/plugins/fzf.lua @@ -0,0 +1,6 @@ +return { + "ibhagwan/fzf-lua", + -- optional for icon support + dependencies = { "nvim-tree/nvim-web-devicons" }, + opts = {} +}; diff --git a/lua/plugins/gruvbox.lua b/lua/plugins/gruvbox.lua new file mode 100644 index 0000000..bb3a924 --- /dev/null +++ b/lua/plugins/gruvbox.lua @@ -0,0 +1,13 @@ +return { + "ellisonleao/gruvbox.nvim", + priority = 1000, + config = true, + opts = { + italic = { + comments = false, + strings = false, + }, + contrast = "hard", + transparent_mode = true, + }, +} diff --git a/lua/plugins/lspconfig.lua b/lua/plugins/lspconfig.lua new file mode 100644 index 0000000..2f50cce --- /dev/null +++ b/lua/plugins/lspconfig.lua @@ -0,0 +1,12 @@ +return { + 'neovim/nvim-lspconfig', + dependencies = { 'saghen/blink.cmp' }, + + config = function() + local capabilities = require('blink.cmp').get_lsp_capabilities() + vim.lsp.config("clangd", capabilities) + vim.lsp.enable("clangd") + vim.lsp.config("lua_ls", capabilities) + vim.lsp.enable("lua_ls") + end +} diff --git a/lua/plugins/lualine.lua b/lua/plugins/lualine.lua new file mode 100644 index 0000000..71ff826 --- /dev/null +++ b/lua/plugins/lualine.lua @@ -0,0 +1,11 @@ +return { + 'nvim-lualine/lualine.nvim', + dependencies = { 'nvim-tree/nvim-web-devicons' }, + opts = { + options = { + theme = "gruvbox_dark", + component_separators = { left = '', right = ''}, + section_separators = { left = '', right = ''}, + } + }, +} diff --git a/lua/plugins/vimtex.lua b/lua/plugins/vimtex.lua new file mode 100644 index 0000000..db88ff0 --- /dev/null +++ b/lua/plugins/vimtex.lua @@ -0,0 +1,9 @@ +return { + "lervag/vimtex", + lazy = false, -- we don't want to lazy load VimTeX + -- tag = "v2.15", -- uncomment to pin to a specific release + init = function() + -- VimTeX configuration goes here, e.g. + vim.g.vimtex_view_method = "zathura" + end +} diff --git a/lua/util.lua b/lua/util.lua deleted file mode 100644 index d1f08b8..0000000 --- a/lua/util.lua +++ /dev/null @@ -1,7 +0,0 @@ -local M = {} - -M.nn = function(lh, rh) - vim.keymap.set('n', lh, rh, { noremap = true, silent = true }) -end - -return M |
