From 2589d58711419fd61e8561036fd85d50e01dec8a Mon Sep 17 00:00:00 2001 From: Peter Odding Date: Mon, 27 Jun 2011 03:44:48 +0200 Subject: To-do list updates --- TODO.md | 12 ++++++++++-- autoload/xolox/easytags.vim | 12 +++++++----- 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/TODO.md b/TODO.md index a98e43c..3dc1f31 100644 --- a/TODO.md +++ b/TODO.md @@ -1,11 +1,19 @@ -# Long term plans for the easytags Vim plug-in +# To-do list for the easytags plug-in for Vim - * Automatically index C headers when /usr/include/$name.h exists? +## New functionality + + * Automatically index C headers when `/usr/include/$name.h` exists? * Integration with my unreleased project plug-in so that when you edit any file in a project, all related files are automatically scanned for tags? * Make `g:easytags_autorecurse` accept the following values: 0 (only scan the current file), 1 (always scan all files in the same directory) and 2 (always recurse down the current directory)? + * Several users have reported the plug-in locking Vim up and this was invariably caused by the plug-in trying to highlight the tags from a very large tags file. Maybe the plug-in should warn about this so the cause is immediately clear to users. It's also possible to temporarily change the `tags` option so that `taglist()` doesn't look at tags files that are bigger than a certain size but this feels like a hack and it may be better to go with the option below. + + * The functionality of the Python highlight script can just as well be implemented in Vim script (using `readfile()` instead of `taglist()`), the only notable difference being that Vim cannot read files line wise. This would remove the duplication of code between Vim script and Python and would mean all users get to enjoy a faster plug-in! I'm not sure whether a Vim script implementation of the same code would be equally fast though, so I should implement and benchmark! This would also easily enable the plug-in to ignore tags files that are too large (see above). + +## Possible bugs + * On Microsoft Windows (tested on XP) GVim loses focus while `ctags` is running because Vim opens a command prompt window. Also the CursorHold event seems to fire repeatedly, contradicting my understanding of the automatic command and its behavior on UNIX?! This behavior doesn't occur when I use the integration with my `shell.vim` plug-in. * I might have found a bug in Vim: The tag `easytags#highlight_cmd` was correctly being highlighted by my plug-in (and was indeed included in my tags file) even though I couldn't jump to it using `Ctrl-]`, which caused: diff --git a/autoload/xolox/easytags.vim b/autoload/xolox/easytags.vim index 941dcd2..7519b85 100644 --- a/autoload/xolox/easytags.vim +++ b/autoload/xolox/easytags.vim @@ -150,6 +150,8 @@ function! s:prep_cmdline(cfile, tagsfile, firstrun, arguments) " {{{3 call add(cmdline, '-R') call add(cmdline, shellescape(a:cfile)) else + " TODO Should --language-force distinguish between C and C++? + " TODO --language-force doesn't make sense for JavaScript tags in HTML files? let filetype = xolox#easytags#to_ctags_ft(&filetype) call add(cmdline, shellescape('--language-force=' . filetype)) call add(cmdline, shellescape(a:cfile)) @@ -259,6 +261,8 @@ function! xolox#easytags#highlight() " {{{2 execute 'syntax clear' hlgroup_tagged endif " Try to perform the highlighting using the fast Python script. + " TODO The tags files are read multiple times by the Python script + " within one run of xolox#easytags#highlight() if s:highlight_with_python(hlgroup_tagged, tagkind) let used_python = 1 else @@ -526,7 +530,7 @@ function! xolox#easytags#get_tagsfile() " {{{2 return tagsfile endfunction -" Public API for file-type specific dynamic syntax highlighting. {{{1 +" Public API for definition of file type specific dynamic syntax highlighting. {{{1 function! xolox#easytags#define_tagkind(object) " {{{2 if !has_key(a:object, 'pattern_prefix') @@ -547,6 +551,7 @@ function! xolox#easytags#map_filetypes(vim_ft, ctags_ft) " {{{2 endfunction function! xolox#easytags#alias_filetypes(...) " {{{2 + " TODO Simplify alias handling, this much complexity really isn't needed! for type in a:000 let s:canonical_aliases[type] = a:1 if !has_key(s:aliases, type) @@ -800,10 +805,7 @@ highlight def link javaMethod Function " C#. {{{2 -" TODO C# name spaces? -" TODO C# interface names -" TODO C# enumeration member names -" TODO C# structure names? +" TODO C# name spaces, interface names, enumeration member names, structure names? call xolox#easytags#define_tagkind({ \ 'filetype': 'cs', -- cgit v1.2.3