transition to lazy loading and lua colorscheme in progress
This commit is contained in:
		
							parent
							
								
									f546b387e4
								
							
						
					
					
						commit
						a68ea2bf3d
					
				@ -1,453 +0,0 @@
 | 
			
		||||
" File:       hybrid.vim
 | 
			
		||||
" Maintainer: Andrew Wong (w0ng)
 | 
			
		||||
" URL:        https://github.com/w0ng/vim-hybrid
 | 
			
		||||
" Modified:   27 Jan 2013 07:33 AM AEST
 | 
			
		||||
" License:    MIT
 | 
			
		||||
 | 
			
		||||
" Description:"{{{
 | 
			
		||||
" ----------------------------------------------------------------------------
 | 
			
		||||
" The default RGB colour palette is taken from Tomorrow-Night.vim:
 | 
			
		||||
" https://github.com/chriskempson/vim-tomorrow-theme
 | 
			
		||||
"
 | 
			
		||||
" The reduced RGB colour palette is taken from Codecademy's online editor:
 | 
			
		||||
" https://www.codecademy.com/learn
 | 
			
		||||
"
 | 
			
		||||
" The syntax highlighting scheme is taken from jellybeans.vim:
 | 
			
		||||
" https://github.com/nanotech/jellybeans.vim
 | 
			
		||||
"
 | 
			
		||||
" The is code taken from solarized.vim:
 | 
			
		||||
" https://github.com/altercation/vim-colors-solarized
 | 
			
		||||
 | 
			
		||||
"}}}
 | 
			
		||||
" Requirements And Recommendations:"{{{
 | 
			
		||||
" ----------------------------------------------------------------------------
 | 
			
		||||
" Requirements
 | 
			
		||||
"   - gVim 7.3+ on Linux, Mac and Windows.
 | 
			
		||||
"   - Vim 7.3+ on Linux and Mac, using a terminal that supports 256 colours.
 | 
			
		||||
"
 | 
			
		||||
" Due to the limited 256 palette, colours in Vim and gVim will still be slightly
 | 
			
		||||
" different.
 | 
			
		||||
"
 | 
			
		||||
" In order to have Vim use the same colours as gVim (the way this colour scheme
 | 
			
		||||
" is intended), it is recommended that you define the basic 16 colours in your
 | 
			
		||||
" terminal.
 | 
			
		||||
"
 | 
			
		||||
" For Linux users (rxvt-unicode, xterm):
 | 
			
		||||
"
 | 
			
		||||
" 1.  Add the default palette to ~/.Xresources:
 | 
			
		||||
"
 | 
			
		||||
"         https://gist.github.com/3278077
 | 
			
		||||
"
 | 
			
		||||
"     or alternatively, add the reduced contrast palette to ~/.Xresources:
 | 
			
		||||
"
 | 
			
		||||
"         https://gist.github.com/w0ng/16e33902508b4a0350ae
 | 
			
		||||
"
 | 
			
		||||
" 2.  Add to ~/.vimrc:
 | 
			
		||||
"
 | 
			
		||||
"         let g:hybrid_custom_term_colors = 1
 | 
			
		||||
"         let g:hybrid_reduced_contrast = 1 " Remove this line if using the default palette.
 | 
			
		||||
"         colorscheme hybrid
 | 
			
		||||
"
 | 
			
		||||
" For OSX users (iTerm):
 | 
			
		||||
"
 | 
			
		||||
" 1.  Import the default colour preset into iTerm:
 | 
			
		||||
"
 | 
			
		||||
"         https://raw.githubusercontent.com/w0ng/dotfiles/master/iterm2/hybrid.itermcolors
 | 
			
		||||
"
 | 
			
		||||
"     or alternatively, import the reduced contrast color preset into iTerm:
 | 
			
		||||
"
 | 
			
		||||
"         https://raw.githubusercontent.com/w0ng/dotfiles/master/iterm2/hybrid-reduced-contrast.itermcolors
 | 
			
		||||
"
 | 
			
		||||
" 2.  Add to ~/.vimrc:
 | 
			
		||||
"
 | 
			
		||||
"         let g:hybrid_custom_term_colors = 1
 | 
			
		||||
"         let g:hybrid_reduced_contrast = 1 " Remove this line if using the default palette.
 | 
			
		||||
"         colorscheme hybrid
 | 
			
		||||
 | 
			
		||||
"}}}
 | 
			
		||||
" Initialisation:"{{{
 | 
			
		||||
" ----------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
hi clear
 | 
			
		||||
 | 
			
		||||
if exists("syntax_on")
 | 
			
		||||
  syntax reset
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
let s:style = &background
 | 
			
		||||
 | 
			
		||||
let g:colors_name = "hybrid"
 | 
			
		||||
 | 
			
		||||
"}}}
 | 
			
		||||
" GUI And Cterm Palettes:"{{{
 | 
			
		||||
" ----------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
let s:palette = {'gui' : {} , 'cterm' : {}}
 | 
			
		||||
 | 
			
		||||
if exists("g:hybrid_reduced_contrast") && g:hybrid_reduced_contrast == 1
 | 
			
		||||
  let s:gui_background = "#232c31"
 | 
			
		||||
  let s:gui_selection  = "#425059"
 | 
			
		||||
  let s:gui_line       = "#2d3c46"
 | 
			
		||||
  let s:gui_comment    = "#6c7a80"
 | 
			
		||||
else
 | 
			
		||||
  let s:gui_background = "#1d1f21"
 | 
			
		||||
  let s:gui_selection  = "#373b41"
 | 
			
		||||
  let s:gui_line       = "#282a2e"
 | 
			
		||||
  let s:gui_comment    = "#707880"
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
let s:palette.gui.background = { 'dark' : s:gui_background , 'light' : "#e4e4e4" }
 | 
			
		||||
let s:palette.gui.foreground = { 'dark' : "#c5c8c6"        , 'light' : "#000000" }
 | 
			
		||||
let s:palette.gui.selection  = { 'dark' : s:gui_selection  , 'light' : "#bcbcbc" }
 | 
			
		||||
let s:palette.gui.line       = { 'dark' : s:gui_line       , 'light' : "#d0d0d0" }
 | 
			
		||||
let s:palette.gui.comment    = { 'dark' : s:gui_comment    , 'light' : "#5f5f5f" }
 | 
			
		||||
let s:palette.gui.red        = { 'dark' : "#cc6666"        , 'light' : "#5f0000" }
 | 
			
		||||
let s:palette.gui.orange     = { 'dark' : "#de935f"        , 'light' : "#875f00" }
 | 
			
		||||
let s:palette.gui.yellow     = { 'dark' : "#f0c674"        , 'light' : "#5f5f00" }
 | 
			
		||||
let s:palette.gui.green      = { 'dark' : "#b5bd68"        , 'light' : "#005f00" }
 | 
			
		||||
let s:palette.gui.aqua       = { 'dark' : "#8abeb7"        , 'light' : "#005f5f" }
 | 
			
		||||
let s:palette.gui.blue       = { 'dark' : "#81a2be"        , 'light' : "#00005f" }
 | 
			
		||||
let s:palette.gui.purple     = { 'dark' : "#b294bb"        , 'light' : "#5f005f" }
 | 
			
		||||
let s:palette.gui.window     = { 'dark' : "#303030"        , 'light' : "#9e9e9e" }
 | 
			
		||||
let s:palette.gui.darkcolumn = { 'dark' : "#1c1c1c"        , 'light' : "#808080" }
 | 
			
		||||
let s:palette.gui.addbg      = { 'dark' : "#5F875F"        , 'light' : "#d7ffd7" }
 | 
			
		||||
let s:palette.gui.addfg      = { 'dark' : "#d7ffaf"        , 'light' : "#005f00" }
 | 
			
		||||
let s:palette.gui.changebg   = { 'dark' : "#5F5F87"        , 'light' : "#d7d7ff" }
 | 
			
		||||
let s:palette.gui.changefg   = { 'dark' : "#d7d7ff"        , 'light' : "#5f005f" }
 | 
			
		||||
let s:palette.gui.delbg      = { 'dark' : "#cc6666"        , 'light' : "#ffd7d7" }
 | 
			
		||||
let s:palette.gui.darkblue   = { 'dark' : "#00005f"        , 'light' : "#d7ffd7" }
 | 
			
		||||
let s:palette.gui.darkcyan   = { 'dark' : "#005f5f"        , 'light' : "#005f00" }
 | 
			
		||||
let s:palette.gui.darkred    = { 'dark' : "#5f0000"        , 'light' : "#d7d7ff" }
 | 
			
		||||
let s:palette.gui.darkpurple = { 'dark' : "#5f005f"        , 'light' : "#5f005f" }
 | 
			
		||||
 | 
			
		||||
if exists("g:hybrid_custom_term_colors") && g:hybrid_custom_term_colors == 1
 | 
			
		||||
  let s:cterm_foreground = "15"  " White
 | 
			
		||||
  let s:cterm_selection  = "8"   " DarkGrey
 | 
			
		||||
  let s:cterm_line       = "0"   " Black
 | 
			
		||||
  let s:cterm_comment    = "7"   " LightGrey
 | 
			
		||||
  let s:cterm_red        = "9"   " LightRed
 | 
			
		||||
  let s:cterm_orange     = "3"   " DarkYellow
 | 
			
		||||
  let s:cterm_yellow     = "11"  " LightYellow
 | 
			
		||||
  let s:cterm_green      = "10"  " LightGreen
 | 
			
		||||
  let s:cterm_aqua       = "14"  " LightCyan
 | 
			
		||||
  let s:cterm_blue       = "12"  " LightBlue
 | 
			
		||||
  let s:cterm_purple     = "13"  " LightMagenta
 | 
			
		||||
  let s:cterm_delbg      = "9"   " LightRed
 | 
			
		||||
else
 | 
			
		||||
  let s:cterm_foreground = "250"
 | 
			
		||||
  let s:cterm_selection  = "237"
 | 
			
		||||
  let s:cterm_line       = "235"
 | 
			
		||||
  let s:cterm_comment    = "243"
 | 
			
		||||
  let s:cterm_red        = "167"
 | 
			
		||||
  let s:cterm_orange     = "173"
 | 
			
		||||
  let s:cterm_yellow     = "221"
 | 
			
		||||
  let s:cterm_green      = "143"
 | 
			
		||||
  let s:cterm_aqua       = "109"
 | 
			
		||||
  let s:cterm_blue       = "110"
 | 
			
		||||
  let s:cterm_purple     = "139"
 | 
			
		||||
  let s:cterm_delbg      = "167"
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
let s:palette.cterm.background = { 'dark' : "234"              , 'light' : "254" }
 | 
			
		||||
let s:palette.cterm.foreground = { 'dark' : s:cterm_foreground , 'light' : "16"  }
 | 
			
		||||
let s:palette.cterm.window     = { 'dark' : "236"              , 'light' : "247" }
 | 
			
		||||
let s:palette.cterm.selection  = { 'dark' : s:cterm_selection  , 'light' : "250" }
 | 
			
		||||
let s:palette.cterm.line       = { 'dark' : s:cterm_line       , 'light' : "252" }
 | 
			
		||||
let s:palette.cterm.comment    = { 'dark' : s:cterm_comment    , 'light' : "59"  }
 | 
			
		||||
let s:palette.cterm.red        = { 'dark' : s:cterm_red        , 'light' : "52"  }
 | 
			
		||||
let s:palette.cterm.orange     = { 'dark' : s:cterm_orange     , 'light' : "94"  }
 | 
			
		||||
let s:palette.cterm.yellow     = { 'dark' : s:cterm_yellow     , 'light' : "58"  }
 | 
			
		||||
let s:palette.cterm.green      = { 'dark' : s:cterm_green      , 'light' : "22"  }
 | 
			
		||||
let s:palette.cterm.aqua       = { 'dark' : s:cterm_aqua       , 'light' : "23"  }
 | 
			
		||||
let s:palette.cterm.blue       = { 'dark' : s:cterm_blue       , 'light' : "17"  }
 | 
			
		||||
let s:palette.cterm.purple     = { 'dark' : s:cterm_purple     , 'light' : "53"  }
 | 
			
		||||
let s:palette.cterm.darkcolumn = { 'dark' : "234"              , 'light' : "244" }
 | 
			
		||||
let s:palette.cterm.addbg      = { 'dark' : "65"               , 'light' : "194" }
 | 
			
		||||
let s:palette.cterm.addfg      = { 'dark' : "193"              , 'light' : "22"  }
 | 
			
		||||
let s:palette.cterm.changebg   = { 'dark' : "60"               , 'light' : "189" }
 | 
			
		||||
let s:palette.cterm.changefg   = { 'dark' : "189"              , 'light' : "53"  }
 | 
			
		||||
let s:palette.cterm.delbg      = { 'dark' : s:cterm_delbg      , 'light' : "224" }
 | 
			
		||||
let s:palette.cterm.darkblue   = { 'dark' : "17"               , 'light' : "194" }
 | 
			
		||||
let s:palette.cterm.darkcyan   = { 'dark' : "24"               , 'light' : "22"  }
 | 
			
		||||
let s:palette.cterm.darkred    = { 'dark' : "52"               , 'light' : "189" }
 | 
			
		||||
let s:palette.cterm.darkpurple = { 'dark' : "53"               , 'light' : "53"  }
 | 
			
		||||
 | 
			
		||||
"}}}
 | 
			
		||||
" Formatting Options:"{{{
 | 
			
		||||
" ----------------------------------------------------------------------------
 | 
			
		||||
let s:none   = "NONE"
 | 
			
		||||
let s:t_none = "NONE"
 | 
			
		||||
let s:n      = "NONE"
 | 
			
		||||
let s:c      = ",undercurl"
 | 
			
		||||
let s:r      = ",reverse"
 | 
			
		||||
let s:s      = ",standout"
 | 
			
		||||
let s:b      = ",bold"
 | 
			
		||||
let s:u      = ",underline"
 | 
			
		||||
let s:i      = ",italic"
 | 
			
		||||
 | 
			
		||||
"}}}
 | 
			
		||||
" Highlighting Primitives:"{{{
 | 
			
		||||
" ----------------------------------------------------------------------------
 | 
			
		||||
function! s:build_prim(hi_elem, field)
 | 
			
		||||
  " Given a:hi_elem = bg, a:field = comment
 | 
			
		||||
  let l:vname = "s:" . a:hi_elem . "_" . a:field " s:bg_comment
 | 
			
		||||
  let l:gui_assign = "gui".a:hi_elem."=".s:palette.gui[a:field][s:style] " guibg=...
 | 
			
		||||
  let l:cterm_assign = "cterm".a:hi_elem."=".s:palette.cterm[a:field][s:style] " ctermbg=...
 | 
			
		||||
  exe "let " . l:vname . " = ' " . l:gui_assign . " " . l:cterm_assign . "'"
 | 
			
		||||
endfunction
 | 
			
		||||
 | 
			
		||||
let s:bg_none = ' guibg=NONE ctermbg=NONE'
 | 
			
		||||
call s:build_prim('bg', 'foreground')
 | 
			
		||||
call s:build_prim('bg', 'background')
 | 
			
		||||
call s:build_prim('bg', 'selection')
 | 
			
		||||
call s:build_prim('bg', 'line')
 | 
			
		||||
call s:build_prim('bg', 'comment')
 | 
			
		||||
call s:build_prim('bg', 'red')
 | 
			
		||||
call s:build_prim('bg', 'orange')
 | 
			
		||||
call s:build_prim('bg', 'yellow')
 | 
			
		||||
call s:build_prim('bg', 'green')
 | 
			
		||||
call s:build_prim('bg', 'aqua')
 | 
			
		||||
call s:build_prim('bg', 'blue')
 | 
			
		||||
call s:build_prim('bg', 'purple')
 | 
			
		||||
call s:build_prim('bg', 'window')
 | 
			
		||||
call s:build_prim('bg', 'darkcolumn')
 | 
			
		||||
call s:build_prim('bg', 'addbg')
 | 
			
		||||
call s:build_prim('bg', 'addfg')
 | 
			
		||||
call s:build_prim('bg', 'changebg')
 | 
			
		||||
call s:build_prim('bg', 'changefg')
 | 
			
		||||
call s:build_prim('bg', 'delbg')
 | 
			
		||||
call s:build_prim('bg', 'darkblue')
 | 
			
		||||
call s:build_prim('bg', 'darkcyan')
 | 
			
		||||
call s:build_prim('bg', 'darkred')
 | 
			
		||||
call s:build_prim('bg', 'darkpurple')
 | 
			
		||||
 | 
			
		||||
let s:fg_none = ' guifg=NONE ctermfg=NONE'
 | 
			
		||||
call s:build_prim('fg', 'foreground')
 | 
			
		||||
call s:build_prim('fg', 'background')
 | 
			
		||||
call s:build_prim('fg', 'selection')
 | 
			
		||||
call s:build_prim('fg', 'line')
 | 
			
		||||
call s:build_prim('fg', 'comment')
 | 
			
		||||
call s:build_prim('fg', 'red')
 | 
			
		||||
call s:build_prim('fg', 'orange')
 | 
			
		||||
call s:build_prim('fg', 'yellow')
 | 
			
		||||
call s:build_prim('fg', 'green')
 | 
			
		||||
call s:build_prim('fg', 'aqua')
 | 
			
		||||
call s:build_prim('fg', 'blue')
 | 
			
		||||
call s:build_prim('fg', 'purple')
 | 
			
		||||
call s:build_prim('fg', 'window')
 | 
			
		||||
call s:build_prim('fg', 'darkcolumn')
 | 
			
		||||
call s:build_prim('fg', 'addbg')
 | 
			
		||||
call s:build_prim('fg', 'addfg')
 | 
			
		||||
call s:build_prim('fg', 'changebg')
 | 
			
		||||
call s:build_prim('fg', 'changefg')
 | 
			
		||||
call s:build_prim('fg', 'darkblue')
 | 
			
		||||
call s:build_prim('fg', 'darkcyan')
 | 
			
		||||
call s:build_prim('fg', 'darkred')
 | 
			
		||||
call s:build_prim('fg', 'darkpurple')
 | 
			
		||||
 | 
			
		||||
exe "let s:fmt_none = ' gui=NONE".          " cterm=NONE".          " term=NONE"        ."'"
 | 
			
		||||
exe "let s:fmt_bold = ' gui=NONE".s:b.      " cterm=NONE".s:b.      " term=NONE".s:b    ."'"
 | 
			
		||||
exe "let s:fmt_bldi = ' gui=NONE".s:b.      " cterm=NONE".s:b.      " term=NONE".s:b    ."'"
 | 
			
		||||
exe "let s:fmt_undr = ' gui=NONE".s:u.      " cterm=NONE".s:u.      " term=NONE".s:u    ."'"
 | 
			
		||||
exe "let s:fmt_undb = ' gui=NONE".s:u.s:b.  " cterm=NONE".s:u.s:b.  " term=NONE".s:u.s:b."'"
 | 
			
		||||
exe "let s:fmt_undi = ' gui=NONE".s:u.      " cterm=NONE".s:u.      " term=NONE".s:u    ."'"
 | 
			
		||||
exe "let s:fmt_curl = ' gui=NONE".s:c.      " cterm=NONE".s:c.      " term=NONE".s:c    ."'"
 | 
			
		||||
exe "let s:fmt_ital = ' gui=NONE".s:i.      " cterm=NONE".s:i.      " term=NONE".s:i    ."'"
 | 
			
		||||
exe "let s:fmt_stnd = ' gui=NONE".s:s.      " cterm=NONE".s:s.      " term=NONE".s:s    ."'"
 | 
			
		||||
exe "let s:fmt_revr = ' gui=NONE".s:r.      " cterm=NONE".s:r.      " term=NONE".s:r    ."'"
 | 
			
		||||
exe "let s:fmt_revb = ' gui=NONE".s:r.s:b.  " cterm=NONE".s:r.s:b.  " term=NONE".s:r.s:b."'"
 | 
			
		||||
 | 
			
		||||
exe "let s:sp_none       = ' guisp=". s:none                            ."'"
 | 
			
		||||
exe "let s:sp_foreground = ' guisp=". s:palette.gui.foreground[s:style] ."'"
 | 
			
		||||
exe "let s:sp_background = ' guisp=". s:palette.gui.background[s:style] ."'"
 | 
			
		||||
exe "let s:sp_selection  = ' guisp=". s:palette.gui.selection[s:style]  ."'"
 | 
			
		||||
exe "let s:sp_line       = ' guisp=". s:palette.gui.line[s:style]       ."'"
 | 
			
		||||
exe "let s:sp_comment    = ' guisp=". s:palette.gui.comment[s:style]    ."'"
 | 
			
		||||
exe "let s:sp_red        = ' guisp=". s:palette.gui.red[s:style]        ."'"
 | 
			
		||||
exe "let s:sp_orange     = ' guisp=". s:palette.gui.orange[s:style]     ."'"
 | 
			
		||||
exe "let s:sp_yellow     = ' guisp=". s:palette.gui.yellow[s:style]     ."'"
 | 
			
		||||
exe "let s:sp_green      = ' guisp=". s:palette.gui.green[s:style]      ."'"
 | 
			
		||||
exe "let s:sp_aqua       = ' guisp=". s:palette.gui.aqua[s:style]       ."'"
 | 
			
		||||
exe "let s:sp_blue       = ' guisp=". s:palette.gui.blue[s:style]       ."'"
 | 
			
		||||
exe "let s:sp_purple     = ' guisp=". s:palette.gui.purple[s:style]     ."'"
 | 
			
		||||
exe "let s:sp_window     = ' guisp=". s:palette.gui.window[s:style]     ."'"
 | 
			
		||||
exe "let s:sp_addbg      = ' guisp=". s:palette.gui.addbg[s:style]      ."'"
 | 
			
		||||
exe "let s:sp_addfg      = ' guisp=". s:palette.gui.addfg[s:style]      ."'"
 | 
			
		||||
exe "let s:sp_changebg   = ' guisp=". s:palette.gui.changebg[s:style]   ."'"
 | 
			
		||||
exe "let s:sp_changefg   = ' guisp=". s:palette.gui.changefg[s:style]   ."'"
 | 
			
		||||
exe "let s:sp_darkblue   = ' guisp=". s:palette.gui.darkblue[s:style]   ."'"
 | 
			
		||||
exe "let s:sp_darkcyan   = ' guisp=". s:palette.gui.darkcyan[s:style]   ."'"
 | 
			
		||||
exe "let s:sp_darkred    = ' guisp=". s:palette.gui.darkred[s:style]    ."'"
 | 
			
		||||
exe "let s:sp_darkpurple = ' guisp=". s:palette.gui.darkpurple[s:style] ."'"
 | 
			
		||||
 | 
			
		||||
"}}}
 | 
			
		||||
" Vim Highlighting: (see :help highlight-groups)"{{{
 | 
			
		||||
" ----------------------------------------------------------------------------
 | 
			
		||||
exe "hi! ColorColumn"   .s:fg_none        .s:bg_line        .s:fmt_none
 | 
			
		||||
"   Conceal"
 | 
			
		||||
"   Cursor"
 | 
			
		||||
"   CursorIM"
 | 
			
		||||
exe "hi! CursorColumn"  .s:fg_none        .s:bg_line        .s:fmt_none
 | 
			
		||||
exe "hi! CursorLine"    .s:fg_none        .s:bg_none        .s:fmt_none
 | 
			
		||||
exe "hi! Directory"     .s:fg_blue        .s:bg_none        .s:fmt_none
 | 
			
		||||
exe "hi! DiffAdd"       .s:fg_addfg       .s:bg_addbg       .s:fmt_none
 | 
			
		||||
exe "hi! DiffChange"    .s:fg_changefg    .s:bg_changebg    .s:fmt_none
 | 
			
		||||
exe "hi! DiffDelete"    .s:fg_background  .s:bg_delbg       .s:fmt_none
 | 
			
		||||
exe "hi! DiffText"      .s:fg_background  .s:bg_blue        .s:fmt_none
 | 
			
		||||
exe "hi! ErrorMsg"      .s:fg_background  .s:bg_red         .s:fmt_stnd
 | 
			
		||||
exe "hi! VertSplit"     .s:fg_window      .s:bg_none        .s:fmt_none
 | 
			
		||||
exe "hi! Folded"        .s:fg_comment     .s:bg_darkcolumn  .s:fmt_none
 | 
			
		||||
exe "hi! FoldColumn"    .s:fg_none        .s:bg_darkcolumn  .s:fmt_none
 | 
			
		||||
exe "hi! SignColumn"    .s:fg_none        .s:bg_darkcolumn  .s:fmt_none
 | 
			
		||||
"   Incsearch"
 | 
			
		||||
exe "hi! LineNr"        .s:fg_comment    .s:bg_none        .s:fmt_none
 | 
			
		||||
exe "hi! CursorLineNr"  .s:fg_yellow      .s:bg_none        .s:fmt_none
 | 
			
		||||
exe "hi! MatchParen"    .s:fg_background  .s:bg_changebg    .s:fmt_none
 | 
			
		||||
exe "hi! ModeMsg"       .s:fg_green       .s:bg_none        .s:fmt_none
 | 
			
		||||
exe "hi! MoreMsg"       .s:fg_green       .s:bg_none        .s:fmt_none
 | 
			
		||||
exe "hi! NonText"       .s:fg_selection   .s:bg_none        .s:fmt_none
 | 
			
		||||
exe "hi! Pmenu"         .s:fg_foreground  .s:bg_selection   .s:fmt_none
 | 
			
		||||
exe "hi! PmenuSel"      .s:fg_foreground  .s:bg_selection   .s:fmt_revr
 | 
			
		||||
"   PmenuSbar"
 | 
			
		||||
"   PmenuThumb"
 | 
			
		||||
exe "hi! Question"      .s:fg_green       .s:bg_none        .s:fmt_none
 | 
			
		||||
exe "hi! Search"        .s:fg_background  .s:bg_yellow      .s:fmt_none
 | 
			
		||||
exe "hi! SpecialKey"    .s:fg_selection   .s:bg_none        .s:fmt_none
 | 
			
		||||
exe "hi! SpellCap"      .s:fg_blue        .s:bg_darkblue    .s:fmt_undr
 | 
			
		||||
exe "hi! SpellLocal"    .s:fg_aqua        .s:bg_darkcyan    .s:fmt_undr
 | 
			
		||||
exe "hi! SpellBad"      .s:fg_red         .s:bg_darkred     .s:fmt_undr
 | 
			
		||||
exe "hi! SpellRare"     .s:fg_purple      .s:bg_darkpurple  .s:fmt_undr
 | 
			
		||||
exe "hi! StatusLine"    .s:fg_comment     .s:bg_background  .s:fmt_revr
 | 
			
		||||
exe "hi! StatusLineNC"  .s:fg_window      .s:bg_comment     .s:fmt_revr
 | 
			
		||||
exe "hi! TabLine"       .s:fg_foreground  .s:bg_darkcolumn  .s:fmt_revr
 | 
			
		||||
"   TabLineFill"
 | 
			
		||||
"   TabLineSel"
 | 
			
		||||
exe "hi! Title"         .s:fg_yellow      .s:bg_none        .s:fmt_none
 | 
			
		||||
exe "hi! Visual"        .s:fg_none        .s:bg_selection   .s:fmt_none
 | 
			
		||||
"   VisualNos"
 | 
			
		||||
exe "hi! WarningMsg"    .s:fg_red         .s:bg_none        .s:fmt_none
 | 
			
		||||
" FIXME LongLineWarning to use variables instead of hardcoding
 | 
			
		||||
hi LongLineWarning  guifg=NONE        guibg=#371F1C     gui=underline ctermfg=NONE        ctermbg=NONE        cterm=underline
 | 
			
		||||
"   WildMenu"
 | 
			
		||||
 | 
			
		||||
" Use defined custom background colour for terminal Vim.
 | 
			
		||||
if !has('gui_running') && exists("g:hybrid_custom_term_colors") && g:hybrid_custom_term_colors == 1
 | 
			
		||||
  let s:bg_normal = s:bg_none
 | 
			
		||||
else
 | 
			
		||||
  let s:bg_normal = s:bg_background
 | 
			
		||||
endif
 | 
			
		||||
exe "hi! Normal"        .s:fg_foreground  .s:bg_normal      .s:fmt_none
 | 
			
		||||
 | 
			
		||||
"}}}
 | 
			
		||||
" Generic Syntax Highlighting: (see :help group-name)"{{{
 | 
			
		||||
" ----------------------------------------------------------------------------
 | 
			
		||||
exe "hi! Comment"         .s:fg_comment     .s:bg_none        .s:fmt_none
 | 
			
		||||
 | 
			
		||||
exe "hi! Constant"        .s:fg_red         .s:bg_none        .s:fmt_none
 | 
			
		||||
exe "hi! String"          .s:fg_green       .s:bg_none        .s:fmt_none
 | 
			
		||||
"   Character"
 | 
			
		||||
"   Number"
 | 
			
		||||
"   Boolean"
 | 
			
		||||
"   Float"
 | 
			
		||||
 | 
			
		||||
exe "hi! Identifier"      .s:fg_purple      .s:bg_none        .s:fmt_none
 | 
			
		||||
exe "hi! Function"        .s:fg_yellow      .s:bg_none        .s:fmt_none
 | 
			
		||||
 | 
			
		||||
exe "hi! Statement"       .s:fg_blue        .s:bg_none        .s:fmt_none
 | 
			
		||||
"   Conditional"
 | 
			
		||||
"   Repeat"
 | 
			
		||||
"   Label"
 | 
			
		||||
exe "hi! Operator"        .s:fg_aqua        .s:bg_none        .s:fmt_none
 | 
			
		||||
"   Keyword"
 | 
			
		||||
"   Exception"
 | 
			
		||||
 | 
			
		||||
exe "hi! PreProc"         .s:fg_aqua        .s:bg_none        .s:fmt_none
 | 
			
		||||
"   Include"
 | 
			
		||||
"   Define"
 | 
			
		||||
"   Macro"
 | 
			
		||||
"   PreCondit"
 | 
			
		||||
 | 
			
		||||
exe "hi! Type"            .s:fg_orange      .s:bg_none        .s:fmt_none
 | 
			
		||||
"   StorageClass"
 | 
			
		||||
exe "hi! Structure"       .s:fg_aqua        .s:bg_none        .s:fmt_none
 | 
			
		||||
"   Typedef"
 | 
			
		||||
 | 
			
		||||
exe "hi! Special"         .s:fg_green       .s:bg_none        .s:fmt_none
 | 
			
		||||
"   SpecialChar"
 | 
			
		||||
"   Tag"
 | 
			
		||||
"   Delimiter"
 | 
			
		||||
"   SpecialComment"
 | 
			
		||||
"   Debug"
 | 
			
		||||
"
 | 
			
		||||
exe "hi! Underlined"      .s:fg_blue        .s:bg_none        .s:fmt_none
 | 
			
		||||
 | 
			
		||||
exe "hi! Ignore"          .s:fg_none        .s:bg_none        .s:fmt_none
 | 
			
		||||
 | 
			
		||||
exe "hi! Error"           .s:fg_red         .s:bg_darkred     .s:fmt_undr
 | 
			
		||||
 | 
			
		||||
exe "hi! Todo"            .s:fg_addfg       .s:bg_none        .s:fmt_none
 | 
			
		||||
 | 
			
		||||
" Quickfix window highlighting
 | 
			
		||||
exe "hi! qfLineNr"        .s:fg_yellow      .s:bg_none        .s:fmt_none
 | 
			
		||||
"   qfFileName"
 | 
			
		||||
"   qfLineNr"
 | 
			
		||||
"   qfError"
 | 
			
		||||
 | 
			
		||||
"}}}
 | 
			
		||||
" Diff Syntax Highlighting:"{{{
 | 
			
		||||
" ----------------------------------------------------------------------------
 | 
			
		||||
" Diff
 | 
			
		||||
"   diffOldFile
 | 
			
		||||
"   diffNewFile
 | 
			
		||||
"   diffFile
 | 
			
		||||
"   diffOnly
 | 
			
		||||
"   diffIdentical
 | 
			
		||||
"   diffDiffer
 | 
			
		||||
"   diffBDiffer
 | 
			
		||||
"   diffIsA
 | 
			
		||||
"   diffNoEOL
 | 
			
		||||
"   diffCommon
 | 
			
		||||
hi! link diffRemoved Constant
 | 
			
		||||
"   diffChanged
 | 
			
		||||
hi! link diffAdded Special
 | 
			
		||||
"   diffLine
 | 
			
		||||
"   diffSubname
 | 
			
		||||
"   diffComment
 | 
			
		||||
 | 
			
		||||
"}}}
 | 
			
		||||
"
 | 
			
		||||
" This is needed for some reason: {{{
 | 
			
		||||
 | 
			
		||||
let &background = s:style
 | 
			
		||||
 | 
			
		||||
" }}}
 | 
			
		||||
" Legal:"{{{
 | 
			
		||||
" ----------------------------------------------------------------------------
 | 
			
		||||
" Copyright (c) 2011 Ethan Schoonover
 | 
			
		||||
" Copyright (c) 2009-2012 NanoTech
 | 
			
		||||
" Copyright (c) 2012 w0ng
 | 
			
		||||
"
 | 
			
		||||
" Permission is hereby granted, free of charge, to any per‐
 | 
			
		||||
" son obtaining a copy of this software and associated doc‐
 | 
			
		||||
" umentation files (the “Software”), to deal in the Soft‐
 | 
			
		||||
" ware without restriction, including without limitation
 | 
			
		||||
" the rights to use, copy, modify, merge, publish, distrib‐
 | 
			
		||||
" ute, sublicense, and/or sell copies of the Software, and
 | 
			
		||||
" to permit persons to whom the Software is furnished to do
 | 
			
		||||
" so, subject to the following conditions:
 | 
			
		||||
"
 | 
			
		||||
" The above copyright notice and this permission notice
 | 
			
		||||
" shall be included in all copies or substantial portions
 | 
			
		||||
" of the Software.
 | 
			
		||||
"
 | 
			
		||||
" THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY
 | 
			
		||||
" KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
 | 
			
		||||
" THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICU‐
 | 
			
		||||
" LAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 | 
			
		||||
" AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
 | 
			
		||||
" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CON‐
 | 
			
		||||
" TRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CON‐
 | 
			
		||||
" NECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 | 
			
		||||
" THE SOFTWARE.
 | 
			
		||||
 | 
			
		||||
" }}}
 | 
			
		||||
@ -1,12 +0,0 @@
 | 
			
		||||
--  sets autocommands for bufenters etc
 | 
			
		||||
 | 
			
		||||
-- recognize i3 files as such
 | 
			
		||||
vim.api.nvim_create_autocmd({"BufRead","BufNewFile"}, {
 | 
			
		||||
    pattern = {"*/i3/*.conf"},
 | 
			
		||||
    command = "set filetype=i3config",
 | 
			
		||||
})
 | 
			
		||||
-- calcurse -> markdown
 | 
			
		||||
vim.api.nvim_create_autocmd({"BufRead","BufNewFile"}, {
 | 
			
		||||
    pattern = {"/tmp/calcurse*","~/.local/share/calcurse/notes/*"},
 | 
			
		||||
    command = "set filetype=markdown",
 | 
			
		||||
})
 | 
			
		||||
@ -1,325 +0,0 @@
 | 
			
		||||
local M = {}
 | 
			
		||||
_VT_NS = vim.api.nvim_create_namespace("lsp_signature")
 | 
			
		||||
 | 
			
		||||
local prescript
 | 
			
		||||
local prescript_hi
 | 
			
		||||
local due_hi
 | 
			
		||||
local ft
 | 
			
		||||
local today
 | 
			
		||||
local today_hi
 | 
			
		||||
local overdue
 | 
			
		||||
local overdue_hi
 | 
			
		||||
local date_hi
 | 
			
		||||
local pattern_start
 | 
			
		||||
local pattern_end
 | 
			
		||||
 | 
			
		||||
local use_clock_time
 | 
			
		||||
local use_clock_today
 | 
			
		||||
local use_seconds
 | 
			
		||||
local default_due_time
 | 
			
		||||
 | 
			
		||||
local user_hour
 | 
			
		||||
local user_min
 | 
			
		||||
local user_sec
 | 
			
		||||
 | 
			
		||||
local date_pattern
 | 
			
		||||
local datetime_pattern
 | 
			
		||||
local datetime12_pattern
 | 
			
		||||
local fulldate_pattern
 | 
			
		||||
local fulldatetime_pattern
 | 
			
		||||
local fulldatetime12_pattern
 | 
			
		||||
 | 
			
		||||
local regex_hi
 | 
			
		||||
 | 
			
		||||
local update_rate
 | 
			
		||||
 | 
			
		||||
local function patternify(str)
 | 
			
		||||
  return str:gsub("[%(%)%.%%%+%-%*%?%[%^%$%]]", "%%%1")
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
local function regexify(str) return str:gsub("\\%^%$%.%*~%[%]&", "\\%1") end
 | 
			
		||||
 | 
			
		||||
local function make_pattern(pattern)
 | 
			
		||||
  return patternify(pattern_start) .. pattern:gsub('%(', ''):gsub('%)', '') ..
 | 
			
		||||
      patternify(pattern_end)
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
local function make_pattern_match(pattern)
 | 
			
		||||
  return patternify(pattern_start) .. pattern .. patternify(pattern_end)
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
local function parseDue(due)
 | 
			
		||||
  local year = 31556926
 | 
			
		||||
  local month = 2629743
 | 
			
		||||
  local week = 604800
 | 
			
		||||
  local day = 86400
 | 
			
		||||
  local hour = 3600
 | 
			
		||||
  local minute = 60
 | 
			
		||||
  local res = ''
 | 
			
		||||
  local is_today = due < day
 | 
			
		||||
 | 
			
		||||
  if due >= year then
 | 
			
		||||
    res = res .. math.floor(due / year) .. 'y '
 | 
			
		||||
    due = due % year
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  if due >= month then
 | 
			
		||||
    res = res .. math.floor(due / month) .. 'm '
 | 
			
		||||
    due = due % month
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  if due >= week then
 | 
			
		||||
    res = res .. math.floor(due / week) .. 'w '
 | 
			
		||||
    due = due % week
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  if use_clock_time or (is_today and use_clock_today) then
 | 
			
		||||
    if due >= day then
 | 
			
		||||
      res = res .. math.floor(due / day) .. 'd '
 | 
			
		||||
      due = due % day
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    if due >= hour then
 | 
			
		||||
      res = res .. math.floor(due / hour) .. 'h '
 | 
			
		||||
      due = due % hour
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    if due >= minute then
 | 
			
		||||
      res = res .. math.floor(due / minute) .. 'min '
 | 
			
		||||
      due = due % minute
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    if use_seconds then res = res .. math.floor(due / 1) + 1 .. 's ' end
 | 
			
		||||
 | 
			
		||||
  else
 | 
			
		||||
    res = res .. math.floor(due / day) + 1 .. 'd '
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  return res
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function M.setup(c)
 | 
			
		||||
  c = c or {}
 | 
			
		||||
  use_clock_time = c.use_clock_time or false
 | 
			
		||||
  use_clock_today = c.use_clock_time or false
 | 
			
		||||
  if type(c.use_seconds) == 'boolean' then
 | 
			
		||||
    use_seconds = c.use_seconds
 | 
			
		||||
  else
 | 
			
		||||
    use_seconds = c.use_clock_time or false
 | 
			
		||||
  end
 | 
			
		||||
  update_rate = c.update_rate or
 | 
			
		||||
      (use_clock_time and (use_seconds and 1000 or 60000) or 0)
 | 
			
		||||
  default_due_time = c.default_due_time or 'midnight'
 | 
			
		||||
  prescript = c.prescript or 'due: '
 | 
			
		||||
  prescript_hi = c.prescript_hi or 'Comment'
 | 
			
		||||
  due_hi = c.due_hi or 'String'
 | 
			
		||||
  ft = c.ft or '*.md'
 | 
			
		||||
  today = c.today or 'TODAY'
 | 
			
		||||
  today_hi = c.today_hi or 'Character'
 | 
			
		||||
  overdue = c.overdue or 'OVERDUE'
 | 
			
		||||
  overdue_hi = c.overdue_hi or 'Error'
 | 
			
		||||
  date_hi = c.date_hi or 'Conceal'
 | 
			
		||||
  week_hi = c.week_hi or 'Question'
 | 
			
		||||
  pattern_start = c.pattern_start or '<'
 | 
			
		||||
  pattern_end = c.pattern_end or '>'
 | 
			
		||||
  date_pattern = c.date_pattern or '(%d%d)%-(%d%d)'
 | 
			
		||||
  datetime_pattern = c.datetime_pattern or (date_pattern .. ' (%d+):(%d%d)')
 | 
			
		||||
  datetime12_pattern = c.datetime12_pattern or (datetime_pattern .. ' (%a%a)')
 | 
			
		||||
  fulldate_pattern = c.fulldate_pattern or ('(%d%d%d%d)%-' .. date_pattern)
 | 
			
		||||
  fulldatetime_pattern = c.fulldatetime_pattern or
 | 
			
		||||
      ('(%d%d%d%d)%-' .. datetime_pattern)
 | 
			
		||||
  fulldatetime12_pattern = c.fulldatetime12_pattern or
 | 
			
		||||
      (fulldatetime_pattern .. ' (%a%a)')
 | 
			
		||||
  regex_hi = c.regex_hi or
 | 
			
		||||
      "\\d*-*\\d\\+-\\d\\+\\( \\d*:\\d*\\( \\a\\a\\)\\?\\)\\?"
 | 
			
		||||
 | 
			
		||||
  if default_due_time == "midnight" then
 | 
			
		||||
    user_hour = 23
 | 
			
		||||
    user_min = 59
 | 
			
		||||
    user_sec = 59
 | 
			
		||||
  elseif default_due_time == "noon" then
 | 
			
		||||
    user_hour = 12
 | 
			
		||||
    user_min = 00
 | 
			
		||||
    user_sec = 00
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  local regex_start = regexify(pattern_start)
 | 
			
		||||
  local regex_end = regexify(pattern_end)
 | 
			
		||||
 | 
			
		||||
  local regex_hi_full = '/' .. regex_start .. regex_hi .. regex_end .. '/'
 | 
			
		||||
 | 
			
		||||
  vim.api.nvim_exec(string.format(
 | 
			
		||||
    [[
 | 
			
		||||
  augroup Due
 | 
			
		||||
    autocmd!
 | 
			
		||||
    autocmd BufEnter %s lua require("due_nvim").draw(0)
 | 
			
		||||
    autocmd BufEnter %s lua require("due_nvim").async_update(0)
 | 
			
		||||
    autocmd InsertLeave %s lua require("due_nvim").redraw(0)
 | 
			
		||||
    autocmd TextChanged %s lua require("due_nvim").redraw(0)
 | 
			
		||||
    autocmd TextChangedI %s lua require("due_nvim").redraw(0)
 | 
			
		||||
    autocmd BufEnter %s syn match DueDate %s display containedin=mkdNonListItemBlock,mkdListItemLine,mkdBlockquote conceal
 | 
			
		||||
    autocmd BufEnter %s hi def link DueDate %s
 | 
			
		||||
  augroup END
 | 
			
		||||
  ]] , ft, ft, ft, ft, ft, ft, regex_hi_full, ft, date_hi),
 | 
			
		||||
    false
 | 
			
		||||
  )
 | 
			
		||||
    -- old autcmd
 | 
			
		||||
    --autocmd BufEnter %s syn match DueDate %s display containedin=mkdNonListItemBlock,mkdListItemLine,mkdBlockquote contained conceal
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
local function draw_due(due, buf, key)
 | 
			
		||||
  local parsed
 | 
			
		||||
 | 
			
		||||
  if due > 0 then
 | 
			
		||||
    if not (use_clock_time or use_clock_today) and due < 86400 then
 | 
			
		||||
      parsed = { today, today_hi }
 | 
			
		||||
    elseif due < 86400 then
 | 
			
		||||
      parsed = { parseDue(due), today_hi }
 | 
			
		||||
    elseif due < 604800 then
 | 
			
		||||
      parsed = { parseDue(due), due_hi }
 | 
			
		||||
    else
 | 
			
		||||
      parsed = { parseDue(due), week_hi }
 | 
			
		||||
    end
 | 
			
		||||
  else
 | 
			
		||||
    parsed = { overdue, overdue_hi }
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  vim.api.nvim_buf_set_virtual_text(buf, _VT_NS, key - 1,
 | 
			
		||||
    { { prescript, prescript_hi }, parsed }, {})
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function M.draw(buf)
 | 
			
		||||
  -- get current time
 | 
			
		||||
  local now = os.time(os.date('*t'))
 | 
			
		||||
 | 
			
		||||
  -- find which date pattern is being passed in by user
 | 
			
		||||
  for key, value in pairs(vim.api.nvim_buf_get_lines(buf, 0, -1, {})) do
 | 
			
		||||
    local fulldatetime12 = value:match(make_pattern(fulldatetime12_pattern))
 | 
			
		||||
    if fulldatetime12 then
 | 
			
		||||
      local year, month, day, hour, min, period =
 | 
			
		||||
      fulldatetime12:match(make_pattern_match(fulldatetime12_pattern))
 | 
			
		||||
      hour = tonumber(hour)
 | 
			
		||||
      local is_pm = period:lower() == 'pm'
 | 
			
		||||
      if is_pm and hour < 12 or not is_pm and hour == 12 then
 | 
			
		||||
        hour = hour + 12
 | 
			
		||||
        if hour == 24 then
 | 
			
		||||
          hour = 0
 | 
			
		||||
        end
 | 
			
		||||
      end
 | 
			
		||||
      draw_due(os.time({
 | 
			
		||||
        year = year,
 | 
			
		||||
        month = month,
 | 
			
		||||
        day = day,
 | 
			
		||||
        hour = hour,
 | 
			
		||||
        min = min,
 | 
			
		||||
        sec = user_sec
 | 
			
		||||
      }) - now, buf, key)
 | 
			
		||||
      goto continue
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    local fulldatetime = value:match(make_pattern(fulldatetime_pattern))
 | 
			
		||||
    if fulldatetime then
 | 
			
		||||
      local year, month, day, hour, min =
 | 
			
		||||
      fulldatetime:match(make_pattern_match(fulldatetime_pattern))
 | 
			
		||||
      draw_due(os.time({
 | 
			
		||||
        year = year,
 | 
			
		||||
        month = month,
 | 
			
		||||
        day = day,
 | 
			
		||||
        hour = hour,
 | 
			
		||||
        min = min,
 | 
			
		||||
        sec = user_sec
 | 
			
		||||
      }) - now, buf, key)
 | 
			
		||||
      goto continue
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    local fulldate = value:match(make_pattern(fulldate_pattern))
 | 
			
		||||
    if fulldate then
 | 
			
		||||
      local year, month, day = fulldate:match(make_pattern_match(
 | 
			
		||||
        fulldate_pattern))
 | 
			
		||||
      draw_due(os.time({
 | 
			
		||||
        year = year,
 | 
			
		||||
        month = month,
 | 
			
		||||
        day = day,
 | 
			
		||||
        hour = user_hour,
 | 
			
		||||
        min = user_min,
 | 
			
		||||
        sec = user_sec
 | 
			
		||||
      }) - now, buf, key)
 | 
			
		||||
      goto continue
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    local datetime12 = value:match(make_pattern(datetime12_pattern))
 | 
			
		||||
    if datetime12 then
 | 
			
		||||
      local month, day, hour, min, period =
 | 
			
		||||
      datetime12:match(make_pattern_match(datetime12_pattern))
 | 
			
		||||
      local year = os.date("%Y")
 | 
			
		||||
      hour = tonumber(hour)
 | 
			
		||||
      local is_pm = period:lower() == 'pm'
 | 
			
		||||
      if is_pm and hour < 12 or not is_pm and hour == 12 then
 | 
			
		||||
        hour = hour + 12
 | 
			
		||||
        if hour == 24 then
 | 
			
		||||
          hour = 0
 | 
			
		||||
        end
 | 
			
		||||
      end
 | 
			
		||||
      draw_due(os.time({
 | 
			
		||||
        year = year,
 | 
			
		||||
        month = month,
 | 
			
		||||
        day = day,
 | 
			
		||||
        hour = hour,
 | 
			
		||||
        min = min,
 | 
			
		||||
        sec = user_sec
 | 
			
		||||
      }) - now, buf, key)
 | 
			
		||||
      goto continue
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    local datetime = value:match(make_pattern(datetime_pattern))
 | 
			
		||||
    if datetime then
 | 
			
		||||
      local month, day, hour, min = datetime:match(make_pattern_match(
 | 
			
		||||
        datetime_pattern))
 | 
			
		||||
      local year = os.date("%Y")
 | 
			
		||||
      draw_due(os.time({
 | 
			
		||||
        year = year,
 | 
			
		||||
        month = month,
 | 
			
		||||
        day = day,
 | 
			
		||||
        hour = hour,
 | 
			
		||||
        min = min,
 | 
			
		||||
        sec = user_sec
 | 
			
		||||
      }) - now, buf, key)
 | 
			
		||||
      goto continue
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    local date = value:match(make_pattern(date_pattern))
 | 
			
		||||
    if date then
 | 
			
		||||
      local month, day = date:match(make_pattern_match(date_pattern))
 | 
			
		||||
      local year = os.date("%Y")
 | 
			
		||||
 | 
			
		||||
      draw_due(os.time({
 | 
			
		||||
        year = year,
 | 
			
		||||
        month = month,
 | 
			
		||||
        day = day,
 | 
			
		||||
        hour = user_hour,
 | 
			
		||||
        min = user_min,
 | 
			
		||||
        sec = user_sec
 | 
			
		||||
      }) - now, buf, key)
 | 
			
		||||
      goto continue
 | 
			
		||||
    end
 | 
			
		||||
    ::continue::
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function M.clear(buf) vim.api.nvim_buf_clear_namespace(buf, _VT_NS, 0, -1) end
 | 
			
		||||
 | 
			
		||||
function M.redraw(buf)
 | 
			
		||||
  M.clear(buf)
 | 
			
		||||
  M.draw(buf)
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function M.async_update(buf)
 | 
			
		||||
  if update_rate <= 0 then return end
 | 
			
		||||
  local timer = vim.loop.new_timer()
 | 
			
		||||
  timer:start(update_rate, 0, vim.schedule_wrap(function()
 | 
			
		||||
    M.redraw(buf)
 | 
			
		||||
    M.async_update(buf)
 | 
			
		||||
  end))
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
return M
 | 
			
		||||
@ -1,15 +0,0 @@
 | 
			
		||||
--  sets fileypes for those that are not auto recognized
 | 
			
		||||
 | 
			
		||||
--  sway config
 | 
			
		||||
vim.filetype.add({
 | 
			
		||||
    pattern = {
 | 
			
		||||
        ['.*/sway/.*'] = 'swayconfig',
 | 
			
		||||
    },
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
-- calcurse notes as markdown
 | 
			
		||||
vim.filetype.add({
 | 
			
		||||
    pattern = {
 | 
			
		||||
        ['/tmp/calcurse.*;.*/calcurse/notes/.*'] = 'markdown',
 | 
			
		||||
    },
 | 
			
		||||
})
 | 
			
		||||
@ -1,52 +0,0 @@
 | 
			
		||||
vim.g.mapleader = " "
 | 
			
		||||
 | 
			
		||||
vim.keymap.set("n", "<leader>b", ":lua ToggleTransparent()<CR>")
 | 
			
		||||
 | 
			
		||||
-- nvim-tree bindings
 | 
			
		||||
 | 
			
		||||
vim.keymap.set("n", "<leader>t", ":NvimTreeToggle<CR>")
 | 
			
		||||
 | 
			
		||||
vim.keymap.set("n", "<leader>a", ":lua SpellToggle()<CR>")
 | 
			
		||||
 | 
			
		||||
-- markdown preview
 | 
			
		||||
 | 
			
		||||
vim.keymap.set("n", "<leader>p", ":MarkdownPreviewToggle<CR>")
 | 
			
		||||
 | 
			
		||||
-- custom shell script to move windows
 | 
			
		||||
vim.cmd([[
 | 
			
		||||
    function OpenMarkdownPreview (url)
 | 
			
		||||
        execute "silent ! markdown-preview.sh " . a:url
 | 
			
		||||
    endfunction
 | 
			
		||||
]])
 | 
			
		||||
 | 
			
		||||
vim.g.mkdp_browserfunc = 'OpenMarkdownPreview'
 | 
			
		||||
 | 
			
		||||
-- git actions
 | 
			
		||||
vim.keymap.set("n", "<leader>ga", ":Git add .<CR>")
 | 
			
		||||
vim.keymap.set("n", "<leader>gm", ":Git commit<CR>")
 | 
			
		||||
 | 
			
		||||
-- fuzzy finder keybindings
 | 
			
		||||
local telescope = require('telescope.builtin')
 | 
			
		||||
vim.keymap.set('n','<leader>f', telescope.find_files, {})
 | 
			
		||||
vim.keymap.set('n','<leader>s', telescope.spell_suggest, {})
 | 
			
		||||
 | 
			
		||||
-- global copy/paste
 | 
			
		||||
vim.keymap.set('n', '<leader>yg', '"+y')
 | 
			
		||||
vim.keymap.set('n', '<leader>pg', '"+p')
 | 
			
		||||
 | 
			
		||||
-- toggle dotfiles visibility
 | 
			
		||||
vim.keymap.set("n", "<leader>d", ":lua require('nvim-tree.api').tree.toggle_hidden_filter()<CR>")
 | 
			
		||||
 | 
			
		||||
-- harpoon bindings
 | 
			
		||||
vim.keymap.set("n", "<leader>hs", ":Telescope harpoon marks<CR>")
 | 
			
		||||
vim.keymap.set("n", "<leader>hh", ":lua require('harpoon.ui').toggle_quick_menu()<CR>")
 | 
			
		||||
vim.keymap.set("n", "<leader>ha", ":lua require('harpoon.mark').add_file()<CR>")
 | 
			
		||||
--vim.keymap.set("n", "<leader>ha", harpoon.mark.add_file, {})
 | 
			
		||||
vim.keymap.set("n", "<leader>hn", ":lua require('harpoon.ui').nav_next()<CR>")
 | 
			
		||||
vim.keymap.set("n", "<leader>hp", ":lua require('harpoon.ui').nav_prev()<CR>")
 | 
			
		||||
-- jumping to specific files
 | 
			
		||||
vim.keymap.set("n", "<leader>h1", ":lua require('harpoon.ui').nav_file(1)<CR>")
 | 
			
		||||
vim.keymap.set("n", "<leader>h2", ":lua require('harpoon.ui').nav_file(2)<CR>")
 | 
			
		||||
vim.keymap.set("n", "<leader>h3", ":lua require('harpoon.ui').nav_file(3)<CR>")
 | 
			
		||||
vim.keymap.set("n", "<leader>h4", ":lua require('harpoon.ui').nav_file(4)<CR>")
 | 
			
		||||
vim.keymap.set("n", "<leader>h5", ":lua require('harpoon.ui').nav_file(5)<CR>")
 | 
			
		||||
@ -1,90 +0,0 @@
 | 
			
		||||
-- language server setup
 | 
			
		||||
local lspconfig = require('lspconfig')
 | 
			
		||||
 | 
			
		||||
-- Go
 | 
			
		||||
lspconfig.gopls.setup{
 | 
			
		||||
    cmd = {"gopls", "serve"},
 | 
			
		||||
    filetypes = {"go", "gomod"},
 | 
			
		||||
    settings = {
 | 
			
		||||
        gopls = {
 | 
			
		||||
            analyses = {
 | 
			
		||||
                unusedparams = true,
 | 
			
		||||
            },
 | 
			
		||||
            staticcheck = true,
 | 
			
		||||
        },
 | 
			
		||||
    },
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
-- C/C++
 | 
			
		||||
lspconfig.clangd.setup{}
 | 
			
		||||
 | 
			
		||||
-- Arduino (C)
 | 
			
		||||
lspconfig.arduino_language_server.setup{}
 | 
			
		||||
 | 
			
		||||
-- Lua
 | 
			
		||||
lspconfig.lua_ls.setup{
 | 
			
		||||
    settings = {
 | 
			
		||||
        Lua = {
 | 
			
		||||
            diagnostics = {globals = {'vim', 'opts'}},
 | 
			
		||||
        },
 | 
			
		||||
        telemetry = {
 | 
			
		||||
            enable = false,
 | 
			
		||||
        },
 | 
			
		||||
    },
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
-- Rust
 | 
			
		||||
lspconfig.rust_analyzer.setup{}
 | 
			
		||||
 | 
			
		||||
-- Python
 | 
			
		||||
lspconfig.pylsp.setup{}
 | 
			
		||||
 | 
			
		||||
-- TypeScript
 | 
			
		||||
lspconfig.tsserver.setup{}
 | 
			
		||||
 | 
			
		||||
-- Fix virtual text going off screen
 | 
			
		||||
vim.diagnostic.config({
 | 
			
		||||
    virtual_text = false,
 | 
			
		||||
    signs = true,
 | 
			
		||||
    underline = true,
 | 
			
		||||
    update_in_insert = false,
 | 
			
		||||
    severity_sort = false,
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
vim.api.nvim_create_autocmd('LspAttach', {
 | 
			
		||||
    callback = function(ev)
 | 
			
		||||
        -- custom colors
 | 
			
		||||
        vim.cmd('hi DiagnosticUnderlineError cterm=undercurl')
 | 
			
		||||
        vim.cmd('hi DiagnosticUnderlineWarn cterm=undercurl')
 | 
			
		||||
        vim.cmd('hi DiagnosticUnderlineInfo cterm=undercurl')
 | 
			
		||||
        vim.cmd('hi DiagnosticUnderlineHint cterm=undercurl')
 | 
			
		||||
        vim.cmd('hi DiagnosticUnderlineOk cterm=undercurl')
 | 
			
		||||
        -- key mappings
 | 
			
		||||
        local opts = { buffer = ev.buf,}
 | 
			
		||||
        -- error viewing
 | 
			
		||||
        vim.keymap.set('n', '<leader>e', vim.diagnostic.open_float, opts)
 | 
			
		||||
        vim.keymap.set('n', '<leader>[d', vim.diagnostic.goto_prev, opts)
 | 
			
		||||
        vim.keymap.set('n', '<leader>]d', vim.diagnostic.goto_next, opts)
 | 
			
		||||
        -- def viewing/rename
 | 
			
		||||
        vim.keymap.set('n', '<leader>gD', vim.lsp.buf.declaration, opts)
 | 
			
		||||
        vim.keymap.set('n', '<leader>gd', vim.lsp.buf.definition, opts)
 | 
			
		||||
        vim.keymap.set('n', '<leader>rn', vim.lsp.buf.rename, opts)
 | 
			
		||||
        vim.keymap.set('n', '<leader>H', vim.lsp.buf.hover, opts)
 | 
			
		||||
        -- auto hover for error viewing
 | 
			
		||||
        vim.api.nvim_create_autocmd("CursorHold", {
 | 
			
		||||
            callback = function()
 | 
			
		||||
                opts = {
 | 
			
		||||
                    buffer = ev.buf,
 | 
			
		||||
                    focusable = false,
 | 
			
		||||
                    border = 'rounded',
 | 
			
		||||
                    source = 'always',
 | 
			
		||||
                    prefix = ' ',
 | 
			
		||||
                    scope = 'cursor',
 | 
			
		||||
                    close_events = { "BufLeave","CursorMoved","InsertEnter","FocusLost" },
 | 
			
		||||
                }
 | 
			
		||||
                vim.diagnostic.open_float(nil, opts)
 | 
			
		||||
            end
 | 
			
		||||
        })
 | 
			
		||||
    end,
 | 
			
		||||
})
 | 
			
		||||
@ -1,50 +0,0 @@
 | 
			
		||||
require('lsp')
 | 
			
		||||
require('transparent')
 | 
			
		||||
require('spellcheck')
 | 
			
		||||
 | 
			
		||||
-- nvim tree setup
 | 
			
		||||
require('nvim-tree').setup({
 | 
			
		||||
    open_on_tab = false,
 | 
			
		||||
    filters = {
 | 
			
		||||
        dotfiles = true,
 | 
			
		||||
    },
 | 
			
		||||
    actions = {
 | 
			
		||||
        open_file = {
 | 
			
		||||
            quit_on_open = true,
 | 
			
		||||
        },
 | 
			
		||||
    },
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
showHiddenFiles = false
 | 
			
		||||
 | 
			
		||||
local function open_nvim_tree(data)
 | 
			
		||||
 | 
			
		||||
    -- buffer is a directory
 | 
			
		||||
    local directory = vim.fn.isdirectory(data.file) == 1
 | 
			
		||||
 | 
			
		||||
    local empty_file = data.file == ""
 | 
			
		||||
 | 
			
		||||
    if not directory and not empty_file then
 | 
			
		||||
        return
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    if directory then
 | 
			
		||||
        vim.cmd.cd(data.file)
 | 
			
		||||
    end
 | 
			
		||||
    vim.cmd.enew()
 | 
			
		||||
    vim.cmd.bw(data.buf)
 | 
			
		||||
    -- change to directory and open
 | 
			
		||||
    require("nvim-tree.api").tree.open()
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
-- nvim-tree open at startup
 | 
			
		||||
vim.api.nvim_create_autocmd({ "VimEnter" }, { callback = open_nvim_tree, })
 | 
			
		||||
 | 
			
		||||
-- fuzzy finder setup
 | 
			
		||||
require('telescope').setup({
 | 
			
		||||
    defaults = {
 | 
			
		||||
        layout_config = {
 | 
			
		||||
            horizontal = { width = 0.8 }
 | 
			
		||||
        },
 | 
			
		||||
    },
 | 
			
		||||
})
 | 
			
		||||
@ -1,9 +0,0 @@
 | 
			
		||||
-- simple spell check toggle
 | 
			
		||||
 | 
			
		||||
function SpellToggle()
 | 
			
		||||
    if vim.o.spell == nil or vim.o.spell then
 | 
			
		||||
        vim.o.spell = false
 | 
			
		||||
    else
 | 
			
		||||
        vim.o.spell = true
 | 
			
		||||
    end
 | 
			
		||||
end
 | 
			
		||||
@ -1,10 +0,0 @@
 | 
			
		||||
-- allows for toggling of background
 | 
			
		||||
function ToggleTransparent()
 | 
			
		||||
    Transparent = not Transparent
 | 
			
		||||
    if Transparent then
 | 
			
		||||
        vim.cmd("hi Normal ctermbg=NONE")
 | 
			
		||||
    else
 | 
			
		||||
        -- 234 is hybrid dark bg color
 | 
			
		||||
        vim.cmd("hi Normal ctermbg=234")
 | 
			
		||||
    end
 | 
			
		||||
end
 | 
			
		||||
							
								
								
									
										5
									
								
								init.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								init.lua
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,5 @@
 | 
			
		||||
-- load options
 | 
			
		||||
require("config.options")
 | 
			
		||||
 | 
			
		||||
-- load lazy.nvim to bootstrap plugins
 | 
			
		||||
require("config.lazy")
 | 
			
		||||
							
								
								
									
										72
									
								
								lua/config/keymap.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										72
									
								
								lua/config/keymap.lua
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,72 @@
 | 
			
		||||
vim.g.mapleader = " "
 | 
			
		||||
 | 
			
		||||
-- allows for toggling of background
 | 
			
		||||
local function ToggleTransparent()
 | 
			
		||||
    Transparent = not Transparent
 | 
			
		||||
    if Transparent then
 | 
			
		||||
        vim.cmd("hi Normal ctermbg=NONE")
 | 
			
		||||
    else
 | 
			
		||||
        -- 234 is hybrid dark bg color
 | 
			
		||||
        vim.cmd("hi Normal ctermbg=234")
 | 
			
		||||
    end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
vim.keymap.set("n", "<leader>b", ":lua ToggleTransparent()<CR>")
 | 
			
		||||
 | 
			
		||||
-- nvim-tree bindings
 | 
			
		||||
 | 
			
		||||
vim.keymap.set("n", "<leader>t", ":NvimTreeToggle<CR>")
 | 
			
		||||
 | 
			
		||||
-- simple spell check toggle
 | 
			
		||||
local function SpellToggle()
 | 
			
		||||
    if vim.o.spell == nil or vim.o.spell then
 | 
			
		||||
        vim.o.spell = false
 | 
			
		||||
    else
 | 
			
		||||
        vim.o.spell = true
 | 
			
		||||
    end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
vim.keymap.set("n", "<leader>a", ":lua SpellToggle()<CR>")
 | 
			
		||||
 | 
			
		||||
-- markdown preview
 | 
			
		||||
vim.keymap.set("n", "<leader>p", ":MarkdownPreviewToggle<CR>")
 | 
			
		||||
 | 
			
		||||
-- custom shell script to move windows
 | 
			
		||||
vim.cmd([[
 | 
			
		||||
    function OpenMarkdownPreview (url)
 | 
			
		||||
        execute "silent ! markdown-preview.sh " . a:url
 | 
			
		||||
    endfunction
 | 
			
		||||
]])
 | 
			
		||||
 | 
			
		||||
vim.g.mkdp_browserfunc = 'OpenMarkdownPreview'
 | 
			
		||||
 | 
			
		||||
-- git actions
 | 
			
		||||
vim.keymap.set("n", "<leader>ga", ":Git add .<CR>")
 | 
			
		||||
vim.keymap.set("n", "<leader>gm", ":Git commit<CR>")
 | 
			
		||||
 | 
			
		||||
-q- -- fuzzy finder keybindings
 | 
			
		||||
-- local telescope = require('telescope.builtin')
 | 
			
		||||
-- vim.keymap.set('n','<leader>f', telescope.find_files, {})
 | 
			
		||||
-- vim.keymap.set('n','<leader>s', telescope.spell_suggest, {})
 | 
			
		||||
 | 
			
		||||
-- global copy/paste
 | 
			
		||||
vim.keymap.set('n', '<leader>yg', '"+y')
 | 
			
		||||
vim.keymap.set('n', '<leader>pg', '"+p')
 | 
			
		||||
 | 
			
		||||
-- toggle dotfiles visibility
 | 
			
		||||
-- vim.keymap.set("n", "<leader>d", ":lua require('nvim-tree.api').tree.toggle_hidden_filter()<CR>")
 | 
			
		||||
 | 
			
		||||
-- TODO
 | 
			
		||||
-- -- harpoon bindings
 | 
			
		||||
-- vim.keymap.set("n", "<leader>hs", ":Telescope harpoon marks<CR>")
 | 
			
		||||
-- vim.keymap.set("n", "<leader>hh", ":lua require('harpoon.ui').toggle_quick_menu()<CR>")
 | 
			
		||||
-- vim.keymap.set("n", "<leader>ha", ":lua require('harpoon.mark').add_file()<CR>")
 | 
			
		||||
-- --vim.keymap.set("n", "<leader>ha", harpoon.mark.add_file, {})
 | 
			
		||||
-- vim.keymap.set("n", "<leader>hn", ":lua require('harpoon.ui').nav_next()<CR>")
 | 
			
		||||
-- vim.keymap.set("n", "<leader>hp", ":lua require('harpoon.ui').nav_prev()<CR>")
 | 
			
		||||
-- -- jumping to specific files
 | 
			
		||||
-- vim.keymap.set("n", "<leader>h1", ":lua require('harpoon.ui').nav_file(1)<CR>")
 | 
			
		||||
-- vim.keymap.set("n", "<leader>h2", ":lua require('harpoon.ui').nav_file(2)<CR>")
 | 
			
		||||
-- vim.keymap.set("n", "<leader>h3", ":lua require('harpoon.ui').nav_file(3)<CR>")
 | 
			
		||||
-- vim.keymap.set("n", "<leader>h4", ":lua require('harpoon.ui').nav_file(4)<CR>")
 | 
			
		||||
-- vim.keymap.set("n", "<leader>h5", ":lua require('harpoon.ui').nav_file(5)<CR>")
 | 
			
		||||
							
								
								
									
										44
									
								
								lua/config/lazy.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										44
									
								
								lua/config/lazy.lua
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,44 @@
 | 
			
		||||
-- Bootstrap lazy.nvim
 | 
			
		||||
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
 | 
			
		||||
if not (vim.uv or vim.loop).fs_stat(lazypath) then
 | 
			
		||||
  local lazyrepo = "https://github.com/folke/lazy.nvim.git"
 | 
			
		||||
  local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath })
 | 
			
		||||
  if vim.v.shell_error ~= 0 then
 | 
			
		||||
    vim.api.nvim_echo({
 | 
			
		||||
      { "Failed to clone lazy.nvim:\n", "ErrorMsg" },
 | 
			
		||||
      { out, "WarningMsg" },
 | 
			
		||||
      { "\nPress any key to exit..." },
 | 
			
		||||
    }, true, {})
 | 
			
		||||
    vim.fn.getchar()
 | 
			
		||||
    os.exit(1)
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
vim.opt.rtp:prepend(lazypath)
 | 
			
		||||
 | 
			
		||||
-- Setup lazy.nvim
 | 
			
		||||
require("lazy").setup({
 | 
			
		||||
  spec = {
 | 
			
		||||
    -- Import your plugins from lua/plugins/
 | 
			
		||||
    { import = "plugins" },
 | 
			
		||||
  },
 | 
			
		||||
  defaults = {
 | 
			
		||||
    lazy = false, -- should plugins be lazy-loaded?
 | 
			
		||||
    version = false, -- always use the latest git commit
 | 
			
		||||
  },
 | 
			
		||||
  checker = { enabled = true }, -- automatically check for plugin updates
 | 
			
		||||
  performance = {
 | 
			
		||||
    rtp = {
 | 
			
		||||
      -- disable some rtp plugins
 | 
			
		||||
      disabled_plugins = {
 | 
			
		||||
        "gzip",
 | 
			
		||||
        "matchit",
 | 
			
		||||
        "matchparen",
 | 
			
		||||
        "netrwPlugin",
 | 
			
		||||
        "tarPlugin",
 | 
			
		||||
        "tohtml",
 | 
			
		||||
        "tutor",
 | 
			
		||||
        "zipPlugin",
 | 
			
		||||
      },
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
})
 | 
			
		||||
@ -1,14 +1,11 @@
 | 
			
		||||
require('plugins')
 | 
			
		||||
require('keymap')
 | 
			
		||||
require('filetype')
 | 
			
		||||
-- require('autobuf')
 | 
			
		||||
 | 
			
		||||
-- grabs key mappings 
 | 
			
		||||
require("keymap")
 | 
			
		||||
 | 
			
		||||
-- prevent cursor override
 | 
			
		||||
vim.cmd('set guicursor=')
 | 
			
		||||
vim.cmd('let g:do_filetype_lua=1')
 | 
			
		||||
 | 
			
		||||
-- basic settings
 | 
			
		||||
-- vim.cmd('filetype plugin indent on')
 | 
			
		||||
vim.cmd('filetype plugin indent on')
 | 
			
		||||
vim.cmd('set ts=4 sts=4 sw=4 expandtab')
 | 
			
		||||
 | 
			
		||||
@ -26,15 +23,6 @@ vim.opt.compatible = false
 | 
			
		||||
vim.opt.smartcase = true
 | 
			
		||||
vim.opt.hlsearch = true
 | 
			
		||||
 | 
			
		||||
-- colorscheme and syntax settings
 | 
			
		||||
vim.cmd([[
 | 
			
		||||
    syntax enable
 | 
			
		||||
    colorscheme hybrid
 | 
			
		||||
    hi Normal ctermbg=NONE
 | 
			
		||||
    hi SpellBad cterm=undercurl ctermbg=NONE ctermfg=NONE gui=undercurl guifg=NONE guibg=NONE guisp=Red
 | 
			
		||||
    hi SpellCap cterm=undercurl ctermbg=NONE ctermfg=NONE gui=undercurl guifg=NONE guibg=NONE guisp=Blue
 | 
			
		||||
]])
 | 
			
		||||
 | 
			
		||||
-- defaults to transparent
 | 
			
		||||
Transparent = true
 | 
			
		||||
 | 
			
		||||
@ -80,3 +68,25 @@ let g:vimtex_quickfix_ignore_filters = [
 | 
			
		||||
  \ 'Font Warning',
 | 
			
		||||
  \]
 | 
			
		||||
]])
 | 
			
		||||
 | 
			
		||||
--  sets autocommands for bufenters etc -> NOT DOING pattern should be faster?
 | 
			
		||||
-- calcurse -> markdown
 | 
			
		||||
-- vim.api.nvim_create_autocmd({"BufRead","BufNewFile"}, {
 | 
			
		||||
--     pattern = {"/tmp/calcurse*","~/.local/share/calcurse/notes/*"},
 | 
			
		||||
--     command = "set filetype=markdown",
 | 
			
		||||
-- })
 | 
			
		||||
 | 
			
		||||
--  sets fileypes for those that are not auto recognized
 | 
			
		||||
--  sway config
 | 
			
		||||
vim.filetype.add({
 | 
			
		||||
    pattern = {
 | 
			
		||||
        ['.*/sway/.*'] = 'swayconfig',
 | 
			
		||||
    },
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
-- calcurse notes as markdown
 | 
			
		||||
vim.filetype.add({
 | 
			
		||||
    pattern = {
 | 
			
		||||
        ['/tmp/calcurse.*;.*/calcurse/notes/.*'] = 'markdown',
 | 
			
		||||
    },
 | 
			
		||||
})
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user