aboutsummaryrefslogtreecommitdiff
path: root/.vim/autoload/statusline.vim
diff options
context:
space:
mode:
Diffstat (limited to '.vim/autoload/statusline.vim')
-rw-r--r--.vim/autoload/statusline.vim227
1 files changed, 0 insertions, 227 deletions
diff --git a/.vim/autoload/statusline.vim b/.vim/autoload/statusline.vim
deleted file mode 100644
index 5e5a671..0000000
--- a/.vim/autoload/statusline.vim
+++ /dev/null
@@ -1,227 +0,0 @@
-"" This was made by Reddit user u/SamLovesNotion. Also with the help of - https://tdaly.co.uk/projects/vim-statusline-generator/ for learning the syntax. Sorry for English & grammar, this post was made in hurry.
-
-" Images - https://www.reddit.com/r/vim/comments/ld8h2j/i_made_a_status_line_from_scratch_no_plugins_used/
-" I have used Nerd icon fonts. Icons won't work without them. https://github.com/ryanoasis/nerd-fonts/
-
-" This statusline looks exactly like Vim Airline (even more customizable & powerful) & loads faster than Vim airline. Only take few ms to load.
-
-" STARTUP TIME - With Vim Airline - ~250ms. With this statusline - ~100ms. Without any statusline - ~98ms.
-
-" Add all of this at the end of your vimrc OR Create separate file like 'statusline.vim' & 'colorsgroup.vim' & source those files in your main vimrc.
-" e.g. source "~/.config/vim/statusline.vim"
-
-
-
-
-" statusline.vim
-
-" NOTE: This has been edited to fit my needs and is intended to be autoloaded in the autoload directory: "~/.vim/autoload/statusline.vim"
-
-if exists('g:loaded_statusline') | finish | endif
-let g:loaded_statusline = 1
-
-" Color highlighting groups
-" Add this AFTER `colorscheme` option in your vimrc. Otherwise your colorscheme will clear these highlightings.
-" OR use ColorScheme autocommand. VERY IMPORTANT.
-
-" Color pallet
-" Green - #2BBB4F (BG) - #080808 (FG)
-" Blue - #4799EB
-" Violet - #986FEC
-" Yellow - #D7A542
-" Orange - #EB754D
-" Grey1 - #202020
-" Grey - #303030
-
-" Define color variables
-let g:StslineColorGreen = '#2BBB4F'
-let g:StslineColorBlue = '#4799EB'
-let g:StslineColorViolet = '#986FEC'
-let g:StslineColorYellow = '#D7A542'
-let g:StslineColorOrange = '#EB754D'
-
-let g:StslineColorLight = '#C0C0C0'
-let g:StslineColorDark = '#080808'
-let g:StslineColorDark1 = '#181818'
-let g:StslineColorDark2 = '#202020'
-let g:StslineColorDark3 = '#303030'
-
-" Define colors
-let g:StslineBackColor = g:StslineColorDark2
-let g:StslineOnBackColor = g:StslineColorLight
-"let g:StslinePriColor = g:StslineColorGreen
-let g:StslineOnPriColor = g:StslineColorDark
-let g:StslineSecColor = g:StslineColorDark3
-let g:StslineOnSecColor = g:StslineColorLight
-
-" Create highlight groups
-execute 'highlight StslineSecColorFG guifg=' . g:StslineSecColor ' guibg=' . g:StslineBackColor
-execute 'highlight StslineSecColorBG guifg=' . g:StslineColorLight ' guibg=' . g:StslineSecColor
-execute 'highlight StslineBackColorBG guifg=' . g:StslineColorLight ' guibg=' . g:StslineBackColor
-execute 'highlight StslineBackColorFGSecColorBG guifg=' . g:StslineBackColor ' guibg=' . g:StslineSecColor
-execute 'highlight StslineSecColorFGBackColorBG guifg=' . g:StslineSecColor ' guibg=' . g:StslineBackColor
-execute 'highlight StslineModColorFG guifg=' . g:StslineColorYellow ' guibg=' . g:StslineBackColor
-
-" Statusline
-" Enable statusline
-set laststatus=2
-" Disable showmode - i.e. Don't show mode like --INSERT-- in current statusline.
-set noshowmode
-
-" Enable GUI colors for terminals (Some terminals may not support this, so you'll have to *manually* set color pallet for tui colors.)
-set termguicolors
-
-
-
-" Understand statusline elements
-
-" %{StslineMode()} = Output of a function
-" %#StslinePriColorBG# = Highlight group
-" %F, %c, etc. are variables which contain value like - current file path, current colums, etc.
-" %{&readonly?\"\ \":\"\"} = If file is readonly ? Then "Lock icon" Else : "Nothing"
-" %{get(b:,'coc_git_status',b:GitBranch)} = If b:coc_git_status efists, then it's value, else value of b:GitBranch
-" &filetype, things starting with & are also like variables with info.
-" \ - Is for escaping a space. \" is for escaping a double quote.
-" %{&fenc!='utf-8'?\"\ \":''} = If file encoding is NOT!= 'utf-8' ? THEN output a "Space" else : no character
-
-let space = ' '
-
-" Define active statusline
-function! autoload#statusline#ActivateStatusline() abort
- call autoload#statusline#GetFileType()
- setlocal statusline=%#StslinePriColorBG#\ \ %{autoload#statusline#StslineMode()}\ %#StslineSecColorBG#%{get(b:,'coc_git_status',b:GitBranch)}%{get(b:,'coc_git_blame','')}%#StslineBackColorFGPriColorBG#%#StslinePriColorFG#\ %{&readonly?\"\ \":\"\"}%F\ %#StslineModColorFG#%{&modified?\"\ \":\"\"}%=%#StslinePriColorFG#\ %{b:FiletypeIcon}%{&filetype}\ %#StslineSecColorFG#%#StslineSecColorBG#%{&fenc!='utf-8'?\"\ \":''}%{&fenc!='utf-8'?&fenc:''}%{&fenc!='utf-8'?\"\ \":''}%#StslinePriColorFGSecColorBG#%#StslinePriColorBG#\ %p\%%\ %#StslinePriColorBGBold#%l%#StslinePriColorBG#/%L\ :%c\ \ %#{space}
-endfunction
-
-" Define Inactive statusline
-function! autoload#statusline#DeactivateStatusline() abort
- if !exists("b:GitBranch") || b:GitBranch == ''
- setlocal statusline=%#StslineSecColorBG#\ INACTIVE\ %#StslineSecColorBG#%{get(b:,'coc_git_statusline',b:GitBranch)}%{get(b:,'coc_git_blame','')}%#StslineBackColorFGSecColorBG#%#StslineBackColorBG#\ %{&readonly?\"\ \":\"\"}%F\ %#StslineModColorFG#%{&modified?\"\ \":\"\"}%=%#StslineBackColorBG#\ %{b:FiletypeIcon}%{&filetype}\ %#StslineSecColorFGBackColorBG#%#StslineSecColorBG#\ %p\%%\ %l/%L\ :%c\
- else
- setlocal statusline=%#StslineSecColorBG#%{get(b:,'coc_git_statusline',b:GitBranch)}%{get(b:,'coc_git_blame','')}%#StslineBackColorFGSecColorBG#%#StslineBackColorBG#\ %{&readonly?\"\ \":\"\"}%F\ %#StslineModColorFG#%{&modified?\"\ \":\"\"}%=%#StslineBackColorBG#\ %{b:FiletypeIcon}%{&filetype}\ %#StslineSecColorFGBackColorBG#%#StslineSecColorBG#\ %p\%%\ %l/%L\ :%c\
- endif
-endfunction
-
-" Get Statusline mode & also set primary color for that mode
-function! autoload#statusline#StslineMode() abort
- let l:CurrentMode = mode()
-
- if l:CurrentMode ==# 'n'
- let g:StslinePriColor = g:StslineColorGreen
- let b:CurrentMode = 'NORMAL '
- elseif l:CurrentMode ==# 'i'
- let g:StslinePriColor = g:StslineColorViolet
- let b:CurrentMode = 'INSERT '
- elseif l:CurrentMode ==# 'c'
- let g:StslinePriColor = g:StslineColorYellow
- let b:CurrentMode = 'COMMAND '
- elseif l:CurrentMode ==# 'v'
- let g:StslinePriColor = g:StslineColorBlue
- let b:CurrentMode = 'VISUAL '
- elseif l:CurrentMode ==# '\<C-v>'
- let g:StslinePriColor = g:StslineColorBlue
- let b:CurrentMode = 'V-BLOCK '
- elseif l:CurrentMode ==# 'V'
- let g:StslinePriColor = g:StslineColorBlue
- let b:CurrentMode = 'V-LINE '
- elseif l:CurrentMode ==# 'R'
- let g:StslinePriColor = g:StslineColorViolet
- let b:CurrentMode = 'REPLACE '
- elseif l:CurrentMode ==# 's'
- let g:StslinePriColor = g:StslineColorBlue
- let b:CurrentMode = 'SELECT '
- elseif l:CurrentMode ==# 't'
- let g:StslinePriColor = g:StslineColorYellow
- let b:CurrentMode = 'TERM '
- elseif l:CurrentMode ==# '!'
- let g:StslinePriColor = g:StslineColorYellow
- let b:CurrentMode = 'SHELL '
- endif
-
- call autoload#statusline#UpdateStslineColors()
-
- return b:CurrentMode
-endfunction
-
-" Update colors. Recreate highlight groups with new Primary color value.
-function! autoload#statusline#UpdateStslineColors() abort
- execute 'highlight StslinePriColorBG guifg=' . g:StslineOnPriColor . ' guibg=' . g:StslinePriColor
- execute 'highlight StslinePriColorBGBold guifg=' . g:StslineOnPriColor . ' guibg=' . g:StslinePriColor . ' gui=bold'
- execute 'highlight StslinePriColorFG guifg=' . g:StslinePriColor . ' guibg=' . g:StslineBackColor
- execute 'highlight StslinePriColorFGSecColorBG guifg=' . g:StslinePriColor . ' guibg=' . g:StslineSecColor
- execute 'highlight StslineSecColorFGPriColorBG guifg=' . g:StslineSecColor . ' guibg=' . g:StslinePriColor
-
- if !exists("b:GitBranch") || b:GitBranch == ''
- execute 'highlight StslineBackColorFGPriColorBG guifg=' . g:StslineBackColor . ' guibg=' . g:StslinePriColor
- endif
-endfunction
-
-" Get git branch name
-function! autoload#statusline#GetGitBranch() abort
- let b:GitBranch = ""
- try
- let l:dir = expand('%:p:h')
- let l:gitrevparse = system("git -C ".l:dir." rev-parse --abbrev-ref HEAD")
- if !v:shell_error
- let b:GitBranch = "  " . substitute(l:gitrevparse, '\n', '', 'g') . " "
- execute 'highlight StslineBackColorFGPriColorBG guifg=' . g:StslineBackColor . ' guibg=' . g:StslineSecColor
- endif
- catch
- endtry
-endfunction
-
-" Get filetype & custom icon. Put your most used file types first for optimized performance.
-function! autoload#statusline#GetFileType() abort
- if &filetype ==# 'typescript'
- let b:FiletypeIcon = ' '
- elseif &filetype ==# 'html'
- let b:FiletypeIcon = ' '
- elseif &filetype ==# 'scss'
- let b:FiletypeIcon = ' '
- elseif &filetype ==# 'css'
- let b:FiletypeIcon = ' '
- elseif &filetype ==# 'javascript'
- let b:FiletypeIcon = ' '
- elseif &filetype ==# 'javascriptreact'
- let b:FiletypeIcon = ' '
- elseif &filetype ==# 'markdown'
- let b:FiletypeIcon = ' '
- elseif &filetype ==# 'sh' || &filetype ==# 'zsh'
- let b:FiletypeIcon = ' '
- elseif &filetype ==# 'vim'
- let b:FiletypeIcon = ' '
- elseif &filetype ==# ''
- let b:FiletypeIcon = ''
- elseif &filetype ==# 'rust'
- let b:FiletypeIcon = ' '
- elseif &filetype ==# 'ruby'
- let b:FiletypeIcon = ' '
- elseif &filetype ==# 'cpp'
- let b:FiletypeIcon = ' '
- elseif &filetype ==# 'c'
- let b:FiletypeIcon = ' '
- elseif &filetype ==# 'go'
- let b:FiletypeIcon = ' '
- elseif &filetype ==# 'lua'
- let b:FiletypeIcon = ' '
- elseif &filetype ==# 'haskel'
- let b:FiletypeIcon = ' '
- else
- let b:FiletypeIcon = ' '
- endif
-endfunction
-
-" Automatically update git branch name when entering a buffer
-augroup GetGitBranch
- autocmd!
- autocmd BufEnter * call autoload#statusline#GetGitBranch()
-augroup END
-
-" Set active / inactive statusline when entering or leaving a buffer
-augroup SetStsline
- autocmd!
- autocmd BufEnter,WinEnter * call autoload#statusline#ActivateStatusline()
- autocmd BufLeave,WinLeave * call autoload#statusline#DeactivateStatusline()
-augroup END
-
-call autoload#statusline#ActivateStatusline()
-