mirror of
https://github.com/neovim/neovim.git
synced 2025-09-30 15:08:35 +00:00
vim-patch:7.4.2010
Problem: There is a :cbottom command but no :lbottom command.
Solution: Add :lbottom. (Yegappan Lakshmanan)
537ef08408
This commit is contained in:
@@ -1129,6 +1129,7 @@ tag command action ~
|
|||||||
|:caddfile| :caddf[ile] add error message to current quickfix list
|
|:caddfile| :caddf[ile] add error message to current quickfix list
|
||||||
|:call| :cal[l] call a function
|
|:call| :cal[l] call a function
|
||||||
|:catch| :cat[ch] part of a :try command
|
|:catch| :cat[ch] part of a :try command
|
||||||
|
|:cbottom| :cbo[ttom] scroll to the bottom of the quickfix window
|
||||||
|:cbuffer| :cb[uffer] parse error messages and jump to first error
|
|:cbuffer| :cb[uffer] parse error messages and jump to first error
|
||||||
|:cc| :cc go to specific error
|
|:cc| :cc go to specific error
|
||||||
|:cclose| :ccl[ose] close quickfix window
|
|:cclose| :ccl[ose] close quickfix window
|
||||||
@@ -1286,6 +1287,7 @@ tag command action ~
|
|||||||
|:last| :la[st] go to the last file in the argument list
|
|:last| :la[st] go to the last file in the argument list
|
||||||
|:language| :lan[guage] set the language (locale)
|
|:language| :lan[guage] set the language (locale)
|
||||||
|:later| :lat[er] go to newer change, redo
|
|:later| :lat[er] go to newer change, redo
|
||||||
|
|:lbottom| :lbo[ttom] scroll to the bottom of the location window
|
||||||
|:lbuffer| :lb[uffer] parse locations and jump to first location
|
|:lbuffer| :lb[uffer] parse locations and jump to first location
|
||||||
|:lcd| :lc[d] change directory locally
|
|:lcd| :lc[d] change directory locally
|
||||||
|:lchdir| :lch[dir] change directory locally
|
|:lchdir| :lch[dir] change directory locally
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
*quickfix.txt* For Vim version 7.4. Last change: 2016 Jul 01
|
*quickfix.txt* For Vim version 7.4. Last change: 2016 Jul 07
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -428,12 +428,17 @@ EXECUTE A COMMAND IN ALL THE BUFFERS IN QUICKFIX OR LOCATION LIST:
|
|||||||
:lw[indow] [height] Same as ":cwindow", except use the window showing the
|
:lw[indow] [height] Same as ":cwindow", except use the window showing the
|
||||||
location list for the current window.
|
location list for the current window.
|
||||||
|
|
||||||
|
*:cbo* *:cbottom*
|
||||||
:cbo[ttom] Put the cursor in the last line of the quickfix window
|
:cbo[ttom] Put the cursor in the last line of the quickfix window
|
||||||
and scroll to make it visible. This is useful for
|
and scroll to make it visible. This is useful for
|
||||||
when errors are added by an asynchronous callback.
|
when errors are added by an asynchronous callback.
|
||||||
Only call it once in a while if there are many
|
Only call it once in a while if there are many
|
||||||
updates to avoid a lot of redrawing.
|
updates to avoid a lot of redrawing.
|
||||||
|
|
||||||
|
*:lbo* *:lbottom*
|
||||||
|
:lbo[ttom] Same as ":cbottom", except use the window showing the
|
||||||
|
location list for the current window.
|
||||||
|
|
||||||
Normally the quickfix window is at the bottom of the screen. If there are
|
Normally the quickfix window is at the bottom of the screen. If there are
|
||||||
vertical splits, it's at the bottom of the rightmost column of windows. To
|
vertical splits, it's at the bottom of the rightmost column of windows. To
|
||||||
make it always occupy the full width: >
|
make it always occupy the full width: >
|
||||||
|
@@ -1271,6 +1271,12 @@ return {
|
|||||||
addr_type=ADDR_LINES,
|
addr_type=ADDR_LINES,
|
||||||
func='ex_later',
|
func='ex_later',
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
command='lbottom',
|
||||||
|
flags=bit.bor(TRLBAR),
|
||||||
|
addr_type=ADDR_LINES,
|
||||||
|
func='ex_cbottom',
|
||||||
|
},
|
||||||
{
|
{
|
||||||
command='lbuffer',
|
command='lbuffer',
|
||||||
flags=bit.bor(BANG, RANGE, NOTADR, WORD1, TRLBAR),
|
flags=bit.bor(BANG, RANGE, NOTADR, WORD1, TRLBAR),
|
||||||
|
@@ -2449,10 +2449,20 @@ static void qf_win_goto(win_T *win, linenr_T lnum)
|
|||||||
curbuf = curwin->w_buffer;
|
curbuf = curwin->w_buffer;
|
||||||
}
|
}
|
||||||
|
|
||||||
// :cbottom command.
|
// :cbottom/:lbottom command.
|
||||||
void ex_cbottom(exarg_T *eap)
|
void ex_cbottom(exarg_T *eap)
|
||||||
{
|
{
|
||||||
win_T *win = qf_find_win(&ql_info);
|
qf_info_T *qi = &ql_info;
|
||||||
|
|
||||||
|
if (eap->cmdidx == CMD_lbottom) {
|
||||||
|
qi = GET_LOC_LIST(curwin);
|
||||||
|
if (qi == NULL) {
|
||||||
|
EMSG(_(e_loclist));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
win_T *win = qf_find_win(qi);
|
||||||
|
|
||||||
if (win != NULL && win->w_cursor.lnum != win->w_buffer->b_ml.ml_line_count) {
|
if (win != NULL && win->w_cursor.lnum != win->w_buffer->b_ml.ml_line_count) {
|
||||||
qf_win_goto(win, win->w_buffer->b_ml.ml_line_count);
|
qf_win_goto(win, win->w_buffer->b_ml.ml_line_count);
|
||||||
|
@@ -15,6 +15,7 @@ function! s:setup_commands(cchar)
|
|||||||
command! -nargs=* Xnewer <mods>cnewer <args>
|
command! -nargs=* Xnewer <mods>cnewer <args>
|
||||||
command! -nargs=* Xopen <mods>copen <args>
|
command! -nargs=* Xopen <mods>copen <args>
|
||||||
command! -nargs=* Xwindow <mods>cwindow <args>
|
command! -nargs=* Xwindow <mods>cwindow <args>
|
||||||
|
command! -nargs=* Xbottom <mods>cbottom <args>
|
||||||
command! -nargs=* Xclose <mods>cclose <args>
|
command! -nargs=* Xclose <mods>cclose <args>
|
||||||
command! -nargs=* -bang Xfile <mods>cfile<bang> <args>
|
command! -nargs=* -bang Xfile <mods>cfile<bang> <args>
|
||||||
command! -nargs=* Xgetfile <mods>cgetfile <args>
|
command! -nargs=* Xgetfile <mods>cgetfile <args>
|
||||||
@@ -44,6 +45,7 @@ function! s:setup_commands(cchar)
|
|||||||
command! -nargs=* Xnewer <mods>lnewer <args>
|
command! -nargs=* Xnewer <mods>lnewer <args>
|
||||||
command! -nargs=* Xopen <mods>lopen <args>
|
command! -nargs=* Xopen <mods>lopen <args>
|
||||||
command! -nargs=* Xwindow <mods>lwindow <args>
|
command! -nargs=* Xwindow <mods>lwindow <args>
|
||||||
|
command! -nargs=* Xbottom <mods>lbottom <args>
|
||||||
command! -nargs=* Xclose <mods>lclose <args>
|
command! -nargs=* Xclose <mods>lclose <args>
|
||||||
command! -nargs=* -bang Xfile <mods>lfile<bang> <args>
|
command! -nargs=* -bang Xfile <mods>lfile<bang> <args>
|
||||||
command! -nargs=* Xgetfile <mods>lgetfile <args>
|
command! -nargs=* Xgetfile <mods>lgetfile <args>
|
||||||
@@ -200,6 +202,7 @@ function XwindowTests(cchar)
|
|||||||
Xwindow
|
Xwindow
|
||||||
call assert_true(winnr('$') == 2 && winnr() == 2 &&
|
call assert_true(winnr('$') == 2 && winnr() == 2 &&
|
||||||
\ getline('.') ==# 'Xtestfile1|1 col 3| Line1')
|
\ getline('.') ==# 'Xtestfile1|1 col 3| Line1')
|
||||||
|
redraw!
|
||||||
|
|
||||||
" Close the window
|
" Close the window
|
||||||
Xclose
|
Xclose
|
||||||
@@ -1397,15 +1400,23 @@ echo string(loc_two)
|
|||||||
call delete('Xtwo', 'rf')
|
call delete('Xtwo', 'rf')
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
function Test_cbottom()
|
function XbottomTests(cchar)
|
||||||
call setqflist([{'filename': 'foo', 'lnum': 42}])
|
call s:setup_commands(a:cchar)
|
||||||
copen
|
|
||||||
|
call g:Xsetlist([{'filename': 'foo', 'lnum': 42}])
|
||||||
|
Xopen
|
||||||
let wid = win_getid()
|
let wid = win_getid()
|
||||||
call assert_equal(1, line('.'))
|
call assert_equal(1, line('.'))
|
||||||
wincmd w
|
wincmd w
|
||||||
call setqflist([{'filename': 'var', 'lnum': 24}], 'a')
|
call g:Xsetlist([{'filename': 'var', 'lnum': 24}], 'a')
|
||||||
cbottom
|
Xbottom
|
||||||
call win_gotoid(wid)
|
call win_gotoid(wid)
|
||||||
call assert_equal(2, line('.'))
|
call assert_equal(2, line('.'))
|
||||||
cclose
|
Xclose
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
" Tests for the :cbottom and :lbottom commands
|
||||||
|
function Test_cbottom()
|
||||||
|
call XbottomTests('c')
|
||||||
|
call XbottomTests('l')
|
||||||
|
endfunction
|
||||||
|
@@ -430,7 +430,7 @@ static int included_patches[] = {
|
|||||||
2013,
|
2013,
|
||||||
2012,
|
2012,
|
||||||
2011,
|
2011,
|
||||||
// 2010,
|
2010,
|
||||||
// 2009,
|
// 2009,
|
||||||
// 2008,
|
// 2008,
|
||||||
2007,
|
2007,
|
||||||
|
Reference in New Issue
Block a user