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
				
			
		
			
				
	
	
		
			238 lines
		
	
	
		
			7.0 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
			
		
		
	
	
			238 lines
		
	
	
		
			7.0 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
let s:save_cpo = &cpo
 | 
						|
set cpo&vim
 | 
						|
 | 
						|
function! grammarous#info_win#action_return()
 | 
						|
    call grammarous#move_to_checked_buf(b:grammarous_preview_error.fromy+1, b:grammarous_preview_error.fromx+1)
 | 
						|
endfunction
 | 
						|
 | 
						|
function! grammarous#info_win#action_fixit()
 | 
						|
    call grammarous#fixit(b:grammarous_preview_error)
 | 
						|
endfunction
 | 
						|
 | 
						|
function! grammarous#info_win#action_remove_error()
 | 
						|
    let e = b:grammarous_preview_error
 | 
						|
    if !grammarous#move_to_checked_buf(
 | 
						|
        \ b:grammarous_preview_error.fromy+1,
 | 
						|
        \ b:grammarous_preview_error.fromx+1 )
 | 
						|
        return
 | 
						|
    endif
 | 
						|
 | 
						|
    call grammarous#remove_error(e, b:grammarous_result)
 | 
						|
endfunction
 | 
						|
 | 
						|
function! grammarous#info_win#action_disable_rule()
 | 
						|
    let e = b:grammarous_preview_error
 | 
						|
    if !grammarous#move_to_checked_buf(
 | 
						|
        \ b:grammarous_preview_error.fromy+1,
 | 
						|
        \ b:grammarous_preview_error.fromx+1 )
 | 
						|
        return
 | 
						|
    endif
 | 
						|
 | 
						|
    call grammarous#disable_rule(e.ruleId, b:grammarous_result)
 | 
						|
endfunction
 | 
						|
 | 
						|
function! grammarous#info_win#action_next_error()
 | 
						|
    if !grammarous#move_to_checked_buf(
 | 
						|
        \ b:grammarous_preview_error.fromy+1,
 | 
						|
        \ b:grammarous_preview_error.fromx+1 )
 | 
						|
        return
 | 
						|
    endif
 | 
						|
 | 
						|
    if !grammarous#move_to_next_error(getpos('.')[1 : 2], b:grammarous_result)
 | 
						|
        wincmd p
 | 
						|
    endif
 | 
						|
endfunction
 | 
						|
 | 
						|
function! grammarous#info_win#action_previous_error()
 | 
						|
    if !grammarous#move_to_checked_buf(
 | 
						|
        \ b:grammarous_preview_error.fromy+1,
 | 
						|
        \ b:grammarous_preview_error.fromx+1 )
 | 
						|
        return
 | 
						|
    endif
 | 
						|
 | 
						|
    if !grammarous#move_to_previous_error(getpos('.')[1 : 2], b:grammarous_result)
 | 
						|
        wincmd p
 | 
						|
    endif
 | 
						|
endfunction
 | 
						|
 | 
						|
function! grammarous#info_win#action_help()
 | 
						|
    echo join([
 | 
						|
            \   '| Mappings | Description                                    |',
 | 
						|
            \   '| -------- |:---------------------------------------------- |',
 | 
						|
            \   '|    q     | Quit the info window                           |',
 | 
						|
            \   '|   <CR>   | Move to the location of the error              |',
 | 
						|
            \   '|    f     | Fix the error automatically                    |',
 | 
						|
            \   '|    r     | Remove the error without fix                   |',
 | 
						|
            \   '|    R     | Disable the grammar rule in the checked buffer |',
 | 
						|
            \   '|    n     | Move to the next error                         |',
 | 
						|
            \   '|    p     | Move to the previous error                     |',
 | 
						|
            \ ], "\n")
 | 
						|
endfunction
 | 
						|
 | 
						|
