diff --git a/.gitconfig b/.gitconfig index d612ad3..abfe599 100644 --- a/.gitconfig +++ b/.gitconfig @@ -1,6 +1,6 @@ [user] name = Jacob Bohanon - email = jacobbohanon@gmail.com + email = jacob.bohanon@solo.io [url "ssh://git@github.com/"] insteadOf = https://github.com/ [tag] diff --git a/nvim/init.lua b/nvim/init.lua index 6edef01..48bd5c4 100644 --- a/nvim/init.lua +++ b/nvim/init.lua @@ -1,9 +1,8 @@ vim.g.mapleader = " " +require("autocmd") require("sets") require("plugins") require("keymaps") require("lsp") require("theme") - -vim.cmd("source ~/.config/nvim/not_init.vim") diff --git a/nvim/lua/autocmd.lua b/nvim/lua/autocmd.lua new file mode 100644 index 0000000..433fbbe --- /dev/null +++ b/nvim/lua/autocmd.lua @@ -0,0 +1,11 @@ +vim.api.nvim_create_augroup('jbohanon', {clear=true}) +vim.api.nvim_create_autocmd('BufWritePre', { + pattern = '*', + group = 'jbohanon', + command = '%s/\\s\\+$//e', +}) +vim.api.nvim_create_autocmd('FileType', { + pattern = {'yaml','cpp'}, + group = 'jbohanon', + command = 'setlocal tabstop=2 softtabstop=2 sw=2 expandtab indentkeys-=0# indentkeys-=<:>', +}) diff --git a/nvim/lua/keymaps.lua b/nvim/lua/keymaps.lua index f9a95e3..99a74be 100644 --- a/nvim/lua/keymaps.lua +++ b/nvim/lua/keymaps.lua @@ -39,3 +39,9 @@ tnoremap('', '') vnoremap('J', ':m \'>+1gv=gv') vnoremap('K', ':m \'<-2gv=gv') + +nnoremap('ee', ':NvimTreeFindFileToggle') +vnoremap('/', ':Commentary') + +-- golang error handling +nnoremap('err', 'oif err != nil {return nil, err}kkI') diff --git a/nvim/lua/lsp.lua b/nvim/lua/lsp.lua index df6833b..1b84329 100644 --- a/nvim/lua/lsp.lua +++ b/nvim/lua/lsp.lua @@ -22,7 +22,7 @@ local on_attach = function(client, bufnr) vim.keymap.set('n', 'gd', require'telescope.builtin'.lsp_definitions, bufopts) vim.keymap.set('n', 'K', vim.lsp.buf.hover, bufopts) vim.keymap.set('n', 'gi', require'telescope.builtin'.lsp_implementations, bufopts) - vim.keymap.set('n', '', vim.lsp.buf.signature_help, bufopts) + vim.keymap.set('n', '', vim.lsp.buf.signature_help, bufopts) vim.keymap.set('n', 'D', vim.lsp.buf.type_definition, bufopts) vim.keymap.set('n', 'rn', vim.lsp.buf.rename, bufopts) vim.keymap.set('n', 'ca', vim.lsp.buf.code_action, bufopts) diff --git a/nvim/lua/plugins/airline.lua b/nvim/lua/plugins/airline.lua new file mode 100644 index 0000000..c6a3a1c --- /dev/null +++ b/nvim/lua/plugins/airline.lua @@ -0,0 +1,2 @@ +vim.g["airline#extensions#tabline#enabled"] = 1 +vim.g.airline_powerline_fonts = 1 diff --git a/nvim/lua/plugins/floaterm.lua b/nvim/lua/plugins/floaterm.lua index e69de29..75d31c4 100644 --- a/nvim/lua/plugins/floaterm.lua +++ b/nvim/lua/plugins/floaterm.lua @@ -0,0 +1,26 @@ +local map = vim.api.nvim_set_keymap + +local noremap = function(ctx, keys, cmd, opts) + opts = opts or {} + opts['noremap'] = true + opts['silent'] = true + map(ctx, keys, cmd, opts) +end + +local nnoremap = function(keys, cmd) + noremap('n', keys, cmd, nil) +end +local tnoremap = function(keys, cmd) + noremap('t', keys, cmd, nil) +end + +vim.g.floaterm_wintype = 'split' +vim.g.floaterm_height = 0.2 +nnoremap('', ':FloatermNew') +tnoremap('', ':FloatermNew') +nnoremap('', ':FloatermPrev') +tnoremap('', ':FloatermPrev') +nnoremap('', ':FloatermNext') +tnoremap('', ':FloatermNext') +nnoremap('', ':FloatermToggle') +tnoremap('', ':FloatermToggle') diff --git a/nvim/lua/plugins/init.lua b/nvim/lua/plugins/init.lua index 5c70f1e..2e4174f 100644 --- a/nvim/lua/plugins/init.lua +++ b/nvim/lua/plugins/init.lua @@ -58,8 +58,10 @@ Plug 'tpope/vim-dispatch' vim.call('plug#end') +require("plugins/airline") require("plugins/floaterm") require("plugins/harpoon") require("plugins/telescope") require("plugins/treesitter") require("plugins/nvim-cmp") +require("plugins/vim-go") diff --git a/nvim/lua/plugins/nvim-cmp.lua b/nvim/lua/plugins/nvim-cmp.lua index 19f22c2..c5c0248 100644 --- a/nvim/lua/plugins/nvim-cmp.lua +++ b/nvim/lua/plugins/nvim-cmp.lua @@ -14,10 +14,8 @@ cmp.setup({ [""] = cmp.mapping(function(fallback) if cmp.visible() then cmp.select_next_item() - elseif luasnip.expand_or_jumpable() then - luasnip.expand_or_jump() - elseif has_words_before() then - cmp.complete() + -- elseif has_words_before() then + -- cmp.complete() else fallback() end @@ -25,8 +23,6 @@ cmp.setup({ [""] = cmp.mapping(function(fallback) if cmp.visible() then cmp.select_prev_item() - elseif luasnip.jumpable(-1) then - luasnip.jump(-1) else fallback() end @@ -35,7 +31,7 @@ cmp.setup({ [''] = cmp.mapping.scroll_docs(4), [''] = cmp.mapping.complete(), [''] = cmp.mapping.abort(), - [''] = cmp.mapping.confirm({ select = true }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items. + [''] = cmp.mapping.confirm({ select = false }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items. }), sources = cmp.config.sources({ { name = 'nvim_lsp' }, diff --git a/nvim/lua/plugins/vim-go.lua b/nvim/lua/plugins/vim-go.lua new file mode 100644 index 0000000..1204622 --- /dev/null +++ b/nvim/lua/plugins/vim-go.lua @@ -0,0 +1,8 @@ +vim.g.go_highlight_fields = 1 +vim.g.go_highlight_functions = 1 +vim.g.go_highlight_function_calls = 1 +vim.g.go_highlight_extra_types = 1 +vim.g.go_highlight_operators = 1 +vim.g.go_fmt_autosave = 1 +vim.g.go_fmt_command = 'goimports' +vim.g.go_auto_type_info = 1 diff --git a/nvim/lua/sets.lua b/nvim/lua/sets.lua index f3cba80..338ff34 100644 --- a/nvim/lua/sets.lua +++ b/nvim/lua/sets.lua @@ -25,3 +25,5 @@ vim.api.nvim_set_option('backup', false) vim.api.nvim_set_option('undofile', true) vim.api.nvim_set_option('undodir', vim.fn.expand('~')..'/.vim/undodir') +-- Completion config +vim.api.nvim_set_option('completeopt', 'menu,menuone,noselect,noinsert,preview') diff --git a/nvim/lua/theme.lua b/nvim/lua/theme.lua index e9c7d34..c7f3c41 100644 --- a/nvim/lua/theme.lua +++ b/nvim/lua/theme.lua @@ -1,3 +1,5 @@ +vim.api.nvim_set_option('laststatus', 2) +vim.cmd('colorscheme gruvbox') local themegroup = vim.api.nvim_create_augroup('themegroup', { clear = true }) vim.api.nvim_create_autocmd('ColorScheme', { diff --git a/nvim/not_init.vim b/nvim/not_init.vim deleted file mode 100644 index dc3699c..0000000 --- a/nvim/not_init.vim +++ /dev/null @@ -1,324 +0,0 @@ -" imap jj - -" set number -" set relativenumber -" set tabstop=4 softtabstop=4 -" set shiftwidth=4 -" set expandtab -" set smartindent -" set nohlsearch -" set hidden -" set noerrorbells -" set nowrap -" set noswapfile -" set nobackup -" set undodir=~/.vim/undodir -" set undofile -" set incsearch -" set termguicolors -" set scrolloff=8 -" set colorcolumn=80,120 -" set signcolumn=yes -" set cmdheight=2 -" set notitle -" set updatetime=50 -" au ColorScheme * hi Normal guibg=none ctermbg=none -" au ColorScheme * hi NonText guibg=none ctermbg=none - -" call plug#begin('~/.vim/plugged') - -" Plug 'voldikss/vim-floaterm' -" Plug 'mbbill/undotree' -" Plug 'wellle/context.vim' - -" Plug 'tpope/vim-fugitive' -" Plug 'tpope/vim-commentary' -" Plug 'tpope/vim-surround' - -" Plug 'f-person/git-blame.nvim' - -" Plug 'gruvbox-community/gruvbox' - -" Plug 'nvim-lua/plenary.nvim' -" Plug 'ThePrimeagen/harpoon' - -" Plug 'BurntSushi/ripgrep' - -" Plug 'sharkdp/fd' - -" Plug 'nvim-treesitter/nvim-treesitter' - -" Plug 'nvim-telescope/telescope-fzf-native.nvim', { 'do': 'cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release && cmake --build build --config Release && cmake --install build --prefix build' } - -" Plug 'nvim-telescope/telescope.nvim' - -" Plug 'airblade/vim-gitgutter' - -" Plug 'liuchengxu/vista.vim' - -" " Completion -" Plug 'neovim/nvim-lspconfig' -" Plug 'hrsh7th/cmp-nvim-lsp' -" Plug 'hrsh7th/cmp-buffer' -" Plug 'hrsh7th/cmp-path' -" Plug 'hrsh7th/cmp-cmdline' -" Plug 'hrsh7th/nvim-cmp' - -" " For vsnip users. -" Plug 'hrsh7th/cmp-vsnip' -" Plug 'hrsh7th/vim-vsnip' - -" " Go plugins -" Plug 'fatih/vim-go' -" Plug 'Shougo/neocomplete.vim' - -" Plug 'majutsushi/tagbar' - -" Plug 'vim-airline/vim-airline' -" Plug 'vim-airline/vim-airline-themes' -" Plug 'kyazdani42/nvim-web-devicons' -" Plug 'kyazdani42/nvim-tree.lua' -" Plug 'ellisonleao/glow.nvim', {'branch': 'main'} -" Plug 'tpope/vim-dispatch' -" call plug#end() - -let $GINKGO_EDITOR_INTEGRATION = "true" - -" lua require('nvim-tree').setup() - -" set foldmethod=expr -" set foldexpr=nvim_treesitter#foldexpr() -" set nofoldenable " Disable folding at startup. -" nnoremap zz za -" nnoremap ZZ zA - -" Find files using Telescope command-line sugar. -" let mapleader = \" \" -" nnoremap ff lua require('telescope.builtin').find_files({hidden = true, file_ignore_patterns = {"^.git"}}) -" nnoremap fg lua require('telescope.builtin').live_grep() -" nnoremap fb lua require('telescope.builtin').buffers() -" nnoremap ft lua require('telescope.builtin').grep_string() -" nnoremap fh lua require('harpoon.ui').toggle_quick_menu() -" nnoremap tr lua require('telescope.builtin').treesitter() - -nnoremap err oif err != nil {return nil, err}kkI - -" nnoremap q :bp\|bd # -" nnoremap w :w -" nnoremap n :bn -" nnoremap b :bp -" nnoremap 1 lua require("harpoon.ui").nav_file(1) -" nnoremap 2 lua require("harpoon.ui").nav_file(2) -" nnoremap 3 lua require("harpoon.ui").nav_file(3) -" nnoremap 4 lua require("harpoon.ui").nav_file(4) -" nnoremap 5 lua require("harpoon.ui").nav_file(5) -" nnoremap 6 lua require("harpoon.ui").nav_file(6) -" nnoremap 7 lua require("harpoon.ui").nav_file(7) -" nnoremap 8 lua require("harpoon.ui").nav_file(8) -" nnoremap 9 lua require("harpoon.ui").nav_file(9) -" nnoremap -" nnoremap -" nnoremap -" nnoremap -" tnoremap -" tnoremap -" tnoremap -" tnoremap -" tnoremap -nnoremap ee :NvimTreeFindFileToggle -" nnoremap h lua require("harpoon.mark").add_file() -nnoremap / :Commentary -vnoremap / :Commentary - -" vnoremap J :m '>+1gv=gv -" vnoremap K :m '<-2gv=gv - -let g:floaterm_wintype='split' -let g:floaterm_height=0.2 -nnoremap :FloatermNew -tnoremap :FloatermNew -nnoremap :FloatermPrev -tnoremap :FloatermPrev -nnoremap :FloatermNext -tnoremap :FloatermNext -nnoremap :FloatermToggle -tnoremap :FloatermToggle - -let mapleader = '\' -nnoremap :so ~/.config/nvim/init.lua -nnoremap :e ~/.config/nvim/init.lua -let mapleader = ' ' - -augroup jbohanon - autocmd! - autocmd BufWritePre * %s/\s\+$//e -augroup END - -set laststatus=2 -"set statusline=%{FugitiveStatusline()} -"set statusline+=\ %f -colorscheme gruvbox - -" Go specific commands -filetype plugin indent on -set autowrite -" Go syntax highlighting -let g:go_highlight_fields = 1 -let g:go_highlight_functions = 1 -let g:go_highlight_function_calls = 1 -let g:go_highlight_extra_types = 1 -let g:go_highlight_operators = 1 -" Auto formatting and importing -let g:go_fmt_autosave = 1 -let g:go_fmt_command = "goimports" -" Status line types/signatures -let g:go_auto_type_info = 1 - -" Airline config -let g:airline#extensions#tabline#enabled = 1 -let g:airline_powerline_fonts = 1 - -" Completion config -set completeopt=menu,menuone,noselect,noinsert,preview - -" lua << EOF -" -- Mappings. -" -- See `:help vim.diagnostic.*` for documentation on any of the below functions -" local opts = { noremap=true, silent=true } -" vim.keymap.set('n', 'd', vim.diagnostic.open_float, opts) -" vim.keymap.set('n', 'dd', require'telescope.builtin'.diagnostics, 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', 'dl', vim.diagnostic.setloclist, opts) - -" -- 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 -" 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', require'telescope.builtin'.lsp_type_definitions, bufopts) -" --vim.keymap.set('n', 'gd', vim.lsp.buf.definition, bufopts) -" vim.keymap.set('n', 'gd', require'telescope.builtin'.lsp_definitions, bufopts) -" vim.keymap.set('n', 'K', vim.lsp.buf.hover, bufopts) -" vim.keymap.set('n', 'gi', require'telescope.builtin'.lsp_implementations, bufopts) -" vim.keymap.set('n', '', vim.lsp.buf.signature_help, bufopts) -" vim.keymap.set('n', 'D', vim.lsp.buf.type_definition, bufopts) -" vim.keymap.set('n', 'rn', vim.lsp.buf.rename, bufopts) -" vim.keymap.set('n', 'ca', vim.lsp.buf.code_action, bufopts) -" --vim.keymap.set('n', 'gr', vim.lsp.buf.references, bufopts) -" vim.keymap.set('n', 'gr', require'telescope.builtin'.lsp_references, bufopts) -" vim.keymap.set('n', 'f', vim.lsp.buf.format, bufopts) -" end -" local capabilities = require('cmp_nvim_lsp').default_capabilities(vim.lsp.protocol.make_client_capabilities()) -" require('lspconfig')['gopls'].setup{ -" settings = { -" gopls = { -" templateExtensions = {'gotmpl', 'gohtml'}, -" } -" }, -" filetypes = { "go", "gomod", "gowork", "gotmpl", "gohtml", "gohtmltmpl" }, -" on_attach = on_attach, -" capabilities = capabilities, -" } -" require('lspconfig')['pyright'].setup{ -" on_attach = on_attach, -" capabilities = capabilities, -" } -" require('lspconfig')['tsserver'].setup{ -" on_attach = on_attach, -" capabilities = capabilities, -" } -" require('lspconfig')['clangd'].setup{ -" on_attach = on_attach, -" capabilities = capabilities, -" } -" require('lspconfig')['rust_analyzer'].setup{ -" on_attach = on_attach, -" capabilities = capabilities, -" } -" require('lspconfig')['bashls'].setup{ -" on_attach = on_attach, -" capabilities = capabilities, -" } -" EOF - -" lua <"] = cmp.mapping(function(fallback) -" if cmp.visible() then -" cmp.select_next_item() -" elseif luasnip.expand_or_jumpable() then -" luasnip.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) -" else -" fallback() -" end -" end, { "i", "s" }), -" [''] = cmp.mapping.scroll_docs(-4), -" [''] = cmp.mapping.scroll_docs(4), -" [''] = cmp.mapping.complete(), -" [''] = cmp.mapping.abort(), -" [''] = cmp.mapping.confirm({ select = true }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items. -" }), -" sources = cmp.config.sources({ -" { name = 'nvim_lsp' }, -" { name = 'vsnip' }, -" }, { -" { name = 'buffer' }, -" }) -" }) - -" -- Set configuration for specific filetype. -" cmp.setup.filetype('gitcommit', { -" sources = cmp.config.sources({ -" { name = 'cmp_git' }, -" }, { -" { name = 'buffer' }, -" }) -" }) - -" -- Use buffer source for `/` (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' } -" }) -" }) -" EOF diff --git a/zellij/config.kdl b/zellij/config.kdl index 205164a..f0cbab9 100644 --- a/zellij/config.kdl +++ b/zellij/config.kdl @@ -298,7 +298,7 @@ theme "dracula" // Path to the default editor to use to edit pane scrollbuffer // Default: $EDITOR or $VISUAL // -// scrollback_editor "/usr/bin/vim" +scrollback_editor "/usr/bin/nvim" // When attaching to an existing session with other users, // should the session be mirrored (true) diff --git a/zsh/.zshrc b/zsh/.zshrc index a2e2bf6..bf26efc 100644 --- a/zsh/.zshrc +++ b/zsh/.zshrc @@ -38,7 +38,6 @@ if [[ $(uname) == Linux ]]; then fi alias cls='clear' -export PATH="/opt/homebrew/opt/protobuf@3.6/bin:$PATH" export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm @@ -55,18 +54,3 @@ export STARSHIP_CONFIG=~/.config/zsh/starship.toml eval "$(starship init zsh)" -# >>> conda initialize >>> -# !! Contents within this block are managed by 'conda init' !! -# __conda_setup="$('/usr/bin/conda' 'shell.zsh' 'hook' 2> /dev/null)" -# if [ $? -eq 0 ]; then -# eval "$__conda_setup" -# else -# if [ -f "/usr/etc/profile.d/conda.sh" ]; then -# . "/usr/etc/profile.d/conda.sh" -# else -# export PATH="/usr/bin:$PATH" -# fi -# fi -# unset __conda_setup -# <<< conda initialize <<< - diff --git a/zsh/config.d/go.zsh b/zsh/config.d/00-go.zsh similarity index 100% rename from zsh/config.d/go.zsh rename to zsh/config.d/00-go.zsh diff --git a/zsh/config.d/llvm_clang.zsh b/zsh/config.d/10-llvm_clang.zsh similarity index 100% rename from zsh/config.d/llvm_clang.zsh rename to zsh/config.d/10-llvm_clang.zsh diff --git a/zsh/config.d/90-envoy.zsh b/zsh/config.d/90-envoy.zsh new file mode 100644 index 0000000..b0242f8 --- /dev/null +++ b/zsh/config.d/90-envoy.zsh @@ -0,0 +1,4 @@ +[ "$(which clang-format)" != "" ] && export CLANG_FORMAT=/opt/llvm/bin/clang-format || echo "WARNING: clang-format not installed. Required to push to envoy repo" +[ "$(which buildozer)" != "" ] && export BUILDOZER_BIN=$HOME/.go/go/bin/buildozer || echo "WARNING: buildozer not installed. Required to push to envoy repo" +([ "$(which buildifier)" != "" ] && export BUILDIFIER_BIN=$HOME/.go/go/bin/buildifier) || echo "WARNING: buildifier not installed. Required to push to envoy repo" + diff --git a/zsh/config.d/pomodoro.zsh b/zsh/config.d/pomodoro.zsh deleted file mode 100644 index e40f23f..0000000 --- a/zsh/config.d/pomodoro.zsh +++ /dev/null @@ -1,18 +0,0 @@ -# Requires https://github.com/caarlos0/timer -# Requires spd-say - -declare -A pomo_options -pomo_options["work"]="45" -pomo_options["break"]="10" - -pomodoro () { - if [ -n "$1" -a -n "${pomo_options["$1"]}" ]; then - val=$1 - echo $val - timer ${pomo_options["$val"]}m - spd-say "'$val' session done" - fi -} - -alias wo="pomodoro 'work'" -alias br="pomodoro 'break'"