diff options
author | Jon Santmyer <jon@jonsantmyer.com> | 2023-09-29 14:22:24 -0400 |
---|---|---|
committer | Jon Santmyer <jon@jonsantmyer.com> | 2023-09-29 14:22:24 -0400 |
commit | f819e30b03dffcf9e74af4b8552e4a8ab8f54c58 (patch) | |
tree | c05f4f1db738d6cd9d2824b5000c6afc3b1d61d1 /modules/editor | |
parent | d3bb6cbb4724bc8f18f72fa3fea3e65f73ae8d09 (diff) | |
download | nix-config-f819e30b03dffcf9e74af4b8552e4a8ab8f54c58.tar.gz nix-config-f819e30b03dffcf9e74af4b8552e4a8ab8f54c58.tar.bz2 nix-config-f819e30b03dffcf9e74af4b8552e4a8ab8f54c58.zip |
major reorganizing to seperate modules
Diffstat (limited to 'modules/editor')
-rw-r--r-- | modules/editor/default.nix | 3 | ||||
-rw-r--r-- | modules/editor/neovim/default.nix | 14 | ||||
-rw-r--r-- | modules/editor/neovim/init.lua | 14 | ||||
-rw-r--r-- | modules/editor/neovim/init.vim | 71 | ||||
-rw-r--r-- | modules/editor/neovim/plugins.lua | 57 |
5 files changed, 159 insertions, 0 deletions
diff --git a/modules/editor/default.nix b/modules/editor/default.nix new file mode 100644 index 0000000..f8cdc22 --- /dev/null +++ b/modules/editor/default.nix @@ -0,0 +1,3 @@ +[ + ./neovim +] diff --git a/modules/editor/neovim/default.nix b/modules/editor/neovim/default.nix new file mode 100644 index 0000000..c5cf990 --- /dev/null +++ b/modules/editor/neovim/default.nix @@ -0,0 +1,14 @@ +{ config, lib, pkgs, user, ... }: +{ + config.home-manager.users.${user} = { + xdg.configFile."nvim/init.vim".source = ./init.vim; + xdg.configFile."nvim/lua/init.lua".source = ./init.lua; + xdg.configFile."nvim/lua/plugins.lua".source = ./plugins.lua; + + programs.neovim = { + enable = true; + defaultEditor = true; + withNodeJs = true; + }; + }; +} diff --git a/modules/editor/neovim/init.lua b/modules/editor/neovim/init.lua new file mode 100644 index 0000000..4a80830 --- /dev/null +++ b/modules/editor/neovim/init.lua @@ -0,0 +1,14 @@ +local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" +if not vim.loop.fs_stat(lazypath) then + vim.fn.system({ + "git", + "clone", + "--filter=blob:none", + "https://github.com/folke/lazy.nvim.git", + "--branch=stable", + lazypath + }) +end +vim.opt.rtp:prepend(lazypath) + +require("lazy").setup("plugins") diff --git a/modules/editor/neovim/init.vim b/modules/editor/neovim/init.vim new file mode 100644 index 0000000..993ea88 --- /dev/null +++ b/modules/editor/neovim/init.vim @@ -0,0 +1,71 @@ +set termguicolors + +filetype plugin indent on +set tabstop=4 softtabstop=4 shiftwidth=4 +set expandtab smarttab +set autoindent +set incsearch ignorecase smartcase hlsearch +set encoding=utf-8 +set textwidth=0 +set number + +set hidden +set title +set noshowmode +set noruler +set noshowcmd + +set nobackup +set nowritebackup + +set updatetime=300 +set signcolumn=yes + +let mapleader = "\<Space>" + +" Tab-trigger completion +inoremap <silent><expr> <Tab> + \ coc#pum#visible() ? coc#pum#next(1) : + \ CheckBackspace() ? "\<Tab>" : + \ coc#refresh() +inoremap <expr><S-Tab> coc#pum#visible() ? coc#pum#prev(1) : "\<C-h>" + +inoremap <silent><expr> <CR> coc#pum#visible() ? coc#pum#confirm() : + \ "\<C-g>u\<CR>\<c-r>=coc#on_enter()\<CR>" + +function! CheckBackspace() abort + let col = col('.') - 1 + return !col || getline('.')[col - 1] =~# '\s' +endfunction + +inoremap <silent><expr> <c-space> coc#refresh() + +nmap <silent> [g <Plug>(coc-diagnostic-prev) +nmap <silent> ]g <Plug>(coc-diagnostic-next) + +nmap <silent> gd <Plug>(coc-definition) +nmap <silent> gy <Plug>(coc-type-definition) +nmap <silent> gi <Plug>(coc-implementation) +nmap <silent> gr <Plug>(coc-references) + +nnoremap <silent> K :call ShowDocumentation()<CR> + +function! ShowDocumentation() + if CocAction('hasProvider', 'hover') + call CocActionAsync('doHover') + else + call feedkeys('K', 'in') + endif +endfunction + +autocmd CursorHold * silent call CocActionAsync('highlight') + +" Telescope +nnoremap <leader>ff <cmd>Telescope find_files<cr> +nnoremap <leader>fg <cmd>Telescope live_grep<cr> +nnoremap <leader>fb <cmd>Telescope buffers<cr> +nnoremap <leader>fh help_tags<cr> + +lua require('init') + +color catppuccin diff --git a/modules/editor/neovim/plugins.lua b/modules/editor/neovim/plugins.lua new file mode 100644 index 0000000..83c74ad --- /dev/null +++ b/modules/editor/neovim/plugins.lua @@ -0,0 +1,57 @@ +return +{ + { "neovim/nvim-lspconfig" }, + { "MordechaiHadad/nvim-lspmanager", + dependencies = { "neovim/nvim-lspconfig" }, + config = function() + require('lspmanager').setup({ + ensure_installed = { + "clangd" + } + }) + end + }, + { "nvim-treesitter/nvim-treesitter", + build = ":TSUpdate", + config = function() + require('nvim-treesitter.configs').setup{ + ensure_installed = { "c", "cpp" }, + auto_install = true, + highlight = { + enable = true + } + } + end + }, + { "neoclide/coc.nvim", branch="release" }, + { "nvim-lua/plenary.nvim" }, + { "nvim-telescope/telescope.nvim", tag = '0.1.3', + dependencies = { 'nvim-lua/plenary.nvim' } + }, + { "nvim-tree/nvim-web-devicons" }, + { "lewis6991/gitsigns.nvim", + config = function() + require('gitsigns').setup() + end + }, + { "tpope/vim-surround" }, + { "catppuccin/nvim", name="catppuccin", priority=1000 }, + { "feline-nvim/feline.nvim", + config = function() + local ctp_feline = require('catppuccin.groups.integrations.feline') + require('feline').setup({ + + }) + end + }, + { "romgrk/barbar.nvim", + dependencies = { + 'lewis6991/gitsigns.nvim', + 'nvim-tree/nvim-web-devicons' + }, + init = function() vim.g.barbar_auto_setup = false end, + config = function() + require('barbar').setup() + end + } +} |