Some checks failed
		
		
	
	Detach Plugins / check (FlyGrep.vim) (push) Has been cancelled
				
			Detach Plugins / check (GitHub.vim) (push) Has been cancelled
				
			Detach Plugins / check (JavaUnit.vim) (push) Has been cancelled
				
			Detach Plugins / check (SourceCounter.vim) (push) Has been cancelled
				
			Detach Plugins / check (cpicker.nvim) (push) Has been cancelled
				
			Detach Plugins / check (dein-ui.vim) (push) Has been cancelled
				
			Detach Plugins / check (git.vim) (push) Has been cancelled
				
			Detach Plugins / check (iedit.vim) (push) Has been cancelled
				
			Detach Plugins / check (scrollbar.vim) (push) Has been cancelled
				
			Detach Plugins / check (vim-chat) (push) Has been cancelled
				
			Detach Plugins / check (vim-cheat) (push) Has been cancelled
				
			Detach Plugins / check (vim-todo) (push) Has been cancelled
				
			Detach Plugins / check (xmake.vim) (push) Has been cancelled
				
			test / Linux (nvim, nightly) (push) Has been cancelled
				
			test / Linux (nvim, v0.3.8) (push) Has been cancelled
				
			test / Linux (nvim, v0.4.0) (push) Has been cancelled
				
			test / Linux (nvim, v0.4.2) (push) Has been cancelled
				
			test / Linux (nvim, v0.4.3) (push) Has been cancelled
				
			test / Linux (nvim, v0.4.4) (push) Has been cancelled
				
			test / Linux (nvim, v0.5.0) (push) Has been cancelled
				
			test / Linux (nvim, v0.5.1) (push) Has been cancelled
				
			test / Linux (nvim, v0.6.0) (push) Has been cancelled
				
			test / Linux (nvim, v0.6.1) (push) Has been cancelled
				
			test / Linux (nvim, v0.7.0) (push) Has been cancelled
				
			test / Linux (nvim, v0.7.2) (push) Has been cancelled
				
			test / Linux (nvim, v0.8.0) (push) Has been cancelled
				
			test / Linux (nvim, v0.8.1) (push) Has been cancelled
				
			test / Linux (nvim, v0.8.2) (push) Has been cancelled
				
			test / Linux (nvim, v0.8.3) (push) Has been cancelled
				
			test / Linux (nvim, v0.9.0) (push) Has been cancelled
				
			test / Linux (nvim, v0.9.1) (push) Has been cancelled
				
			test / Linux (true, vim, v7.4.052) (push) Has been cancelled
				
			test / Linux (true, vim, v7.4.1689) (push) Has been cancelled
				
			test / Linux (true, vim, v7.4.629) (push) Has been cancelled
				
			test / Linux (true, vim, v8.0.0027) (push) Has been cancelled
				
			test / Linux (true, vim, v8.0.0183) (push) Has been cancelled
				
			test / Linux (vim, nightly) (push) Has been cancelled
				
			test / Linux (vim, v8.0.0184) (push) Has been cancelled
				
			test / Linux (vim, v8.0.1453) (push) Has been cancelled
				
			test / Linux (vim, v8.1.2269) (push) Has been cancelled
				
			test / Linux (vim, v8.2.2434) (push) Has been cancelled
				
			test / Linux (vim, v8.2.3995) (push) Has been cancelled
				
			test / Windows (nvim, nightly) (push) Has been cancelled
				
			test / Windows (nvim, v0.3.8) (push) Has been cancelled
				
			test / Windows (nvim, v0.4.2) (push) Has been cancelled
				
			test / Windows (nvim, v0.4.3) (push) Has been cancelled
				
			test / Windows (nvim, v0.4.4) (push) Has been cancelled
				
			test / Windows (nvim, v0.5.0) (push) Has been cancelled
				
			test / Windows (nvim, v0.5.1) (push) Has been cancelled
				
			test / Windows (nvim, v0.6.0) (push) Has been cancelled
				
			test / Windows (nvim, v0.6.1) (push) Has been cancelled
				
			test / Windows (nvim, v0.7.0) (push) Has been cancelled
				
			test / Windows (nvim, v0.7.2) (push) Has been cancelled
				
			test / Windows (nvim, v0.8.0) (push) Has been cancelled
				
			test / Windows (nvim, v0.8.1) (push) Has been cancelled
				
			test / Windows (nvim, v0.8.2) (push) Has been cancelled
				
			test / Windows (nvim, v0.8.3) (push) Has been cancelled
				
			test / Windows (nvim, v0.9.0) (push) Has been cancelled
				
			test / Windows (nvim, v0.9.1) (push) Has been cancelled
				
			test / Windows (vim, nightly) (push) Has been cancelled
				
			test / Windows (vim, v7.4.1185) (push) Has been cancelled
				
			test / Windows (vim, v7.4.1689) (push) Has been cancelled
				
			test / Windows (vim, v8.0.0027) (push) Has been cancelled
				
			test / Windows (vim, v8.0.1453) (push) Has been cancelled
				
			test / Windows (vim, v8.1.2269) (push) Has been cancelled
				
			test / Windows (vim, v8.2.2434) (push) Has been cancelled
				
			test / Windows (vim, v8.2.3995) (push) Has been cancelled
				
			docker / docker (push) Has been cancelled
				
			mirror / check (coding) (push) Has been cancelled
				
			mirror / check (gitee) (push) Has been cancelled
				
			mirror / check (gitlab) (push) Has been cancelled
				
			
		
			
				
	
	
		
			87 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			87 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
