From a8dbf0931fd3ee05c600f4c2ac0b7c7c1792e0ab Mon Sep 17 00:00:00 2001 From: Amolith Date: Wed, 10 Jan 2024 15:25:14 -0500 Subject: [PATCH] add vim config --- dot_config/vim/ftdetect/klog.vim | 1 + dot_config/vim/syntax/klog.vim | 39 ++++++++++++++++++++++++++++++++ dot_config/vim/vimrc | 20 ++++++++++++++++ 3 files changed, 60 insertions(+) create mode 100644 dot_config/vim/ftdetect/klog.vim create mode 100644 dot_config/vim/syntax/klog.vim create mode 100644 dot_config/vim/vimrc diff --git a/dot_config/vim/ftdetect/klog.vim b/dot_config/vim/ftdetect/klog.vim new file mode 100644 index 0000000000000000000000000000000000000000..2c45b834d7f602728035b23132d68b1fdaa5a38d --- /dev/null +++ b/dot_config/vim/ftdetect/klog.vim @@ -0,0 +1 @@ +autocmd BufNewFile,BufRead *.klog,*.klg set filetype=klog diff --git a/dot_config/vim/syntax/klog.vim b/dot_config/vim/syntax/klog.vim new file mode 100644 index 0000000000000000000000000000000000000000..91b98f573273da2b9fd58328e994d8bc256ab8fa --- /dev/null +++ b/dot_config/vim/syntax/klog.vim @@ -0,0 +1,39 @@ +" Quit when a syntax file was already loaded. +if exists("b:current_syntax") + finish +endif + +" everywhere +syntax match klogTag "#\S\+" contained + +" Record Header +syntax region klogHeader start="^\d\{4}-\d\{2}-\d\{2}" end="$" contains=klogRecord,klogShould nextgroup=klogRecordSummary,klogEntry skipnl +syntax region klogHeader start="^\d\{4}\/\d\{2}\/\d\{2}" end="$" contains=klogRecord,klogShould nextgroup=klogRecordSummary,klogEntry skipnl +syntax match klogRecord "^\d\{4}-\d\{2}-\d\{2}\ze" contained nextgroup=klogShould skipwhite +syntax match klogRecord "^\d\{4}\/\d\{2}\/\d\{2}\ze" contained nextgroup=klogShould skipwhite +syntax match klogShould " (-*\(\d\+h\d\+m\|\d\+h\|\d\+m\)!)" contained +syntax region klogRecordSummary start="^\S" end="$" contained contains=klogTag nextgroup=klogEntry,klogRecordSummary skipnl + +" Entries +syntax match klogEntrySummary "^\t\{2}\|\ \{4,8}.*" contained keepend contains=klogTag nextgroup=klogEntrySummary,klogEntry skipnl +syntax region klogEntry start="^\t\|\ \{2,4}-\(\d\+h\d\+m\|\d\+h\|\d\+m\)" end="$" contained keepend contains=klogTag,klogNegDuration nextgroup=klogEntrySummary,klogEntry skipnl +syntax match klogNegDuration "\(^\t\|\ \{2,4}\)\@<=-\(\d\+h\d\+m\|\d\+h\|\d\+m\)" contained +syntax region klogEntry start="^\t\|\ \{2,4}\(\d\+h\d\+m\|\d\+h\|\d\+m\)" end="$" contained keepend contains=klogTag,klogPosDuration nextgroup=klogEntrySummary,klogEntry skipnl +syntax match klogPosDuration "\(^\t\|\ \{2,4}\)\@<=\(\d\+h\d\+m\|\d\+h\|\d\+m\)" contained +syntax region klogEntry start="^\t\|\ \{2,4}<\=\d\{1,2}:\d\{2}\(\(am\)\|\(pm\)\)\=>\= - \(?\+\|\(\d\{1,2}:\d\{2}\(\(am\)\|\(pm\)\)\=>\=\)\)" end="$" contained keepend contains=klogTag,klogTimespan nextgroup=klogEntrySummary,klogEntry skipnl +syntax match klogTimespan "\(^\t\|\ \{2,4}\)\@<=<\=\d\{1,2}:\d\{2}\(\(am\)\|\(pm\)\)\=>\= - \(?\+\|\(\d\{1,2}:\d\{2}\(\(am\)\|\(pm\)\)\=>\=\)\)" contained + +" Highlight +highlight default link klogTag Identifier +highlight default link klogRecord Underlined +highlight default link klogShould Statement +highlight default link klogRecordSummary Comment +highlight default link klogEntrySummary Comment +highlight default link klogEntry Comment +highlight default link klogPosDuration Type +highlight default link klogNegDuration String +highlight default link klogTimespan Keyword +" String + +let b:current_syntax = 'klog' +syntax sync minlines=50 diff --git a/dot_config/vim/vimrc b/dot_config/vim/vimrc new file mode 100644 index 0000000000000000000000000000000000000000..179ad39e609cd2fed2ab598b3124bfeabe908e88 --- /dev/null +++ b/dot_config/vim/vimrc @@ -0,0 +1,20 @@ +set runtimepath^=$XDG_CONFIG_HOME/vim +set runtimepath+=$XDG_DATA_HOME/vim +set runtimepath+=$XDG_CONFIG_HOME/vim/after + +set packpath^=$XDG_DATA_HOME/vim,$XDG_CONFIG_HOME/vim +set packpath+=$XDG_CONFIG_HOME/vim/after,$XDG_DATA_HOME/vim/after + +let g:netrw_home = $XDG_DATA_HOME."/vim" +call mkdir($XDG_DATA_HOME."/vim/spell", 'p') + +set backupdir=$XDG_STATE_HOME/vim/backup | call mkdir(&backupdir, 'p') +set directory=$XDG_STATE_HOME/vim/swap | call mkdir(&directory, 'p') +set undodir=$XDG_STATE_HOME/vim/undo | call mkdir(&undodir, 'p') +set viewdir=$XDG_STATE_HOME/vim/view | call mkdir(&viewdir, 'p') + +if !has('nvim') | set viminfofile=$XDG_STATE_HOME/vim/viminfo | endif + +set mouse-=a + +syntax on