Quellcode durchsuchen

async task integration

Chris vor 5 Jahren
Ursprung
Commit
bf4c1d3104
6 geänderte Dateien mit 122 neuen und 5 gelöschten Zeilen
  1. 19 0
      keys/which-key.vim
  2. 61 0
      plug-config/asynctask.vim
  3. 3 3
      plug-config/start-screen.vim
  4. 2 0
      themes/spaceline.vim
  5. 35 0
      utils/tasks.ini
  6. 2 2
      vim-plug/plugins.vim

+ 19 - 0
keys/which-key.vim

@@ -78,6 +78,24 @@ let g:which_key_map.b = {
       \ '?' : ['Buffers'   , 'fzf-buffer']      ,
       \ }
 
+" k is for task
+let g:which_key_map.k = {
+      \ 'name' : '+task' ,
+      \ 'c' : [':AsyncTask file-compile'      , 'compile file'],
+      \ 'b' : [':AsyncTask project-build'     , 'build project'],
+      \ 'e' : [':AsyncTaskEdit'               , 'edit local tasks'],
+      \ 'f' : [':AsyncTaskFzf'                , 'find task'],
+      \ 'g' : [':AsyncTaskEdit!'              , 'edit global tasks'],
+      \ 'h' : [':AsyncTaskList!'              , 'list hidden tasks'],
+      \ 'l' : [':CocList tasks'               , 'list tasks'],
+      \ 'm' : [':AsyncTaskMacro'              , 'macro help'],
+      \ 'o' : [':copen'                       , 'open task view'],
+      \ 'r' : [':AsyncTask file-run'          , 'run file'],
+      \ 'p' : [':AsyncTask project-run'       , 'run project'],
+      \ 'x' : [':cclose'                      , 'close task view'],
+      \ }
+      " \ 'l' : [':AsyncTaskList'               , 'list tasks'],
+
 " s is for search
 let g:which_key_map.s = {
       \ 'name' : '+search' ,
@@ -185,6 +203,7 @@ let g:which_key_map.t = {
       \ 'n' : [':FloatermNew node'                              , 'node'],
       \ 'N' : [':FloatermNew nnn'                               , 'nnn'],
       \ 'p' : [':FloatermNew python'                            , 'python'],
+      \ 'm' : [':FloatermNew lazynpm'                           , 'npm'],
       \ 'r' : [':FloatermNew ranger'                            , 'ranger'],
       \ 't' : [':FloatermToggle'                                , 'toggle'],
       \ 'y' : [':FloatermNew ytop'                              , 'ytop'],

+ 61 - 0
plug-config/asynctask.vim

@@ -1 +1,62 @@
 let g:asyncrun_open = 6
+let g:asynctasks_term_pos = 'bottom'
+" let g:asynctasks_term_pos = 'top'
+" let g:asynctasks_term_pos = 'tab'
+" let g:asynctasks_term_pos = 'external'
+let g:asynctasks_extra_config = ['~/.config/nvim/utils/tasks.ini']
+" let current_tasks = asynctasks#list("")
+
+function! s:fzf_sink(what)
+	let p1 = stridx(a:what, '<')
+	if p1 >= 0
+		let name = strpart(a:what, 0, p1)
+		let name = substitute(name, '^\s*\(.\{-}\)\s*$', '\1', '')
+		if name != ''
+			exec "AsyncTask ". fnameescape(name)
+		endif
+	endif
+endfunction
+
+function! s:fzf_task()
+	let rows = asynctasks#source(&columns * 48 / 100)
+	let source = []
+	for row in rows
+		let name = row[0]
+		let source += [name . '  ' . row[1] . '  : ' . row[2]]
+	endfor
+	let opts = { 'source': source, 'sink': function('s:fzf_sink'),
+				\ 'options': '+m --nth 1 --inline-info --tac' }
+	if exists('g:fzf_layout')
+		for key in keys(g:fzf_layout)
+			let opts[key] = deepcopy(g:fzf_layout[key])
+		endfor
+	endif
+	call fzf#run(opts)
+endfunction
+
+command! -nargs=0 AsyncTaskFzf call s:fzf_task()
+
+" Available Variables
+" $(VIM_FILEPATH)    # File name of current buffer with full path.
+" $(VIM_FILENAME)    # File name of current buffer without path.
+" $(VIM_FILEDIR)     # Full path of current buffer without the file name.
+" $(VIM_FILEEXT)     # File extension of current buffer.
+" $(VIM_FILETYPE)    # File type (value of &ft in vim)
+" $(VIM_FILENOEXT)   # File name of current buffer without path and extension.
+" $(VIM_PATHNOEXT)   # Current file name with full path but without extension.
+" $(VIM_CWD)         # Current directory (which :pwd returns).
+" $(VIM_RELDIR)      # File path relativize to current directory.
+" $(VIM_RELNAME)     # File name relativize to current directory.
+" $(VIM_ROOT)        # Project root directory.
+" $(VIM_CWORD)       # Word under cursor.
+" $(VIM_CFILE)       # File name under cursor.
+" $(VIM_CLINE)       # Cursor line number in current buffer
+" $(VIM_GUI)         # has('gui_runnin')?
+" $(VIM_VERSION)     # Value of v:version.
+" $(VIM_COLUMNS)     # Current screen width.
+" $(VIM_LINES)       # Current screen height.
+" $(VIM_SVRNAME)     # Value of v:servername.
+" $(VIM_PRONAME)     # Name of current project root directory
+" $(VIM_DIRNAME)     # Name of current directory
+" $(VIM_INIFILE)     # Full path name of current ini (.tasks) file.
+" $(VIM_INIHOME)     # Where the ini file locates.

+ 3 - 3
plug-config/start-screen.vim

@@ -1,9 +1,9 @@
 
 let g:startify_custom_header = [
-        \ '       _  __     _         __  ___         __     ___ ',
+        \ '       _  __     _         __  ___         __     ___',
         \ '      / |/ /  __(_)_ _    /  |/  /__ _____/ /    |_  |',
-        \ '     /    / |/ / /  ` \  / /|_/ / _ `/ __/ _ \  / __/ ',
-        \ '    /_/|_/|___/_/_/_/_/ /_/  /_/\_,_/\__/_//_/ /____/ ',
+        \ '     /    / |/ / /  ` \  / /|_/ / _ `/ __/ _ \  / __/',
+        \ '    /_/|_/|___/_/_/_/_/ /_/  /_/\_,_/\__/_//_/ /____/',
         \]
 
 let g:startify_session_dir = '~/.config/nvim/session'

+ 2 - 0
themes/spaceline.vim

@@ -0,0 +1,2 @@
+let g:spaceline_seperate_style= 'none'
+let g:spaceline_colorscheme = 'mach2'

+ 35 - 0
utils/tasks.ini

@@ -0,0 +1,35 @@
+
+[file-compile]
+command:javac="$(VIM_FILEPATH)"
+output=terminal
+cwd=$(VIM_FILEDIR)
+
+[file-run]
+command="$(VIM_FILEPATH)"
+command:c,cpp="$(VIM_PATHNOEXT)"
+command:java="$(VIM_PATHNOEXT)"
+command:go="$(VIM_PATHNOEXT)"
+command:python=python "$(VIM_FILENAME)"
+command:make=make -f "$(VIM_FILENAME)" run
+command:emake=emake -e "$(VIM_FILENAME)"
+command:javascript=node "$(VIM_FILENAME)"
+command:sh=sh "$(VIM_FILENAME)"
+command:lua=lua "$(VIM_FILENAME)"
+command:perl=perl "$(VIM_FILENAME)"
+command:ruby=ruby "$(VIM_FILENAME)"
+command:zsh=zsh "$(VIM_FILENAME)"
+command:bash=bash "$(VIM_FILENAME)"
+command:fish=fish "$(VIM_FILENAME)"
+command:php=php "$(VIM_FILENAME)"
+command:erlang=escript "$(VIM_FILENAME)"
+command:ps1=powershell -file "$(VIM_FILENAME)"
+command:scala=scala "$(VIM_FILENAME)"
+command:haskell=ghci "$(VIM_FILENAME)"
+command:applescript=osascript "$(VIM_FILENAME)"
+command:vim=:source %
+output=terminal
+cwd=$(VIM_FILEDIR)
+save=2
+
+[project-run]
+command:javascript,css,jsx="npm start"

+ 2 - 2
vim-plug/plugins.vim

@@ -10,7 +10,7 @@ call plug#begin('~/.config/nvim/autoload/plugged')
 
   " jsx syntax support
   Plug 'maxmellon/vim-jsx-pretty'
-  
+
   Plug 'suy/vim-context-commentstring'
   " Change dates fast
   Plug 'tpope/vim-speeddating'
@@ -45,7 +45,7 @@ call plug#begin('~/.config/nvim/autoload/plugged')
     Plug 'sheerun/vim-polyglot'
     " Cool Icons
     Plug 'ryanoasis/vim-devicons'
-    " Auto pairs for '(' '[' '{' 
+    " Auto pairs for '(' '[' '{'
     Plug 'jiangmiao/auto-pairs'
     " Closetags
     Plug 'alvan/vim-closetag'