summaryrefslogtreecommitdiff
path: root/.vim/startup/pluginsettings.vim
diff options
context:
space:
mode:
authorSyndamia <kamen@syndamia.com>2023-02-24 22:39:05 +0200
committerSyndamia <kamen@syndamia.com>2023-02-24 22:39:05 +0200
commit6ea45e425be52b92006e97e2caf315036542856d (patch)
tree99e37b4a5963af7c99b35e705135b9457800aa82 /.vim/startup/pluginsettings.vim
parent9020beac90c6779d831f0d73639c95a2dabacdb1 (diff)
downloaddotfiles-6ea45e425be52b92006e97e2caf315036542856d.tar
dotfiles-6ea45e425be52b92006e97e2caf315036542856d.tar.gz
dotfiles-6ea45e425be52b92006e97e2caf315036542856d.zip
[.vimrc] Huge overhaul, separating contents into different files
Diffstat (limited to '.vim/startup/pluginsettings.vim')
-rw-r--r--.vim/startup/pluginsettings.vim146
1 files changed, 146 insertions, 0 deletions
diff --git a/.vim/startup/pluginsettings.vim b/.vim/startup/pluginsettings.vim
new file mode 100644
index 0000000..633cfe7
--- /dev/null
+++ b/.vim/startup/pluginsettings.vim
@@ -0,0 +1,146 @@
+" 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 <Tab> :NERDTreeToggle<CR>
+
+ 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 <F5> :UndotreeToggle<CR>
+
+ 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 = '<S-Tab>'
+ 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 <F2> <ESC>:ALERename<CR>
+ map gd <ESC>:ALEGoToDefinition<CR>
+ map gi <ESC>:ALEHover<CR>
+ map ge <ESC>:ALEDetail<CR>
+
+ 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
+" }}}