function! s:get_info_buffer(e)
 | 
						|
    let lines = 
 | 
						|
        \ [
 | 
						|
        \   'Error: ' . a:e.category,
 | 
						|
        \   '    ' . a:e.msg,
 | 
						|
        \   '',
 | 
						|
        \ ]
 | 
						|
    if a:e.replacements !=# ''
 | 
						|
        let lines +=
 | 
						|
        \ [
 | 
						|
        \   'Corrections:',
 | 
						|
        \   '    ' . join(split(a:e.replacements, '#', 1), '; '),
 | 
						|
        \   '',
 | 
						|
        \ ]
 | 
						|
    endif
 | 
						|
    let lines +=
 | 
						|
        \ [
 | 
						|
        \   'Context:',
 | 
						|
        \   '    ' . a:e.context,
 | 
						|
        \   '',
 | 
						|
        \   "Press '?' in this window to show help",
 | 
						|
        \ ]
 | 
						|
    return lines
 | 
						|
endfunction
 | 
						|
 | 
						|
function! grammarous#info_win#action_quit()
 | 
						|
    let s:do_not_preview = 1
 | 
						|
    let preview_bufnr = bufnr('%')
 | 
						|
 | 
						|
    quit!
 | 
						|
 | 
						|
    " Consider the case where :quit! does not navigate to the buffer
 | 
						|
    " where :GrammarousCheck checked.
 | 
						|
    for bufnr in tabpagebuflist()
 | 
						|
        let b = getbufvar(bufnr, 'grammarous_preview_bufnr', -1)
 | 
						|
        if b != preview_bufnr
 | 
						|
            continue
 | 
						|
        endif
 | 
						|
 | 
						|
        let winnr = bufwinnr(bufnr)
 | 
						|
        if winnr == -1
 | 
						|
            continue
 | 
						|
        endif
 | 
						|
 | 
						|
        execute winnr . 'wincmd w'
 | 
						|
        unlet b:grammarous_preview_bufnr
 | 
						|
        return
 | 
						|
    endfor
 | 
						|
    " Reach here when the original buffer was already closed
 | 
						|
endfunction
 | 
						|
 | 
						|
function! grammarous#info_win#update(e)
 | 
						|
    let b:grammarous_preview_error = a:e
 | 
						|
    silent normal! gg"_dG
 | 
						|
    silent %delete _
 | 
						|
    call setline(1, s:get_info_buffer(a:e))
 | 
						|
    execute 1
 | 
						|
    setlocal modified
 | 
						|
 | 
						|
    return bufnr('%')
 | 
						|
endfunction
 | 
						|
 | 
						|