---
 | 
						|
title: "job API"
 | 
						|
description: "job API provides some basic functions for running a job"
 | 
						|
---
 | 
						|
 | 
						|
# [Available APIs](../) >> job
 | 
						|
 | 
						|
<!-- vim-markdown-toc GFM -->
 | 
						|
 | 
						|
- [Intro](#intro)
 | 
						|
- [Functions](#functions)
 | 
						|
 | 
						|
<!-- vim-markdown-toc -->
 | 
						|
 | 
						|
## Intro
 | 
						|
 | 
						|
job api provides a async job control api for vim and neovim.
 | 
						|
 | 
						|
```vim
 | 
						|
let s:JOB = SpaceVim#api#import('job')
 | 
						|
 | 
						|
function! s:on_stdout(id, data, event) abort
 | 
						|
   " do something with stdout
 | 
						|
endfunction
 | 
						|
 | 
						|
function! s:on_stderr(id, data, event) abort
 | 
						|
  " do something with stderr
 | 
						|
endfunction
 | 
						|
 | 
						|
function! s:on_exit(id, data, event) abort
 | 
						|
  " handle exit code
 | 
						|
endfunction
 | 
						|
 | 
						|
let cmd = ['python', 'test.py']
 | 
						|
 | 
						|
call s:JOB.start(cmd,
 | 
						|
    \ {
 | 
						|
    \ 'on_stdout' : function('s:on_stdout'),
 | 
						|
    \ 'on_stderr' : function('s:on_stderr'),
 | 
						|
    \ 'on_exit' : function('s:on_exit'),
 | 
						|
    \ }
 | 
						|
    \ )
 | 
						|
```
 | 
						|
 | 
						|
 | 
						|
The lua job api:
 | 
						|
 | 
						|
```lua
 | 
						|
local job = require('spacevim.api.job')
 | 
						|
 | 
						|
local jobid = job.start({'lua53', '-'}, {
 | 
						|
  -- the on_stdout and on_stderr function can be:
 | 
						|
  -- fun(id, data) end or fun(id, data, event) end
 | 
						|
  on_stdout = function(id, data)
 | 
						|
    vim.print(id)
 | 
						|
    vim.print(vim.inspect(data))
 | 
						|
  end,
 | 
						|
  on_stderr = function(id, data)
 | 
						|
    vim.print(id)
 | 
						|
    vim.print(vim.inspect(data))
 | 
						|
  end,
 | 
						|
  on_exit = function(id, code, signal)
 | 
						|
    vim.print(id)
 | 
						|
    vim.print('exit code', code)
 | 
						|
    vim.print('exit signal', signal)
 | 
						|
  end,
 | 
						|
})
 | 
						|
 | 
						|
 | 
						|
job.send(jobid, 'print(1)\n')
 | 
						|
job.send(jobid, 'print(1)\n')
 | 
						|
job.send(jobid, 'print(1)\n')
 | 
						|
job.send(jobid, 'print(1)\n')
 | 
						|
job.chanclose(jobid, 'stdin')
 | 
						|
job.stop(jobid)
 | 
						|
```
 | 
						|
 | 
						|
## Functions
 | 
						|
 | 
						|
| function name      | description                                        |
 | 
						|
| ------------------ | -------------------------------------------------- |
 | 
						|
| `start(cmd, argv)` | start a job, return the job id                     |
 | 
						|
| `send(id, data)`   | send data to a job                                 |
 | 
						|
| `stop(id)`         | stop a jobe with specific job id                   |
 | 
						|
| `status(id)`       | check the status of a job with the specific job id |
 | 
						|
| `list()`           | list all the jobs                                  |
 |