" DelimitMate {{{ let delimitMate_expand_cr = 1 " Don't autocomplete diamond brackets in HTML (compatibility with closetag plugin) autocmd FileType html let b:delimitMate_matchpairs='(:),[:],{:}' " }}} " NERDTree {{{ " Toggle NERDTree with Tab nmap :NERDTreeToggle let NERDTreeCustomOpenArgs = {'file':{'where':'t'}} " Open file in new tab, doesn't work only for double-click let NERDTreeShowHidden = 1 let NERDTreeWinPos = "right" let NERDTreeIgnore = ['\.swp$', '\~$'] " Ignore file, ending with .swp and ~ " }}} " Undotree {{{ " Toggle undotree with F5 nmap :UndotreeToggle let g:undotree_WindowLayout = 2 let g:undotree_ShortIndicators = 1 " e.g. using 'd' instead of 'days' to save some space. let g:undotree_SetFocusWhenToggle = 1 " if set, let undotree window get focus after being opened, otherwise focus will stay in current window. let g:undotree_TreeNodeShape = '*' let g:undotree_DiffCommand = "diff" " }}} " Tabman {{{ let g:tabman_toggle = '' let g:tabman_side = 'right' " }}} " SuperTab {{{ let g:SuperTabDefaultCompletionType = "context" " }}} " Lightline {{{ " Settings {{{ if !has('gui_running') set t_Co=256 endif let g:lightline = { \ 'enable': { \ 'statusline': 1, \ 'tabline': 1 \ }, \ 'colorscheme': 'wombat', \ 'active': { \ 'left': [ [ 'mode', 'paste' ], \ [ 'gitbranch', 'filename', 'charvaluehex', 'readonly', 'modified' ] ], \ 'right': [ [ 'lineinfo' ], \ [ 'fileencoding', 'filetype'] ] \ }, \ 'component': { \ 'charvaluehex': '0x%B', \ }, \ 'component_function': { \ 'gitbranch': 'LightlineFugitive', \ 'readonly': 'LightlineReadonly', \ 'modified': 'LightlineModified', \ 'filetype': 'LightlineFileType' \ }, \ 'tabline': { \ 'right': [[]] \ }, \ 'tab': { \ 'active': [ 'iconFilename','iconReadonly', 'iconModified' ], \ 'inactive': [ 'iconFilename', 'iconReadonly', 'iconModified' ] \ }, \ 'tab_component_function': { \ 'iconFilename': 'LightlineTabFilename', \ 'iconReadonly': 'LightlineTabReadonly', \ 'iconModified': 'LightlineTabModified' \ }, \ 'separator': { 'left': '', 'right': '' }, \ 'subseparator': { 'left': '', 'right': '' }, \ 'tabline_separator': { 'left': '', 'right': '' }, \ 'tabline_subseparator': { 'left': '' } \ } " }}} " Function overrides {{{ " Most of the following functions are just modification of source: " Examples from doc file - https://github.com/itchyny/lightline.vim/blob/53176a0b75d6389d775d7bce0d494e58fc654f38/doc/lightline.txt#L583 " Tab source code - https://github.com/itchyny/lightline.vim/blob/master/autoload/lightline/tab.vim function! LightlineFugitive() if exists('*FugitiveHead') let branch = FugitiveHead() return branch !=# '' ? ' '.branch : '' endif return '' endfunction function! LightlineReadonly() return &ft !~? 'help\|vimfiler' && &readonly ? '' : '' endfunction function! LightlineModified() return &ft =~ 'help\|vimfiler' ? '' : &modified ? '' : &modifiable ? '' : '' endfunction function! LightlineFileType() return strlen(&filetype) ? WebDevIconsGetFileTypeSymbol() . ' ' . &filetype : '' endfunction " Adds the file type icon in tabs and limit their width function! LightlineTabFilename(n) abort let buflist = tabpagebuflist(a:n) let winnr = tabpagewinnr(a:n) let _ = (expand('#'.buflist[winnr - 1].':t') !=# '' ? expand('#'.buflist[winnr - 1].':t') : '[No Name]') " Limit the width of tabs, so they don't go out of the screen let tabNameLengthMax = &columns/((tabpagenr('$') > 0 ? tabpagenr('$') : 0) + 5) return WebDevIconsGetFileTypeSymbol(_) . ' ' . _[0:tabNameLengthMax] endfunction function! LightlineTabReadonly(n) abort let winnr = tabpagewinnr(a:n) return gettabwinvar(a:n, winnr, '&readonly') ? '' : '' endfunction function! LightlineTabModified(n) abort let winnr = tabpagewinnr(a:n) return gettabwinvar(a:n, winnr, '&modified') ? '' : gettabwinvar(a:n, winnr, '&modifiable') ? '' : '' endfunction " }}} " }}} " ALE {{{ map :ALERename map gd :ALEGoToDefinition map gi :ALEHover map ge :ALEDetail set omnifunc=ale#completion#OmniFunc let g:ale_completion_enabled = 1 let g:ale_floating_preview = 1 " Use floating window let g:ale_floating_window_border = ['│', '─', '╭', '╮', '╯', '╰'] " Nicer borders let g:ale_typescript_tsserver_use_global = 1 " Use global tsserver package " }}}