Commit Graph
100 Commits
Author SHA1 Message Date
Jan Larres 0c943cc1f1 Add note about looking for maintainers 2019-10-20 16:13:36 +13:00
Jan Larres 387bbadda9 Highlight correctly if visibility disabled
The highlight pattern for the current tag didn't account for the fact
that the visibility symbol is optional.

Closes #463
2017-12-17 16:14:51 +13:00
Jan Larres c004652797 Only equalize windows after shrinking app window, closes #452 2017-12-03 16:21:34 +13:00
Jan Larres 8d2c44f6ac Merge pull request #458 from ithinuel/master
Rust: fix method kind from F to P for universal-ctags
2017-12-03 15:28:06 +13:00
Jan Larres dc155af2fd Merge pull request #451 from mathia4/master
Fixed typo in JavaScript uctags label
2017-10-19 16:40:45 +13:00
Jan Larres 2261625e29 Merge pull request #450 from natfitz/patch-1
Fix typo in comment
2017-10-18 10:31:50 +13:00
Jan Larres bef1fa4080 Merge pull request #447 from teto/debug
Ease debugging
2017-09-24 18:30:11 +13:00
Jan Larres ad0e433674 Add Universal Ctags note to README
Closes #394
2017-09-20 20:33:27 +12:00
Jan Larres fb5b7f61d1 Update README with minimum required Vim version
Closes #442
2017-09-18 21:04:43 +12:00
Jan Larres a9fc0fc46b Log version info at beginning of logfile 2017-09-18 21:04:43 +12:00
Jan Larres 2329c95063 Merge pull request #444 from faster-mo/master
fixed encoding bug of balloon
2017-09-18 20:23:01 +12:00
Jan Larres 3e417256e8 Clarify project-specific behaviour a bit in docs 2017-09-13 17:59:35 +12:00
Jan Larres 460f3c8f2e Use function references in prototypes
This makes it possible to actually see the function names in
stacktraces. It also means that the internal objects of some of the tag
prototypes don't need to be public any more.
2017-09-13 17:48:43 +12:00
Jan Larres d4a08c33e5 Add byte limit for look-behind pattern
The TagbarKind syntax match pattern has a zero-width look-behind atom
with unlimited length. This can slow down syntax highlighting. Since in
this case there can only be 1 or 2 characters that get matched, we can
set a limit for the match, thus speeding up the matching.

Since the limit unfortunately works with bytes instead of characters,
use 3 instead of 2 to account for double-width folding characters.
2017-09-12 13:40:46 +12:00
Jan Larres 7299257d77 Fix tag jumping if tag pattern is not actually a pattern
Closes #439
References jstemmer/gotags#31
2017-09-03 20:36:46 +12:00
Jan Larres 937354ebb5 Log individual user types being loaded 2017-09-03 20:34:54 +12:00
Jan Larres 7e4928c056 Log message when closing Tagbar due to QuitPre 2017-09-03 19:07:10 +12:00
Jan Larres b4643521ff Add support for various types for [u]ctags
Exuberant Ctags:
- ObjectiveC

