| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
The easytags#update() function previously used the variable argument
list notation `...' but I just found out [the hard way] that this only
supports up to 20 arguments. Therefor I've now changed easytags#update()
to receive a list of zero or more filenames as its third argument.
|
|
|
|
| |
See http://github.com/xolox/vim-publish/commit/be98f4328bb631cd4c67d8951ff7c413b7cb6355
|
| |
|
| |
|
|
|
|
|
|
|
| |
Dynamic highlighting supports C/C++ function prototypes to enable
highlighting of library functions based on just the headers, but until
now the easytags.vim plug-in didn't request ctags to include function
prototypes. Now it does so automatically.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
I developed (parts of) my shell.vim plug-in after noticing the annoying
command prompt windows that pop up temporarily on Windows when the
easytags plug-in runs ctags. Because the shell.vim plug-in was a proof
of concept I hadn't published any integration between the two plug-ins.
Since then I've had several requests for this so here it is :-)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* The :UpdateTags command now passes any arguments given to it on to
Exuberant Ctags, which sounds simple enough but required a complex
implementation. This means users can now do things like:
:UpdateTags -R ~/.vim
Because Ctags can be run easily from inside Vim, users won't have to
run it manually from the command line. The plug-in also makes sure
the required command-line options to Ctags are always used.
* Fixed a problem most users will probably never encounter. I'm not
sure whether this is by design or an implementation detail but it's
possible for the "!_TAG_FILE_SORTED" header to appear after one or
more tags and Vim will apparently still use the header! For this
reason the easytags#write_tagsfile() function should also recognize
it, otherwise Vim might complain with "E432: Tags file not sorted".
* Always sort tags in easytags#write_tagsfile() (understands foldcase)
* Finally documented the :UpdateTags and :HighlightTags commands.
* The dynamic highlighting can now be disabled for individual buffers,
which can come in handy when the highlighting conflicts with another
plug-in: Just set the 'b:easytags_nohl' variable to any value.
* Removed hard wrapping from README.md because I've recently switched
to a 21" external monitor ;-)
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously* I fixed a bug where easytags.vim failed to register the
global tags file created by the plug-in with Vim, because even though
the &tags option was set by the plug-in, Vim would refuse to acknowledge
the new tags file, i.e. tagfiles() == [].
The fix then was to change :let &tags= to :set tags= which apparently
has a different implementation from :let &tags=?! I assumed this fix
would be valid for both Windows and UNIX, but apparently this still
doesn't work on Windows! There we actually have to use feedkeys() to
convince Vim to change the &tags option... What a hack! :-(
BTW I also fixed an embarrassing typo in the initialization code.
* Bug fix for strange "E433: No tags file" problem:
http://github.com/xolox/vim-easytags/commit/4fef0c17749e687d670b2e9e4e429022ec4c1055
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The plug-in is supposed to automatically register the global tags file
with Vim by setting the "tags" option but this didn't work because of
what's probably a bug in Vim: When you set the "tags" option using the
following syntax, Vim will fail to add the new tags file:
let &tags = ...
But when you switch to the following syntax it works:
:set tags=...
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* The plug-in now executes `ctags --version` on startup to verify that
the correct version of Exuberant Ctags is installed because some
systems (including Mac OS X apparently) ship with a `/usr/bin/ctags`
installed that doesn't understand the extensive set of command-line
arguments supported by Exuberant Ctags.
* When a file was edited multiple times the dynamic highlighting
wouldn't refresh because the plug-in thought the highlighting was
still in effect while in reality it was cleared by reading the file
again. Now the highlighting will be refreshed on the next CursorHold
event like it's supposed to.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Fixed tags file corruption on Windows: It turns out that the function
readfile() accepts CR+NL line endings and just strips CR characters,
however the writefile() function doesn't write CR+NL but just NL.
Manually adding the CR characters to the end of each line before
writing the tags file solves the corruption bug.
* The headers and entries in tags files are now properly separated from
each other while rewriting the tags file to filter expired entries.
* Don't bother trying to filter expired tags when the tags file doesn't
reference the current filename at all (improves performance a bit).
* Fixed a buggy easytags#file_has_tags() call in easytags#autoload()
that made the plug-in always scan each edited file at least once.
* Changed folds to provide basic outline of function categories.
* Restructured definitions for default configuration of dynamic syntax
highlighting support so definitions don't all have to be indented.
Sorry about the large diff, this version took a few days of
experimentation to build which means lots of little changes.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
While testing the plug-in on Microsoft Windows I found out that ~ in
the &tags option isn't expanded to $HOME by either Vim or Ctags.
Unfortunately while committing all of my fixes to get Windows
support working (a few commits ago) I seem to have lost this fix.
While testing this fix again I now notice the tags file getting
corrupted in my Windows XP virtual machine -- more debugging to do.
|
|
|
|
|
|
|
|
|
|
| |
The autoload/xolox/option.vim script isn't included in this repository
because I call the autoload/xolox/*.vim scripts from several of my
plug-ins. If I were to include these dependencies in each plug-in
repository I would find myself copy/pasting bug fixes between
repositories and I don't want that. However the Makefile packages up all
required autoload scripts into the ZIP archives published on
www.vim.org.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
While writing the `easytags.vim` plug-in at one point I added the
following line to my `~/.vimrc` script:
:set tags=~/.vimtags
After publishing the plug-in I totally forgot about the `tags` option
and how the plug-in depends on it for all of its functionality :-S
The plug-in now adds the (possibly user-defined) value of the
`easytags_file` option to Vim's `tags` option, thereby making Vim's
internals aware of the tags file.
Oh by the way, the plug-in is now more-or-less Windows compatible.
The only remaining problems are the flashing command prompt (which
I know how to fix) and the fact that CursorHold seems to fire
repeatedly...
|
| |
|
|
|
|
|
|
|
| |
The dynamic syntax highlighting performed by `easytags.vim` depends on
the extra "language" field which Exuberant Ctags can be instructed to
add to tags files with the --fields=+l command-line argument, however
the `:UpdateTags` command didn't add the --fields argument! Now it does.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In my ~/.vimrc I've set the following:
:let c_syntax_for_h = 1
Which means easytags.vim will also scan *.h files as C source-code.
However Exuberant Ctags by default scans *.h files as C++, so when
you update your global tags file as follows from the command-line:
ctags -af ~/.vimtags /usr/include/lua5.1/*.h
Which I happened to try today, the new tags won't be highlighted in
your C source-code because Exuberant Ctags thinks it's C++ and Vim
doesn't know otherwise. I've now added support for aliases between
file types and added a default set of aliases between C, C++, Obj-C
and Obj-C++.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
While writing a LaTeX document I found out that Exuberant Ctags was
corrupting my tags file by writing invalid entries. Because half my
self-developed Vim plug-ins deal with Exuberant Ctags integration
which I use constantly this broke my whole environment :-)
Since the main point of easytags.vim is to fully automate tags
generation, corrupt files that need to be repaired by hand are
unacceptable. Therefor I've added an option to enable ignoring selected
file types and defined the default to exclude `*.tex` files.
If you disagree with me, feel free to set the option
`easytags_ignored_filetypes` to an empty string,
in which case no file types will be ignored.
|
| |
|
| |
|
|
|
|
|
|
| |
The plug-in used an inconsistent mix of error handling using both :throw and
:echoerr. The public facing functions have now been wrapped in try/catch blocks
and all internal functions :throw error message strings.
|
|
|
|
|
|
| |
On the one hand I don't want to force people to download half my Vim profile
before they can try one of the plug-ins I've written, but on the other hand I
don't want to keep copy/pasting miscellaneous functions all over the place...
|
| |
|
|
|