Hello community,
here is the log from the commit of package vim-plugins for openSUSE:Factory checked in at 2016-06-03 16:38:25
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/vim-plugins (Old)
and /work/SRC/openSUSE:Factory/.vim-plugins.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "vim-plugins"
Changes:
--------
--- /work/SRC/openSUSE:Factory/vim-plugins/vim-plugins.changes 2015-12-01 09:18:57.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.vim-plugins.new/vim-plugins.changes 2016-06-03 16:38:26.000000000 +0200
@@ -1,0 +2,25 @@
+Thu Apr 28 09:18:24 UTC 2016 - nicolas.bock@suse.com
+
+- Add vim-plugin-fugitive
+
+-------------------------------------------------------------------
+Tue Feb 23 12:35:50 UTC 2016 - astieger@suse.com
+
+- update vim-plugin-ack to 1.0.9:
+ * Fix location list and layout of quickfix when using Dispatch
+ * Fix the quick help overlay clobbering the list mappings
+ * Fix :AckFile when using Dispatch
+ * Restore original 'makeprg' and 'errorformat' when using Dispatch
+ * Arrow keys also work for auto-preview
+ * Internal refactoring and clean-up
+- update vim-plugin-ag to current git head:
+ * can now work on project root
+ * prevent empty searches
+- update vim-plugin-editorconfig to 0.3.3
+
+-------------------------------------------------------------------
+Fri Dec 11 14:29:18 UTC 2015 - astieger@suse.com
+
+- add vim-plugin-editorconfig supporting EditorConfig
+
+-------------------------------------------------------------------
Old:
----
vimplugin-ack-1.0.8.tar.gz
vimplugin-ag-20150518.tar.bz2
New:
----
vimplugin-ack-1.0.9.tar.gz
vimplugin-ag-20160213.tar.gz
vimplugin-editorconfig-0.3.3.tar.gz
vimplugin-fugitive-2.2.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ vim-plugins.spec ++++++
--- /var/tmp/diff_new_pack.8G5HxF/_old 2016-06-03 16:38:28.000000000 +0200
+++ /var/tmp/diff_new_pack.8G5HxF/_new 2016-06-03 16:38:28.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package vim-plugins
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -47,8 +47,11 @@
%define gitdiff_version 2
%define snipmate_version 0.83
%define rails_version 4.4
-%define ack_version 1.0.8
-%define ag_version 20150518
+%define ack_version 1.0.9
+%define ag_version 20160213
+%define ag_commit 994c27dd8f237573208548e7480e39b24ccbbfba
+%define editorconfig_version 0.3.3
+%define fugitive_version 2.2
Name: vim-plugins
Version: 7.2.22
@@ -89,7 +92,9 @@
Source30: vimplugin-snipmate-%{snipmate_version}.tar.bz2
Source31: vimplugin-rails-%{rails_version}.tar.bz2
Source32: https://github.com/mileszs/ack.vim/archive/%{ack_version}.tar.gz#/vimplugin-ack-%{ack_version}.tar.gz
-Source33: vimplugin-ag-%{ag_version}.tar.bz2
+Source33: https://github.com/rking/ag.vim/archive/%{ag_commit}.tar.gz#/vimplugin-ag-%{ag_version}.tar.gz
+Source34: https://github.com/editorconfig/editorconfig-vim/archive/v%{editorconfig_version}.tar.gz#/vimplugin-editorconfig-%{editorconfig_version}.tar.gz
+Source35: https://github.com/tpope/vim-fugitive/archive/v%{fugitive_version}.tar.gz#/vimplugin-fugitive-%{fugitive_version}.tar.gz
Source100: https://raw.githubusercontent.com/openSUSE/pack-tools/master/contrib/vim/spe...
Patch1: locateopen-1.3-locate-support.patch
BuildRequires: vim
@@ -561,8 +566,38 @@
%description -n vim-plugin-ag
Run the ack search tool from Vim, with enhanced results listing.
+%package -n vim-plugin-editorconfig
+
+Version: %editorconfig_version
+Release: 0
+Summary: EditorConfig plugin for Vim
+License: BSD-2-Clause
+Group: Productivity/Text/Editors
+Requires: editorconfig
+
+%description -n vim-plugin-editorconfig
+EditorConfig helps developers define and maintain consistent coding styles between
+different editors and IDEs. The EditorConfig project consists of a file format for
+defining coding styles and a collection of text editor plugins that enable editors
+to read the file format and adhere to defined styles. EditorConfig files are
+easily readable and they work nicely with version control systems.
+
+This package contains a Vim plugin to support EditorConfig.
+
+%package -n vim-plugin-fugitive
+
+Version: %fugitive_version
+Release: 0
+Summary: Fugitive plugin for Vim
+License: Vim
+Group: Productivity/Text/Editors
+Requires: git-core
+
+%description -n vim-plugin-fugitive
+Provides git integration with vim.
+
%prep
-%setup -q -c -n %{name} -a1 -a2 -a3 -a4 -a5 -a6 -a7 -a9 -a10 -a11 -a12 -a13 -a14 -a15 -a16 -a17 -a18 -a19 -a20 -a21 -a22 -a23 -a24 -a25 -a26 -a27 -a28 -a29 -a30 -a31 -a32 -a33
+%setup -q -c -n %{name} -a1 -a2 -a3 -a4 -a5 -a6 -a7 -a9 -a10 -a11 -a12 -a13 -a14 -a15 -a16 -a17 -a18 -a19 -a20 -a21 -a22 -a23 -a24 -a25 -a26 -a27 -a28 -a29 -a30 -a31 -a32 -a33 -a34 -a35
# ------- patch locateopen ------
pushd vimplugin-locateopen-%locateopen_version
%patch1
@@ -585,6 +620,25 @@
cp -a autoload doc plugin %{buildroot}/%{vimplugin_dir}
# vim-plugin-latext creates ftplugin
cp -a ftplugin/qf.vim %{buildroot}%{vimplugin_dir}/ftplugin/
+popd
+# vim-plugin-ag
+pushd ag.vim-%{ag_commit}
+cp -a autoload doc plugin %{buildroot}/%{vimplugin_dir}
+popd
+
+# vim-plugin-editorconfig
+pushd editorconfig-vim-%{editorconfig_version}
+rm -rf plugin/editorconfig-core-py/ tests/
+rm mkzip.sh README.md LICENSE CONTRIBUTORS
+mkdir -p %buildroot/%vimplugin_dir
+cp -a * %buildroot/%vimplugin_dir/
+popd
+
+# vim-plugin-fugitive
+pushd vim-fugitive-%{fugitive_version}
+mkdir -p %buildroot/%vimplugin_dir
+cp -a plugin doc %{buildroot}/%{vimplugin_dir}
+popd
cp %{SOURCE100} %{buildroot}/%vimplugin_dir/snippets/
@@ -819,6 +873,26 @@
vim -u NONE -U NONE -X -n '+set nobackup nomore' '+helptags %vimplugin_dir/doc/' '+qa!' < /dev/null &> /dev/null
fi
+# documentation: vim-plugin-editorconfig
+
+%post -n vim-plugin-editorconfig
+vim -u NONE -U NONE -X -n '+set nobackup nomore' '+helptags %vimplugin_dir/doc/' '+qa!' < /dev/null &> /dev/null
+
+%postun -n vim-plugin-editorconfig
+if [ $1 == 0 ]; then
+ vim -u NONE -U NONE -X -n '+set nobackup nomore' '+helptags %vimplugin_dir/doc/' '+qa!' < /dev/null &> /dev/null
+fi
+
+# documentation: vim-plugin-fugitive
+
+%post -n vim-plugin-fugitive
+vim -u NONE -U NONE -X -n '+set nobackup nomore' '+helptags %vimplugin_dir/doc/' '+qa!' < /dev/null &> /dev/null
+
+%postun -n vim-plugin-fugitive
+if [ $1 == 0 ]; then
+ vim -u NONE -U NONE -X -n '+set nobackup nomore' '+helptags %vimplugin_dir/doc/' '+qa!' < /dev/null &> /dev/null
+fi
+
%post
vim -u NONE -U NONE -X -n '+set nobackup nomore' '+helptags %vimplugin_dir/doc/' '+qa!' < /dev/null &> /dev/null
@@ -1033,4 +1107,15 @@
%vimplugin_dir/autoload/ag.vim
%vimplugin_dir/doc/ag.txt
+%files -n vim-plugin-editorconfig
+%defattr(-,root,root,0755)
+%vimplugin_dir/plugin/editorconfig.vim
+%vimplugin_dir/autoload/editorconfig.vim
+%vimplugin_dir/doc/editorconfig.txt
+
+%files -n vim-plugin-fugitive
+%defattr(-,root,root,0755)
+%vimplugin_dir/plugin/fugitive.vim
+%vimplugin_dir/doc/fugitive.txt
+
%changelog
++++++ vimplugin-ack-1.0.8.tar.gz -> vimplugin-ack-1.0.9.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ack.vim-1.0.8/LICENSE new/ack.vim-1.0.9/LICENSE
--- old/ack.vim-1.0.8/LICENSE 1970-01-01 01:00:00.000000000 +0100
+++ new/ack.vim-1.0.9/LICENSE 2016-01-22 14:20:37.000000000 +0100
@@ -0,0 +1,89 @@
+ack.vim is distributed under the same license terms as Vim itself, which you
+can find in full with `:help license` within Vim, or copied in full herein.
+
+Copyright (c) 2007-2015 Antoine Imbert
+ and contributors.
+
+Maintainers may be contacted via GitHub Issues at:
+
+ https://github.com/mileszs/ack.vim/issues
+
+
+VIM LICENSE
+
+I) There are no restrictions on distributing unmodified copies of Vim except
+ that they must include this license text. You can also distribute
+ unmodified parts of Vim, likewise unrestricted except that they must
+ include this license text. You are also allowed to include executables
+ that you made from the unmodified Vim sources, plus your own usage
+ examples and Vim scripts.
+
+II) It is allowed to distribute a modified (or extended) version of Vim,
+ including executables and/or source code, when the following four
+ conditions are met:
+ 1) This license text must be included unmodified.
+ 2) The modified Vim must be distributed in one of the following five ways:
+ a) If you make changes to Vim yourself, you must clearly describe in
+ the distribution how to contact you. When the maintainer asks you
+ (in any way) for a copy of the modified Vim you distributed, you
+ must make your changes, including source code, available to the
+ maintainer without fee. The maintainer reserves the right to
+ include your changes in the official version of Vim. What the
+ maintainer will do with your changes and under what license they
+ will be distributed is negotiable. If there has been no negotiation
+ then this license, or a later version, also applies to your changes.
+ The current maintainer is Bram Moolenaar . If this
+ changes it will be announced in appropriate places (most likely
+ vim.sf.net, www.vim.org and/or comp.editors). When it is completely
+ impossible to contact the maintainer, the obligation to send him
+ your changes ceases. Once the maintainer has confirmed that he has
+ received your changes they will not have to be sent again.
+ b) If you have received a modified Vim that was distributed as
+ mentioned under a) you are allowed to further distribute it
+ unmodified, as mentioned at I). If you make additional changes the
+ text under a) applies to those changes.
+ c) Provide all the changes, including source code, with every copy of
+ the modified Vim you distribute. This may be done in the form of a
+ context diff. You can choose what license to use for new code you
+ add. The changes and their license must not restrict others from
+ making their own changes to the official version of Vim.
+ d) When you have a modified Vim which includes changes as mentioned
+ under c), you can distribute it without the source code for the
+ changes if the following three conditions are met:
+ - The license that applies to the changes permits you to distribute
+ the changes to the Vim maintainer without fee or restriction, and
+ permits the Vim maintainer to include the changes in the official
+ version of Vim without fee or restriction.
+ - You keep the changes for at least three years after last
+ distributing the corresponding modified Vim. When the maintainer
+ or someone who you distributed the modified Vim to asks you (in
+ any way) for the changes within this period, you must make them
+ available to him.
+ - You clearly describe in the distribution how to contact you. This
+ contact information must remain valid for at least three years
+ after last distributing the corresponding modified Vim, or as long
+ as possible.
+ e) When the GNU General Public License (GPL) applies to the changes,
+ you can distribute the modified Vim under the GNU GPL version 2 or
+ any later version.
+ 3) A message must be added, at least in the output of the ":version"
+ command and in the intro screen, such that the user of the modified Vim
+ is able to see that it was modified. When distributing as mentioned
+ under 2)e) adding the message is only required for as far as this does
+ not conflict with the license used for the changes.
+ 4) The contact information as required under 2)a) and 2)d) must not be
+ removed or changed, except that the person himself can make
+ corrections.
+
+III) If you distribute a modified version of Vim, you are encouraged to use
+ the Vim license for your changes and make them available to the
+ maintainer, including the source code. The preferred way to do this is
+ by e-mail or by uploading the files to a server and e-mailing the URL.
+ If the number of changes is small (e.g., a modified Makefile) e-mailing a
+ context diff will do. The e-mail address to be used is
+
+
+IV) It is not allowed to remove this license from the distribution of the Vim
+ sources, parts of it or from a modified version. You may use this
+ license for previous Vim releases instead of the license that they came
+ with, at your option.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ack.vim-1.0.8/README.md new/ack.vim-1.0.9/README.md
--- old/ack.vim-1.0.8/README.md 2014-06-11 18:59:35.000000000 +0200
+++ new/ack.vim-1.0.9/README.md 2016-01-22 14:20:37.000000000 +0100
@@ -1,131 +1,148 @@
# ack.vim
-This plugin is a front for the Perl module
-[App::Ack](http://search.cpan.org/~petdance/ack/ack). Ack can be used as a
-replacement for 99% of the uses of _grep_. This plugin will allow you to run
-ack from vim, and shows the results in a split window.
+Run your favorite search tool from Vim, with an enhanced results list.
+
+This plugin was designed as a Vim frontend for the Perl module [App::Ack]. Ack
+can be used as a replacement for 99% of the uses of _grep_. The plugin allows
+you to run ack from Vim, and shows the results in a split window.
+
+But here's a little secret for the Vim-seasoned: it's just a light wrapper for
+Vim's [grepprg] and the [quickfix] window for match results. This makes it easy
+to integrate with your own Vim configuration and use existing knowledge of core
+features. It also means the plugin is flexible to use with other search tools.
+
+[App::Ack]: http://search.cpan.org/~petdance/ack/ack
+[grepprg]: http://vimdoc.sourceforge.net/htmldoc/options.html#'grepprg'
+[quickfix]: http://vimdoc.sourceforge.net/htmldoc/quickfix.html#quickfix
## Installation
### Ack
-You will need the ack(>= 2.0), of course, to install it follow the
-[manual](http://beyondgrep.com/install/)
+You will need ack (>= 2.0), of course. To install it follow the
+[manual](http://beyondgrep.com/install/).
### The Plugin
-To install it is recommended to use one of the popular package managers for Vim,
-rather than installing by drag and drop all required files into your `.vim` folder.
+It is recommended to use one of the popular plugin managers for Vim. There are
+many and you probably already have a preferred one, but a few examples for your
+copy-and-paste convenience:
-#### Manual (not recommended)
+#### Pathogen
-Just
-[download](https://github.com/mileszs/ack.vim/archive/kb-improve-readme.zip) the
-plugin and put it in your `~/.vim/`(or `%PROGRAMFILES%/Vim/vimfiles` on windows)
+ $ git clone https://github.com/mileszs/ack.vim.git ~/.vim/bundle/ack.vim
#### Vundle
- Bundle 'mileszs/ack.vim'
+```vim
+Plugin 'mileszs/ack.vim'
+```
#### NeoBundle
- NeoBundle 'mileszs/ack.vim'
+```vim
+NeoBundle 'mileszs/ack.vim'
+```
+
+#### Manual (not recommended)
+
+[Download][releases] the plugin and extract it in `~/.vim/` (or
+`%PROGRAMFILES%/Vim/vimfiles` on Windows).
+
+[zipball]: https://github.com/mileszs/ack.vim/archive/master.zip
## Usage
:Ack [options] {pattern} [{directories}]
-Search recursively in {directory} (which defaults to the current directory) for
-the {pattern}.
+Search recursively in `{directories}` (which defaults to the current directory)
+for the `{pattern}`.
+
+Files containing the search term will be listed in the quickfix window, along
+with the line number of the occurrence, once for each occurrence. `<Enter>` on
+a line in this window will open the file, and place the cursor on the matching
+line.
-Files containing the search term will be listed in the split window, along with
-the line number of the occurrence, once for each occurrence. [Enter] on a line
-in this window will open the file, and place the cursor on the matching line.
-
-Just like where you use :grep, :grepadd, :lgrep, and :lgrepadd, you can use
-`:Ack`, `:AckAdd`, `:LAck`, and `:LAckAdd` respectively.
-(See `doc/ack.txt`, or install and `:h Ack` for more information.)
+Just like where you use `:grep`, `:grepadd`, `:lgrep`, and :`lgrepadd`, you can
+use `:Ack`, `:AckAdd`, `:LAck`, and `:LAckAdd` respectively. (See `:help Ack`
+after installing, or [`doc/ack.txt`][doc] in the repo, for more information.)
-For more ack options see
-[ack documentation](http://beyondgrep.com/documentation/)
+For more ack help see [ack documentation](http://beyondgrep.com/documentation/).
+
+[doc]: https://github.com/mileszs/ack.vim/blob/master/doc/ack.txt
### Keyboard Shortcuts
-In the quickfix window, you can use:
+The quickfix results window is augmented with these convenience mappings:
- o to open (same as enter)
- O to open and close quickfix window
- go to preview file (open but maintain focus on ack.vim results)
+ ? a quick summary of these keys, repeat to close
+ o to open (same as Enter)
+ O to open and close the quickfix window
+ go to preview file, open but maintain focus on ack.vim results
t to open in new tab
- T to open in new tab silently
+ T to open in new tab without moving to it
h to open in horizontal split
- H to open in horizontal split silently
+ H to open in horizontal split, keeping focus on the results
v to open in vertical split
- gv to open in vertical split silently
+ gv to open in vertical split, keeping focus on the results
q to close the quickfix window
-This Vim plugin is derived (and by derived, I mean copied, essentially) from
-Antoine Imbert's blog post
-[Ack and Vim Integration](http://blog.ant0ine.com/typepad/2007/03/ack-and-vim-integration.html)
-(in particular, the function at the bottom of the post). I added a help file that
-provides just enough reference to get you going. I also highly recommend you
-check out the docs for the Perl script 'ack', for obvious reasons:
-[ack - grep-like text finder](http://beyondgrep.com/).
-
### Gotchas
-Some characters have special meaning, and need to be escaped your search
-pattern. For instance, '#'. You have to escape it like this `:Ack '\\\#define
-foo'` to search for '#define foo'. (From blueyed in issue #5.)
-
-## Changelog
-
-### 1.0
+Some characters have special meaning, and need to be escaped in your search
+pattern. For instance, `#`. You need to escape it with `:Ack '\\\#define
+foo'` to search for '#define foo'. See [issue #5].
-* Remove support to ack 1.x
-* Start to use a Changelog
-* Use `autoload` directory to define functions, instead of `plugin`.
-* Add option to auto fold the results(`g:ack_autofold_results`)
-* Improve documentation, list all options and shortcuts
-* Improve highlight option to work when passes directories or use quotes.
-* Add g:ack_mapping
-* Add g:ack_default_options
-* Add a help toggle `?`(like NERDTree)
+[issue #5]: https://github.com/mileszs/ack.vim/issues/5
-### 1.0.1
+## Possibly FAQ
-* Fixes #124. Bug with `g:ack_autofold_results`
+#### Can I use `ag` ([The Silver Searcher]) with this?
-### 1.0.2
+Absolutely, and probably other tools if their output is similar or you can
+write a pattern match for it--just set `g:ackprg`. If you like, you can fall
+back to Ack in case you use your vimrc on a system without Ag available:
-* Add compatibility with [vim-dispatch](https://github.com/tpope/vim-dispatch)
+```vim
+if executable('ag')
+ let g:ackprg = 'ag --vimgrep'
+endif
+```
-### 1.0.3
+Since Ack is quite portable you might check a copy of it into your dotfiles
+repository in `~/bin` so you'll nearly always have it available.
-* Fixes #127. Use `&l:hlsearch` instead of `v:hlsearch` to keep compatibility
-with versions that does not have this variable.
+#### What's the difference from ag.vim?
-### 1.0.4
+Well... not a lot really.
-* Fixes #128. Always apply mappings, even when using vim-dispatch.
+Present maintainer, yours truly, [kind of wishes they never forked][sadface],
+contributes to both, and wouldn't mind seeing them merged again. ag.vim got a
+nice code clean-up (which ack.vim is now hopefully getting), and ack.vim picked
+up a few features that haven't made their way to ag.vim, like `:AckWindow`,
+optional background search execution with [vim-dispatch], and auto-previewing.
-### 1.0.5
+[The Silver Searcher]: https://github.com/ggreer/the_silver_searcher
+[sadface]: https://github.com/mileszs/ack.vim/commit/d97090fb502d40229e6976dfec0e06636b...
-* Fixes #128. Fixes the `errorformat` for ack when using vim-dispatch.
-* Do not use vim-dispatch by default. To use vim-dispath must set
-`g:ack_use_dispatch`
+## Changelog
-### 1.0.6
+Please see [the Github releases page][releases].
-* Fixes highlight function to work when user passes options. Ex.: Ack -i test
- Thank's @mannih. (#131, #134)
+## Credits
-### 1.0.7
+This plugin is derived from Antoine Imbert's blog post [Ack and Vim
+Integration][] (in particular, the function in the update to the post). [Miles
+Sterrett][mileszs] packaged it up as a plugin and documented it in Vim's help
+format, and since then [many contributors][contributors] have submitted
+enhancements and fixes.
-* Fixes highlight function to work when passes more than one option, or options
-with double dashes(--option) Thank's to @MiguelLatorre and @mannih
+And of course, where would we be without [Ack]. And, you know, Vim.
-### 1.0.8
+[Ack and Vim Integration]: http://blog.ant0ine.com/typepad/2007/03/ack-and-vim-integration.html
+[mileszs]: https://github.com/mileszs
+[contributors]: https://github.com/mileszs/ack.vim/graphs/contributors
+[Ack]: http://beyondgrep.com/
-* Fixes (again) highlight, now using negative look behind.
-* Change mappings `o` and `O` to behave as documented
+[vim-dispatch]: https://github.com/tpope/vim-dispatch
+[releases]: https://github.com/mileszs/ack.vim/releases
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ack.vim-1.0.8/autoload/ack.vim new/ack.vim-1.0.9/autoload/ack.vim
--- old/ack.vim-1.0.8/autoload/ack.vim 2014-06-11 18:59:35.000000000 +0200
+++ new/ack.vim-1.0.9/autoload/ack.vim 2016-01-22 14:20:37.000000000 +0100
@@ -1,129 +1,125 @@
-function! ack#Ack(cmd, args)
+if exists('g:ack_use_dispatch')
+ if g:ack_use_dispatch && !exists(':Dispatch')
+ call s:Warn('Dispatch not loaded! Falling back to g:ack_use_dispatch = 0.')
+ let g:ack_use_dispatch = 0
+ endif
+else
+ let g:ack_use_dispatch = 0
+endif
+
+"-----------------------------------------------------------------------------
+" Public API
+"-----------------------------------------------------------------------------
+
+function! ack#Ack(cmd, args) "{{{
+ call s:Init(a:cmd)
redraw
- echo "Searching ..."
- " If no pattern is provided, search for the word under the cursor
- if empty(a:args)
- let l:grepargs = expand("<cword>")
- else
- let l:grepargs = a:args . join(a:000, ' ')
- end
- echom l:grepargs
- let l:ackprg_run = g:ackprg
-
- " Format, used to manage column jump
- if a:cmd =~# '-g$'
- let g:ackformat="%f"
- let l:ackprg_run = substitute(l:ackprg_run, '-H\|--column', '', 'g')
- else
- let g:ackformat="%f:%l:%c:%m,%f:%l:%m"
+ " Local values that we'll temporarily set as options when searching
+ let l:grepprg = g:ackprg
+ let l:grepformat = '%f:%l:%c:%m,%f:%l:%m' " Include column number
+
+ " Strip some options that are meaningless for path search and set match
+ " format accordingly.
+ if s:SearchingFilepaths()
+ let l:grepprg = substitute(l:grepprg, '-H\|--column', '', 'g')
+ let l:grepformat = '%f'
endif
- let grepprg_bak = &grepprg
- let grepformat_bak = &grepformat
- let &grepprg=l:ackprg_run
- let &grepformat=g:ackformat
+ " If no pattern is provided, search for the word under the cursor
+ let l:grepargs = empty(a:args) ? expand("<cword>") : a:args . join(a:000, ' ')
- try
- " NOTE: we escape special chars, but not everything using shellescape to
- " allow for passing arguments etc
- if g:ack_use_dispatch
- let &l:errorformat = g:ackformat
- let &l:makeprg=g:ackprg." " . escape(l:grepargs, '|#%')
- Make
- else
- silent execute a:cmd . " " . escape(l:grepargs, '|#%')
- endif
+ " NOTE: we escape special chars, but not everything using shellescape to
+ " allow for passing arguments etc
+ let l:escaped_args = escape(l:grepargs, '|#%')
- finally
- let &grepprg=grepprg_bak
- let &grepformat=grepformat_bak
- endtry
+ echo "Searching ..."
- if a:cmd =~# '^l'
- let s:handler = g:ack_lhandler
- let s:apply_mappings = g:ack_apply_lmappings
- let s:close_cmd = ':lclose<CR>'
+ if g:ack_use_dispatch
+ call s:SearchWithDispatch(l:grepprg, l:escaped_args, l:grepformat)
else
- let s:handler = g:ack_qhandler
- let s:apply_mappings = g:ack_apply_qmappings
- let s:close_cmd = ':cclose<CR>'
+ call s:SearchWithGrep(a:cmd, l:grepprg, l:escaped_args, l:grepformat)
endif
- if !g:ack_use_dispatch
- call ack#show_results()
- else
- copen
- endif
- call <SID>apply_maps()
- call <SID>highlight(l:grepargs)
+ " Dispatch has no callback mechanism currently, we just have to display the
+ " list window early and wait for it to populate :-/
+ call ack#ShowResults()
+ call s:Highlight(l:grepargs)
+endfunction "}}}
- redraw!
-endfunction
+function! ack#AckFromSearch(cmd, args) "{{{
+ let search = getreg('/')
+ " translate vim regular expression to perl regular expression.
+ let search = substitute(search, '\(\\<\|\\>\)', '\\b', 'g')
+ call ack#Ack(a:cmd, '"' . search . '" ' . a:args)
+endfunction "}}}
-function! ack#show_results()
- execute s:handler
-endfunction
-
-function! s:apply_maps()
- let g:ack_mappings.q = s:close_cmd
-
- execute "nnoremap <buffer> <silent> ? :call ack#quick_help()<CR>"
-
- if s:apply_mappings && &ft == "qf"
- if g:ack_autoclose
- for key_map in items(g:ack_mappings)
- execute printf("nnoremap <buffer> <silent> %s %s", get(key_map, 0), get(key_map, 1) . s:close_cmd)
- endfor
- execute "nnoremap <buffer> <silent> <CR> <CR>" . s:close_cmd
- else
- for key_map in items(g:ack_mappings)
- execute printf("nnoremap <buffer> <silent> %s %s", get(key_map, 0), get(key_map, 1))
- endfor
- endif
+function! ack#AckHelp(cmd, args) "{{{
+ let args = a:args . ' ' . s:GetDocLocations()
+ call ack#Ack(a:cmd, args)
+endfunction "}}}
- if exists("g:ackpreview") " if auto preview in on, remap j and k keys
- execute "nnoremap <buffer> <silent> j j<CR><C-W><C-W>"
- execute "nnoremap <buffer> <silent> k k<CR><C-W><C-W>"
- endif
- endif
-endfunction
+function! ack#AckWindow(cmd, args) "{{{
+ let files = tabpagebuflist()
-function! ack#quick_help()
- execute "edit " . globpath(&rtp, "doc/ack_quick_help.txt")
+ " remove duplicated filenames (files appearing in more than one window)
+ let files = filter(copy(sort(files)), 'index(files,v:val,v:key+1)==-1')
+ call map(files, "bufname(v:val)")
- silent normal gg
- setlocal buftype=nofile
- setlocal bufhidden=hide
- setlocal noswapfile
- setlocal nobuflisted
- setlocal nomodifiable
- setlocal filetype=help
- setlocal nonumber
- setlocal norelativenumber
- setlocal nowrap
- setlocal foldlevel=20
- setlocal foldmethod=diff
- nnoremap <buffer> <silent> ? :q!<CR>:call ack#show_results()<CR>
-endfunction
+ " remove unnamed buffers as quickfix (empty strings before shellescape)
+ call filter(files, 'v:val != ""')
-function! s:highlight(args)
- if !g:ackhighlight
+ " expand to full path (avoid problems with cd/lcd in au QuickFixCmdPre)
+ let files = map(files, "shellescape(fnamemodify(v:val, ':p'))")
+ let args = a:args . ' ' . join(files)
+
+ call ack#Ack(a:cmd, args)
+endfunction "}}}
+
+function! ack#ShowResults() "{{{
+ let l:handler = s:UsingLocList() ? g:ack_lhandler : g:ack_qhandler
+ execute l:handler
+ call s:ApplyMappings()
+ redraw!
+endfunction "}}}
+
+"-----------------------------------------------------------------------------
+" Private API
+"-----------------------------------------------------------------------------
+
+function! s:ApplyMappings() "{{{
+ if !s:UsingListMappings() || &filetype != 'qf'
return
endif
- let @/ = matchstr(a:args, "\\v(-)\@\)', '\\b', 'g')
- call ack#Ack(a:cmd, '"' . search . '" ' . a:args)
-endfunction
+ execute "nnoremap <buffer> <silent> <CR> <CR>" . l:closemap
+ else
+ for key_map in items(g:ack_mappings)
+ execute printf("nnoremap <buffer> <silent> %s %s", get(key_map, 0), get(key_map, 1))
+ endfor
+ endif
+
+ if exists("g:ackpreview") " if auto preview in on, remap j and k keys
+ nnoremap <buffer> <silent> j j<CR><C-W><C-W>
+ nnoremap <buffer> <silent> k k<CR><C-W><C-W>
+ nmap <buffer> <silent> <Down> j
+ nmap <buffer> <silent> <Up> k
+ endif
+endfunction "}}}
-function! s:GetDocLocations()
+function! s:GetDocLocations() "{{{
let dp = ''
for p in split(&rtp, ',')
let p = p . '/doc/'
@@ -133,22 +129,99 @@
endfor
return dp
-endfunction
+endfunction "}}}
-function! ack#AckHelp(cmd, args)
- let args = a:args . ' ' . s:GetDocLocations()
- call ack#Ack(a:cmd, args)
-endfunction
+function! s:Highlight(args) "{{{
+ if !g:ackhighlight
+ return
+ endif
-function! ack#AckWindow(cmd, args)
- let files = tabpagebuflist()
- " remove duplicated filenames (files appearing in more than one window)
- let files = filter(copy(sort(files)), 'index(files,v:val,v:key+1)==-1')
- call map(files, "bufname(v:val)")
- " remove unnamed buffers as quickfix (empty strings before shellescape)
- call filter(files, 'v:val != ""')
- " expand to full path (avoid problems with cd/lcd in au QuickFixCmdPre)
- let files = map(files, "shellescape(fnamemodify(v:val, ':p'))")
- let args = a:args . ' ' . join(files)
- call ack#Ack(a:cmd, args)
-endfunction
+ let @/ = matchstr(a:args, "\\v(-)\@http://betterthangrep.com/ for more information.
+Note that if you are using Dispatch.vim with |g:ack_use_dispatch|, location
+lists are not supported, because Dispatch does not support them at this time.
+`:LAck` versions of commands above will give a warning and proceed to use the
+quickfix list instead.
+
+See http://beyondgrep.com/ for more information on searching with ack.
==============================================================================
@@ -79,18 +84,23 @@
Default for ubuntu: "ack-grep"
Default for other systems: "ack"
-Use this option to specify the ack command and its options
+Use this option to specify the search command and its default arguments.
Example:
- let g:ackprg = "other-bin-ack"
+ let g:ackprg = "ag --vimgrep"
<
*g:ack_default_options*
g:ack_default_options
Default: " -s -H --nocolor --nogroup --column"
-Use this option to specify the options used by ack
+Use this option to specify the default arguments given to `ack`. This is only
+used if |g:ackprg| has not been customized from the default--if you are using
+a custom search program instead of Ack, set your preferred options in
+|g:ackprg|.
+
+NOTE: This option may be deprecated in the future. ~
Example:
@@ -208,7 +218,12 @@
g:ack_use_dispatch
Default: 0
-Use this option to use vim-dispatch to search the results in background
+Use this option to use vim-dispatch to run searches in the background, with a
+variety of execution backends for different systems.
+
+Due to limitations in Dispatch at this time, location lists are unsupported
+and result windows will appear before results are ready. Still, these may be
+acceptable tradeoffs for very large projects where searches are slow.
Example:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ack.vim-1.0.8/doc/ack_quick_help.txt new/ack.vim-1.0.9/doc/ack_quick_help.txt
--- old/ack.vim-1.0.8/doc/ack_quick_help.txt 2014-06-11 18:59:35.000000000 +0200
+++ new/ack.vim-1.0.9/doc/ack_quick_help.txt 2016-01-22 14:20:37.000000000 +0100
@@ -1,6 +1,6 @@
==== ack.vim quick help ===============
- *?:* Show this help
+ *?:* Show/quit this help
*t:* Open in a new tab
*T:* Open in a new tab silently
*o:* Open
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ack.vim-1.0.8/plugin/ack.vim new/ack.vim-1.0.9/plugin/ack.vim
--- old/ack.vim-1.0.8/plugin/ack.vim 2014-06-11 18:59:35.000000000 +0200
+++ new/ack.vim-1.0.9/plugin/ack.vim 2016-01-22 14:20:37.000000000 +0100
@@ -1,3 +1,7 @@
+if exists('g:loaded_ack')
+ finish
+endif
+
if !exists("g:ack_default_options")
let g:ack_default_options = " -s -H --nocolor --nogroup --column"
endif
@@ -22,10 +26,6 @@
let g:ack_apply_lmappings = !exists("g:ack_lhandler")
endif
-if !exists("g:ack_use_dispatch")
- let g:ack_use_dispatch = 0
-end
-
let s:ack_mappings = {
\ "t": "<C-W><CR><C-W>T",
\ "T": "<C-W><CR><C-W>TgT<C-W>j",
@@ -71,5 +71,9 @@
command! -bang -nargs=* -complete=file AckFile call ack#Ack('grep<bang> -g', <q-args>)
command! -bang -nargs=* -complete=help AckHelp call ack#AckHelp('grep<bang>', <q-args>)
command! -bang -nargs=* -complete=help LAckHelp call ack#AckHelp('lgrep<bang>', <q-args>)
-command! -bang -nargs=* -complete=help AckWindow call ack#AckWindow('grep<bang>', <q-args>)
-command! -bang -nargs=* -complete=help LAckWindow call ack#AckWindow('lgrep<bang>', <q-args>)
+command! -bang -nargs=* AckWindow call ack#AckWindow('grep<bang>', <q-args>)
+command! -bang -nargs=* LAckWindow call ack#AckWindow('lgrep<bang>', <q-args>)
+
+let g:loaded_ack = 1
+
+" vim:set et sw=2 ts=2 tw=78 fdm=marker