function! grammarous#info_win#open(e, bufnr)
 | 
						|
    execute g:grammarous#info_win_direction g:grammarous#info_window_height . 'new' '[Grammarous]'
 | 
						|
    " why need this, the statusline is not update when open info win first
 | 
						|
    " time
 | 
						|
    doautocmd WinEnter
 | 
						|
    let b:grammarous_preview_original_bufnr = a:bufnr
 | 
						|
    let b:grammarous_preview_error = a:e
 | 
						|
    call setline(1, s:get_info_buffer(a:e))
 | 
						|
    execute 1
 | 
						|
    syntax match GrammarousInfoSection "\%(Context\|Correction\):"
 | 
						|
    syntax match GrammarousInfoError "Error:.*$"
 | 
						|
    syntax match GrammarousInfoHelp "^Press '?' in this window to show help$"
 | 
						|
    execute 'syntax match GrammarousError "' . escape(grammarous#generate_highlight_pattern(a:e), '"') . '"'
 | 
						|
    setlocal nonumber
 | 
						|
    setlocal bufhidden=hide
 | 
						|
    setlocal buftype=nofile
 | 
						|
    setlocal readonly
 | 
						|
    setl winfixwidth
 | 
						|
    setl winfixheight
 | 
						|
    setlocal nolist
 | 
						|
    setlocal nobuflisted
 | 
						|
    setlocal noswapfile
 | 
						|
    setlocal nospell
 | 
						|
    setlocal nomodeline
 | 
						|
    setlocal nofoldenable
 | 
						|
    setlocal noreadonly
 | 
						|
    setlocal foldcolumn=0
 | 
						|
    setlocal nomodified
 | 
						|
    nnoremap <silent><buffer>q :<C-u>call grammarous#info_win#action_quit()<CR>
 | 
						|
    nnoremap <silent><buffer><CR> :<C-u>call grammarous#info_win#action_return()<CR>
 | 
						|
    nnoremap <buffer>f :<C-u>call grammarous#info_win#action_fixit()<CR>
 | 
						|
    nnoremap <silent><buffer>r :<C-u>call grammarous#info_win#action_remove_error()<CR>
 | 
						|
    nnoremap <silent><buffer>R :<C-u>call grammarous#info_win#action_disable_rule()<CR>
 | 
						|
    nnoremap <silent><buffer>n :<C-u>call grammarous#info_win#action_next_error()<CR>
 | 
						|
    nnoremap <silent><buffer>p :<C-u>call grammarous#info_win#action_previous_error()<CR>
 | 
						|
    nnoremap <silent><buffer>? :<C-u>call grammarous#info_win#action_help()<CR>
 | 
						|
    return bufnr('%')
 | 
						|
endfunction
 | 
						|
 | 
						|
function! s:lookup_preview_bufnr()
 | 
						|
    for b in tabpagebuflist()
 | 
						|
        let the_buf = getbufvar(b, 'grammarous_preview_bufnr', -1)
 | 
						|
        if the_buf != -1
 | 
						|
            return the_buf
 | 
						|
        endif
 | 
						|
    endfor
 | 
						|
    return -1
 | 
						|
endfunction
 | 
						|
 | 
						|
function! grammarous#info_win#close()
 | 
						|
    let cur_win = winnr()
 | 
						|
    if exists('b:grammarous_preview_bufnr')
 | 
						|
        let prev_win = bufwinnr(b:grammarous_preview_bufnr)
 | 
						|
    else
 | 
						|
        let the_buf = s:lookup_preview_bufnr()
 | 
						|
        if the_buf == -1
 | 
						|
            return 0
 | 
						|
        endif
 | 
						|
        let prev_win = bufwinnr(the_buf)
 | 
						|
    endif
 | 
						|
 | 
						|
    if prev_win == -1
 | 
						|
        return 0
 | 
						|
    end
 | 
						|
 | 
						|
    execute prev_win . 'wincmd w'
 | 
						|
    wincmd c
 | 
						|
    execute cur_win . 'wincmd w'
 | 
						|
 | 
						|
    return 1
 | 
						|
endfunction
 | 
						|
 | 
						|
function! s:do_auto_preview()
 | 
						|
    let mode = mode()
 | 
						|
    if mode ==? 'v' || mode ==# "\<C-v>"
 | 
						|
        return
 | 
						|
    endif
 | 
						|
 | 
						|
    if exists('s:do_not_preview')
 | 
						|
        unlet s:do_not_preview
 | 
						|
        return
 | 
						|
    endif
 | 
						|
 | 
						|
    if !exists('b:grammarous_result') || empty(b:grammarous_result)
 | 
						|
        autocmd! plugin-grammarous-auto-preview
 | 
						|
        return
 | 
						|
    endif
 | 
						|
 | 
						|
    call grammarous#create_update_info_window_of(b:grammarous_result)
 | 
						|
endfunction
 | 
						|
 | 
						|
function! grammarous#info_win#start_auto_preview()
 | 
						|
    augroup plugin-grammarous-auto-preview
 | 
						|
        autocmd!
 | 
						|
        autocmd CursorMoved <buffer> call <SID>do_auto_preview()
 | 
						|
    augroup END
 | 
						|
endfunction
 | 
						|
 | 
						|
function! grammarous#info_win#stop_auto_preview()
 | 
						|
    silent! autocmd! plugin-grammarous-auto-preview
 | 
						|
endfunction
 | 
						|
 | 
						|
let &cpo = s:save_cpo
 | 
						|
unlet s:save_cpo
 |