" plugins call plug#begin(stdpath('data') . '/plugged') " color scheme Plug 'owozsh/amora' " misc Plug 'itchyny/vim-gitbranch' Plug 'andweeb/presence.nvim' Plug 'ntpeters/vim-better-whitespace' Plug 'junegunn/fzf', { 'do': { -> fzf#install() } } Plug 'junegunn/fzf.vim' Plug 'airblade/vim-gitgutter' Plug 'tpope/vim-fugitive' Plug 'mg979/vim-visual-multi' Plug 'rrethy/vim-hexokinase', { 'do': 'make hexokinase' } Plug 'rhysd/committia.vim' " interface Plug 'romgrk/barbar.nvim' Plug 'kyazdani42/nvim-tree.lua' " language specific Plug 'sheerun/vim-polyglot' "Plug 'ruanyl/vim-fixmyjs' "Plug 'prettier/vim-prettier', {'build': 'pnpm i'} Plug 'dense-analysis/ale' Plug 'neovim/nvim-lspconfig' Plug 'nvim-lua/completion-nvim' call plug#end() " misc let g:mode = "old_amora" colorscheme amora set termguicolors set fileformat=unix set fileformats=unix,dos set number set cul set tabstop=2 set shiftwidth=2 set expandtab set mouse+=nia au WinEnter * set cul au WinLeave * set nocul let g:better_whitespace_enabled = 1 let bufferline = get(g:, 'bufferline', {}) let bufferline.icons = v:false let bufferline.icon_separator_active = '▎' let bufferline.icon_separator_inactive = '▎' let bufferline.icon_close_tab = 'x' let bufferline.icon_close_tab_modified = '●' let bufferline.icon_pinned = '▲' let g:presence_buttons = 0 let g:ale_fixers = { \ '*': ['trim_whitespace'], \ 'vim': [], \ 'javascript': ['eslint', 'prettier'], \ 'json': ['prettier'], \ 'css': ['prettier'], \} let g:ale_fix_on_save = 1 let g:Hexokinase_highlighters = ['virtual'] set fillchars+=vert:▎ lua << EOF local lspconfig = require("lspconfig") local completion_callback = require("completion").on_attach lspconfig.eslint.setup({on_attach = completion_callback}) lspconfig.tsserver.setup({on_attach = completion_callback}) EOF set completeopt=menuone,noinsert,noselect set shortmess+=c let g:completion_enable_auto_popup = 1 " tre let g:nvim_tree_git_hl = 1 let g:nvim_tree_symlink_arrow = ' >> ' let g:nvim_tree_icons = { \ 'default': '', \ 'symlink': '[S]', \ 'git': { \ 'unstaged': "U", \ 'staged': "A", \ 'unmerged': "M", \ 'renamed': "R", \ 'untracked': "", \ 'deleted': "D", \ 'ignored': "I" \ }, \ 'folder': { \ 'arrow_open': "-", \ 'arrow_closed': "+", \ 'default': "", \ 'open': "", \ 'empty': "[E]", \ 'empty_open': "[E]", \ 'symlink': "[S]", \ 'symlink_open': "[S]", \ } \ } let g:nvim_tree_show_icons = { \ 'git': 1, \ 'folders': 0, \ 'files': 0, \ 'folder_arrows': 1, \ } lua << EOF require("nvim-tree").setup({ git = { enable = true, ignore = true, timeout = 500, }, }) EOF " keys tnoremap nnoremap :m-2 nnoremap :m+ inoremap :m-2 inoremap :m+ nnoremap :NvimTreeToggle :lua require'bufferline.state'.set_offset(require'nvim-tree.view'.win_open() and 30 or 0) inoremap pumvisible() ? "\" : "\" inoremap pumvisible() ? "\": "\" imap (completion_smart_tab) imap (completion_smart_s_tab) " barbar keys " Move to previous/next nnoremap :BufferPrevious nnoremap :BufferNext " Re-order to previous/next nnoremap :BufferMovePrevious nnoremap > :BufferMoveNext " Goto buffer in position... nnoremap :BufferGoto 1 nnoremap :BufferGoto 2 nnoremap :BufferGoto 3 nnoremap :BufferGoto 4 nnoremap :BufferGoto 5 nnoremap :BufferGoto 6 nnoremap :BufferGoto 7 nnoremap :BufferGoto 8 nnoremap :BufferLast " Pin/unpin buffer nnoremap :BufferPin " Close buffer nnoremap :BufferClose " Colors function! s:h(scope, fg, ...) " bg, attr_list, special let l:fg = copy(a:fg) let l:bg = get(a:, 1, ['NONE', 'NONE']) let l:attr_list = filter(get(a:, 2, ['NONE']), 'type(v:val) == 1') let l:attrs = len(l:attr_list) > 0 ? join(l:attr_list, ',') : 'NONE' " Falls back to coloring foreground group on terminals because " nearly all do not support undercurl let l:special = get(a:, 3, ['NONE', 'NONE']) if l:special[0] !=# 'NONE' && l:fg[0] ==# 'NONE' && !has('gui_running') let l:fg[0] = l:special[0] let l:fg[1] = l:special[1] endif let l:hl_string = [ \ 'highlight', a:scope, \ 'guifg=' . l:fg[0], 'ctermfg=' . l:fg[1], \ 'guibg=' . l:bg[0], 'ctermbg=' . l:bg[1], \ 'gui=' . l:attrs, 'cterm=' . l:attrs, \ 'guisp=' . l:special[0], \] execute join(l:hl_string, ' ') endfunction hi Normal ctermbg=NONE hi LineNr ctermfg=7 hi CursorLineNr ctermfg=1 ctermbg=8 hi CursorLine cterm=NONE ctermfg=NONE ctermbg=8 hi StatusLine ctermbg=2 ctermfg=0 hi StatusLineNC ctermbg=7 ctermfg=0 hi VertSplit ctermbg=0 ctermfg=0 hi ExtraWhitespace ctermbg=1 hi SignColumn ctermbg=8 hi BufferCurrent ctermfg=5 ctermbg=NONE hi BufferCurrentIndex ctermfg=5 ctermbg=NONE hi BufferCurrentMod ctermfg=9 ctermbg=NONE hi BufferCurrentSign ctermfg=5 ctermbg=NONE hi BufferCurrentTarget ctermfg=5 ctermbg=NONE hi BufferVisible ctermfg=7 ctermbg=NONE hi BufferVisibleIndex ctermfg=7 ctermbg=NONE hi BufferVisibleMod ctermfg=9 ctermbg=NONE hi BufferVisibleSign ctermfg=7 ctermbg=NONE hi BufferVisibleTarget ctermfg=7 ctermbg=NONE hi BufferInactive ctermfg=7 ctermbg=0 hi BufferInactiveIndex ctermfg=5 ctermbg=0 hi BufferInactiveMod ctermfg=1 ctermbg=0 hi BufferInactiveSign ctermfg=10 ctermbg=0 hi BufferInactiveTarget ctermfg=11 ctermbg=0 hi BufferTabpages ctermfg=7 ctermbg=0 hi BufferTabpageFill ctermfg=7 ctermbg=0 hi BufferOffset ctermfg=0 ctermbg=0 hi NvimTreeNormal ctermbg=0 call s:h('StatusLine', g:amora#palette.green, g:amora#palette.bgdark) call s:h('StatusLineNC', g:amora#palette.fg, g:amora#palette.bgdark) call s:h('VertSplit', g:amora#palette.bg, g:amora#palette.bgdarker) call s:h('ExtraWhitespace', g:amora#palette.fg, g:amora#palette.red) call s:h('BufferCurrent', g:amora#palette.pink, g:amora#palette.bg) call s:h('BufferCurrentIndex', g:amora#palette.pink, g:amora#palette.bg) call s:h('BufferCurrentSign', g:amora#palette.pink, g:amora#palette.bg) call s:h('BufferCurrentTarget', g:amora#palette.pink, g:amora#palette.bg) call s:h('BufferCurrentMod', g:amora#palette.red, g:amora#palette.bg) call s:h('BufferVisible', g:amora#palette.fg, g:amora#palette.bg) call s:h('BufferVisibleIndex', g:amora#palette.fg, g:amora#palette.bg) call s:h('BufferVisibleSign', g:amora#palette.fg, g:amora#palette.bg) call s:h('BufferVisibleTarget', g:amora#palette.fg, g:amora#palette.bg) call s:h('BufferVisibleMod', g:amora#palette.pink, g:amora#palette.bg) call s:h('BufferInactive', g:amora#palette.bglighter, g:amora#palette.bgdarker) call s:h('BufferInactiveIndex', g:amora#palette.bglighter, g:amora#palette.bgdarker) call s:h('BufferInactiveSign', g:amora#palette.bglighter, g:amora#palette.bgdarker) call s:h('BufferInactiveTarget', g:amora#palette.bglighter, g:amora#palette.bgdarker) call s:h('BufferInactiveMod', g:amora#palette.red, g:amora#palette.bgdarker) call s:h('BufferTabpages', g:amora#palette.bglighter, g:amora#palette.bgdarker) call s:h('BufferTabpagesFill', g:amora#palette.bglighter, g:amora#palette.bgdarker) call s:h('BufferOffset', g:amora#palette.bgdarker, g:amora#palette.bgdarker) call s:h('NvimTreeNormal', g:amora#palette.fg, g:amora#palette.bgdarker) " statusline hell hi StatusLineMode ctermbg=1 ctermfg=0 hi StatusLineGitBranch ctermbg=5 ctermfg=0 hi StatusLineChar ctermbg=4 ctermfg=0 hi StatusLineFormat ctermbg=3 ctermfg=0 hi StatusLineFileType ctermbg=7 ctermfg=0 call s:h('StatusLineMode', g:amora#palette.bgdark, g:amora#palette.red) call s:h('StatusLineGitBranch', g:amora#palette.bgdark, g:amora#palette.pink) call s:h('StatusLineChar', g:amora#palette.bgdark, g:amora#palette.purple) call s:h('StatusLineFormat', g:amora#palette.bgdark, g:amora#palette.yellow) call s:h('StatusLineFileType', g:amora#palette.bgdark, g:amora#palette.fg) function! GetMode() let l:m = mode(1) if l:m ==# "i" let l:mode = "INS" elseif l:m ==# "c" let l:mode = "CMD" elseif l:m[0] ==# "R" let l:mode = "REP" elseif l:m ==# "Rv" let l:mode = "REP" elseif l:m =~# '\v(v|V| |s|S| )' let l:mode = "VIS" else return "" endif return ' '.l:mode.' ' endfunction function! GitBranch() let l:branch = gitbranch#name() return strlen(l:branch) ? ' ' . l:branch . ' ' : '' endfunction set statusline= set statusline+=%#StatusLineMode# set statusline+=%{GetMode()} set statusline+=%#StatusLineGitBranch# set statusline+=%{GitBranch()} set statusline+=%* set statusline+=\ %f set statusline+=\ %m%r set statusline+=%= set statusline+=%#StatusLineChar# set statusline+=\ %l,\ %c\ set statusline+=%#StatusLineFormat# set statusline+=\ %{&fileencoding?&fileencoding:&encoding}\ %{&fileformat}\ set statusline+=%#StatusLineFileType# set statusline+=\ %{&filetype}\