]> granicus.if.org Git - vim/commitdiff
patch 7.4.2010 v7.4.2010
authorBram Moolenaar <Bram@vim.org>
Sat, 9 Jul 2016 15:56:19 +0000 (17:56 +0200)
committerBram Moolenaar <Bram@vim.org>
Sat, 9 Jul 2016 15:56:19 +0000 (17:56 +0200)
Problem:    There is a :cbottom command but no :lbottom command.
Solution:   Add :lbottom. (Yegappan Lakshmanan)

runtime/doc/index.txt
runtime/doc/quickfix.txt
src/ex_cmds.h
src/quickfix.c
src/testdir/test_quickfix.vim
src/version.c

index f040e5f2bb749235fa6a98ab0aae8f7b0c77d267..7c6734ad2bc5c61b1cb64fa5546da506790881a8 100644 (file)
@@ -1139,6 +1139,7 @@ tag             command         action ~
 |:caddfile|    :caddf[ile]     add error message to current quickfix list
 |:call|                :cal[l]         call a function
 |: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
 |:cc|          :cc             go to specific error
 |:cclose|      :ccl[ose]       close quickfix window
@@ -1299,6 +1300,7 @@ tag             command         action ~
 |:last|                :la[st]         go to the last file in the argument list
 |:language|    :lan[guage]     set the language (locale)
 |: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
 |:lcd|         :lc[d]          change directory locally
 |:lchdir|      :lch[dir]       change directory locally
index 9fb6b18c4182036f6abe10127db4d2beb3e6bc74..7d5db2c67386dfe4592bd160b6f1fcc8dce1f1c0 100644 (file)
@@ -1,4 +1,4 @@
-*quickfix.txt*  For Vim version 7.4.  Last change: 2016 Jul 02
+*quickfix.txt*  For Vim version 7.4.  Last change: 2016 Jul 07
 
 
                  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -437,12 +437,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
                        location list for the current window.
 
+                                                       *:cbo* *:cbottom*
 :cbo[ttom]             Put the cursor in the last line of the quickfix window
                        and scroll to make it visible.  This is useful for
                        when errors are added by an asynchronous callback.
                        Only call it once in a while if there are many
                        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
 vertical splits, it's at the bottom of the rightmost column of windows.  To
 make it always occupy the full width: >
index 8c64d331ad51a691ab8a639a4e91afdc971ae4aa..f57adc0db39766f36bc674e3d5e19a98c81dda69 100644 (file)
@@ -724,6 +724,9 @@ EX(CMD_laddfile,    "laddfile",     ex_cfile,
 EX(CMD_later,          "later",        ex_later,
                        TRLBAR|EXTRA|NOSPC|CMDWIN,
                        ADDR_LINES),
+EX(CMD_lbottom,                "lbottom",      ex_cbottom,
+                       TRLBAR,
+                       ADDR_LINES),
 EX(CMD_lbuffer,                "lbuffer",      ex_cbuffer,
                        BANG|RANGE|NOTADR|WORD1|TRLBAR,
                        ADDR_LINES),
index 45659a024225d8c2fd8bdfa8ffde7b4dc638f48e..92a02041740488c6cec92fc114002bddb8cc7d2c 100644 (file)
@@ -2831,13 +2831,25 @@ qf_win_goto(win_T *win, linenr_T lnum)
 }
 
 /*
- * :cbottom command.
+ * :cbottom/:lbottom commands.
  */
     void
 ex_cbottom(exarg_T *eap UNUSED)
 {
-    win_T *win = qf_find_win(&ql_info);
+    qf_info_T  *qi = &ql_info;
+    win_T      *win;
+
+    if (eap->cmdidx == CMD_lbottom)
+    {
+       qi = GET_LOC_LIST(curwin);
+       if (qi == NULL)
+       {
+           EMSG(_(e_loclist));
+           return;
+       }
+    }
 
+    win = qf_find_win(qi);
     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);
 }
index 01e21106ede1c37738f681d2dc7f8e98529478b1..39f788e4f304973f5ddf2230c4fee9c2db72c1b5 100644 (file)
@@ -15,6 +15,7 @@ function! s:setup_commands(cchar)
     command! -nargs=* Xnewer <mods>cnewer <args>
     command! -nargs=* Xopen <mods>copen <args>
     command! -nargs=* Xwindow <mods>cwindow <args>
+    command! -nargs=* Xbottom <mods>cbottom <args>
     command! -nargs=* Xclose <mods>cclose <args>
     command! -nargs=* -bang Xfile <mods>cfile<bang> <args>
     command! -nargs=* Xgetfile <mods>cgetfile <args>
@@ -44,6 +45,7 @@ function! s:setup_commands(cchar)
     command! -nargs=* Xnewer <mods>lnewer <args>
     command! -nargs=* Xopen <mods>lopen <args>
     command! -nargs=* Xwindow <mods>lwindow <args>
+    command! -nargs=* Xbottom <mods>lbottom <args>
     command! -nargs=* Xclose <mods>lclose <args>
     command! -nargs=* -bang Xfile <mods>lfile<bang> <args>
     command! -nargs=* Xgetfile <mods>lgetfile <args>
@@ -200,6 +202,7 @@ function XwindowTests(cchar)
   Xwindow
   call assert_true(winnr('$') == 2 && winnr() == 2 &&
        \ getline('.') ==# 'Xtestfile1|1 col 3| Line1')
+  redraw!
 
   " Close the window
   Xclose
@@ -1415,15 +1418,23 @@ echo string(loc_two)
   call delete('Xtwo', 'rf')
 endfunc
 
-function Test_cbottom()
-  call setqflist([{'filename': 'foo', 'lnum': 42}]) 
-  copen
+function XbottomTests(cchar)
+  call s:setup_commands(a:cchar)
+
+  call g:Xsetlist([{'filename': 'foo', 'lnum': 42}]) 
+  Xopen
   let wid = win_getid()
   call assert_equal(1, line('.'))
   wincmd w
-  call setqflist([{'filename': 'var', 'lnum': 24}], 'a') 
-  cbottom
+  call g:Xsetlist([{'filename': 'var', 'lnum': 24}], 'a') 
+  Xbottom
   call win_gotoid(wid)
   call assert_equal(2, line('.'))
-  cclose
+  Xclose
 endfunc
+
+" Tests for the :cbottom and :lbottom commands
+function Test_cbottom()
+  call XbottomTests('c')
+  call XbottomTests('l')
+endfunction
index 08675cd467993e0c98c9da813b10516ec4aa0d15..b0969bdf7e38abc7ffddc61f106513d7ca9270e2 100644 (file)
@@ -758,6 +758,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    2010,
 /**/
     2009,
 /**/