Universal Ctags:
- Ada
- Autoconf
- Automake
- Ctags config
- D
- Elm (courtesy of @bitterjug)
- Go
- ObjectiveC
- Perl 6
- Protobuf (closes #437)
- R

Also various improvements to existing definitions based on changes in
Universal Ctags.
2017-09-03 19:01:16 +12:00
Jan Larres 59ea6d656a Merge branch 'wdv4758h-rust'
Closes #395
Closes #284
2017-08-22 23:45:44 +12:00
Jan Larres 817d8a6bee Merge branch 'ruchee-master'
Closes #283
2017-08-22 23:37:36 +12:00
Jan Larres 83246ed59f Merge branch 'Mr-Oss-master'
Closes #372
2017-08-22 22:43:12 +12:00
Jan Larres 886af9ddc1 Fix Ruby typedef for current uctags, closes #407 2017-08-21 22:57:46 +12:00
Jan Larres da87ee9439 Add missing ftype field to jsctags type def 2017-08-21 09:54:37 +12:00
Jan Larres d4c370cf0e Handle tags that cover multiple scopes correctly
References: #430
2017-08-20 20:07:34 +12:00
Jan Larres 02f8a922b1 Remove unused 'j' php kind 2017-08-20 18:08:31 +12:00
Jan Larres bbf15b039a Merge branch 'weirdan-php-scopes' 2017-08-20 18:07:53 +12:00
Jan Larres f20edb5a56 Rename types autoload directory 2017-08-20 17:11:37 +12:00
Jan Larres 877a4a939c Extract debug functionality into separate file 2017-08-20 17:02:36 +12:00
Jan Larres 8a1bbcb420 Create kinddict for jsctags type def
Closes #431
Closes #432
2017-08-19 18:14:21 +12:00
Jan Larres fef0732394 Separate {ex,u}ctags definitions out into individual files 2017-08-14 21:18:02 +12:00
Jan Larres 2abcbf33f0 Extract prototypes to separate autoload files 2017-08-14 21:18:02 +12:00
Jan Larres d880bcc333 Merge pull request #426 from AdnoC/incrmental-fold-change
Add ability to open or close folds a single level
2017-07-31 20:55:26 +12:00
Jan Larres f5792732de Escape tag name when removing it from a pseudo tag's scope path 2017-06-15 17:36:38 +12:00
Jan Larres b1c6cbc2d8 Short-circuit parent searches if tag doesn't have line number 2017-06-15 17:36:38 +12:00
Jan Larres 41ee79fc0f Escape tag search pattern with \M instead of \V
This follows the Vim manual in |tag-search|, which says that searches
are executed as if 'magic' was off.
2017-06-15 17:36:38 +12:00
Jan Larres b9e7b51ea5 Fix jsctags config, closes #421
This seems to be different for the tern-based jsctags, and the old one
is deprecated anyway.
2017-06-15 17:35:38 +12:00
Jan Larres 87a1263f5d Don't try to restore session on 'loadview', closes #382
The view files created with the 'mkview' command run the
'SessionLoadPost' autocommand at the end, which creates problems if
Tagbar has alread been initialized. Add a new variable so that we can
detect this situation.
2017-06-05 17:24:55 +12:00
Jan Larres 959f487981 Functions create class scope in exctags, ref #397 2017-02-18 16:43:16 +13:00
Jan Larres e089b61e25 Don't error on incorrect ctags scope info, ref #397 2017-02-18 16:32:30 +13:00
Jan Larres 9d051c1e2d Handle cases where parent is below child tag, closes #396 2017-02-12 21:39:13 +13:00
Jan Larres aab5f214c5 Save ctags output in separate file when debugging 2017-02-11 17:40:24 +13:00
Jan Larres 68eebbb50c Update tags on CursorHold after writing
Currently the tags will always get updated immediately when writing a
file. However, for large files that can slow down the writing process
noticeably, leading to annoying pauses. This commit instead defers the
updating process to the first CursorHold/CursorHoldI event after writing
a file, which should make the process much less noticeable.

Closes #289
Closes #381
References SpaceVim/SpaceVim#129
2017-02-05 19:06:20 +13:00
Jan Larres 72a7ef378f Add name-indexed dicts of tags alongside lists
When constructing the tag tree it is often necessary to look up tags
with a certain name and other attributes at the current depth. This was
previously done with the filter() function on the list of all the
relevant tags. However, this filtering is very slow.

This commit changes the FileInfo and TagInfo objects to save added tags
in a dictionary indexed by the name of the tag in addition to the list
(which is still maintained in parallel since it is necessary for things
like sorting). This significatly speeds up tag lookup since most tags
have unique names.
2017-02-04 19:02:54 +13:00
Jan Larres 9ca422ce09 Rewrite tree construction algorithm
The current algorithm for contructing the tag tree works pretty well
even when pseudo-tags are encountered, but is quite complex, hard to
understand, and hard to tweak and optimize. This commit rewrites the
algorithm to a relatively straight-forward recursive algorithm that
makes use of placeholder pseudo-tags if required that will get replaced
if the actual tag is encountered later.
2017-02-04 18:59:06 +13:00
Jan Larres 2cc891747b Print tags in one go to improve performance
Assembling the tag information in a list and then printing it with one
":put" command is more efficient then calling :put for every line.
2017-01-29 18:23:15 +13:00
Jan Larres ebcf4df686 Small code cleanup 2017-01-10 18:24:32 +13:00
Jan Larres 53e9cb030e Version 2.7 2017-01-09 17:26:17 +13:00
Jan Larres 1c8feee61f Skip languages that are disabled in ctags 2017-01-05 17:12:33 +13:00
Jan Larres 6c60f85938 Fix typo 2017-01-05 16:49:40 +13:00
Jan Larres 18b536ce43 Save last alt bufnr before switching buffers, closes #385
When switching buffers during the handling of the BufDelete event the
saved buffer number of the last alternate buffer will change, so we have
to save a local copy to be able to properly unset the 'tagbar_ignore'
buffer variable.
2017-01-03 15:21:10 +13:00
Jan Larres 51e6e3b66a Merge pull request #384 from jpmv27/ignore_BufDelete_from_set_nobuflisted
HandleBufDelete: Ignore apparent 'set nobuflisted' events
2016-12-28 14:33:34 +13:00
Jan Larres 3a4ea1234f Clarify debug procedure in docs 2016-12-24 16:46:53 +13:00
Jan Larres 1374077676 Always log the ctags version output 2016-12-17 18:01:49 +13:00
Jan Larres 01f57ac564 Disable autocommands when deleting Tagbar buffer in HandleOnlyWindow
This prevents infinite recursion with nested autocommands when using a
BufEnter autocommand that calls autoopen().
2016-11-07 12:45:17 +13:00
Jan Larres e212be6a12 Resize window after opening, ref #246
This prevents an incorrect window size from being used in some edge
cases.
2016-11-05 19:22:23 +13:00
Jan Larres 3d208115fb Merge pull request #360 from ChesleyTan/master
Escape filename in ShowInPreviewWin()
2016-11-04 10:23:12 +13:00
Jan Larres 1287f63545 Display filetype-specific sort in statusline, closes #292 2016-10-31 17:52:36 +13:00
Jan Larres d2961a4677 Check for nonexistent variable, closes #357 2016-10-31 09:59:32 +13:00
Jan Larres 56bee63e17 Only jump to previous window if there is one, closes #355 2016-10-29 17:29:40 +13:00
Jan Larres 2d67896b06 Add debug statement with exit code after system() call 2016-10-24 18:13:27 +13:00
Jan Larres bcb042da56 Improve HTML support with Universal Ctags, closes #317 2016-10-23 20:31:35 +13:00
Jan Larres d16ec1198b Don't consider file as valid if its window is in diff mode 2016-10-23 20:09:46 +13:00
Jan Larres a1f416edde Define mappings with <nowait> if available, closes #299 2016-10-22 02:02:27 +13:00
Jan Larres 040e8400af Print exit code when failing to run ctags 2016-10-21 17:43:47 +13:00
Jan Larres b6298c0ca0 Use window ID functionality if available, ref #351
When opening the Tagbar window the window numbers can change so that
restoring the window history is not possible. Use the new window ID
functionality if it is available to make that possible.
2016-10-17 23:08:18 +13:00
Jan Larres 4d513c8a68 Also restore window history when opening Tagbar, ref #319 2016-10-16 23:19:42 +13:00
Jan Larres 23557ef97a Always restore the window history, closes #319
When we have to go to the Tagbar window to update it the knowledge of
the previous window to the one we're coming from gets lost. Save it
before switching windows so we can restore it after returning from the
Tagbar window.
2016-10-16 23:02:18 +13:00
Jan Larres 2954e405bb Merge pull request #349 from vavaka/master
flags argument added to functions responsible for window toggling
2016-10-16 12:09:29 +13:00
Jan Larres 3566907b57 Only use QuitPre functionality if supported, closes #350
The QuitPre autocommand was introduced in Vim version 7.3.544. If Vim is
older than this then don't use the HandleOnlyWindow() functionality, so
in the case of closing the last window in a tab a user will have to
close the Tagbar window themselves.
2016-10-15 20:20:03 +13:00
Jan Larres a43068e418 Fix quit/bdelete cases properly
This commit should (hopefully) finally fix the case of users calling
':bdelete/:bwipeout' or ':quit' while Tagbar is open and just do the
right thing. See commit e4cfe8a for a more thorough description of how
it's supposed to work.
2016-10-15 20:13:28 +13:00
Jan Larres b6a0ec00cd Only suspend Tagbar during 'grep' qf commands, closes #347 2016-10-12 14:16:37 +13:00
Jan Larres d81333e055 Merge pull request #315 from niloct/master
Fixed sentence about pseudo-tags
2016-10-10 22:20:34 +13:00
Jan Larres 0bb6499548 Rename QuitIfOnlyWindow since it's no longer accurate 2016-10-10 21:51:14 +13:00
Jan Larres e4cfe8add5 Properly handle closing the last file window, closes #345
When a window that is displaying a normal file gets closed with a :quit,
:bdelete or other command, Tagbar may end up as the only visible window
left, which isn't very useful. Previously Tagbar would just quit in such
a situation (unless there was more than one tab), but that is rather
non-intuitive.

The change in this commit introduces a mechanism that should hopefully
handle such a case properly based on which command was executed, and do
exactly what a user would expect:

- In the ':quit' case, it will close the current tabpage including
  Tagbar unless it was the only tabpage, in which case it will quit Vim.
- In the ':bdelete/:bwipeout' case, it will delete the Tagbar buffer and
  then reopen Tagbar once the buffer that Vim switched to is being
  displayed.
2016-10-09 21:03:01 +13:00
Jan Larres 497e963bc4 Separate buffer- and window-local options 2016-10-09 19:02:26 +13:00
Jan Larres d1c42db686 Merge pull request #342 from jpmv27/separate_tagbar_per_tab
Separate tagbar per tab
2016-10-08 18:21:20 +13:00
Jan Larres 2955f71856 Try to jump to the right tag column, closes #326 2016-09-25 00:24:04 +12:00
Jan Larres d379913b9a Merge branch 'joegrasse-master' 2016-09-23 16:11:31 +12:00
Jan Larres 9a75c110b7 Don't choke when run from netrw, closes #291 2016-09-20 23:30:18 +12:00
Jan Larres b7f147aabc Remove redundant SetStatusLine argument, ref #335
Thank you to @jpmv27 for spotting this.
2016-09-19 23:10:10 +12:00
Jan Larres 61ba5ba578 Merge pull request #333 from jpmv27/case_insensitive_sort_option
Add case-insensitive sort option
2016-09-19 23:04:02 +12:00
Jan Larres 71e56f5ea4 Merge pull request #334 from jpmv27/restore_cursor_tag_toggle_hide
Keep cursor on same tag when toggle hide non-public
2016-09-17 20:40:43 +12:00
Jan Larres 03592c0112 Update the statusline at the end of AutoUpdate(), closes #330 2016-09-13 22:45:52 +12:00
Jan Larres 2438a92cb9 Merge pull request #338 from alejandrogallo/master
Add asymptote support as a c clone
2016-09-12 12:52:18 +12:00
Jan Larres d841db9f49 Fix file-scope tags in uctags, closes #314 2016-09-12 12:39:12 +12:00
Jan Larres 35ee5a91f9 Fix Python member functions with Universal Ctags, closes #306 2016-09-10 21:02:09 +12:00
Jan Larres 7b36c46d17 Change mentions of GNU ctags to BSD ctags 2015-06-19 11:42:35 +12:00
Jan Larres 91566e6c0b Merge pull request #274 from UmkaDK/universal-ctags
Fixed compatibility with Universal Ctags
2015-06-19 11:30:42 +12:00
Jan Larres 399b75256a Merge pull request #264 from h3xx/master
Fix vim-airline: Suppress status-line output when executing shell
2015-05-10 18:40:25 +12:00
Jan Larres c6b473f559 Handle wrong rtp more gracefully
If the runtimepath has been set incorrectly and the autoload file is
getting loaded by something, then the code won't be able to load the
"plugin" file. Print a warning message and stop loading the file instead
of throwing lots of errors.
2015-04-05 20:14:56 +12:00
Jan Larres 8a8e85436d Merge pull request #258 from michaeltanner/master
Adds CUDA support (identical to C++)
2015-04-05 19:30:24 +12:00
Jan Larres 1773059756 Mention :messages command in troubleshooting section 2015-04-05 18:56:08 +12:00
Jan Larres 3634e7ab4f Support 'kind' field with name, ref #254 2015-03-17 19:35:42 +13:00
Jan Larres eb392a4502 Check for fish instead of resetting shell unconditionally 2015-02-23 15:14:35 +13:00
Jan Larres a284cd0091 Always log ctags output when execution fails 2015-02-16 18:49:07 +13:00
Jan Larres 00dfa82b00 Fix prefix for tags with both access and file fields 2015-02-02 16:30:10 +13:00
Jan Larres 04bb728039 Replace help mapping in short help, closes #245 2015-01-26 12:37:53 +13:00
Jan Larres fcac7f2936 Don't try to jump to winnr 0, ref #244 2015-01-13 22:32:30 +13:00
Jan Larres bfc121dc38 Setup options and keymaps in functions to avoid global variables 2014-12-10 16:19:14 +13:00
Jan Larres 4fa15349c5 Small cleanups 2014-12-10 15:34:14 +13:00