stockholm/tv/5pkgs/vim/tv.nix

54 lines
1.1 KiB
Nix
Raw Normal View History

2019-05-21 19:58:16 +00:00
{ pkgs }:
(rtp: rtp // { inherit rtp; }) (pkgs.write "vim-tv" {
#
# Haskell
#
"/ftplugin/haskell.vim".text = ''
if exists("g:vim_tv_ftplugin_haskell_loaded")
finish
endif
let g:vim_tv_ftplugin_haskell_loaded = 1
setlocal iskeyword+='
'';
#
# TODO
#
"/ftdetect/todo.vim".text = ''
au BufRead,BufNewFile TODO set ft=todo
'';
"/ftplugin/todo.vim".text = ''
setlocal foldmethod=syntax
'';
"/syntax/todo.vim".text = ''
syn match todoComment /#.*/
syn match todoDate /^[1-9]\S*/
\ nextgroup=todoSummary
syn region todoSummary
\ contained
\ contains=todoTag
\ start="." end="$\n"
\ nextgroup=todoBlock
syn match todoTag /\[[A-Za-z]\+\]/hs=s+1,he=e-1
\ contained
syn region todoBlock
\ contained
\ contains=Comment
\ fold
\ start="^[^1-9]" end="^[1-9 ]"re=s-1,he=s-1,me=s-1
syn sync minlines=1000
hi link todoComment Comment
hi todoDate ctermfg=255
hi todoSummary ctermfg=229
hi todoBlock ctermfg=248
hi todoTag ctermfg=217
'';
})