From 0aca16b614e58145a62d83d225ee75e605cfabbf Mon Sep 17 00:00:00 2001 From: Ivan Dimitrov Date: Thu, 13 Jul 2023 22:40:11 +0300 Subject: [PATCH] even more neovim config --- cfg/nvim/init.lua | 61 +++++++++++++++++++++++++++++------------------ home.nix | 27 +++++++++++---------- 2 files changed, 53 insertions(+), 35 deletions(-) diff --git a/cfg/nvim/init.lua b/cfg/nvim/init.lua index bb7dce6..dd6896a 100644 --- a/cfg/nvim/init.lua +++ b/cfg/nvim/init.lua @@ -1,36 +1,51 @@ vim.wo.number = true +vim.o.scrolloff = 15 +vim.o.hlsearch = false +vim.g.mapleader = " " +vim.g.maplocalleader = " " local nmap = function(keys, cmd) - vim.keymap.set('n', keys, cmd, {noremap = true, silent = true}) + vim.keymap.set("n", keys, cmd, { noremap = true, silent = true }) end -nmap('', 'BufferNext') -nmap('', 'BufferPrevious') -nmap('', 'NvimTreeToggle') +nmap("", "BufferNext") +nmap("", "BufferPrevious") +nmap("x", "BufferClose") + +nmap("", "NvimTreeToggle") + +nmap("ff", require("telescope.builtin").find_files) +nmap("fw", require("telescope.builtin").live_grep) -- START LSP -local cmp = require 'cmp' -local lspconfig = require('lspconfig') -local servers = {tsserver = {}, pylsp = {}, lua_ls = {}, rnix = {}} -local cmp_capabilities = require('cmp_nvim_lsp').default_capabilities() +local cmp = require("cmp") +local lspconfig = require("lspconfig") +local servers = { tsserver = {}, pylsp = {}, lua_ls = {}, rnix = {} } +local cmp_capabilities = require("cmp_nvim_lsp").default_capabilities() +local on_attach = function(_, bufnr) + nmap("K", vim.lsp.buf.hover) + nmap("gr", require("telescope.builtin").lsp_references) +end cmp.setup({ - snippet = { - expand = function(args) require('luasnip').lsp_expand(args.body) end - }, - mapping = cmp.mapping.preset.insert({ - [''] = cmp.mapping.complete(), - [''] = cmp.mapping.confirm({select = true}) - }), - sources = cmp.config.sources({{name = 'nvim_lsp'}, {name = 'luasnip'}}, - {{name = 'buffer'}}) + snippet = { + expand = function(args) + require("luasnip").lsp_expand(args.body) + end, + }, + mapping = cmp.mapping.preset.insert({ + [""] = cmp.mapping.complete(), + [""] = cmp.mapping.confirm({ select = true }), + }), + sources = cmp.config.sources({ { name = "nvim_lsp" }, { name = "luasnip" } }, { { name = "buffer" } }), }) for server, settings in pairs(servers) do - lspconfig[server].setup { - settings = settings, - capabilities = cmp_capabilities - } + lspconfig[server].setup({ + settings = settings, + capabilities = cmp_capabilities, + on_attach = on_attach, + }) end -- END LSP @@ -39,5 +54,5 @@ require("autoclose").setup() require("nvim-tree").setup() -require("catppuccin").setup({flavour = "mocha", transparent_background = true}) -vim.cmd.colorscheme "catppuccin" +require("catppuccin").setup({ flavour = "mocha", transparent_background = true }) +vim.cmd.colorscheme("catppuccin") diff --git a/home.nix b/home.nix index 7c7ed33..f0b0694 100644 --- a/home.nix +++ b/home.nix @@ -42,26 +42,29 @@ extraPackages = with pkgs; [ alejandra libclang - lua + lua lua-language-server - nodePackages_latest.typescript-language-server - python311Packages.python-lsp-black - python311Packages.python-lsp-server + nodePackages_latest.typescript-language-server + python311Packages.python-lsp-black + python311Packages.python-lsp-server + ripgrep rnix-lsp - stylua + stylua ]; plugins = with pkgs.vimPlugins; [ - autoclose-nvim - barbar-nvim + autoclose-nvim + barbar-nvim catppuccin-nvim - cmp-nvim-lsp - luasnip - nvim-cmp + cmp-nvim-lsp + luasnip nvim-cmp - nvim-lspconfig + nvim-cmp + nvim-lspconfig nvim-tree-lua nvim-treesitter.withAllGrammars - nvim-web-devicons + nvim-web-devicons + plenary-nvim + telescope-nvim telescope-nvim ]; extraLuaConfig = lib.fileContents ./cfg/nvim/init.lua;