diff --git a/.SpaceVim.d/autoload/SpaceVim/dev/todo.vim b/.SpaceVim.d/autoload/SpaceVim/dev/todo.vim index 93872a270..b520789a6 100644 --- a/.SpaceVim.d/autoload/SpaceVim/dev/todo.vim +++ b/.SpaceVim.d/autoload/SpaceVim/dev/todo.vim @@ -28,23 +28,25 @@ function! s:open_win() abort nnoremap :call open_todo() endfunction +" @todo Improve todo manager function! s:update_todo_content() abort let s:todos = [] - let argv = ['rg', '--hidden', '--no-heading', '--color=never', '--with-filename', '--line-number', '--column', - \ '-g', '!.git','@t'. 'odo '] + let argv = ['findstr', '/RSN', '/I', '@t'. 'odo ', '*.*'] call s:JOB.start(argv, { \ 'on_stdout' : function('s:stdout'), + \ 'on_stderr' : function('s:stderr'), \ 'on_exit' : function('s:exit'), \ }) endfunction function! s:stdout(id, data, event) abort + call SpaceVim#logger#info('todomanager stdout: ' . string(a:data)) for data in a:data if !empty(data) let file = fnameescape(split(data, ':\d\+:')[0]) let line = matchstr(data, ':\d\+:')[1:-2] let column = matchstr(data, '\(:\d\+\)\@<=:\d\+:')[1:-2] - let title = split(data, '@todo')[1] + let title = split(data, '@to' . 'do')[1] call add(s:todos, \ { \ 'file' : file, @@ -57,9 +59,16 @@ function! s:stdout(id, data, event) abort endfor endfunction +function! s:stderr(id, data, event) abort + call SpaceVim#logger#info('todomanager stderr: ' . string(a:data)) +endfunction + function! s:exit(id, data, event ) abort + call SpaceVim#logger#info('todomanager exit: ' . string(a:data)) let g:lines = map(deepcopy(s:todos), "v:val.file . ' ' . v:val.title") + call setbufvar(s:bufnr, '&modifiable', 1) call setline(1, g:lines) + call setbufvar(s:bufnr, '&modifiable', 0) endfunction diff --git a/.SpaceVim.d/syntax/SpaceVimTodoManager.vim b/.SpaceVim.d/syntax/SpaceVimTodoManager.vim index 9f23782af..009ff51db 100644 --- a/.SpaceVim.d/syntax/SpaceVimTodoManager.vim +++ b/.SpaceVim.d/syntax/SpaceVimTodoManager.vim @@ -5,4 +5,11 @@ let b:current_syntax = 'SpaceVimTodoManager' syntax case ignore syn match FileName /^[^ ]*/ +syn match TODOTAG /^\s*@[a-zA-Z]*/ +" syn match TODOCHECKBOX /[\d\+/\d\+\]/ +syn match TODOINDEX /^\s\+\d\+\.\s/ +syn match TODOCHECKBOXPANDING /\s\+√\s\+/ +syn match TODOCHECKBOXDONE /\s\+□\s\+/ +syn match TODOCHECKBOXNOTE /\s\+·\s\+/ +syn match TODODUETIME /\d\+[d]$\|\d\+[d]\s\*$/ hi def link FileName Comment diff --git a/autoload/SpaceVim/api/vim/compatible.vim b/autoload/SpaceVim/api/vim/compatible.vim index 9d2c46c3f..eae36a0e2 100644 --- a/autoload/SpaceVim/api/vim/compatible.vim +++ b/autoload/SpaceVim/api/vim/compatible.vim @@ -248,6 +248,10 @@ else endfunction endif +function! s:self.set_buf_line() abort + +endfunction + function! SpaceVim#api#vim#compatible#get() abort return deepcopy(s:self) endfunction