From e7e46456cd556a0a98969e211816c3eaa2d124cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ertu=C4=9Frul=20Erata?= Date: Wed, 22 Jul 2015 22:27:50 +0300 Subject: [PATCH] vim and deps in main --- editor/vi/component.xml | 3 + editor/vi/vim/actions.py | 81 + editor/vi/vim/files/gvim.desktop | 13 + editor/vi/vim/files/gvim.xpm | 46 + editor/vi/vim/files/gvimtutor | 8 + editor/vi/vim/files/official/7.4-461-tar.xz | Bin 0 -> 397988 bytes editor/vi/vim/files/pisilinux/actions.vim | 42 + .../vim/files/pisilinux/bash_completion.patch | 11 + editor/vi/vim/files/pisilinux/grub_conf.patch | 12 + editor/vi/vim/files/pisilinux/pspec.vim | 75 + .../vi/vim/files/pisilinux/translations.vim | 32 + editor/vi/vim/files/pisilinux/xorg_conf.patch | 19 + editor/vi/vim/files/plugins/kde-devel-vim.vim | 428 ++ editor/vi/vim/files/plugins/newpythonfile.vim | 28 + editor/vi/vim/files/plugins/redstring.vim | 26 + editor/vi/vim/files/plugins/taglist.vim | 4546 +++++++++++++++++ editor/vi/vim/files/vim-7.0-warning.patch | 12 + .../vi/vim/files/vim-7.3-interix-link.patch | 12 + editor/vi/vim/files/vim-fix-xml-crash.patch | 25 + editor/vi/vim/files/vimrc | 117 + editor/vi/vim/pspec.xml | 174 + editor/vi/vim/translations.xml | 10 + programming/tool/component.xml | 3 + programming/tool/ctags/actions.py | 27 + .../ctags/files/ctags-5.7-segment-fault.patch | 41 + .../ctags/files/ctags-5.8-f95-pointers.patch | 12 + ...gs-5.8-python-vars-starting-with-def.patch | 13 + programming/tool/ctags/pspec.xml | 48 + programming/tool/ctags/translations.xml | 10 + 29 files changed, 5874 insertions(+) create mode 100644 editor/vi/component.xml create mode 100644 editor/vi/vim/actions.py create mode 100644 editor/vi/vim/files/gvim.desktop create mode 100644 editor/vi/vim/files/gvim.xpm create mode 100644 editor/vi/vim/files/gvimtutor create mode 100644 editor/vi/vim/files/official/7.4-461-tar.xz create mode 100644 editor/vi/vim/files/pisilinux/actions.vim create mode 100644 editor/vi/vim/files/pisilinux/bash_completion.patch create mode 100644 editor/vi/vim/files/pisilinux/grub_conf.patch create mode 100644 editor/vi/vim/files/pisilinux/pspec.vim create mode 100644 editor/vi/vim/files/pisilinux/translations.vim create mode 100644 editor/vi/vim/files/pisilinux/xorg_conf.patch create mode 100644 editor/vi/vim/files/plugins/kde-devel-vim.vim create mode 100644 editor/vi/vim/files/plugins/newpythonfile.vim create mode 100644 editor/vi/vim/files/plugins/redstring.vim create mode 100644 editor/vi/vim/files/plugins/taglist.vim create mode 100644 editor/vi/vim/files/vim-7.0-warning.patch create mode 100644 editor/vi/vim/files/vim-7.3-interix-link.patch create mode 100644 editor/vi/vim/files/vim-fix-xml-crash.patch create mode 100644 editor/vi/vim/files/vimrc create mode 100644 editor/vi/vim/pspec.xml create mode 100644 editor/vi/vim/translations.xml create mode 100644 programming/tool/component.xml create mode 100644 programming/tool/ctags/actions.py create mode 100644 programming/tool/ctags/files/ctags-5.7-segment-fault.patch create mode 100644 programming/tool/ctags/files/ctags-5.8-f95-pointers.patch create mode 100644 programming/tool/ctags/files/ctags-5.8-python-vars-starting-with-def.patch create mode 100644 programming/tool/ctags/pspec.xml create mode 100644 programming/tool/ctags/translations.xml diff --git a/editor/vi/component.xml b/editor/vi/component.xml new file mode 100644 index 0000000000..8561f47953 --- /dev/null +++ b/editor/vi/component.xml @@ -0,0 +1,3 @@ + + editor.vi + diff --git a/editor/vi/vim/actions.py b/editor/vi/vim/actions.py new file mode 100644 index 0000000000..2ccdf8957d --- /dev/null +++ b/editor/vi/vim/actions.py @@ -0,0 +1,81 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import autotools +from pisi.actionsapi import pisitools +from pisi.actionsapi import shelltools +from pisi.actionsapi import get + + +#WorkDir = "vim74" + +def setup(): + # TODO: do we need that ? + shelltools.export("CXXFLAGS", get.CXXFLAGS().replace("-D_FORTIFY_SOURCE=2", "")) + shelltools.export("CFLAGS", get.CFLAGS().replace("-D_FORTIFY_SOURCE=2", "")) + pisitools.dosed("runtime/tools/mve.awk", "#!/usr/bin/nawk -f", "#!/usr/bin/awk -f") + + # define the place for the global (g)vimrc file (set to /etc/vim/vimrc) + shelltools.echo("src/feature.h", "#define SYS_VIMRC_FILE \"/etc/vim/vimrc\"") + + # our binary ctags file is names as exuberant-ctags + pisitools.dosed("runtime/doc/syntax.txt", "(ctags(\"| [-*.]|\\s+/))", "exuberant-\\1") + pisitools.dosed("runtime/doc/tagsrch.txt", "(ctags(\"| [-*.]|\\s+/))", "exuberant-\\1") + pisitools.dosed("runtime/doc/usr_29.txt", "(ctags(\"| [-*.]|\\s+/))", "exuberant-\\1") + pisitools.dosed("runtime/menu.vim", "(ctags(\"| [-*.]|\\s+/))", "exuberant-\\1") + pisitools.dosed("src/configure.in", "(ctags(\"| [-*.]|\\s+/))", "exuberant-\\1") + + # TODO: do we need that ? + pisitools.dosed("src/configure.in", r"libc\.h", "") + + # TODO: we could need that + #autotools.make("-C src autoconf") + + # TODO: * We should use "big" feature instead of "huge". + # * Investigate impacts on current use + options ="--with-features=huge \ + --enable-multibyte \ + --enable-perlinterp \ + --enable-pythoninterp \ + --enable-rubyinterp \ + --enable-gui=no \ + --with-tlib=ncurses \ + --prefix=/usr \ + --localstatedir=/var/lib/vim \ + --with-features=big \ + --disable-acl \ + --with-compiledby=PisiLinux \ + --enable-gpm \ + --enable-acl \ + --enable-cscope \ + --disable-netbeans \ + --enable-perlinterp \ + --disable-luainterp \ + --with-x=no \ + --with-modified-by=PisiLinux" + + if get.buildTYPE() == "gui": + options += " --enable-gui=gtk2 \ + --with-vim-name=gvim \ + --with-view-name=gview \ + --with-x=yes" + + autotools.configure(options) + +def build(): + autotools.make() + +def install(): + autotools.rawInstall("VIMRCLOC=/etc/vim DESTDIR=%s" % get.installDIR()) + + # enough for gui building, quit here + if get.buildTYPE() == "gui": + return + + # Vi != Vim, it's hard to break habbits + pisitools.dosym("vim", "/usr/bin/vi") + pisitools.dosym("/usr/bin/vim", "/bin/ex") + diff --git a/editor/vi/vim/files/gvim.desktop b/editor/vi/vim/files/gvim.desktop new file mode 100644 index 0000000000..96a230309a --- /dev/null +++ b/editor/vi/vim/files/gvim.desktop @@ -0,0 +1,13 @@ +[Desktop Entry] +Encoding=UTF-8 +Name=gVim +GenericName[en]=Gvim Text Editor +GenericName[tr]=Gvim Metin Düzenleyici +Comment[en]=A highly configurable text editor +Comment[tr]=Özelleştirilebilir metin düzenleyici +Exec=/usr/bin/gvim -f +Icon=/usr/share/pixmaps/gvim.xpm +Terminal=false +Type=Application +MimeType=text/css;text/html;text/htmlh;text/plain;text/rss;text/sgml;text/x-adasrc;text/x-authors;text/x-c++hdr;text/x-c++src;text/x-copying;text/x-credits;text/x-csharp;text/x-csrc;text/x-dtd;text/x-fortran;text/x-gettext-translation-template;text/x-gettext-translation;text/x-gtkrc;text/x-haskell;text/x-idl;text/x-install;text/x-java;text/x-js;text/x-ksh;text/x-ksysv-log;text/x-literate-haskell;text/x-log;text/x-makefile;text/x-moc;text/x-msil;text/x-nemerle;text/x-objcsrc;text/x-pascal;text/x-patch;text/x-readme;text/x-scheme;text/x-setext;text/x-sql;text/x-tcl;text/x-tex;text/x-texinfo;text/x-troff-me;text/x-troff-mm;text/x-troff-ms;text/x-uil;text/x-vb;text/xml; +Categories=Application;TextEditor; diff --git a/editor/vi/vim/files/gvim.xpm b/editor/vi/vim/files/gvim.xpm new file mode 100644 index 0000000000..694720ac30 --- /dev/null +++ b/editor/vi/vim/files/gvim.xpm @@ -0,0 +1,46 @@ +/* XPM */ +static char *magick[] = { +/* columns rows colors chars-per-pixel */ +"32 32 8 1", +" c Gray0", +". c #000080", +"X c #008000", +"o c Green", +"O c #808080", +"+ c #c0c0c0", +"@ c Gray100", +"# c None", +/* pixels */ +"############### ###############", +"############## oo ##############", +"### oXXo # ###", +"## @@@@@@@@@@@ XXXo @@@@@@@@@ ##", +"## @+++++++++++ XXX @+++++++++ #", +"### ++++++++++O XXXX ++++++++O #", +"#### O++++++OO XXXXXX O+++++OO #", +"#### @++++++O XXXXXX @+++++OO ##", +"#### @++++++O XXXXX @@++++OO ###", +"#### @++++++O XXXX @@++++OO ####", +"#### @++++++O XXX @@++++OO #####", +"#### @++++++O XX @@++++OO . ####", +"### @++++++O X @@++++OO XX. ###", +"## o @++++++O @@++++OO XXXX. ##", +"# oX @++++++O @@++++OO XXXXXX. #", +" oXX @++++++O@@++++OO XXXXXXXX. ", +" oXX @++++++O@++++OO XXXXXXXXX. ", +"# oX @++++++O++++OO XXXXXXXXX. #", +"## o @++++++++++ XXXXXXXXX. ##", +"### @+++++++++ ++ XXXXXXXX. ###", +"#### @+++++++++ ++ XXXXXXX. ####", +"#### @++++++++O X X ###", +"#### @+++++++O +++ +++ +++ ++ ##", +"#### @++++++OO ++ ++++++++++ #", +"#### @+++++OO ++ ++..++ + ##", +"#### @++++OO X ++ ++. ++ ++ ##", +"#### @+++OO XX ++ ++ ++ ++ ##", +"#### @++OO X ++ ++ ++ ++ ###", +"##### +OO ## +++ ++ ++ +++ ##", +"###### #### . ## ## ###", +"############## .. ##############", +"############### ###############" +}; diff --git a/editor/vi/vim/files/gvimtutor b/editor/vi/vim/files/gvimtutor new file mode 100644 index 0000000000..16152b5500 --- /dev/null +++ b/editor/vi/vim/files/gvimtutor @@ -0,0 +1,8 @@ +#!/bin/sh + +# Start GUI Vim on a copy of the tutor file. + +# Usage: gvimtutor [xx] +# See vimtutor for usage. + +exec `dirname $0`/vimtutor -g "$@" diff --git a/editor/vi/vim/files/official/7.4-461-tar.xz b/editor/vi/vim/files/official/7.4-461-tar.xz new file mode 100644 index 0000000000000000000000000000000000000000..76e355930ba26774dc1d596eb3cf9d30a60eb490 GIT binary patch literal 397988 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 z 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

QetBBX``>8JfJxVS<4c1|v4@!lrC$jrPO*&8 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 z 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%0AiJI1 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%0AX!l3x4$clZtnSRfGB_t!PeNi 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 tFF6N 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

ubO?kV=qq@+m~Y?vunEH1=6aSb-AGfSj;1Y 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 =SmartTab() + +if exists("EnableSmartParens") +" Insert a space after ( or [ and before ] or ) unless preceded by a matching +" paren/bracket or space or inside a string or comment. Comments are only +" recognized as such if they start on the current line :-( +inoremap ( =SmartParens( '(' ) +inoremap [ =SmartParens( '[' ) +inoremap ] =SmartParens( ']', '[' ) +inoremap ) =SmartParens( ')', '(' ) +endif + +" Insert an #include statement for the current/last symbol +inoremap :call AddHeader() + +" Insert a forward declaration for the current/last symbol +" FIXME: not implemented yet +" inoremap :call AddForward() + +" Switch between header and implementation files on ,h +nmap ,h :call SwitchHeaderImpl() + +" Comment selected lines on ,c in visual mode +vmap ,c :s,^,//X ,:noh +" Uncomment selected lines on ,u in visual mode +vmap ,u :s,^//X ,, + +" Insert an include guard based on the file name on ,i +nmap ,i :call IncludeGuard()o + +" Insert simple debug statements into each method +nmap ,d :call InsertMethodTracer() + +" Expand #i to #include <.h> or #include ".h". The latter is chosen +" if the character typed after #i is a dquote +" If the character is > #include <> is inserted (standard C++ headers w/o .h) +iab #i =SmartInclude() + +" Insert a stripped down CVS diff +iab DIFF :call RunDiff() + +" mark 'misplaced' tab characters +set listchars=tab:·\ ,trail:· +set list + +set incsearch + +function! SmartTab() + let col = col('.') - 1 + if !col || getline('.')[col-1] !~ '\k' + return "\" + else + return "\" + endif +endfunction + +function! SmartParens( char, ... ) + if ! ( &syntax =~ '^\(c\|cpp\|java\)$' ) + return a:char + endif + let s = strpart( getline( '.' ), 0, col( '.' ) - 1 ) + if s =~ '//' + return a:char + endif + let s = substitute( s, '/\*\([^*]\|\*\@!/\)*\*/', '', 'g' ) + let s = substitute( s, "'[^']*'", '', 'g' ) + let s = substitute( s, '"\(\\"\|[^"]\)*"', '', 'g' ) + if s =~ "\\([\"']\\|/\\*\\)" + return a:char + endif + if a:0 > 0 + if strpart( getline( '.' ), col( '.' ) - 3, 2 ) == a:1 . ' ' + return "\" . a:char + endif + if strpart( getline( '.' ), col( '.' ) - 2, 1 ) == ' ' + return a:char + endif + return ' ' . a:char + endif + if a:char == '(' + if strpart( getline( '.' ), col( '.' ) - 3, 2 ) == 'if' || + \strpart( getline( '.' ), col( '.' ) - 4, 3 ) == 'for' || + \strpart( getline( '.' ), col( '.' ) - 6, 5 ) == 'while' || + \strpart( getline( '.' ), col( '.' ) - 7, 6 ) == 'switch' + return ' ( ' + endif + endif + return a:char . ' ' +endfunction + +function! SwitchHeaderImpl() + let headers = '\.\([hH]\|hpp\|hxx\)$' + let impl = '\.\([cC]\|cpp\|cc\|cxx\)$' + let fn = expand( '%' ) + if fn =~ headers + let list = glob( substitute( fn, headers, '.*', '' ) ) + elseif fn =~ impl + let list = glob( substitute( fn, impl, '.*', '' ) ) + endif + while strlen( list ) > 0 + let file = substitute( list, "\n.*", '', '' ) + let list = substitute( list, "[^\n]*", '', '' ) + let list = substitute( list, "^\n", '', '' ) + if ( fn =~ headers && file =~ impl ) || ( fn =~ impl && file =~ headers ) + execute( "edit " . file ) + return + endif + endwhile + echohl ErrorMsg + echo "File switch failed!" + echohl None +endfunction + +function! IncludeGuard() + let guard = toupper( substitute( expand( '%' ), '\([^.]*\)\.h', '\1_h', '' ) ) + call append( '^', '#define ' . guard ) + + + call append( '^', '#ifndef ' . guard ) + call append( '$', '#endif // ' . guard ) + + +endfunction + +function! SmartInclude() + let next = nr2char( getchar( 0 ) ) + if next == '"' + return "#include \".h\"\\\" + endif + if next == '>' + return "#include <>\" + endif + return "#include <.h>\\\" +endfunction + +function! MapIdentHeader( ident ) + " Qt stuff + if a:ident =~ 'Q.*Layout' + return '' + elseif a:ident == 'QListViewItem' || + \a:ident == 'QCheckListItem' || + \a:ident == 'QListViewItemIterator' + return '' + elseif a:ident == 'QIconViewItem' || + \a:ident == 'QIconDragItem' || + \a:ident == 'QIconDrag' + return '' + elseif a:ident =~ 'Q.*Drag' || + \a:ident == 'QDragManager' + return '' + elseif a:ident == 'QMimeSource' || + \a:ident == 'QMimeSourceFactory' || + \a:ident == 'QWindowsMime' + return '' + elseif a:ident == 'QPtrListIterator' + return '' + elseif a:ident =~ 'Q.*Event' + return '' + elseif a:ident == 'QTime' || + \a:ident == 'QDate' + return '' + elseif a:ident == 'QTimeEdit' || + \a:ident == 'QDateTimeEditBase' || + \a:ident == 'QDateEdit' + return '' + elseif a:ident == 'QByteArray' + return '' + elseif a:ident == 'QWidgetListIt' + return '' + elseif a:ident == 'QTab' + return '' + elseif a:ident == 'QColorGroup' + return '' + elseif a:ident == 'QActionGroup' + return '' + elseif a:ident =~ 'Q.*Validator' + return '' + elseif a:ident =~ 'QListBox.*' + return '' + elseif a:ident == 'QChar' || + \a:ident == 'QCharRef' || + \a:ident == 'QConstString' + return '' + elseif a:ident =~ 'QCanvas.*' + return '' + elseif a:ident =~ 'QGL.*' + return '' + elseif a:ident == 'QTableSelection' || + \a:ident == 'QTableItem' || + \a:ident == 'QComboTableItem' || + \a:ident == 'QCheckTableItem' + return '' + elseif a:ident == 'qApp' + return '' + + " KDE stuff + elseif a:ident == 'K\(Double\|Int\)\(NumInput\|SpinBox\)' + return '' + elseif a:ident == 'KConfigGroup' + return '' + elseif a:ident == 'KListViewItem' + return '' + elseif a:ident =~ 'kd\(Debug\|Warning\|Error\|Fatal\|Backtrace\)' + return '' + elseif a:ident == 'kapp' + return '' + elseif a:ident == 'i18n' || + \a:ident == 'I18N_NOOP' + return '' + elseif a:ident == 'locate' || + \a:ident == 'locateLocal' + return '' + + " aRts stuff + elseif a:ident =~ '\arts_\(debug\|info\|warning\|fatal\)' + return '' + + " Standard Library stuff + elseif a:ident =~ '\(std::\)\?\(cout\|cerr\|endl\)' + return '' + elseif a:ident =~ '\(std::\)\?is\(alnum\|alpha\|ascii\|blank\|graph\|lower\|print\|punct\|space\|upper\|xdigit\)' + return '' + endif + + let header = tolower( substitute( a:ident, '::', '/', 'g' ) ) . '.h' + let check = header + while 1 + if filereadable( check ) + return '"' . check . '"' + endif + let slash = match( check, '/' ) + if slash == -1 + return '<' . header . '>' + endif + let check = strpart( check, slash + 1 ) + endwhile +endfunction + +" This is a rather dirty hack, but seems to work somehow :-) (malte) +function! AddHeader() + let s = getline( '.' ) + let i = col( '.' ) - 1 + while i > 0 && strpart( s, i, 1 ) !~ '[A-Za-z0-9_:]' + let i = i - 1 + endwhile + while i > 0 && strpart( s, i, 1 ) =~ '[A-Za-z0-9_:]' + let i = i - 1 + endwhile + let start = match( s, '[A-Za-z0-9_]\+\(::[A-Za-z0-9_]\+\)*', i ) + let end = matchend( s, '[A-Za-z0-9_]\+\(::[A-Za-z0-9_]\+\)*', i ) + if end > col( '.' ) + let end = matchend( s, '[A-Za-z0-9_]\+', i ) + endif + let ident = strpart( s, start, end - start ) + let include = '#include ' . MapIdentHeader( ident ) + + let line = 1 + let incomment = 0 + let appendpos = 0 + let codestart = 0 + while line <= line( '$' ) + let s = getline( line ) + if incomment == 1 + let end = matchend( s, '\*/' ) + if end == -1 + let line = line + 1 + continue + else + let s = strpart( s, end ) + let incomment = 0 + endif + endif + let s = substitute( s, '//.*', '', '' ) + let s = substitute( s, '/\*\([^*]\|\*\@!/\)*\*/', '', 'g' ) + if s =~ '/\*' + let incomment = 1 + elseif s =~ '^' . include + break + elseif s =~ '^#include' && s !~ '\.moc"' + let appendpos = line + elseif codestart == 0 && s !~ '^$' + let codestart = line + endif + let line = line + 1 + endwhile + if line == line( '$' ) + 1 + if appendpos == 0 + call append( codestart - 1, include ) + call append( codestart, '' ) + else + call append( appendpos, include ) + endif + endif +endfunction + +function! RunDiff() + echo 'Diffing....' + read! cvs diff -bB -I \\\#include | egrep -v '(^Index:|^=+$|^RCS file:|^retrieving revision|^diff -u|^[+-]{3})' +endfunction + +function! CreateChangeLogEntry() + let currentBuffer = expand( "%" ) + + if exists( "g:EMAIL" ) + let mail = g:EMAIL + elseif exists( "$EMAIL" ) + let mail = $EMAIL + else + let mail = inputdialog( "Enter Name/Email for Changelog entry: " ) + if mail == "" + echo "Aborted ChangeLog edit..." + return + endif + let g:EMAIL = mail + endif + + if bufname( "ChangeLog" ) != "" && bufwinnr( bufname( "ChangeLog" ) ) != -1 + execute bufwinnr( bufname( "ChangeLog" ) ) . " wincmd w" + else + execute "split ChangeLog" + endif + + let lastEntry = getline( nextnonblank( 1 ) ) + let newEntry = strftime("%Y-%m-%d") . " " . mail + + if lastEntry != newEntry + call append( 0, "" ) + call append( 0, "" ) + call append( 0, newEntry ) + endif + + " like emacs, prepend the current buffer name to the entry. but unlike + " emacs I have no idea how to figure out the current function name :( + " (Simon) + if currentBuffer != "" + let newLine = "\t* " . currentBuffer . ": " + else + let newLine = "\t* " + endif + + call append( 2, newLine ) + + execute "normal 3G$" +endfunction + +function! AddQtSyntax() + if expand( "" ) == "cpp" + syn keyword qtKeywords signals slots emit foreach + syn keyword qtMacros Q_OBJECT Q_WIDGET Q_PROPERTY Q_ENUMS Q_OVERRIDE Q_CLASSINFO Q_SETS SIGNAL SLOT + syn keyword qtCast qt_cast qobject_cast qvariant_cast qstyleoption_cast + syn keyword qtTypedef uchar uint ushort ulong Q_INT8 Q_UINT8 Q_INT16 Q_UINT16 Q_INT32 Q_UINT32 Q_LONG Q_ULONG Q_INT64 Q_UINT64 Q_LLONG Q_ULLONG pchar puchar pcchar qint8 quint8 qint16 quint16 qint32 quint32 qint64 quint64 qlonglong qulonglong + syn keyword kdeKeywords k_dcop k_dcop_signals + syn keyword kdeMacros K_DCOP ASYNC + syn keyword cRepeat foreach + syn keyword cRepeat forever + + hi def link qtKeywords Statement + hi def link qtMacros Type + hi def link qtCast Statement + hi def link qtTypedef Type + hi def link kdeKeywords Statement + hi def link kdeMacros Type + endif +endfunction + +function! InsertMethodTracer() + :normal [[kf(yBjokdDebug() << ""()" << endl; +endfunction + +function! UpdateMocFiles() + if &syntax == "cpp" + let i = 1 + while i < 80 + let s = getline( i ) + if s =~ '^#include ".*\.moc"' + let s = substitute( s, '.*"\(.*\)\.moc"', '\1.h', '' ) + if stridx( &complete, s ) == -1 + let &complete = &complete . ',k' . s + endif + break + endif + let i = i + 1 + endwhile + endif +endfunction + +autocmd Syntax * call AddQtSyntax() +autocmd CursorHold * call UpdateMocFiles() + +" vim: sw=4 sts=4 et diff --git a/editor/vi/vim/files/plugins/newpythonfile.vim b/editor/vi/vim/files/plugins/newpythonfile.vim new file mode 100644 index 0000000000..4a5edaae48 --- /dev/null +++ b/editor/vi/vim/files/plugins/newpythonfile.vim @@ -0,0 +1,28 @@ +" +" Just a little plugin to automatically set utf-8 for new Python files +" + +if &compatible || v:version < 603 + finish +endif + +fun! MakeNewPythonFile() + " actions.py has another handler + if expand("") == 'actions.py' + return + endif + set nopaste + 0 put = '#!/usr/bin/python' + put = '# -*- coding: utf-8 -*-' + put = '' + 5 +endfun + +com! -nargs=0 NewPythonFile call MakeNewPythonFile() + +augroup NewPythonFile + au! + autocmd BufNewFile *.py call MakeNewPythonFile() +augroup END + +" vim: set et foldmethod=marker : " diff --git a/editor/vi/vim/files/plugins/redstring.vim b/editor/vi/vim/files/plugins/redstring.vim new file mode 100644 index 0000000000..5b751828e5 --- /dev/null +++ b/editor/vi/vim/files/plugins/redstring.vim @@ -0,0 +1,26 @@ +" Vim color file +" Maintainer: Connor Berry +" Last Change: 2006/05/25 +" Version: 1.0 + +set background=dark +highlight clear +if exists("syntax on") + syntax reset +endif + +let g:colors_name = "redstring" + +highlight Normal term=none ctermfg=grey cterm=none ctermbg=black guifg=white gui=none guibg=black +highlight Comment term=none ctermfg=DarkGrey guifg=DarkGrey +highlight Constant term=none ctermfg=red cterm=none guifg=red gui=none +highlight Special term=none ctermfg=red cterm=bold guifg=red gui=bold +highlight Identifier term=none ctermfg=lightgreen cterm=none guifg=lightgreen gui=none +highlight Statement term=bold ctermfg=cyan cterm=bold guifg=cyan gui=bold +highlight Operator term=bold ctermfg=cyan cterm=bold guifg=cyan gui=bold +highlight PreProc term=bold ctermfg=lightgreen cterm=none guifg=green gui=none +highlight Type term=bold ctermfg=lightgreen cterm=none guifg=lightgreen gui=none +highlight String term=none ctermfg=red cterm=none guifg=red gui=none +highlight Number term=none ctermfg=red cterm=none guifg=red gui=none + +" vim:ts=2:sw=2:et diff --git a/editor/vi/vim/files/plugins/taglist.vim b/editor/vi/vim/files/plugins/taglist.vim new file mode 100644 index 0000000000..59901f64fa --- /dev/null +++ b/editor/vi/vim/files/plugins/taglist.vim @@ -0,0 +1,4546 @@ +" File: taglist.vim +" Author: Yegappan Lakshmanan (yegappan AT yahoo DOT com) +" Version: 4.5 +" Last Modified: September 21, 2007 +" Copyright: Copyright (C) 2002-2007 Yegappan Lakshmanan +" Permission is hereby granted to use and distribute this code, +" with or without modifications, provided that this copyright +" notice is copied with it. Like anything else that's free, +" taglist.vim is provided *as is* and comes with no warranty of any +" kind, either expressed or implied. In no event will the copyright +" holder be liable for any damamges resulting from the use of this +" software. +" +" The "Tag List" plugin is a source code browser plugin for Vim and provides +" an overview of the structure of the programming language files and allows +" you to efficiently browse through source code files for different +" programming languages. You can visit the taglist plugin home page for more +" information: +" +" http://vim-taglist.sourceforge.net +" +" You can subscribe to the taglist mailing list to post your questions +" or suggestions for improvement or to report bugs. Visit the following +" page for subscribing to the mailing list: +" +" http://groups.yahoo.com/group/taglist/ +" +" For more information about using this plugin, after installing the +" taglist plugin, use the ":help taglist" command. +" +" Installation +" ------------ +" 1. Download the taglist.zip file and unzip the files to the $HOME/.vim +" or the $HOME/vimfiles or the $VIM/vimfiles directory. This should +" unzip the following two files (the directory structure should be +" preserved): +" +" plugin/taglist.vim - main taglist plugin file +" doc/taglist.txt - documentation (help) file +" +" Refer to the 'add-plugin', 'add-global-plugin' and 'runtimepath' +" Vim help pages for more details about installing Vim plugins. +" 2. Change to the $HOME/.vim/doc or $HOME/vimfiles/doc or +" $VIM/vimfiles/doc directory, start Vim and run the ":helptags ." +" command to process the taglist help file. +" 3. If the exuberant ctags utility is not present in your PATH, then set the +" Tlist_Ctags_Cmd variable to point to the location of the exuberant ctags +" utility (not to the directory) in the .vimrc file. +" 4. If you are running a terminal/console version of Vim and the +" terminal doesn't support changing the window width then set the +" 'Tlist_Inc_Winwidth' variable to 0 in the .vimrc file. +" 5. Restart Vim. +" 6. You can now use the ":TlistToggle" command to open/close the taglist +" window. You can use the ":help taglist" command to get more +" information about using the taglist plugin. +" +" ****************** Do not modify after this line ************************ + +" Line continuation used here +let s:cpo_save = &cpo +set cpo&vim + +if !exists('loaded_taglist') + " First time loading the taglist plugin + " + " To speed up the loading of Vim, the taglist plugin uses autoload + " mechanism to load the taglist functions. + " Only define the configuration variables, user commands and some + " auto-commands and finish sourcing the file + + " The taglist plugin requires the built-in Vim system() function. If this + " function is not available, then don't load the plugin. + if !exists('*system') + echomsg 'Taglist: Vim system() built-in function is not available. ' . + \ 'Plugin is not loaded.' + let loaded_taglist = 'no' + let &cpo = s:cpo_save + finish + endif + + " Location of the exuberant ctags tool + if !exists('Tlist_Ctags_Cmd') + if executable('exuberant-ctags') + " On Debian Linux, exuberant ctags is installed + " as exuberant-ctags + let Tlist_Ctags_Cmd = 'exuberant-ctags' + elseif executable('exctags') + " On Free-BSD, exuberant ctags is installed as exctags + let Tlist_Ctags_Cmd = 'exctags' + elseif executable('ctags') + let Tlist_Ctags_Cmd = 'ctags' + elseif executable('ctags.exe') + let Tlist_Ctags_Cmd = 'ctags.exe' + elseif executable('tags') + let Tlist_Ctags_Cmd = 'tags' + else + echomsg 'Taglist: Exuberant ctags (http://ctags.sf.net) ' . + \ 'not found in PATH. Plugin is not loaded.' + " Skip loading the plugin + let loaded_taglist = 'no' + let &cpo = s:cpo_save + finish + endif + endif + + + " Automatically open the taglist window on Vim startup + if !exists('Tlist_Auto_Open') + let Tlist_Auto_Open = 0 + endif + + " When the taglist window is toggle opened, move the cursor to the + " taglist window + if !exists('Tlist_GainFocus_On_ToggleOpen') + let Tlist_GainFocus_On_ToggleOpen = 0 + endif + + " Process files even when the taglist window is not open + if !exists('Tlist_Process_File_Always') + let Tlist_Process_File_Always = 0 + endif + + if !exists('Tlist_Show_Menu') + let Tlist_Show_Menu = 0 + endif + + " Tag listing sort type - 'name' or 'order' + if !exists('Tlist_Sort_Type') + let Tlist_Sort_Type = 'order' + endif + + " Tag listing window split (horizontal/vertical) control + if !exists('Tlist_Use_Horiz_Window') + let Tlist_Use_Horiz_Window = 0 + endif + + " Open the vertically split taglist window on the left or on the right + " side. This setting is relevant only if Tlist_Use_Horiz_Window is set to + " zero (i.e. only for vertically split windows) + if !exists('Tlist_Use_Right_Window') + let Tlist_Use_Right_Window = 0 + endif + + " Increase Vim window width to display vertically split taglist window. + " For MS-Windows version of Vim running in a MS-DOS window, this must be + " set to 0 otherwise the system may hang due to a Vim limitation. + if !exists('Tlist_Inc_Winwidth') + if (has('win16') || has('win95')) && !has('gui_running') + let Tlist_Inc_Winwidth = 0 + else + let Tlist_Inc_Winwidth = 1 + endif + endif + + " Vertically split taglist window width setting + if !exists('Tlist_WinWidth') + let Tlist_WinWidth = 30 + endif + + " Horizontally split taglist window height setting + if !exists('Tlist_WinHeight') + let Tlist_WinHeight = 10 + endif + + " Display tag prototypes or tag names in the taglist window + if !exists('Tlist_Display_Prototype') + let Tlist_Display_Prototype = 0 + endif + + " Display tag scopes in the taglist window + if !exists('Tlist_Display_Tag_Scope') + let Tlist_Display_Tag_Scope = 1 + endif + + " Use single left mouse click to jump to a tag. By default this is disabled. + " Only double click using the mouse will be processed. + if !exists('Tlist_Use_SingleClick') + let Tlist_Use_SingleClick = 0 + endif + + " Control whether additional help is displayed as part of the taglist or + " not. Also, controls whether empty lines are used to separate the tag + " tree. + if !exists('Tlist_Compact_Format') + let Tlist_Compact_Format = 0 + endif + + " Exit Vim if only the taglist window is currently open. By default, this is + " set to zero. + if !exists('Tlist_Exit_OnlyWindow') + let Tlist_Exit_OnlyWindow = 0 + endif + + " Automatically close the folds for the non-active files in the taglist + " window + if !exists('Tlist_File_Fold_Auto_Close') + let Tlist_File_Fold_Auto_Close = 0 + endif + + " Close the taglist window when a tag is selected + if !exists('Tlist_Close_On_Select') + let Tlist_Close_On_Select = 0 + endif + + " Automatically update the taglist window to display tags for newly + " edited files + if !exists('Tlist_Auto_Update') + let Tlist_Auto_Update = 1 + endif + + " Automatically highlight the current tag + if !exists('Tlist_Auto_Highlight_Tag') + let Tlist_Auto_Highlight_Tag = 1 + endif + + " Automatically highlight the current tag on entering a buffer + if !exists('Tlist_Highlight_Tag_On_BufEnter') + let Tlist_Highlight_Tag_On_BufEnter = 1 + endif + + " Enable fold column to display the folding for the tag tree + if !exists('Tlist_Enable_Fold_Column') + let Tlist_Enable_Fold_Column = 1 + endif + + " Display the tags for only one file in the taglist window + if !exists('Tlist_Show_One_File') + let Tlist_Show_One_File = 0 + endif + + if !exists('Tlist_Max_Submenu_Items') + let Tlist_Max_Submenu_Items = 20 + endif + + if !exists('Tlist_Max_Tag_Length') + let Tlist_Max_Tag_Length = 10 + endif + + " Do not change the name of the taglist title variable. The winmanager + " plugin relies on this name to determine the title for the taglist + " plugin. + let TagList_title = "__Tag_List__" + + " Taglist debug messages + let s:tlist_msg = '' + + " Define the taglist autocommand to automatically open the taglist window + " on Vim startup + if g:Tlist_Auto_Open + autocmd VimEnter * nested call s:Tlist_Window_Check_Auto_Open() + endif + + " Refresh the taglist + if g:Tlist_Process_File_Always + autocmd BufEnter * call s:Tlist_Refresh() + endif + + if g:Tlist_Show_Menu + autocmd GUIEnter * call s:Tlist_Menu_Init() + endif + + " When the taglist buffer is created when loading a Vim session file, + " the taglist buffer needs to be initialized. The BufFilePost event + " is used to handle this case. + autocmd BufFilePost __Tag_List__ call s:Tlist_Vim_Session_Load() + + " Define the user commands to manage the taglist window + command! -nargs=0 -bar TlistToggle call s:Tlist_Window_Toggle() + command! -nargs=0 -bar TlistOpen call s:Tlist_Window_Open() + " For backwards compatiblity define the Tlist command + command! -nargs=0 -bar Tlist TlistToggle + command! -nargs=+ -complete=file TlistAddFiles + \ call s:Tlist_Add_Files() + command! -nargs=+ -complete=dir TlistAddFilesRecursive + \ call s:Tlist_Add_Files_Recursive() + command! -nargs=0 -bar TlistClose call s:Tlist_Window_Close() + command! -nargs=0 -bar TlistUpdate call s:Tlist_Update_Current_File() + command! -nargs=0 -bar TlistHighlightTag call s:Tlist_Window_Highlight_Tag( + \ fnamemodify(bufname('%'), ':p'), line('.'), 2, 1) + " For backwards compatiblity define the TlistSync command + command! -nargs=0 -bar TlistSync TlistHighlightTag + command! -nargs=* -complete=buffer TlistShowPrototype + \ echo Tlist_Get_Tag_Prototype_By_Line() + command! -nargs=* -complete=buffer TlistShowTag + \ echo Tlist_Get_Tagname_By_Line() + command! -nargs=* -complete=file TlistSessionLoad + \ call s:Tlist_Session_Load() + command! -nargs=* -complete=file TlistSessionSave + \ call s:Tlist_Session_Save() + command! -bar TlistLock let Tlist_Auto_Update=0 + command! -bar TlistUnlock let Tlist_Auto_Update=1 + + " Commands for enabling/disabling debug and to display debug messages + command! -nargs=? -complete=file -bar TlistDebug + \ call s:Tlist_Debug_Enable() + command! -nargs=0 -bar TlistUndebug call s:Tlist_Debug_Disable() + command! -nargs=0 -bar TlistMessages call s:Tlist_Debug_Show() + + " Define autocommands to autoload the taglist plugin when needed. + + " Trick to get the current script ID + map xx xx + let s:tlist_sid = substitute(maparg('xx'), '\(\d\+_\)xx$', + \ '\1', '') + unmap xx + + exe 'autocmd FuncUndefined *' . s:tlist_sid . 'Tlist_* source ' . + \ escape(expand(''), ' ') + exe 'autocmd FuncUndefined *' . s:tlist_sid . 'Tlist_Window_* source ' . + \ escape(expand(''), ' ') + exe 'autocmd FuncUndefined *' . s:tlist_sid . 'Tlist_Menu_* source ' . + \ escape(expand(''), ' ') + exe 'autocmd FuncUndefined Tlist_* source ' . + \ escape(expand(''), ' ') + exe 'autocmd FuncUndefined TagList_* source ' . + \ escape(expand(''), ' ') + + let loaded_taglist = 'fast_load_done' + + if g:Tlist_Show_Menu && has('gui_running') + call s:Tlist_Menu_Init() + endif + + " restore 'cpo' + let &cpo = s:cpo_save + finish +endif + +if !exists('s:tlist_sid') + " Two or more versions of taglist plugin are installed. Don't + " load this version of the plugin. + finish +endif + +unlet! s:tlist_sid + +if loaded_taglist != 'fast_load_done' + " restore 'cpo' + let &cpo = s:cpo_save + finish +endif + +" Taglist plugin functionality is available +let loaded_taglist = 'available' + +"------------------- end of user configurable options -------------------- + +" Default language specific settings for supported file types and tag types +" +" Variable name format: +" +" s:tlist_def_{vim_ftype}_settings +" +" vim_ftype - Filetype detected by Vim +" +" Value format: +" +" ;:;:;... +" +" ctags_ftype - File type supported by exuberant ctags +" flag - Flag supported by exuberant ctags to generate a tag type +" name - Name of the tag type used in the taglist window to display the +" tags of this type +" + +" assembly language +let s:tlist_def_asm_settings = 'asm;d:define;l:label;m:macro;t:type' + +" aspperl language +let s:tlist_def_aspperl_settings = 'asp;f:function;s:sub;v:variable' + +" aspvbs language +let s:tlist_def_aspvbs_settings = 'asp;f:function;s:sub;v:variable' + +" awk language +let s:tlist_def_awk_settings = 'awk;f:function' + +" beta language +let s:tlist_def_beta_settings = 'beta;f:fragment;s:slot;v:pattern' + +" c language +let s:tlist_def_c_settings = 'c;d:macro;g:enum;s:struct;u:union;t:typedef;' . + \ 'v:variable;f:function' + +" c++ language +let s:tlist_def_cpp_settings = 'c++;n:namespace;v:variable;d:macro;t:typedef;' . + \ 'c:class;g:enum;s:struct;u:union;f:function' + +" c# language +let s:tlist_def_cs_settings = 'c#;d:macro;t:typedef;n:namespace;c:class;' . + \ 'E:event;g:enum;s:struct;i:interface;' . + \ 'p:properties;m:method' + +" cobol language +let s:tlist_def_cobol_settings = 'cobol;d:data;f:file;g:group;p:paragraph;' . + \ 'P:program;s:section' + +" eiffel language +let s:tlist_def_eiffel_settings = 'eiffel;c:class;f:feature' + +" erlang language +let s:tlist_def_erlang_settings = 'erlang;d:macro;r:record;m:module;f:function' + +" expect (same as tcl) language +let s:tlist_def_expect_settings = 'tcl;c:class;f:method;p:procedure' + +" fortran language +let s:tlist_def_fortran_settings = 'fortran;p:program;b:block data;' . + \ 'c:common;e:entry;i:interface;k:type;l:label;m:module;' . + \ 'n:namelist;t:derived;v:variable;f:function;s:subroutine' + +" HTML language +let s:tlist_def_html_settings = 'html;a:anchor;f:javascript function' + +" java language +let s:tlist_def_java_settings = 'java;p:package;c:class;i:interface;' . + \ 'f:field;m:method' + +" javascript language +let s:tlist_def_javascript_settings = 'javascript;f:function' + +" lisp language +let s:tlist_def_lisp_settings = 'lisp;f:function' + +" lua language +let s:tlist_def_lua_settings = 'lua;f:function' + +" makefiles +let s:tlist_def_make_settings = 'make;m:macro' + +" pascal language +let s:tlist_def_pascal_settings = 'pascal;f:function;p:procedure' + +" perl language +let s:tlist_def_perl_settings = 'perl;c:constant;l:label;p:package;s:subroutine' + +" php language +let s:tlist_def_php_settings = 'php;c:class;d:constant;v:variable;f:function' + +" python language +let s:tlist_def_python_settings = 'python;c:class;m:member;f:function' + +" rexx language +let s:tlist_def_rexx_settings = 'rexx;s:subroutine' + +" ruby language +let s:tlist_def_ruby_settings = 'ruby;c:class;f:method;F:function;' . + \ 'm:singleton method' + +" scheme language +let s:tlist_def_scheme_settings = 'scheme;s:set;f:function' + +" shell language +let s:tlist_def_sh_settings = 'sh;f:function' + +" C shell language +let s:tlist_def_csh_settings = 'sh;f:function' + +" Z shell language +let s:tlist_def_zsh_settings = 'sh;f:function' + +" slang language +let s:tlist_def_slang_settings = 'slang;n:namespace;f:function' + +" sml language +let s:tlist_def_sml_settings = 'sml;e:exception;c:functor;s:signature;' . + \ 'r:structure;t:type;v:value;f:function' + +" sql language +let s:tlist_def_sql_settings = 'sql;c:cursor;F:field;P:package;r:record;' . + \ 's:subtype;t:table;T:trigger;v:variable;f:function;p:procedure' + +" tcl language +let s:tlist_def_tcl_settings = 'tcl;c:class;f:method;m:method;p:procedure' + +" vera language +let s:tlist_def_vera_settings = 'vera;c:class;d:macro;e:enumerator;' . + \ 'f:function;g:enum;m:member;p:program;' . + \ 'P:prototype;t:task;T:typedef;v:variable;' . + \ 'x:externvar' + +"verilog language +let s:tlist_def_verilog_settings = 'verilog;m:module;c:constant;P:parameter;' . + \ 'e:event;r:register;t:task;w:write;p:port;v:variable;f:function' + +" vim language +let s:tlist_def_vim_settings = 'vim;a:autocmds;v:variable;f:function' + +" yacc language +let s:tlist_def_yacc_settings = 'yacc;l:label' + +"------------------- end of language specific options -------------------- + +" Vim window size is changed by the taglist plugin or not +let s:tlist_winsize_chgd = -1 +" Taglist window is maximized or not +let s:tlist_win_maximized = 0 +" Name of files in the taglist +let s:tlist_file_names='' +" Number of files in the taglist +let s:tlist_file_count = 0 +" Number of filetypes supported by taglist +let s:tlist_ftype_count = 0 +" Is taglist part of other plugins like winmanager or cream? +let s:tlist_app_name = "none" +" Are we displaying brief help text +let s:tlist_brief_help = 1 +" List of files removed on user request +let s:tlist_removed_flist = "" +" Index of current file displayed in the taglist window +let s:tlist_cur_file_idx = -1 +" Taglist menu is empty or not +let s:tlist_menu_empty = 1 + +" An autocommand is used to refresh the taglist window when entering any +" buffer. We don't want to refresh the taglist window if we are entering the +" file window from one of the taglist functions. The 'Tlist_Skip_Refresh' +" variable is used to skip the refresh of the taglist window and is set +" and cleared appropriately. +let s:Tlist_Skip_Refresh = 0 + +" Tlist_Window_Display_Help() +function! s:Tlist_Window_Display_Help() + if s:tlist_app_name == "winmanager" + " To handle a bug in the winmanager plugin, add a space at the + " last line + call setline('$', ' ') + endif + + if s:tlist_brief_help + " Add the brief help + call append(0, '" Press to display help text') + else + " Add the extensive help + call append(0, '" : Jump to tag definition') + call append(1, '" o : Jump to tag definition in new window') + call append(2, '" p : Preview the tag definition') + call append(3, '" : Display tag prototype') + call append(4, '" u : Update tag list') + call append(5, '" s : Select sort field') + call append(6, '" d : Remove file from taglist') + call append(7, '" x : Zoom-out/Zoom-in taglist window') + call append(8, '" + : Open a fold') + call append(9, '" - : Close a fold') + call append(10, '" * : Open all folds') + call append(11, '" = : Close all folds') + call append(12, '" [[ : Move to the start of previous file') + call append(13, '" ]] : Move to the start of next file') + call append(14, '" q : Close the taglist window') + call append(15, '" : Remove help text') + endif +endfunction + +" Tlist_Window_Toggle_Help_Text() +" Toggle taglist plugin help text between the full version and the brief +" version +function! s:Tlist_Window_Toggle_Help_Text() + if g:Tlist_Compact_Format + " In compact display mode, do not display help + return + endif + + " Include the empty line displayed after the help text + let brief_help_size = 1 + let full_help_size = 16 + + setlocal modifiable + + " Set report option to a huge value to prevent informational messages + " while deleting the lines + let old_report = &report + set report=99999 + + " Remove the currently highlighted tag. Otherwise, the help text + " might be highlighted by mistake + match none + + " Toggle between brief and full help text + if s:tlist_brief_help + let s:tlist_brief_help = 0 + + " Remove the previous help + exe '1,' . brief_help_size . ' delete _' + + " Adjust the start/end line numbers for the files + call s:Tlist_Window_Update_Line_Offsets(0, 1, full_help_size - brief_help_size) + else + let s:tlist_brief_help = 1 + + " Remove the previous help + exe '1,' . full_help_size . ' delete _' + + " Adjust the start/end line numbers for the files + call s:Tlist_Window_Update_Line_Offsets(0, 0, full_help_size - brief_help_size) + endif + + call s:Tlist_Window_Display_Help() + + " Restore the report option + let &report = old_report + + setlocal nomodifiable +endfunction + +" Taglist debug support +let s:tlist_debug = 0 + +" File for storing the debug messages +let s:tlist_debug_file = '' + +" Tlist_Debug_Enable +" Enable logging of taglist debug messages. +function! s:Tlist_Debug_Enable(...) + let s:tlist_debug = 1 + + " Check whether a valid file name is supplied. + if a:1 != '' + let s:tlist_debug_file = fnamemodify(a:1, ':p') + + " Empty the log file + exe 'redir! > ' . s:tlist_debug_file + redir END + + " Check whether the log file is present/created + if !filewritable(s:tlist_debug_file) + call s:Tlist_Warning_Msg('Taglist: Unable to create log file ' + \ . s:tlist_debug_file) + let s:tlist_debug_file = '' + endif + endif +endfunction + +" Tlist_Debug_Disable +" Disable logging of taglist debug messages. +function! s:Tlist_Debug_Disable(...) + let s:tlist_debug = 0 + let s:tlist_debug_file = '' +endfunction + +" Tlist_Debug_Show +" Display the taglist debug messages in a new window +function! s:Tlist_Debug_Show() + if s:tlist_msg == '' + call s:Tlist_Warning_Msg('Taglist: No debug messages') + return + endif + + " Open a new window to display the taglist debug messages + new taglist_debug.txt + " Delete all the lines (if the buffer already exists) + silent! %delete _ + " Add the messages + silent! put =s:tlist_msg + " Move the cursor to the first line + normal! gg +endfunction + +" Tlist_Log_Msg +" Log the supplied debug message along with the time +function! s:Tlist_Log_Msg(msg) + if s:tlist_debug + if s:tlist_debug_file != '' + exe 'redir >> ' . s:tlist_debug_file + silent echon strftime('%H:%M:%S') . ': ' . a:msg . "\n" + redir END + else + " Log the message into a variable + " Retain only the last 3000 characters + let len = strlen(s:tlist_msg) + if len > 3000 + let s:tlist_msg = strpart(s:tlist_msg, len - 3000) + endif + let s:tlist_msg = s:tlist_msg . strftime('%H:%M:%S') . ': ' . + \ a:msg . "\n" + endif + endif +endfunction + +" Tlist_Warning_Msg() +" Display a message using WarningMsg highlight group +function! s:Tlist_Warning_Msg(msg) + echohl WarningMsg + echomsg a:msg + echohl None +endfunction + +" Last returned file index for file name lookup. +" Used to speed up file lookup +let s:tlist_file_name_idx_cache = -1 + +" Tlist_Get_File_Index() +" Return the index of the specified filename +function! s:Tlist_Get_File_Index(fname) + if s:tlist_file_count == 0 || a:fname == '' + return -1 + endif + + " If the new filename is same as the last accessed filename, then + " return that index + if s:tlist_file_name_idx_cache != -1 && + \ s:tlist_file_name_idx_cache < s:tlist_file_count + if s:tlist_{s:tlist_file_name_idx_cache}_filename == a:fname + " Same as the last accessed file + return s:tlist_file_name_idx_cache + endif + endif + + " First, check whether the filename is present + let s_fname = a:fname . "\n" + let i = stridx(s:tlist_file_names, s_fname) + if i == -1 + let s:tlist_file_name_idx_cache = -1 + return -1 + endif + + " Second, compute the file name index + let nl_txt = substitute(strpart(s:tlist_file_names, 0, i), "[^\n]", '', 'g') + let s:tlist_file_name_idx_cache = strlen(nl_txt) + return s:tlist_file_name_idx_cache +endfunction + +" Last returned file index for line number lookup. +" Used to speed up file lookup +let s:tlist_file_lnum_idx_cache = -1 + +" Tlist_Window_Get_File_Index_By_Linenum() +" Return the index of the filename present in the specified line number +" Line number refers to the line number in the taglist window +function! s:Tlist_Window_Get_File_Index_By_Linenum(lnum) + call s:Tlist_Log_Msg('Tlist_Window_Get_File_Index_By_Linenum (' . a:lnum . ')') + + " First try to see whether the new line number is within the range + " of the last returned file + if s:tlist_file_lnum_idx_cache != -1 && + \ s:tlist_file_lnum_idx_cache < s:tlist_file_count + if a:lnum >= s:tlist_{s:tlist_file_lnum_idx_cache}_start && + \ a:lnum <= s:tlist_{s:tlist_file_lnum_idx_cache}_end + return s:tlist_file_lnum_idx_cache + endif + endif + + let fidx = -1 + + if g:Tlist_Show_One_File + " Displaying only one file in the taglist window. Check whether + " the line is within the tags displayed for that file + if s:tlist_cur_file_idx != -1 + if a:lnum >= s:tlist_{s:tlist_cur_file_idx}_start + \ && a:lnum <= s:tlist_{s:tlist_cur_file_idx}_end + let fidx = s:tlist_cur_file_idx + endif + + endif + else + " Do a binary search in the taglist + let left = 0 + let right = s:tlist_file_count - 1 + + while left < right + let mid = (left + right) / 2 + + if a:lnum >= s:tlist_{mid}_start && a:lnum <= s:tlist_{mid}_end + let s:tlist_file_lnum_idx_cache = mid + return mid + endif + + if a:lnum < s:tlist_{mid}_start + let right = mid - 1 + else + let left = mid + 1 + endif + endwhile + + if left >= 0 && left < s:tlist_file_count + \ && a:lnum >= s:tlist_{left}_start + \ && a:lnum <= s:tlist_{left}_end + let fidx = left + endif + endif + + let s:tlist_file_lnum_idx_cache = fidx + + return fidx +endfunction + +" Tlist_Exe_Cmd_No_Acmds +" Execute the specified Ex command after disabling autocommands +function! s:Tlist_Exe_Cmd_No_Acmds(cmd) + let old_eventignore = &eventignore + set eventignore=all + exe a:cmd + let &eventignore = old_eventignore +endfunction + +" Tlist_Skip_File() +" Check whether tag listing is supported for the specified file +function! s:Tlist_Skip_File(filename, ftype) + " Skip buffers with no names and buffers with filetype not set + if a:filename == '' || a:ftype == '' + return 1 + endif + + " Skip files which are not supported by exuberant ctags + " First check whether default settings for this filetype are available. + " If it is not available, then check whether user specified settings are + " available. If both are not available, then don't list the tags for this + " filetype + let var = 's:tlist_def_' . a:ftype . '_settings' + if !exists(var) + let var = 'g:tlist_' . a:ftype . '_settings' + if !exists(var) + return 1 + endif + endif + + " Skip files which are not readable or files which are not yet stored + " to the disk + if !filereadable(a:filename) + return 1 + endif + + return 0 +endfunction + +" Tlist_User_Removed_File +" Returns 1 if a file is removed by a user from the taglist +function! s:Tlist_User_Removed_File(filename) + return stridx(s:tlist_removed_flist, a:filename . "\n") != -1 +endfunction + +" Tlist_Update_Remove_List +" Update the list of user removed files from the taglist +" add == 1, add the file to the removed list +" add == 0, delete the file from the removed list +function! s:Tlist_Update_Remove_List(filename, add) + if a:add + let s:tlist_removed_flist = s:tlist_removed_flist . a:filename . "\n" + else + let idx = stridx(s:tlist_removed_flist, a:filename . "\n") + let text_before = strpart(s:tlist_removed_flist, 0, idx) + let rem_text = strpart(s:tlist_removed_flist, idx) + let next_idx = stridx(rem_text, "\n") + let text_after = strpart(rem_text, next_idx + 1) + + let s:tlist_removed_flist = text_before . text_after + endif +endfunction + +" Tlist_FileType_Init +" Initialize the ctags arguments and tag variable for the specified +" file type +function! s:Tlist_FileType_Init(ftype) + call s:Tlist_Log_Msg('Tlist_FileType_Init (' . a:ftype . ')') + " If the user didn't specify any settings, then use the default + " ctags args. Otherwise, use the settings specified by the user + let var = 'g:tlist_' . a:ftype . '_settings' + if exists(var) + " User specified ctags arguments + let settings = {var} . ';' + else + " Default ctags arguments + let var = 's:tlist_def_' . a:ftype . '_settings' + if !exists(var) + " No default settings for this file type. This filetype is + " not supported + return 0 + endif + let settings = s:tlist_def_{a:ftype}_settings . ';' + endif + + let msg = 'Taglist: Invalid ctags option setting - ' . settings + + " Format of the option that specifies the filetype and ctags arugments: + " + " ;flag1:name1;flag2:name2;flag3:name3 + " + + " Extract the file type to pass to ctags. This may be different from the + " file type detected by Vim + let pos = stridx(settings, ';') + if pos == -1 + call s:Tlist_Warning_Msg(msg) + return 0 + endif + let ctags_ftype = strpart(settings, 0, pos) + if ctags_ftype == '' + call s:Tlist_Warning_Msg(msg) + return 0 + endif + " Make sure a valid filetype is supplied. If the user didn't specify a + " valid filetype, then the ctags option settings may be treated as the + " filetype + if ctags_ftype =~ ':' + call s:Tlist_Warning_Msg(msg) + return 0 + endif + + " Remove the file type from settings + let settings = strpart(settings, pos + 1) + if settings == '' + call s:Tlist_Warning_Msg(msg) + return 0 + endif + + " Process all the specified ctags flags. The format is + " flag1:name1;flag2:name2;flag3:name3 + let ctags_flags = '' + let cnt = 0 + while settings != '' + " Extract the flag + let pos = stridx(settings, ':') + if pos == -1 + call s:Tlist_Warning_Msg(msg) + return 0 + endif + let flag = strpart(settings, 0, pos) + if flag == '' + call s:Tlist_Warning_Msg(msg) + return 0 + endif + " Remove the flag from settings + let settings = strpart(settings, pos + 1) + + " Extract the tag type name + let pos = stridx(settings, ';') + if pos == -1 + call s:Tlist_Warning_Msg(msg) + return 0 + endif + let name = strpart(settings, 0, pos) + if name == '' + call s:Tlist_Warning_Msg(msg) + return 0 + endif + let settings = strpart(settings, pos + 1) + + let cnt = cnt + 1 + + let s:tlist_{a:ftype}_{cnt}_name = flag + let s:tlist_{a:ftype}_{cnt}_fullname = name + let ctags_flags = ctags_flags . flag + endwhile + + let s:tlist_{a:ftype}_ctags_args = '--language-force=' . ctags_ftype . + \ ' --' . ctags_ftype . '-types=' . ctags_flags + let s:tlist_{a:ftype}_count = cnt + let s:tlist_{a:ftype}_ctags_flags = ctags_flags + + " Save the filetype name + let s:tlist_ftype_{s:tlist_ftype_count}_name = a:ftype + let s:tlist_ftype_count = s:tlist_ftype_count + 1 + + return 1 +endfunction + +" Tlist_Detect_Filetype +" Determine the filetype for the specified file using the filetypedetect +" autocmd. +function! s:Tlist_Detect_Filetype(fname) + " Ignore the filetype autocommands + let old_eventignore = &eventignore + set eventignore=FileType + + " Save the 'filetype', as this will be changed temporarily + let old_filetype = &filetype + + " Run the filetypedetect group of autocommands to determine + " the filetype + exe 'doautocmd filetypedetect BufRead ' . a:fname + + " Save the detected filetype + let ftype = &filetype + + " Restore the previous state + let &filetype = old_filetype + let &eventignore = old_eventignore + + return ftype +endfunction + +" Tlist_Get_Buffer_Filetype +" Get the filetype for the specified buffer +function! s:Tlist_Get_Buffer_Filetype(bnum) + let buf_ft = getbufvar(a:bnum, '&filetype') + + if bufloaded(a:bnum) + " For loaded buffers, the 'filetype' is already determined + return buf_ft + endif + + " For unloaded buffers, if the 'filetype' option is set, return it + if buf_ft != '' + return buf_ft + endif + + " Skip non-existent buffers + if !bufexists(a:bnum) + return '' + endif + + " For buffers whose filetype is not yet determined, try to determine + " the filetype + let bname = bufname(a:bnum) + + return s:Tlist_Detect_Filetype(bname) +endfunction + +" Tlist_Discard_TagInfo +" Discard the stored tag information for a file +function! s:Tlist_Discard_TagInfo(fidx) + call s:Tlist_Log_Msg('Tlist_Discard_TagInfo (' . + \ s:tlist_{a:fidx}_filename . ')') + let ftype = s:tlist_{a:fidx}_filetype + + " Discard information about the tags defined in the file + let i = 1 + while i <= s:tlist_{a:fidx}_tag_count + let fidx_i = 's:tlist_' . a:fidx . '_' . i + unlet! {fidx_i}_tag + unlet! {fidx_i}_tag_name + unlet! {fidx_i}_tag_type + unlet! {fidx_i}_ttype_idx + unlet! {fidx_i}_tag_proto + unlet! {fidx_i}_tag_searchpat + unlet! {fidx_i}_tag_linenum + let i = i + 1 + endwhile + + let s:tlist_{a:fidx}_tag_count = 0 + + " Discard information about tag type groups + let i = 1 + while i <= s:tlist_{ftype}_count + let ttype = s:tlist_{ftype}_{i}_name + if s:tlist_{a:fidx}_{ttype} != '' + let fidx_ttype = 's:tlist_' . a:fidx . '_' . ttype + let {fidx_ttype} = '' + let {fidx_ttype}_offset = 0 + let cnt = {fidx_ttype}_count + let {fidx_ttype}_count = 0 + let j = 1 + while j <= cnt + unlet! {fidx_ttype}_{j} + let j = j + 1 + endwhile + endif + let i = i + 1 + endwhile + + " Discard the stored menu command also + let s:tlist_{a:fidx}_menu_cmd = '' +endfunction + +" Tlist_Window_Update_Line_Offsets +" Update the line offsets for tags for files starting from start_idx +" and displayed in the taglist window by the specified offset +function! s:Tlist_Window_Update_Line_Offsets(start_idx, increment, offset) + let i = a:start_idx + + while i < s:tlist_file_count + if s:tlist_{i}_visible + " Update the start/end line number only if the file is visible + if a:increment + let s:tlist_{i}_start = s:tlist_{i}_start + a:offset + let s:tlist_{i}_end = s:tlist_{i}_end + a:offset + else + let s:tlist_{i}_start = s:tlist_{i}_start - a:offset + let s:tlist_{i}_end = s:tlist_{i}_end - a:offset + endif + endif + let i = i + 1 + endwhile +endfunction + +" Tlist_Discard_FileInfo +" Discard the stored information for a file +function! s:Tlist_Discard_FileInfo(fidx) + call s:Tlist_Log_Msg('Tlist_Discard_FileInfo (' . + \ s:tlist_{a:fidx}_filename . ')') + call s:Tlist_Discard_TagInfo(a:fidx) + + let ftype = s:tlist_{a:fidx}_filetype + + let i = 1 + while i <= s:tlist_{ftype}_count + let ttype = s:tlist_{ftype}_{i}_name + unlet! s:tlist_{a:fidx}_{ttype} + unlet! s:tlist_{a:fidx}_{ttype}_offset + unlet! s:tlist_{a:fidx}_{ttype}_count + let i = i + 1 + endwhile + + unlet! s:tlist_{a:fidx}_filename + unlet! s:tlist_{a:fidx}_sort_type + unlet! s:tlist_{a:fidx}_filetype + unlet! s:tlist_{a:fidx}_mtime + unlet! s:tlist_{a:fidx}_start + unlet! s:tlist_{a:fidx}_end + unlet! s:tlist_{a:fidx}_valid + unlet! s:tlist_{a:fidx}_visible + unlet! s:tlist_{a:fidx}_tag_count + unlet! s:tlist_{a:fidx}_menu_cmd +endfunction + +" Tlist_Window_Remove_File_From_Display +" Remove the specified file from display +function! s:Tlist_Window_Remove_File_From_Display(fidx) + call s:Tlist_Log_Msg('Tlist_Window_Remove_File_From_Display (' . + \ s:tlist_{a:fidx}_filename . ')') + " If the file is not visible then no need to remove it + if !s:tlist_{a:fidx}_visible + return + endif + + " Remove the tags displayed for the specified file from the window + let start = s:tlist_{a:fidx}_start + " Include the empty line after the last line also + if g:Tlist_Compact_Format + let end = s:tlist_{a:fidx}_end + else + let end = s:tlist_{a:fidx}_end + 1 + endif + + setlocal modifiable + exe 'silent! ' . start . ',' . end . 'delete _' + setlocal nomodifiable + + " Correct the start and end line offsets for all the files following + " this file, as the tags for this file are removed + call s:Tlist_Window_Update_Line_Offsets(a:fidx + 1, 0, end - start + 1) +endfunction + +" Tlist_Remove_File +" Remove the file under the cursor or the specified file index +" user_request - User requested to remove the file from taglist +function! s:Tlist_Remove_File(file_idx, user_request) + let fidx = a:file_idx + + if fidx == -1 + let fidx = s:Tlist_Window_Get_File_Index_By_Linenum(line('.')) + if fidx == -1 + return + endif + endif + call s:Tlist_Log_Msg('Tlist_Remove_File (' . + \ s:tlist_{fidx}_filename . ', ' . a:user_request . ')') + + let save_winnr = winnr() + let winnum = bufwinnr(g:TagList_title) + if winnum != -1 + " Taglist window is open, remove the file from display + + if save_winnr != winnum + let old_eventignore = &eventignore + set eventignore=all + exe winnum . 'wincmd w' + endif + + call s:Tlist_Window_Remove_File_From_Display(fidx) + + if save_winnr != winnum + exe save_winnr . 'wincmd w' + let &eventignore = old_eventignore + endif + endif + + let fname = s:tlist_{fidx}_filename + + if a:user_request + " As the user requested to remove the file from taglist, + " add it to the removed list + call s:Tlist_Update_Remove_List(fname, 1) + endif + + " Remove the file name from the taglist list of filenames + let idx = stridx(s:tlist_file_names, fname . "\n") + let text_before = strpart(s:tlist_file_names, 0, idx) + let rem_text = strpart(s:tlist_file_names, idx) + let next_idx = stridx(rem_text, "\n") + let text_after = strpart(rem_text, next_idx + 1) + let s:tlist_file_names = text_before . text_after + + call s:Tlist_Discard_FileInfo(fidx) + + " Shift all the file variables by one index + let i = fidx + 1 + + while i < s:tlist_file_count + let j = i - 1 + + let s:tlist_{j}_filename = s:tlist_{i}_filename + let s:tlist_{j}_sort_type = s:tlist_{i}_sort_type + let s:tlist_{j}_filetype = s:tlist_{i}_filetype + let s:tlist_{j}_mtime = s:tlist_{i}_mtime + let s:tlist_{j}_start = s:tlist_{i}_start + let s:tlist_{j}_end = s:tlist_{i}_end + let s:tlist_{j}_valid = s:tlist_{i}_valid + let s:tlist_{j}_visible = s:tlist_{i}_visible + let s:tlist_{j}_tag_count = s:tlist_{i}_tag_count + let s:tlist_{j}_menu_cmd = s:tlist_{i}_menu_cmd + + let k = 1 + while k <= s:tlist_{j}_tag_count + let s:tlist_{j}_{k}_tag = s:tlist_{i}_{k}_tag + let s:tlist_{j}_{k}_tag_name = s:tlist_{i}_{k}_tag_name + let s:tlist_{j}_{k}_tag_type = s:Tlist_Get_Tag_Type_By_Tag(i, k) + let s:tlist_{j}_{k}_ttype_idx = s:tlist_{i}_{k}_ttype_idx + let s:tlist_{j}_{k}_tag_proto = s:Tlist_Get_Tag_Prototype(i, k) + let s:tlist_{j}_{k}_tag_searchpat = s:Tlist_Get_Tag_SearchPat(i, k) + let s:tlist_{j}_{k}_tag_linenum = s:Tlist_Get_Tag_Linenum(i, k) + let k = k + 1 + endwhile + + let ftype = s:tlist_{i}_filetype + + let k = 1 + while k <= s:tlist_{ftype}_count + let ttype = s:tlist_{ftype}_{k}_name + let s:tlist_{j}_{ttype} = s:tlist_{i}_{ttype} + let s:tlist_{j}_{ttype}_offset = s:tlist_{i}_{ttype}_offset + let s:tlist_{j}_{ttype}_count = s:tlist_{i}_{ttype}_count + if s:tlist_{j}_{ttype} != '' + let l = 1 + while l <= s:tlist_{j}_{ttype}_count + let s:tlist_{j}_{ttype}_{l} = s:tlist_{i}_{ttype}_{l} + let l = l + 1 + endwhile + endif + let k = k + 1 + endwhile + + " As the file and tag information is copied to the new index, + " discard the previous information + call s:Tlist_Discard_FileInfo(i) + + let i = i + 1 + endwhile + + " Reduce the number of files displayed + let s:tlist_file_count = s:tlist_file_count - 1 + + if g:Tlist_Show_One_File + " If the tags for only one file is displayed and if we just + " now removed that file, then invalidate the current file idx + if s:tlist_cur_file_idx == fidx + let s:tlist_cur_file_idx = -1 + endif + endif +endfunction + +" Tlist_Window_Goto_Window +" Goto the taglist window +function! s:Tlist_Window_Goto_Window() + let winnum = bufwinnr(g:TagList_title) + if winnum != -1 + if winnr() != winnum + call s:Tlist_Exe_Cmd_No_Acmds(winnum . 'wincmd w') + endif + endif +endfunction + +" Tlist_Window_Create +" Create a new taglist window. If it is already open, jump to it +function! s:Tlist_Window_Create() + call s:Tlist_Log_Msg('Tlist_Window_Create()') + " If the window is open, jump to it + let winnum = bufwinnr(g:TagList_title) + if winnum != -1 + " Jump to the existing window + if winnr() != winnum + exe winnum . 'wincmd w' + endif + return + endif + + " If used with winmanager don't open windows. Winmanager will handle + " the window/buffer management + if s:tlist_app_name == "winmanager" + return + endif + + " Create a new window. If user prefers a horizontal window, then open + " a horizontally split window. Otherwise open a vertically split + " window + if g:Tlist_Use_Horiz_Window + " Open a horizontally split window + let win_dir = 'botright' + " Horizontal window height + let win_size = g:Tlist_WinHeight + else + if s:tlist_winsize_chgd == -1 + " Open a vertically split window. Increase the window size, if + " needed, to accomodate the new window + if g:Tlist_Inc_Winwidth && + \ &columns < (80 + g:Tlist_WinWidth) + " Save the original window position + let s:tlist_pre_winx = getwinposx() + let s:tlist_pre_winy = getwinposy() + + " one extra column is needed to include the vertical split + let &columns= &columns + g:Tlist_WinWidth + 1 + + let s:tlist_winsize_chgd = 1 + else + let s:tlist_winsize_chgd = 0 + endif + endif + + if g:Tlist_Use_Right_Window + " Open the window at the rightmost place + let win_dir = 'botright vertical' + else + " Open the window at the leftmost place + let win_dir = 'topleft vertical' + endif + let win_size = g:Tlist_WinWidth + endif + + " If the tag listing temporary buffer already exists, then reuse it. + " Otherwise create a new buffer + let bufnum = bufnr(g:TagList_title) + if bufnum == -1 + " Create a new buffer + let wcmd = g:TagList_title + else + " Edit the existing buffer + let wcmd = '+buffer' . bufnum + endif + + " Create the taglist window + exe 'silent! ' . win_dir . ' ' . win_size . 'split ' . wcmd + + " Save the new window position + let s:tlist_winx = getwinposx() + let s:tlist_winy = getwinposy() + + " Initialize the taglist window + call s:Tlist_Window_Init() +endfunction + +" Tlist_Window_Zoom +" Zoom (maximize/minimize) the taglist window +function! s:Tlist_Window_Zoom() + if s:tlist_win_maximized + " Restore the window back to the previous size + if g:Tlist_Use_Horiz_Window + exe 'resize ' . g:Tlist_WinHeight + else + exe 'vert resize ' . g:Tlist_WinWidth + endif + let s:tlist_win_maximized = 0 + else + " Set the window size to the maximum possible without closing other + " windows + if g:Tlist_Use_Horiz_Window + resize + else + vert resize + endif + let s:tlist_win_maximized = 1 + endif +endfunction + +" Tlist_Ballon_Expr +" When the mouse cursor is over a tag in the taglist window, display the +" tag prototype (balloon) +function! Tlist_Ballon_Expr() + " Get the file index + let fidx = s:Tlist_Window_Get_File_Index_By_Linenum(v:beval_lnum) + if fidx == -1 + return '' + endif + + " Get the tag output line for the current tag + let tidx = s:Tlist_Window_Get_Tag_Index(fidx, v:beval_lnum) + if tidx == 0 + return '' + endif + + " Get the tag search pattern and display it + return s:Tlist_Get_Tag_Prototype(fidx, tidx) +endfunction + +" Tlist_Window_Check_Width +" Check the width of the taglist window. For horizontally split windows, the +" 'winfixheight' option is used to fix the height of the window. For +" vertically split windows, Vim doesn't support the 'winfixwidth' option. So +" need to handle window width changes from this function. +function! s:Tlist_Window_Check_Width() + let tlist_winnr = bufwinnr(g:TagList_title) + if tlist_winnr == -1 + return + endif + + let width = winwidth(tlist_winnr) + if width != g:Tlist_WinWidth + call s:Tlist_Log_Msg("Tlist_Window_Check_Width: Changing window " . + \ "width from " . width . " to " . g:Tlist_WinWidth) + let save_winnr = winnr() + if save_winnr != tlist_winnr + call s:Tlist_Exe_Cmd_No_Acmds(tlist_winnr . 'wincmd w') + endif + exe 'vert resize ' . g:Tlist_WinWidth + if save_winnr != tlist_winnr + call s:Tlist_Exe_Cmd_No_Acmds('wincmd p') + endif + endif +endfunction + +" Tlist_Window_Exit_Only_Window +" If the 'Tlist_Exit_OnlyWindow' option is set, then exit Vim if only the +" taglist window is present. +function! s:Tlist_Window_Exit_Only_Window() + " Before quitting Vim, delete the taglist buffer so that + " the '0 mark is correctly set to the previous buffer. + if v:version < 700 + if winbufnr(2) == -1 + bdelete + quit + endif + else + if winbufnr(2) == -1 + if tabpagenr('$') == 1 + " Only one tag page is present + bdelete + quit + else + " More than one tab page is present. Close only the current + " tab page + close + endif + endif + endif +endfunction + +" Tlist_Window_Init +" Set the default options for the taglist window +function! s:Tlist_Window_Init() + call s:Tlist_Log_Msg('Tlist_Window_Init()') + + " The 'readonly' option should not be set for the taglist buffer. + " If Vim is started as "view/gview" or if the ":view" command is + " used, then the 'readonly' option is set for all the buffers. + " Unset it for the taglist buffer + setlocal noreadonly + + " Set the taglist buffer filetype to taglist + setlocal filetype=taglist + + " Define taglist window element highlighting + syntax match TagListComment '^" .*' + syntax match TagListFileName '^[^" ].*$' + syntax match TagListTitle '^ \S.*$' + syntax match TagListTagScope '\s\[.\{-\}\]$' + + " Define the highlighting only if colors are supported + if has('gui_running') || &t_Co > 2 + " Colors to highlight various taglist window elements + " If user defined highlighting group exists, then use them. + " Otherwise, use default highlight groups. + if hlexists('MyTagListTagName') + highlight link TagListTagName MyTagListTagName + else + highlight default link TagListTagName Search + endif + " Colors to highlight comments and titles + if hlexists('MyTagListComment') + highlight link TagListComment MyTagListComment + else + highlight clear TagListComment + highlight default link TagListComment Comment + endif + if hlexists('MyTagListTitle') + highlight link TagListTitle MyTagListTitle + else + highlight clear TagListTitle + highlight default link TagListTitle Title + endif + if hlexists('MyTagListFileName') + highlight link TagListFileName MyTagListFileName + else + highlight clear TagListFileName + highlight default TagListFileName guibg=Grey ctermbg=darkgray + \ guifg=white ctermfg=white + endif + if hlexists('MyTagListTagScope') + highlight link TagListTagScope MyTagListTagScope + else + highlight clear TagListTagScope + highlight default link TagListTagScope Identifier + endif + else + highlight default TagListTagName term=reverse cterm=reverse + endif + + " Folding related settings + setlocal foldenable + setlocal foldminlines=0 + setlocal foldmethod=manual + setlocal foldlevel=9999 + if g:Tlist_Enable_Fold_Column + setlocal foldcolumn=3 + else + setlocal foldcolumn=0 + endif + setlocal foldtext=v:folddashes.getline(v:foldstart) + + if s:tlist_app_name != "winmanager" + " Mark buffer as scratch + silent! setlocal buftype=nofile + if s:tlist_app_name == "none" + silent! setlocal bufhidden=delete + endif + silent! setlocal noswapfile + " Due to a bug in Vim 6.0, the winbufnr() function fails for unlisted + " buffers. So if the taglist buffer is unlisted, multiple taglist + " windows will be opened. This bug is fixed in Vim 6.1 and above + if v:version >= 601 + silent! setlocal nobuflisted + endif + endif + + silent! setlocal nowrap + + " If the 'number' option is set in the source window, it will affect the + " taglist window. So forcefully disable 'number' option for the taglist + " window + silent! setlocal nonumber + + " Use fixed height when horizontally split window is used + if g:Tlist_Use_Horiz_Window + if v:version >= 602 + set winfixheight + endif + endif + if !g:Tlist_Use_Horiz_Window && v:version >= 700 + set winfixwidth + endif + + " Setup balloon evaluation to display tag prototype + if v:version >= 700 && has('balloon_eval') + setlocal balloonexpr=Tlist_Ballon_Expr() + set ballooneval + endif + + " Setup the cpoptions properly for the maps to work + let old_cpoptions = &cpoptions + set cpoptions&vim + + " Create buffer local mappings for jumping to the tags and sorting the list + nnoremap + \ :call Tlist_Window_Jump_To_Tag('useopen') + nnoremap o + \ :call Tlist_Window_Jump_To_Tag('newwin') + nnoremap p + \ :call Tlist_Window_Jump_To_Tag('preview') + nnoremap P + \ :call Tlist_Window_Jump_To_Tag('prevwin') + if v:version >= 700 + nnoremap t + \ :call Tlist_Window_Jump_To_Tag('checktab') + nnoremap + \ :call Tlist_Window_Jump_To_Tag('newtab') + endif + nnoremap <2-LeftMouse> + \ :call Tlist_Window_Jump_To_Tag('useopen') + nnoremap s + \ :call Tlist_Change_Sort('cmd', 'toggle', '') + nnoremap + :silent! foldopen + nnoremap - :silent! foldclose + nnoremap * :silent! %foldopen! + nnoremap = :silent! %foldclose + nnoremap :silent! foldopen + nnoremap :silent! foldclose + nnoremap :silent! %foldopen! + nnoremap :call Tlist_Window_Show_Info() + nnoremap u :call Tlist_Window_Update_File() + nnoremap d :call Tlist_Remove_File(-1, 1) + nnoremap x :call Tlist_Window_Zoom() + nnoremap [[ :call Tlist_Window_Move_To_File(-1) + nnoremap :call Tlist_Window_Move_To_File(-1) + nnoremap ]] :call Tlist_Window_Move_To_File(1) + nnoremap :call Tlist_Window_Move_To_File(1) + nnoremap :call Tlist_Window_Toggle_Help_Text() + nnoremap q :close + + " Insert mode mappings + inoremap + \ :call Tlist_Window_Jump_To_Tag('useopen') + " Windows needs return + inoremap + \ :call Tlist_Window_Jump_To_Tag('useopen') + inoremap o + \ :call Tlist_Window_Jump_To_Tag('newwin') + inoremap p + \ :call Tlist_Window_Jump_To_Tag('preview') + inoremap P + \ :call Tlist_Window_Jump_To_Tag('prevwin') + if v:version >= 700 + inoremap t + \ :call Tlist_Window_Jump_To_Tag('checktab') + inoremap + \ :call Tlist_Window_Jump_To_Tag('newtab') + endif + inoremap <2-LeftMouse> + \ :call Tlist_Window_Jump_To_Tag('useopen') + inoremap s + \ :call Tlist_Change_Sort('cmd', 'toggle', '') + inoremap + :silent! foldopen + inoremap - :silent! foldclose + inoremap * :silent! %foldopen! + inoremap = :silent! %foldclose + inoremap :silent! foldopen + inoremap :silent! foldclose + inoremap :silent! %foldopen! + inoremap :call + \ Tlist_Window_Show_Info() + inoremap u + \ :call Tlist_Window_Update_File() + inoremap d :call Tlist_Remove_File(-1, 1) + inoremap x :call Tlist_Window_Zoom() + inoremap [[ :call Tlist_Window_Move_To_File(-1) + inoremap :call Tlist_Window_Move_To_File(-1) + inoremap ]] :call Tlist_Window_Move_To_File(1) + inoremap :call Tlist_Window_Move_To_File(1) + inoremap :call Tlist_Window_Toggle_Help_Text() + inoremap q :close + + " Map single left mouse click if the user wants this functionality + if g:Tlist_Use_SingleClick == 1 + " Contributed by Bindu Wavell + " attempt to perform single click mapping, it would be much + " nicer if we could nnoremap ... however vim does + " not fire the when you use the mouse + " to enter a buffer. + let clickmap = ':if bufname("%") =~ "__Tag_List__" ' . + \ 'call Tlist_Window_Jump_To_Tag("useopen") ' . + \ ' endif ' + if maparg('', 'n') == '' + " no mapping for leftmouse + exe ':nnoremap ' . clickmap + else + " we have a mapping + let mapcmd = ':nnoremap ' + let mapcmd = mapcmd . substitute(substitute( + \ maparg('', 'n'), '|', '', 'g'), + \ '\c^', '', '') + let mapcmd = mapcmd . clickmap + exe mapcmd + endif + endif + + " Define the taglist autocommands + augroup TagListAutoCmds + autocmd! + " Display the tag prototype for the tag under the cursor. + autocmd CursorHold __Tag_List__ call s:Tlist_Window_Show_Info() + " Highlight the current tag periodically + autocmd CursorHold * silent call s:Tlist_Window_Highlight_Tag( + \ fnamemodify(bufname('%'), ':p'), line('.'), 1, 0) + + " Adjust the Vim window width when taglist window is closed + autocmd BufUnload __Tag_List__ call s:Tlist_Post_Close_Cleanup() + " Close the fold for this buffer when leaving the buffer + if g:Tlist_File_Fold_Auto_Close + autocmd BufEnter * silent + \ call s:Tlist_Window_Open_File_Fold(expand('')) + endif + " Exit Vim itself if only the taglist window is present (optional) + if g:Tlist_Exit_OnlyWindow + autocmd BufEnter __Tag_List__ nested + \ call s:Tlist_Window_Exit_Only_Window() + endif + if s:tlist_app_name != "winmanager" && + \ !g:Tlist_Process_File_Always && + \ (!has('gui_running') || !g:Tlist_Show_Menu) + " Auto refresh the taglist window + autocmd BufEnter * call s:Tlist_Refresh() + endif + + if !g:Tlist_Use_Horiz_Window + if v:version < 700 + autocmd WinEnter * call s:Tlist_Window_Check_Width() + endif + endif + if v:version >= 700 + autocmd TabEnter * silent call s:Tlist_Refresh_Folds() + endif + augroup end + + " Restore the previous cpoptions settings + let &cpoptions = old_cpoptions +endfunction + +" Tlist_Window_Refresh +" Display the tags for all the files in the taglist window +function! s:Tlist_Window_Refresh() + call s:Tlist_Log_Msg('Tlist_Window_Refresh()') + " Set report option to a huge value to prevent informational messages + " while deleting the lines + let old_report = &report + set report=99999 + + " Mark the buffer as modifiable + setlocal modifiable + + " Delete the contents of the buffer to the black-hole register + silent! %delete _ + + " As we have cleared the taglist window, mark all the files + " as not visible + let i = 0 + while i < s:tlist_file_count + let s:tlist_{i}_visible = 0 + let i = i + 1 + endwhile + + if g:Tlist_Compact_Format == 0 + " Display help in non-compact mode + call s:Tlist_Window_Display_Help() + endif + + " Mark the buffer as not modifiable + setlocal nomodifiable + + " Restore the report option + let &report = old_report + + " If the tags for only one file should be displayed in the taglist + " window, then no need to add the tags here. The bufenter autocommand + " will add the tags for that file. + if g:Tlist_Show_One_File + return + endif + + " List all the tags for the previously processed files + " Do this only if taglist is configured to display tags for more than + " one file. Otherwise, when Tlist_Show_One_File is configured, + " tags for the wrong file will be displayed. + let i = 0 + while i < s:tlist_file_count + call s:Tlist_Window_Refresh_File(s:tlist_{i}_filename, + \ s:tlist_{i}_filetype) + let i = i + 1 + endwhile + + if g:Tlist_Auto_Update + " Add and list the tags for all buffers in the Vim buffer list + let i = 1 + let last_bufnum = bufnr('$') + while i <= last_bufnum + if buflisted(i) + let fname = fnamemodify(bufname(i), ':p') + let ftype = s:Tlist_Get_Buffer_Filetype(i) + " If the file doesn't support tag listing, skip it + if !s:Tlist_Skip_File(fname, ftype) + call s:Tlist_Window_Refresh_File(fname, ftype) + endif + endif + let i = i + 1 + endwhile + endif + + " If Tlist_File_Fold_Auto_Close option is set, then close all the folds + if g:Tlist_File_Fold_Auto_Close + " Close all the folds + silent! %foldclose + endif + + " Move the cursor to the top of the taglist window + normal! gg +endfunction + +" Tlist_Post_Close_Cleanup() +" Close the taglist window and adjust the Vim window width +function! s:Tlist_Post_Close_Cleanup() + call s:Tlist_Log_Msg('Tlist_Post_Close_Cleanup()') + " Mark all the files as not visible + let i = 0 + while i < s:tlist_file_count + let s:tlist_{i}_visible = 0 + let i = i + 1 + endwhile + + " Remove the taglist autocommands + silent! autocmd! TagListAutoCmds + + " Clear all the highlights + match none + + silent! syntax clear TagListTitle + silent! syntax clear TagListComment + silent! syntax clear TagListTagScope + + " Remove the left mouse click mapping if it was setup initially + if g:Tlist_Use_SingleClick + if hasmapto('') + nunmap + endif + endif + + if s:tlist_app_name != "winmanager" + if g:Tlist_Use_Horiz_Window || g:Tlist_Inc_Winwidth == 0 || + \ s:tlist_winsize_chgd != 1 || + \ &columns < (80 + g:Tlist_WinWidth) + " No need to adjust window width if using horizontally split taglist + " window or if columns is less than 101 or if the user chose not to + " adjust the window width + else + " If the user didn't manually move the window, then restore the window + " position to the pre-taglist position + if s:tlist_pre_winx != -1 && s:tlist_pre_winy != -1 && + \ getwinposx() == s:tlist_winx && + \ getwinposy() == s:tlist_winy + exe 'winpos ' . s:tlist_pre_winx . ' ' . s:tlist_pre_winy + endif + + " Adjust the Vim window width + let &columns= &columns - (g:Tlist_WinWidth + 1) + endif + endif + + let s:tlist_winsize_chgd = -1 + + " Reset taglist state variables + if s:tlist_app_name == "winmanager" + let s:tlist_app_name = "none" + endif + let s:tlist_window_initialized = 0 +endfunction + +" Tlist_Window_Refresh_File() +" List the tags defined in the specified file in a Vim window +function! s:Tlist_Window_Refresh_File(filename, ftype) + call s:Tlist_Log_Msg('Tlist_Window_Refresh_File (' . a:filename . ')') + " First check whether the file already exists + let fidx = s:Tlist_Get_File_Index(a:filename) + if fidx != -1 + let file_listed = 1 + else + let file_listed = 0 + endif + + if !file_listed + " Check whether this file is removed based on user request + " If it is, then don't display the tags for this file + if s:Tlist_User_Removed_File(a:filename) + return + endif + endif + + if file_listed && s:tlist_{fidx}_visible + " Check whether the file tags are currently valid + if s:tlist_{fidx}_valid + " Goto the first line in the file + exe s:tlist_{fidx}_start + + " If the line is inside a fold, open the fold + if foldclosed('.') != -1 + exe "silent! " . s:tlist_{fidx}_start . "," . + \ s:tlist_{fidx}_end . "foldopen!" + endif + return + endif + + " Discard and remove the tags for this file from display + call s:Tlist_Discard_TagInfo(fidx) + call s:Tlist_Window_Remove_File_From_Display(fidx) + endif + + " Process and generate a list of tags defined in the file + if !file_listed || !s:tlist_{fidx}_valid + let ret_fidx = s:Tlist_Process_File(a:filename, a:ftype) + if ret_fidx == -1 + return + endif + let fidx = ret_fidx + endif + + " Set report option to a huge value to prevent informational messages + " while adding lines to the taglist window + let old_report = &report + set report=99999 + + if g:Tlist_Show_One_File + " Remove the previous file + if s:tlist_cur_file_idx != -1 + call s:Tlist_Window_Remove_File_From_Display(s:tlist_cur_file_idx) + let s:tlist_{s:tlist_cur_file_idx}_visible = 0 + let s:tlist_{s:tlist_cur_file_idx}_start = 0 + let s:tlist_{s:tlist_cur_file_idx}_end = 0 + endif + let s:tlist_cur_file_idx = fidx + endif + + " Mark the buffer as modifiable + setlocal modifiable + + " Add new files to the end of the window. For existing files, add them at + " the same line where they were previously present. If the file is not + " visible, then add it at the end + if s:tlist_{fidx}_start == 0 || !s:tlist_{fidx}_visible + if g:Tlist_Compact_Format + let s:tlist_{fidx}_start = line('$') + else + let s:tlist_{fidx}_start = line('$') + 1 + endif + endif + + let s:tlist_{fidx}_visible = 1 + + " Goto the line where this file should be placed + if g:Tlist_Compact_Format + exe s:tlist_{fidx}_start + else + exe s:tlist_{fidx}_start - 1 + endif + + let txt = fnamemodify(s:tlist_{fidx}_filename, ':t') . ' (' . + \ fnamemodify(s:tlist_{fidx}_filename, ':p:h') . ')' + if g:Tlist_Compact_Format == 0 + silent! put =txt + else + silent! put! =txt + " Move to the next line + exe line('.') + 1 + endif + let file_start = s:tlist_{fidx}_start + + " Add the tag names grouped by tag type to the buffer with a title + let i = 1 + let ttype_cnt = s:tlist_{a:ftype}_count + while i <= ttype_cnt + let ttype = s:tlist_{a:ftype}_{i}_name + " Add the tag type only if there are tags for that type + let fidx_ttype = 's:tlist_' . fidx . '_' . ttype + let ttype_txt = {fidx_ttype} + if ttype_txt != '' + let txt = ' ' . s:tlist_{a:ftype}_{i}_fullname + if g:Tlist_Compact_Format == 0 + let ttype_start_lnum = line('.') + 1 + silent! put =txt + else + let ttype_start_lnum = line('.') + silent! put! =txt + endif + silent! put =ttype_txt + + let {fidx_ttype}_offset = ttype_start_lnum - file_start + + " create a fold for this tag type + let fold_start = ttype_start_lnum + let fold_end = fold_start + {fidx_ttype}_count + exe fold_start . ',' . fold_end . 'fold' + + " Adjust the cursor position + if g:Tlist_Compact_Format == 0 + exe ttype_start_lnum + {fidx_ttype}_count + else + exe ttype_start_lnum + {fidx_ttype}_count + 1 + endif + + if g:Tlist_Compact_Format == 0 + " Separate the tag types by a empty line + silent! put ='' + endif + endif + let i = i + 1 + endwhile + + if s:tlist_{fidx}_tag_count == 0 + if g:Tlist_Compact_Format == 0 + silent! put ='' + endif + endif + + let s:tlist_{fidx}_end = line('.') - 1 + + " Create a fold for the entire file + exe s:tlist_{fidx}_start . ',' . s:tlist_{fidx}_end . 'fold' + exe 'silent! ' . s:tlist_{fidx}_start . ',' . + \ s:tlist_{fidx}_end . 'foldopen!' + + " Goto the starting line for this file, + exe s:tlist_{fidx}_start + + if s:tlist_app_name == "winmanager" + " To handle a bug in the winmanager plugin, add a space at the + " last line + call setline('$', ' ') + endif + + " Mark the buffer as not modifiable + setlocal nomodifiable + + " Restore the report option + let &report = old_report + + " Update the start and end line numbers for all the files following this + " file + let start = s:tlist_{fidx}_start + " include the empty line after the last line + if g:Tlist_Compact_Format + let end = s:tlist_{fidx}_end + else + let end = s:tlist_{fidx}_end + 1 + endif + call s:Tlist_Window_Update_Line_Offsets(fidx + 1, 1, end - start + 1) + + " Now that we have updated the taglist window, update the tags + " menu (if present) + if g:Tlist_Show_Menu + call s:Tlist_Menu_Update_File(1) + endif +endfunction + +" Tlist_Init_File +" Initialize the variables for a new file +function! s:Tlist_Init_File(filename, ftype) + call s:Tlist_Log_Msg('Tlist_Init_File (' . a:filename . ')') + " Add new files at the end of the list + let fidx = s:tlist_file_count + let s:tlist_file_count = s:tlist_file_count + 1 + " Add the new file name to the taglist list of file names + let s:tlist_file_names = s:tlist_file_names . a:filename . "\n" + + " Initialize the file variables + let s:tlist_{fidx}_filename = a:filename + let s:tlist_{fidx}_sort_type = g:Tlist_Sort_Type + let s:tlist_{fidx}_filetype = a:ftype + let s:tlist_{fidx}_mtime = -1 + let s:tlist_{fidx}_start = 0 + let s:tlist_{fidx}_end = 0 + let s:tlist_{fidx}_valid = 0 + let s:tlist_{fidx}_visible = 0 + let s:tlist_{fidx}_tag_count = 0 + let s:tlist_{fidx}_menu_cmd = '' + + " Initialize the tag type variables + let i = 1 + while i <= s:tlist_{a:ftype}_count + let ttype = s:tlist_{a:ftype}_{i}_name + let s:tlist_{fidx}_{ttype} = '' + let s:tlist_{fidx}_{ttype}_offset = 0 + let s:tlist_{fidx}_{ttype}_count = 0 + let i = i + 1 + endwhile + + return fidx +endfunction + +" Tlist_Get_Tag_Type_By_Tag +" Return the tag type for the specified tag index +function! s:Tlist_Get_Tag_Type_By_Tag(fidx, tidx) + let ttype_var = 's:tlist_' . a:fidx . '_' . a:tidx . '_tag_type' + + " Already parsed and have the tag name + if exists(ttype_var) + return {ttype_var} + endif + + let tag_line = s:tlist_{a:fidx}_{a:tidx}_tag + let {ttype_var} = s:Tlist_Extract_Tagtype(tag_line) + + return {ttype_var} +endfunction + +" Tlist_Get_Tag_Prototype +function! s:Tlist_Get_Tag_Prototype(fidx, tidx) + let tproto_var = 's:tlist_' . a:fidx . '_' . a:tidx . '_tag_proto' + + " Already parsed and have the tag prototype + if exists(tproto_var) + return {tproto_var} + endif + + " Parse and extract the tag prototype + let tag_line = s:tlist_{a:fidx}_{a:tidx}_tag + let start = stridx(tag_line, '/^') + 2 + let end = stridx(tag_line, '/;"' . "\t") + if tag_line[end - 1] == '$' + let end = end -1 + endif + let tag_proto = strpart(tag_line, start, end - start) + let {tproto_var} = substitute(tag_proto, '\s*', '', '') + + return {tproto_var} +endfunction + +" Tlist_Get_Tag_SearchPat +function! s:Tlist_Get_Tag_SearchPat(fidx, tidx) + let tpat_var = 's:tlist_' . a:fidx . '_' . a:tidx . '_tag_searchpat' + + " Already parsed and have the tag search pattern + if exists(tpat_var) + return {tpat_var} + endif + + " Parse and extract the tag search pattern + let tag_line = s:tlist_{a:fidx}_{a:tidx}_tag + let start = stridx(tag_line, '/^') + 2 + let end = stridx(tag_line, '/;"' . "\t") + if tag_line[end - 1] == '$' + let end = end -1 + endif + let {tpat_var} = '\V\^' . strpart(tag_line, start, end - start) . + \ (tag_line[end] == '$' ? '\$' : '') + + return {tpat_var} +endfunction + +" Tlist_Get_Tag_Linenum +" Return the tag line number, given the tag index +function! s:Tlist_Get_Tag_Linenum(fidx, tidx) + let tline_var = 's:tlist_' . a:fidx . '_' . a:tidx . '_tag_linenum' + + " Already parsed and have the tag line number + if exists(tline_var) + return {tline_var} + endif + + " Parse and extract the tag line number + let tag_line = s:tlist_{a:fidx}_{a:tidx}_tag + let start = strridx(tag_line, 'line:') + 5 + let end = strridx(tag_line, "\t") + if end < start + let {tline_var} = strpart(tag_line, start) + 0 + else + let {tline_var} = strpart(tag_line, start, end - start) + 0 + endif + + return {tline_var} +endfunction + +" Tlist_Parse_Tagline +" Parse a tag line from the ctags output. Separate the tag output based on the +" tag type and store it in the tag type variable. +" The format of each line in the ctags output is: +" +" tag_namefile_nameex_cmd;"extension_fields +" +function! s:Tlist_Parse_Tagline(tag_line) + if a:tag_line == '' + " Skip empty lines + return + endif + + " Extract the tag type + let ttype = s:Tlist_Extract_Tagtype(a:tag_line) + + " Make sure the tag type is a valid and supported one + if ttype == '' || stridx(s:ctags_flags, ttype) == -1 + " Line is not in proper tags format or Tag type is not supported + return + endif + + " Update the total tag count + let s:tidx = s:tidx + 1 + + " The following variables are used to optimize this code. Vim is slow in + " using curly brace names. To reduce the amount of processing needed, the + " curly brace variables are pre-processed here + let fidx_tidx = 's:tlist_' . s:fidx . '_' . s:tidx + let fidx_ttype = 's:tlist_' . s:fidx . '_' . ttype + + " Update the count of this tag type + let ttype_idx = {fidx_ttype}_count + 1 + let {fidx_ttype}_count = ttype_idx + + " Store the ctags output for this tag + let {fidx_tidx}_tag = a:tag_line + + " Store the tag index and the tag type index (back pointers) + let {fidx_ttype}_{ttype_idx} = s:tidx + let {fidx_tidx}_ttype_idx = ttype_idx + + " Extract the tag name + let tag_name = strpart(a:tag_line, 0, stridx(a:tag_line, "\t")) + + " Extract the tag scope/prototype + if g:Tlist_Display_Prototype + let ttxt = ' ' . s:Tlist_Get_Tag_Prototype(s:fidx, s:tidx) + else + let ttxt = ' ' . tag_name + + " Add the tag scope, if it is available and is configured. Tag + " scope is the last field after the 'line:\t' field + if g:Tlist_Display_Tag_Scope + let tag_scope = s:Tlist_Extract_Tag_Scope(a:tag_line) + if tag_scope != '' + let ttxt = ttxt . ' [' . tag_scope . ']' + endif + endif + endif + + " Add this tag to the tag type variable + let {fidx_ttype} = {fidx_ttype} . ttxt . "\n" + + " Save the tag name + let {fidx_tidx}_tag_name = tag_name +endfunction + +" Tlist_Process_File +" Get the list of tags defined in the specified file and store them +" in Vim variables. Returns the file index where the tags are stored. +function! s:Tlist_Process_File(filename, ftype) + call s:Tlist_Log_Msg('Tlist_Process_File (' . a:filename . ', ' . + \ a:ftype . ')') + " Check whether this file is supported + if s:Tlist_Skip_File(a:filename, a:ftype) + return -1 + endif + + " If the tag types for this filetype are not yet created, then create + " them now + let var = 's:tlist_' . a:ftype . '_count' + if !exists(var) + if s:Tlist_FileType_Init(a:ftype) == 0 + return -1 + endif + endif + + " If this file is already processed, then use the cached values + let fidx = s:Tlist_Get_File_Index(a:filename) + if fidx == -1 + " First time, this file is loaded + let fidx = s:Tlist_Init_File(a:filename, a:ftype) + else + " File was previously processed. Discard the tag information + call s:Tlist_Discard_TagInfo(fidx) + endif + + let s:tlist_{fidx}_valid = 1 + + " Exuberant ctags arguments to generate a tag list + let ctags_args = ' -f - --format=2 --excmd=pattern --fields=nks ' + + " Form the ctags argument depending on the sort type + if s:tlist_{fidx}_sort_type == 'name' + let ctags_args = ctags_args . '--sort=yes' + else + let ctags_args = ctags_args . '--sort=no' + endif + + " Add the filetype specific arguments + let ctags_args = ctags_args . ' ' . s:tlist_{a:ftype}_ctags_args + + " Ctags command to produce output with regexp for locating the tags + let ctags_cmd = g:Tlist_Ctags_Cmd . ctags_args + let ctags_cmd = ctags_cmd . ' "' . a:filename . '"' + + if &shellxquote == '"' + " Double-quotes within double-quotes will not work in the + " command-line.If the 'shellxquote' option is set to double-quotes, + " then escape the double-quotes in the ctags command-line. + let ctags_cmd = escape(ctags_cmd, '"') + endif + + " In Windows 95, if not using cygwin, disable the 'shellslash' + " option. Otherwise, this will cause problems when running the + " ctags command. + if has('win95') && !has('win32unix') + let old_shellslash = &shellslash + set noshellslash + endif + + if has('win32') && !has('win32unix') && !has('win95') + \ && (&shell =~ 'cmd.exe') + " Windows does not correctly deal with commands that have more than 1 + " set of double quotes. It will strip them all resulting in: + " 'C:\Program' is not recognized as an internal or external command + " operable program or batch file. To work around this, place the + " command inside a batch file and call the batch file. + " Do this only on Win2K, WinXP and above. + " Contributed by: David Fishburn. + let s:taglist_tempfile = fnamemodify(tempname(), ':h') . + \ '\taglist.cmd' + exe 'redir! > ' . s:taglist_tempfile + silent echo ctags_cmd + redir END + + call s:Tlist_Log_Msg('Cmd inside batch file: ' . ctags_cmd) + let ctags_cmd = '"' . s:taglist_tempfile . '"' + endif + + call s:Tlist_Log_Msg('Cmd: ' . ctags_cmd) + + " Run ctags and get the tag list + let cmd_output = system(ctags_cmd) + + " Restore the value of the 'shellslash' option. + if has('win95') && !has('win32unix') + let &shellslash = old_shellslash + endif + + if exists('s:taglist_tempfile') + " Delete the temporary cmd file created on MS-Windows + call delete(s:taglist_tempfile) + endif + + " Handle errors + if v:shell_error + let msg = "Taglist: Failed to generate tags for " . a:filename + call s:Tlist_Warning_Msg(msg) + if cmd_output != '' + call s:Tlist_Warning_Msg(cmd_output) + endif + return fidx + endif + + " Store the modification time for the file + let s:tlist_{fidx}_mtime = getftime(a:filename) + + " No tags for current file + if cmd_output == '' + call s:Tlist_Log_Msg('No tags defined in ' . a:filename) + return fidx + endif + + call s:Tlist_Log_Msg('Generated tags information for ' . a:filename) + + if v:version > 601 + " The following script local variables are used by the + " Tlist_Parse_Tagline() function. + let s:ctags_flags = s:tlist_{a:ftype}_ctags_flags + let s:fidx = fidx + let s:tidx = 0 + + " Process the ctags output one line at a time. The substitute() + " command is used to parse the tag lines instead of using the + " matchstr()/stridx()/strpart() functions for performance reason + call substitute(cmd_output, "\\([^\n]\\+\\)\n", + \ '\=s:Tlist_Parse_Tagline(submatch(1))', 'g') + + " Save the number of tags for this file + let s:tlist_{fidx}_tag_count = s:tidx + + " The following script local variables are no longer needed + unlet! s:ctags_flags + unlet! s:tidx + unlet! s:fidx + else + " Due to a bug in Vim earlier than version 6.1, + " we cannot use substitute() to parse the ctags output. + " Instead the slow str*() functions are used + let ctags_flags = s:tlist_{a:ftype}_ctags_flags + let tidx = 0 + + while cmd_output != '' + " Extract one line at a time + let idx = stridx(cmd_output, "\n") + let one_line = strpart(cmd_output, 0, idx) + " Remove the line from the tags output + let cmd_output = strpart(cmd_output, idx + 1) + + if one_line == '' + " Line is not in proper tags format + continue + endif + + " Extract the tag type + let ttype = s:Tlist_Extract_Tagtype(one_line) + + " Make sure the tag type is a valid and supported one + if ttype == '' || stridx(ctags_flags, ttype) == -1 + " Line is not in proper tags format or Tag type is not + " supported + continue + endif + + " Update the total tag count + let tidx = tidx + 1 + + " The following variables are used to optimize this code. Vim is + " slow in using curly brace names. To reduce the amount of + " processing needed, the curly brace variables are pre-processed + " here + let fidx_tidx = 's:tlist_' . fidx . '_' . tidx + let fidx_ttype = 's:tlist_' . fidx . '_' . ttype + + " Update the count of this tag type + let ttype_idx = {fidx_ttype}_count + 1 + let {fidx_ttype}_count = ttype_idx + + " Store the ctags output for this tag + let {fidx_tidx}_tag = one_line + + " Store the tag index and the tag type index (back pointers) + let {fidx_ttype}_{ttype_idx} = tidx + let {fidx_tidx}_ttype_idx = ttype_idx + + " Extract the tag name + let tag_name = strpart(one_line, 0, stridx(one_line, "\t")) + + " Extract the tag scope/prototype + if g:Tlist_Display_Prototype + let ttxt = ' ' . s:Tlist_Get_Tag_Prototype(fidx, tidx) + else + let ttxt = ' ' . tag_name + + " Add the tag scope, if it is available and is configured. Tag + " scope is the last field after the 'line:\t' field + if g:Tlist_Display_Tag_Scope + let tag_scope = s:Tlist_Extract_Tag_Scope(one_line) + if tag_scope != '' + let ttxt = ttxt . ' [' . tag_scope . ']' + endif + endif + endif + + " Add this tag to the tag type variable + let {fidx_ttype} = {fidx_ttype} . ttxt . "\n" + + " Save the tag name + let {fidx_tidx}_tag_name = tag_name + endwhile + + " Save the number of tags for this file + let s:tlist_{fidx}_tag_count = tidx + endif + + call s:Tlist_Log_Msg('Processed ' . s:tlist_{fidx}_tag_count . + \ ' tags in ' . a:filename) + + return fidx +endfunction + +" Tlist_Update_File +" Update the tags for a file (if needed) +function! Tlist_Update_File(filename, ftype) + call s:Tlist_Log_Msg('Tlist_Update_File (' . a:filename . ')') + " If the file doesn't support tag listing, skip it + if s:Tlist_Skip_File(a:filename, a:ftype) + return + endif + + " Convert the file name to a full path + let fname = fnamemodify(a:filename, ':p') + + " First check whether the file already exists + let fidx = s:Tlist_Get_File_Index(fname) + + if fidx != -1 && s:tlist_{fidx}_valid + " File exists and the tags are valid + " Check whether the file was modified after the last tags update + " If it is modified, then update the tags + if s:tlist_{fidx}_mtime == getftime(fname) + return + endif + else + " If the tags were removed previously based on a user request, + " as we are going to update the tags (based on the user request), + " remove the filename from the deleted list + call s:Tlist_Update_Remove_List(fname, 0) + endif + + " If the taglist window is opened, update it + let winnum = bufwinnr(g:TagList_title) + if winnum == -1 + " Taglist window is not present. Just update the taglist + " and return + call s:Tlist_Process_File(fname, a:ftype) + else + if g:Tlist_Show_One_File && s:tlist_cur_file_idx != -1 + " If tags for only one file are displayed and we are not + " updating the tags for that file, then no need to + " refresh the taglist window. Otherwise, the taglist + " window should be updated. + if s:tlist_{s:tlist_cur_file_idx}_filename != fname + call s:Tlist_Process_File(fname, a:ftype) + return + endif + endif + + " Save the current window number + let save_winnr = winnr() + + " Goto the taglist window + call s:Tlist_Window_Goto_Window() + + " Save the cursor position + let save_line = line('.') + let save_col = col('.') + + " Update the taglist window + call s:Tlist_Window_Refresh_File(fname, a:ftype) + + " Restore the cursor position + if v:version >= 601 + call cursor(save_line, save_col) + else + exe save_line + exe 'normal! ' . save_col . '|' + endif + + if winnr() != save_winnr + " Go back to the original window + call s:Tlist_Exe_Cmd_No_Acmds(save_winnr . 'wincmd w') + endif + endif + + " Update the taglist menu + if g:Tlist_Show_Menu + call s:Tlist_Menu_Update_File(1) + endif +endfunction + +" Tlist_Window_Close +" Close the taglist window +function! s:Tlist_Window_Close() + call s:Tlist_Log_Msg('Tlist_Window_Close()') + " Make sure the taglist window exists + let winnum = bufwinnr(g:TagList_title) + if winnum == -1 + call s:Tlist_Warning_Msg('Error: Taglist window is not open') + return + endif + + if winnr() == winnum + " Already in the taglist window. Close it and return + if winbufnr(2) != -1 + " If a window other than the taglist window is open, + " then only close the taglist window. + close + endif + else + " Goto the taglist window, close it and then come back to the + " original window + let curbufnr = bufnr('%') + exe winnum . 'wincmd w' + close + " Need to jump back to the original window only if we are not + " already in that window + let winnum = bufwinnr(curbufnr) + if winnr() != winnum + exe winnum . 'wincmd w' + endif + endif +endfunction + +" Tlist_Window_Mark_File_Window +" Mark the current window as the file window to use when jumping to a tag. +" Only if the current window is a non-plugin, non-preview and non-taglist +" window +function! s:Tlist_Window_Mark_File_Window() + if getbufvar('%', '&buftype') == '' && !&previewwindow + let w:tlist_file_window = "yes" + endif +endfunction + +" Tlist_Window_Open +" Open and refresh the taglist window +function! s:Tlist_Window_Open() + call s:Tlist_Log_Msg('Tlist_Window_Open()') + " If the window is open, jump to it + let winnum = bufwinnr(g:TagList_title) + if winnum != -1 + " Jump to the existing window + if winnr() != winnum + exe winnum . 'wincmd w' + endif + return + endif + + if s:tlist_app_name == "winmanager" + " Taglist plugin is no longer part of the winmanager app + let s:tlist_app_name = "none" + endif + + " Get the filename and filetype for the specified buffer + let curbuf_name = fnamemodify(bufname('%'), ':p') + let curbuf_ftype = s:Tlist_Get_Buffer_Filetype('%') + let cur_lnum = line('.') + + " Mark the current window as the desired window to open a file when a tag + " is selected. + call s:Tlist_Window_Mark_File_Window() + + " Open the taglist window + call s:Tlist_Window_Create() + + call s:Tlist_Window_Refresh() + + if g:Tlist_Show_One_File + " Add only the current buffer and file + " + " If the file doesn't support tag listing, skip it + if !s:Tlist_Skip_File(curbuf_name, curbuf_ftype) + call s:Tlist_Window_Refresh_File(curbuf_name, curbuf_ftype) + endif + endif + + if g:Tlist_File_Fold_Auto_Close + " Open the fold for the current file, as all the folds in + " the taglist window are closed + let fidx = s:Tlist_Get_File_Index(curbuf_name) + if fidx != -1 + exe "silent! " . s:tlist_{fidx}_start . "," . + \ s:tlist_{fidx}_end . "foldopen!" + endif + endif + + " Highlight the current tag + call s:Tlist_Window_Highlight_Tag(curbuf_name, cur_lnum, 1, 1) +endfunction + +" Tlist_Window_Toggle() +" Open or close a taglist window +function! s:Tlist_Window_Toggle() + call s:Tlist_Log_Msg('Tlist_Window_Toggle()') + " If taglist window is open then close it. + let winnum = bufwinnr(g:TagList_title) + if winnum != -1 + call s:Tlist_Window_Close() + return + endif + + call s:Tlist_Window_Open() + + " Go back to the original window, if Tlist_GainFocus_On_ToggleOpen is not + " set + if !g:Tlist_GainFocus_On_ToggleOpen + call s:Tlist_Exe_Cmd_No_Acmds('wincmd p') + endif + + " Update the taglist menu + if g:Tlist_Show_Menu + call s:Tlist_Menu_Update_File(0) + endif +endfunction + +" Tlist_Process_Filelist +" Process multiple files. Each filename is separated by "\n" +" Returns the number of processed files +function! s:Tlist_Process_Filelist(file_names) + let flist = a:file_names + + " Enable lazy screen updates + let old_lazyredraw = &lazyredraw + set lazyredraw + + " Keep track of the number of processed files + let fcnt = 0 + + " Process one file at a time + while flist != '' + let nl_idx = stridx(flist, "\n") + let one_file = strpart(flist, 0, nl_idx) + + " Remove the filename from the list + let flist = strpart(flist, nl_idx + 1) + + if one_file == '' + continue + endif + + " Skip directories + if isdirectory(one_file) + continue + endif + + let ftype = s:Tlist_Detect_Filetype(one_file) + + echon "\r " + echon "\rProcessing tags for " . fnamemodify(one_file, ':p:t') + + let fcnt = fcnt + 1 + + call Tlist_Update_File(one_file, ftype) + endwhile + + " Clear the displayed informational messages + echon "\r " + + " Restore the previous state + let &lazyredraw = old_lazyredraw + + return fcnt +endfunction + +" Tlist_Process_Dir +" Process the files in a directory matching the specified pattern +function! s:Tlist_Process_Dir(dir_name, pat) + let flist = glob(a:dir_name . '/' . a:pat) . "\n" + + let fcnt = s:Tlist_Process_Filelist(flist) + + let len = strlen(a:dir_name) + if a:dir_name[len - 1] == '\' || a:dir_name[len - 1] == '/' + let glob_expr = a:dir_name . '*' + else + let glob_expr = a:dir_name . '/*' + endif + let all_files = glob(glob_expr) . "\n" + + while all_files != '' + let nl_idx = stridx(all_files, "\n") + let one_file = strpart(all_files, 0, nl_idx) + + let all_files = strpart(all_files, nl_idx + 1) + if one_file == '' + continue + endif + + " Skip non-directory names + if !isdirectory(one_file) + continue + endif + + echon "\r " + echon "\rProcessing files in directory " . fnamemodify(one_file, ':t') + let fcnt = fcnt + s:Tlist_Process_Dir(one_file, a:pat) + endwhile + + return fcnt +endfunction + +" Tlist_Add_Files_Recursive +" Add files recursively from a directory +function! s:Tlist_Add_Files_Recursive(dir, ...) + let dir_name = fnamemodify(a:dir, ':p') + if !isdirectory(dir_name) + call s:Tlist_Warning_Msg('Error: ' . dir_name . ' is not a directory') + return + endif + + if a:0 == 1 + " User specified file pattern + let pat = a:1 + else + " Default file pattern + let pat = '*' + endif + + echon "\r " + echon "\rProcessing files in directory " . fnamemodify(dir_name, ':t') + let fcnt = s:Tlist_Process_Dir(dir_name, pat) + + echon "\rAdded " . fcnt . " files to the taglist" +endfunction + +" Tlist_Add_Files +" Add the specified list of files to the taglist +function! s:Tlist_Add_Files(...) + let flist = '' + let i = 1 + + " Get all the files matching the file patterns supplied as argument + while i <= a:0 + let flist = flist . glob(a:{i}) . "\n" + let i = i + 1 + endwhile + + if flist == '' + call s:Tlist_Warning_Msg('Error: No matching files are found') + return + endif + + let fcnt = s:Tlist_Process_Filelist(flist) + echon "\rAdded " . fcnt . " files to the taglist" +endfunction + +" Tlist_Extract_Tagtype +" Extract the tag type from the tag text +function! s:Tlist_Extract_Tagtype(tag_line) + " The tag type is after the tag prototype field. The prototype field + " ends with the /;"\t string. We add 4 at the end to skip the characters + " in this special string.. + let start = strridx(a:tag_line, '/;"' . "\t") + 4 + let end = strridx(a:tag_line, 'line:') - 1 + let ttype = strpart(a:tag_line, start, end - start) + + return ttype +endfunction + +" Tlist_Extract_Tag_Scope +" Extract the tag scope from the tag text +function! s:Tlist_Extract_Tag_Scope(tag_line) + let start = strridx(a:tag_line, 'line:') + let end = strridx(a:tag_line, "\t") + if end <= start + return '' + endif + + let tag_scope = strpart(a:tag_line, end + 1) + let tag_scope = strpart(tag_scope, stridx(tag_scope, ':') + 1) + + return tag_scope +endfunction + +" Tlist_Refresh() +" Refresh the taglist +function! s:Tlist_Refresh() + call s:Tlist_Log_Msg('Tlist_Refresh (Skip_Refresh = ' . + \ s:Tlist_Skip_Refresh . ', ' . bufname('%') . ')') + " If we are entering the buffer from one of the taglist functions, then + " no need to refresh the taglist window again. + if s:Tlist_Skip_Refresh + " We still need to update the taglist menu + if g:Tlist_Show_Menu + call s:Tlist_Menu_Update_File(0) + endif + return + endif + + " If part of the winmanager plugin and not configured to process + " tags always and not configured to display the tags menu, then return + if (s:tlist_app_name == 'winmanager') && !g:Tlist_Process_File_Always + \ && !g:Tlist_Show_Menu + return + endif + + " Skip buffers with 'buftype' set to nofile, nowrite, quickfix or help + if &buftype != '' + return + endif + + let filename = fnamemodify(bufname('%'), ':p') + let ftype = s:Tlist_Get_Buffer_Filetype('%') + + " If the file doesn't support tag listing, skip it + if s:Tlist_Skip_File(filename, ftype) + return + endif + + let tlist_win = bufwinnr(g:TagList_title) + + " If the taglist window is not opened and not configured to process + " tags always and not displaying the tags menu, then return + if tlist_win == -1 && !g:Tlist_Process_File_Always && !g:Tlist_Show_Menu + return + endif + + let fidx = s:Tlist_Get_File_Index(filename) + if fidx == -1 + " Check whether this file is removed based on user request + " If it is, then don't display the tags for this file + if s:Tlist_User_Removed_File(filename) + return + endif + + " If the taglist should not be auto updated, then return + if !g:Tlist_Auto_Update + return + endif + endif + + let cur_lnum = line('.') + + if fidx == -1 + " Update the tags for the file + let fidx = s:Tlist_Process_File(filename, ftype) + else + let mtime = getftime(filename) + if s:tlist_{fidx}_mtime != mtime + " Invalidate the tags listed for this file + let s:tlist_{fidx}_valid = 0 + + " Update the taglist and the window + call Tlist_Update_File(filename, ftype) + + " Store the new file modification time + let s:tlist_{fidx}_mtime = mtime + endif + endif + + " Update the taglist window + if tlist_win != -1 + " Disable screen updates + let old_lazyredraw = &lazyredraw + set nolazyredraw + + " Save the current window number + let save_winnr = winnr() + + " Goto the taglist window + call s:Tlist_Window_Goto_Window() + + if !g:Tlist_Auto_Highlight_Tag || !g:Tlist_Highlight_Tag_On_BufEnter + " Save the cursor position + let save_line = line('.') + let save_col = col('.') + endif + + " Update the taglist window + call s:Tlist_Window_Refresh_File(filename, ftype) + + " Open the fold for the file + exe "silent! " . s:tlist_{fidx}_start . "," . + \ s:tlist_{fidx}_end . "foldopen!" + + if g:Tlist_Highlight_Tag_On_BufEnter && g:Tlist_Auto_Highlight_Tag + if g:Tlist_Show_One_File && s:tlist_cur_file_idx != fidx + " If displaying tags for only one file in the taglist + " window and about to display the tags for a new file, + " then center the current tag line for the new file + let center_tag_line = 1 + else + let center_tag_line = 0 + endif + + " Highlight the current tag + call s:Tlist_Window_Highlight_Tag(filename, cur_lnum, 1, center_tag_line) + else + " Restore the cursor position + if v:version >= 601 + call cursor(save_line, save_col) + else + exe save_line + exe 'normal! ' . save_col . '|' + endif + endif + + " Jump back to the original window + if save_winnr != winnr() + call s:Tlist_Exe_Cmd_No_Acmds(save_winnr . 'wincmd w') + endif + + " Restore screen updates + let &lazyredraw = old_lazyredraw + endif + + " Update the taglist menu + if g:Tlist_Show_Menu + call s:Tlist_Menu_Update_File(0) + endif +endfunction + +" Tlist_Change_Sort() +" Change the sort order of the tag listing +" caller == 'cmd', command used in the taglist window +" caller == 'menu', taglist menu +" action == 'toggle', toggle sort from name to order and vice versa +" action == 'set', set the sort order to sort_type +function! s:Tlist_Change_Sort(caller, action, sort_type) + call s:Tlist_Log_Msg('Tlist_Change_Sort (caller = ' . a:caller . + \ ', action = ' . a:action . ', sort_type = ' . a:sort_type . ')') + if a:caller == 'cmd' + let fidx = s:Tlist_Window_Get_File_Index_By_Linenum(line('.')) + if fidx == -1 + return + endif + + " Remove the previous highlighting + match none + elseif a:caller == 'menu' + let fidx = s:Tlist_Get_File_Index(fnamemodify(bufname('%'), ':p')) + if fidx == -1 + return + endif + endif + + if a:action == 'toggle' + let sort_type = s:tlist_{fidx}_sort_type + + " Toggle the sort order from 'name' to 'order' and vice versa + if sort_type == 'name' + let s:tlist_{fidx}_sort_type = 'order' + else + let s:tlist_{fidx}_sort_type = 'name' + endif + else + let s:tlist_{fidx}_sort_type = a:sort_type + endif + + " Invalidate the tags listed for this file + let s:tlist_{fidx}_valid = 0 + + if a:caller == 'cmd' + " Save the current line for later restoration + let curline = '\V\^' . getline('.') . '\$' + + call s:Tlist_Window_Refresh_File(s:tlist_{fidx}_filename, + \ s:tlist_{fidx}_filetype) + + exe s:tlist_{fidx}_start . ',' . s:tlist_{fidx}_end . 'foldopen!' + + " Go back to the cursor line before the tag list is sorted + call search(curline, 'w') + + call s:Tlist_Menu_Update_File(1) + else + call s:Tlist_Menu_Remove_File() + + call s:Tlist_Refresh() + endif +endfunction + +" Tlist_Update_Current_File() +" Update taglist for the current buffer by regenerating the tag list +" Contributed by WEN Guopeng. +function! s:Tlist_Update_Current_File() + call s:Tlist_Log_Msg('Tlist_Update_Current_File()') + if winnr() == bufwinnr(g:TagList_title) + " In the taglist window. Update the current file + call s:Tlist_Window_Update_File() + else + " Not in the taglist window. Update the current buffer + let filename = fnamemodify(bufname('%'), ':p') + let fidx = s:Tlist_Get_File_Index(filename) + if fidx != -1 + let s:tlist_{fidx}_valid = 0 + endif + let ft = s:Tlist_Get_Buffer_Filetype('%') + call Tlist_Update_File(filename, ft) + endif +endfunction + +" Tlist_Window_Update_File() +" Update the tags displayed in the taglist window +function! s:Tlist_Window_Update_File() + call s:Tlist_Log_Msg('Tlist_Window_Update_File()') + let fidx = s:Tlist_Window_Get_File_Index_By_Linenum(line('.')) + if fidx == -1 + return + endif + + " Remove the previous highlighting + match none + + " Save the current line for later restoration + let curline = '\V\^' . getline('.') . '\$' + + let s:tlist_{fidx}_valid = 0 + + " Update the taglist window + call s:Tlist_Window_Refresh_File(s:tlist_{fidx}_filename, + \ s:tlist_{fidx}_filetype) + + exe s:tlist_{fidx}_start . ',' . s:tlist_{fidx}_end . 'foldopen!' + + " Go back to the tag line before the list is updated + call search(curline, 'w') +endfunction + +" Tlist_Window_Get_Tag_Type_By_Linenum() +" Return the tag type index for the specified line in the taglist window +function! s:Tlist_Window_Get_Tag_Type_By_Linenum(fidx, lnum) + let ftype = s:tlist_{a:fidx}_filetype + + " Determine to which tag type the current line number belongs to using the + " tag type start line number and the number of tags in a tag type + let i = 1 + while i <= s:tlist_{ftype}_count + let ttype = s:tlist_{ftype}_{i}_name + let start_lnum = + \ s:tlist_{a:fidx}_start + s:tlist_{a:fidx}_{ttype}_offset + let end = start_lnum + s:tlist_{a:fidx}_{ttype}_count + if a:lnum >= start_lnum && a:lnum <= end + break + endif + let i = i + 1 + endwhile + + " Current line doesn't belong to any of the displayed tag types + if i > s:tlist_{ftype}_count + return '' + endif + + return ttype +endfunction + +" Tlist_Window_Get_Tag_Index() +" Return the tag index for the specified line in the taglist window +function! s:Tlist_Window_Get_Tag_Index(fidx, lnum) + let ttype = s:Tlist_Window_Get_Tag_Type_By_Linenum(a:fidx, a:lnum) + + " Current line doesn't belong to any of the displayed tag types + if ttype == '' + return 0 + endif + + " Compute the index into the displayed tags for the tag type + let ttype_lnum = s:tlist_{a:fidx}_start + s:tlist_{a:fidx}_{ttype}_offset + let tidx = a:lnum - ttype_lnum + if tidx == 0 + return 0 + endif + + " Get the corresponding tag line and return it + return s:tlist_{a:fidx}_{ttype}_{tidx} +endfunction + +" Tlist_Window_Highlight_Line +" Highlight the current line +function! s:Tlist_Window_Highlight_Line() + " Clear previously selected name + match none + + " Highlight the current line + if g:Tlist_Display_Prototype == 0 + let pat = '/\%' . line('.') . 'l\s\+\zs.*/' + else + let pat = '/\%' . line('.') . 'l.*/' + endif + + exe 'match TagListTagName ' . pat +endfunction + +" Tlist_Window_Open_File +" Open the specified file in either a new window or an existing window +" and place the cursor at the specified tag pattern +function! s:Tlist_Window_Open_File(win_ctrl, filename, tagpat) + call s:Tlist_Log_Msg('Tlist_Window_Open_File (' . a:filename . ',' . + \ a:win_ctrl . ')') + let prev_Tlist_Skip_Refresh = s:Tlist_Skip_Refresh + let s:Tlist_Skip_Refresh = 1 + + if s:tlist_app_name == "winmanager" + " Let the winmanager edit the file + call WinManagerFileEdit(a:filename, a:win_ctrl == 'newwin') + else + + if a:win_ctrl == 'newtab' + " Create a new tab + exe 'tabnew ' . escape(a:filename, ' ') + " Open the taglist window in the new tab + call s:Tlist_Window_Open() + endif + + if a:win_ctrl == 'checktab' + " Check whether the file is present in any of the tabs. + " If the file is present in the current tab, then use the + " current tab. + if bufwinnr(a:filename) != -1 + let file_present_in_tab = 1 + let i = tabpagenr() + else + let i = 1 + let bnum = bufnr(a:filename) + let file_present_in_tab = 0 + while i <= tabpagenr('$') + if index(tabpagebuflist(i), bnum) != -1 + let file_present_in_tab = 1 + break + endif + let i += 1 + endwhile + endif + + if file_present_in_tab + " Goto the tab containing the file + exe 'tabnext ' . i + else + " Open a new tab + exe 'tabnew ' . escape(a:filename, ' ') + + " Open the taglist window + call s:Tlist_Window_Open() + endif + endif + + let winnum = -1 + if a:win_ctrl == 'prevwin' + " Open the file in the previous window, if it is usable + let cur_win = winnr() + wincmd p + if &buftype == '' && !&previewwindow + exe "edit " . escape(a:filename, ' ') + let winnum = winnr() + else + " Previous window is not usable + exe cur_win . 'wincmd w' + endif + endif + + " Goto the window containing the file. If the window is not there, open a + " new window + if winnum == -1 + let winnum = bufwinnr(a:filename) + endif + + if winnum == -1 + " Locate the previously used window for opening a file + let fwin_num = 0 + let first_usable_win = 0 + + let i = 1 + let bnum = winbufnr(i) + while bnum != -1 + if getwinvar(i, 'tlist_file_window') == 'yes' + let fwin_num = i + break + endif + if first_usable_win == 0 && + \ getbufvar(bnum, '&buftype') == '' && + \ !getwinvar(i, '&previewwindow') + " First non-taglist, non-plugin and non-preview window + let first_usable_win = i + endif + let i = i + 1 + let bnum = winbufnr(i) + endwhile + + " If a previously used window is not found, then use the first + " non-taglist window + if fwin_num == 0 + let fwin_num = first_usable_win + endif + + if fwin_num != 0 + " Jump to the file window + exe fwin_num . "wincmd w" + + " If the user asked to jump to the tag in a new window, then split + " the existing window into two. + if a:win_ctrl == 'newwin' + split + endif + exe "edit " . escape(a:filename, ' ') + else + " Open a new window + if g:Tlist_Use_Horiz_Window + exe 'leftabove split ' . escape(a:filename, ' ') + else + if winbufnr(2) == -1 + " Only the taglist window is present + if g:Tlist_Use_Right_Window + exe 'leftabove vertical split ' . + \ escape(a:filename, ' ') + else + exe 'rightbelow vertical split ' . + \ escape(a:filename, ' ') + endif + + " Go to the taglist window to change the window size to + " the user configured value + call s:Tlist_Exe_Cmd_No_Acmds('wincmd p') + if g:Tlist_Use_Horiz_Window + exe 'resize ' . g:Tlist_WinHeight + else + exe 'vertical resize ' . g:Tlist_WinWidth + endif + " Go back to the file window + call s:Tlist_Exe_Cmd_No_Acmds('wincmd p') + else + " A plugin or help window is also present + wincmd w + exe 'leftabove split ' . escape(a:filename, ' ') + endif + endif + endif + " Mark the window, so that it can be reused. + call s:Tlist_Window_Mark_File_Window() + else + if v:version >= 700 + " If the file is opened in more than one window, then check + " whether the last accessed window has the selected file. + " If it does, then use that window. + let lastwin_bufnum = winbufnr(winnr('#')) + if bufnr(a:filename) == lastwin_bufnum + let winnum = winnr('#') + endif + endif + exe winnum . 'wincmd w' + + " If the user asked to jump to the tag in a new window, then split the + " existing window into two. + if a:win_ctrl == 'newwin' + split + endif + endif + endif + + " Jump to the tag + if a:tagpat != '' + " Add the current cursor position to the jump list, so that user can + " jump back using the ' and ` marks. + mark ' + silent call search(a:tagpat, 'w') + + " Bring the line to the middle of the window + normal! z. + + " If the line is inside a fold, open the fold + if foldclosed('.') != -1 + .foldopen + endif + endif + + " If the user selects to preview the tag then jump back to the + " taglist window + if a:win_ctrl == 'preview' + " Go back to the taglist window + let winnum = bufwinnr(g:TagList_title) + exe winnum . 'wincmd w' + else + " If the user has selected to close the taglist window, when a + " tag is selected, close the taglist window + if g:Tlist_Close_On_Select + call s:Tlist_Window_Goto_Window() + close + + " Go back to the window displaying the selected file + let wnum = bufwinnr(a:filename) + if wnum != -1 && wnum != winnr() + call s:Tlist_Exe_Cmd_No_Acmds(wnum . 'wincmd w') + endif + endif + endif + + let s:Tlist_Skip_Refresh = prev_Tlist_Skip_Refresh +endfunction + +" Tlist_Window_Jump_To_Tag() +" Jump to the location of the current tag +" win_ctrl == useopen - Reuse the existing file window +" win_ctrl == newwin - Open a new window +" win_ctrl == preview - Preview the tag +" win_ctrl == prevwin - Open in previous window +" win_ctrl == newtab - Open in new tab +function! s:Tlist_Window_Jump_To_Tag(win_ctrl) + call s:Tlist_Log_Msg('Tlist_Window_Jump_To_Tag(' . a:win_ctrl . ')') + " Do not process comment lines and empty lines + let curline = getline('.') + if curline =~ '^\s*$' || curline[0] == '"' + return + endif + + " If inside a closed fold, then use the first line of the fold + " and jump to the file. + let lnum = foldclosed('.') + if lnum == -1 + " Jump to the selected tag or file + let lnum = line('.') + else + " Open the closed fold + .foldopen! + endif + + let fidx = s:Tlist_Window_Get_File_Index_By_Linenum(lnum) + if fidx == -1 + return + endif + + " Get the tag output for the current tag + let tidx = s:Tlist_Window_Get_Tag_Index(fidx, lnum) + if tidx != 0 + let tagpat = s:Tlist_Get_Tag_SearchPat(fidx, tidx) + + " Highlight the tagline + call s:Tlist_Window_Highlight_Line() + else + " Selected a line which is not a tag name. Just edit the file + let tagpat = '' + endif + + call s:Tlist_Window_Open_File(a:win_ctrl, s:tlist_{fidx}_filename, tagpat) +endfunction + +" Tlist_Window_Show_Info() +" Display information about the entry under the cursor +function! s:Tlist_Window_Show_Info() + call s:Tlist_Log_Msg('Tlist_Window_Show_Info()') + + " Clear the previously displayed line + echo + + " Do not process comment lines and empty lines + let curline = getline('.') + if curline =~ '^\s*$' || curline[0] == '"' + return + endif + + " If inside a fold, then don't display the prototype + if foldclosed('.') != -1 + return + endif + + let lnum = line('.') + + " Get the file index + let fidx = s:Tlist_Window_Get_File_Index_By_Linenum(lnum) + if fidx == -1 + return + endif + + if lnum == s:tlist_{fidx}_start + " Cursor is on a file name + let fname = s:tlist_{fidx}_filename + if strlen(fname) > 50 + let fname = fnamemodify(fname, ':t') + endif + echo fname . ', Filetype=' . s:tlist_{fidx}_filetype . + \ ', Tag count=' . s:tlist_{fidx}_tag_count + return + endif + + " Get the tag output line for the current tag + let tidx = s:Tlist_Window_Get_Tag_Index(fidx, lnum) + if tidx == 0 + " Cursor is on a tag type + let ttype = s:Tlist_Window_Get_Tag_Type_By_Linenum(fidx, lnum) + if ttype == '' + return + endif + + let ttype_name = '' + + let ftype = s:tlist_{fidx}_filetype + let i = 1 + while i <= s:tlist_{ftype}_count + if ttype == s:tlist_{ftype}_{i}_name + let ttype_name = s:tlist_{ftype}_{i}_fullname + break + endif + let i = i + 1 + endwhile + + echo 'Tag type=' . ttype_name . + \ ', Tag count=' . s:tlist_{fidx}_{ttype}_count + return + endif + + " Get the tag search pattern and display it + echo s:Tlist_Get_Tag_Prototype(fidx, tidx) +endfunction + +" Tlist_Find_Nearest_Tag_Idx +" Find the tag idx nearest to the supplied line number +" Returns -1, if a tag couldn't be found for the specified line number +function! s:Tlist_Find_Nearest_Tag_Idx(fidx, linenum) + let sort_type = s:tlist_{a:fidx}_sort_type + + let left = 1 + let right = s:tlist_{a:fidx}_tag_count + + if sort_type == 'order' + " Tags sorted by order, use a binary search. + " The idea behind this function is taken from the ctags.vim script (by + " Alexey Marinichev) available at the Vim online website. + + " If the current line is the less than the first tag, then no need to + " search + let first_lnum = s:Tlist_Get_Tag_Linenum(a:fidx, 1) + + if a:linenum < first_lnum + return -1 + endif + + while left < right + let middle = (right + left + 1) / 2 + let middle_lnum = s:Tlist_Get_Tag_Linenum(a:fidx, middle) + + if middle_lnum == a:linenum + let left = middle + break + endif + + if middle_lnum > a:linenum + let right = middle - 1 + else + let left = middle + endif + endwhile + else + " Tags sorted by name, use a linear search. (contributed by Dave + " Eggum). + " Look for a tag with a line number less than or equal to the supplied + " line number. If multiple tags are found, then use the tag with the + " line number closest to the supplied line number. IOW, use the tag + " with the highest line number. + let closest_lnum = 0 + let final_left = 0 + while left <= right + let lnum = s:Tlist_Get_Tag_Linenum(a:fidx, left) + + if lnum < a:linenum && lnum > closest_lnum + let closest_lnum = lnum + let final_left = left + elseif lnum == a:linenum + let closest_lnum = lnum + let final_left = left + break + else + let left = left + 1 + endif + endwhile + if closest_lnum == 0 + return -1 + endif + if left >= right + let left = final_left + endif + endif + + return left +endfunction + +" Tlist_Window_Highlight_Tag() +" Highlight the current tag +" cntx == 1, Called by the taglist plugin itself +" cntx == 2, Forced by the user through the TlistHighlightTag command +" center = 1, move the tag line to the center of the taglist window +function! s:Tlist_Window_Highlight_Tag(filename, cur_lnum, cntx, center) + " Highlight the current tag only if the user configured the + " taglist plugin to do so or if the user explictly invoked the + " command to highlight the current tag. + if !g:Tlist_Auto_Highlight_Tag && a:cntx == 1 + return + endif + + if a:filename == '' + return + endif + + " Make sure the taglist window is present + let winnum = bufwinnr(g:TagList_title) + if winnum == -1 + call s:Tlist_Warning_Msg('Error: Taglist window is not open') + return + endif + + let fidx = s:Tlist_Get_File_Index(a:filename) + if fidx == -1 + return + endif + + " If the file is currently not displayed in the taglist window, then retrn + if !s:tlist_{fidx}_visible + return + endif + + " If there are no tags for this file, then no need to proceed further + if s:tlist_{fidx}_tag_count == 0 + return + endif + + " Ignore all autocommands + let old_ei = &eventignore + set eventignore=all + + " Save the original window number + let org_winnr = winnr() + + if org_winnr == winnum + let in_taglist_window = 1 + else + let in_taglist_window = 0 + endif + + " Go to the taglist window + if !in_taglist_window + exe winnum . 'wincmd w' + endif + + " Clear previously selected name + match none + + let tidx = s:Tlist_Find_Nearest_Tag_Idx(fidx, a:cur_lnum) + if tidx == -1 + " Make sure the current tag line is visible in the taglist window. + " Calling the winline() function makes the line visible. Don't know + " of a better way to achieve this. + let lnum = line('.') + + if lnum < s:tlist_{fidx}_start || lnum > s:tlist_{fidx}_end + " Move the cursor to the beginning of the file + exe s:tlist_{fidx}_start + endif + + if foldclosed('.') != -1 + .foldopen + endif + + call winline() + + if !in_taglist_window + exe org_winnr . 'wincmd w' + endif + + " Restore the autocommands + let &eventignore = old_ei + return + endif + + " Extract the tag type + let ttype = s:Tlist_Get_Tag_Type_By_Tag(fidx, tidx) + + " Compute the line number + " Start of file + Start of tag type + offset + let lnum = s:tlist_{fidx}_start + s:tlist_{fidx}_{ttype}_offset + + \ s:tlist_{fidx}_{tidx}_ttype_idx + + " Goto the line containing the tag + exe lnum + + " Open the fold + if foldclosed('.') != -1 + .foldopen + endif + + if a:center + " Move the tag line to the center of the taglist window + normal! z. + else + " Make sure the current tag line is visible in the taglist window. + " Calling the winline() function makes the line visible. Don't know + " of a better way to achieve this. + call winline() + endif + + " Highlight the tag name + call s:Tlist_Window_Highlight_Line() + + " Go back to the original window + if !in_taglist_window + exe org_winnr . 'wincmd w' + endif + + " Restore the autocommands + let &eventignore = old_ei + return +endfunction + +" Tlist_Get_Tag_Prototype_By_Line +" Get the prototype for the tag on or before the specified line number in the +" current buffer +function! Tlist_Get_Tag_Prototype_By_Line(...) + if a:0 == 0 + " Arguments are not supplied. Use the current buffer name + " and line number + let filename = bufname('%') + let linenr = line('.') + elseif a:0 == 2 + " Filename and line number are specified + let filename = a:1 + let linenr = a:2 + if linenr !~ '\d\+' + " Invalid line number + return "" + endif + else + " Sufficient arguments are not supplied + let msg = 'Usage: Tlist_Get_Tag_Prototype_By_Line ' . + \ '' + call s:Tlist_Warning_Msg(msg) + return "" + endif + + " Expand the file to a fully qualified name + let filename = fnamemodify(filename, ':p') + if filename == '' + return "" + endif + + let fidx = s:Tlist_Get_File_Index(filename) + if fidx == -1 + return "" + endif + + " If there are no tags for this file, then no need to proceed further + if s:tlist_{fidx}_tag_count == 0 + return "" + endif + + " Get the tag text using the line number + let tidx = s:Tlist_Find_Nearest_Tag_Idx(fidx, linenr) + if tidx == -1 + return "" + endif + + return s:Tlist_Get_Tag_Prototype(fidx, tidx) +endfunction + +" Tlist_Get_Tagname_By_Line +" Get the tag name on or before the specified line number in the +" current buffer +function! Tlist_Get_Tagname_By_Line(...) + if a:0 == 0 + " Arguments are not supplied. Use the current buffer name + " and line number + let filename = bufname('%') + let linenr = line('.') + elseif a:0 == 2 + " Filename and line number are specified + let filename = a:1 + let linenr = a:2 + if linenr !~ '\d\+' + " Invalid line number + return "" + endif + else + " Sufficient arguments are not supplied + let msg = 'Usage: Tlist_Get_Tagname_By_Line ' + call s:Tlist_Warning_Msg(msg) + return "" + endif + + " Make sure the current file has a name + let filename = fnamemodify(filename, ':p') + if filename == '' + return "" + endif + + let fidx = s:Tlist_Get_File_Index(filename) + if fidx == -1 + return "" + endif + + " If there are no tags for this file, then no need to proceed further + if s:tlist_{fidx}_tag_count == 0 + return "" + endif + + " Get the tag name using the line number + let tidx = s:Tlist_Find_Nearest_Tag_Idx(fidx, linenr) + if tidx == -1 + return "" + endif + + return s:tlist_{fidx}_{tidx}_tag_name +endfunction + +" Tlist_Window_Move_To_File +" Move the cursor to the beginning of the current file or the next file +" or the previous file in the taglist window +" dir == -1, move to start of current or previous function +" dir == 1, move to start of next function +function! s:Tlist_Window_Move_To_File(dir) + if foldlevel('.') == 0 + " Cursor is on a non-folded line (it is not in any of the files) + " Move it to a folded line + if a:dir == -1 + normal! zk + else + " While moving down to the start of the next fold, + " no need to do go to the start of the next file. + normal! zj + return + endif + endif + + let fidx = s:Tlist_Window_Get_File_Index_By_Linenum(line('.')) + if fidx == -1 + return + endif + + let cur_lnum = line('.') + + if a:dir == -1 + if cur_lnum > s:tlist_{fidx}_start + " Move to the beginning of the current file + exe s:tlist_{fidx}_start + return + endif + + if fidx != 0 + " Move to the beginning of the previous file + let fidx = fidx - 1 + else + " Cursor is at the first file, wrap around to the last file + let fidx = s:tlist_file_count - 1 + endif + + exe s:tlist_{fidx}_start + return + else + " Move to the beginning of the next file + let fidx = fidx + 1 + + if fidx >= s:tlist_file_count + " Cursor is at the last file, wrap around to the first file + let fidx = 0 + endif + + if s:tlist_{fidx}_start != 0 + exe s:tlist_{fidx}_start + endif + return + endif +endfunction + +" Tlist_Session_Load +" Load a taglist session (information about all the displayed files +" and the tags) from the specified file +function! s:Tlist_Session_Load(...) + if a:0 == 0 || a:1 == '' + call s:Tlist_Warning_Msg('Usage: TlistSessionLoad ') + return + endif + + let sessionfile = a:1 + + if !filereadable(sessionfile) + let msg = 'Taglist: Error - Unable to open file ' . sessionfile + call s:Tlist_Warning_Msg(msg) + return + endif + + " Mark the current window as the file window + call s:Tlist_Window_Mark_File_Window() + + " Source the session file + exe 'source ' . sessionfile + + let new_file_count = g:tlist_file_count + unlet! g:tlist_file_count + + let i = 0 + while i < new_file_count + let ftype = g:tlist_{i}_filetype + unlet! g:tlist_{i}_filetype + + if !exists('s:tlist_' . ftype . '_count') + if s:Tlist_FileType_Init(ftype) == 0 + let i = i + 1 + continue + endif + endif + + let fname = g:tlist_{i}_filename + unlet! g:tlist_{i}_filename + + let fidx = s:Tlist_Get_File_Index(fname) + if fidx != -1 + let s:tlist_{fidx}_visible = 0 + let i = i + 1 + continue + else + " As we are loading the tags from the session file, if this + " file was previously deleted by the user, now we need to + " add it back. So remove the file from the deleted list. + call s:Tlist_Update_Remove_List(fname, 0) + endif + + let fidx = s:Tlist_Init_File(fname, ftype) + + let s:tlist_{fidx}_filename = fname + + let s:tlist_{fidx}_sort_type = g:tlist_{i}_sort_type + unlet! g:tlist_{i}_sort_type + + let s:tlist_{fidx}_filetype = ftype + let s:tlist_{fidx}_mtime = getftime(fname) + + let s:tlist_{fidx}_start = 0 + let s:tlist_{fidx}_end = 0 + + let s:tlist_{fidx}_valid = 1 + + let s:tlist_{fidx}_tag_count = g:tlist_{i}_tag_count + unlet! g:tlist_{i}_tag_count + + let j = 1 + while j <= s:tlist_{fidx}_tag_count + let s:tlist_{fidx}_{j}_tag = g:tlist_{i}_{j}_tag + let s:tlist_{fidx}_{j}_tag_name = g:tlist_{i}_{j}_tag_name + let s:tlist_{fidx}_{j}_ttype_idx = g:tlist_{i}_{j}_ttype_idx + unlet! g:tlist_{i}_{j}_tag + unlet! g:tlist_{i}_{j}_tag_name + unlet! g:tlist_{i}_{j}_ttype_idx + let j = j + 1 + endwhile + + let j = 1 + while j <= s:tlist_{ftype}_count + let ttype = s:tlist_{ftype}_{j}_name + + if exists('g:tlist_' . i . '_' . ttype) + let s:tlist_{fidx}_{ttype} = g:tlist_{i}_{ttype} + unlet! g:tlist_{i}_{ttype} + let s:tlist_{fidx}_{ttype}_offset = 0 + let s:tlist_{fidx}_{ttype}_count = g:tlist_{i}_{ttype}_count + unlet! g:tlist_{i}_{ttype}_count + + let k = 1 + while k <= s:tlist_{fidx}_{ttype}_count + let s:tlist_{fidx}_{ttype}_{k} = g:tlist_{i}_{ttype}_{k} + unlet! g:tlist_{i}_{ttype}_{k} + let k = k + 1 + endwhile + else + let s:tlist_{fidx}_{ttype} = '' + let s:tlist_{fidx}_{ttype}_offset = 0 + let s:tlist_{fidx}_{ttype}_count = 0 + endif + + let j = j + 1 + endwhile + + let i = i + 1 + endwhile + + " If the taglist window is open, then update it + let winnum = bufwinnr(g:TagList_title) + if winnum != -1 + let save_winnr = winnr() + + " Goto the taglist window + call s:Tlist_Window_Goto_Window() + + " Refresh the taglist window + call s:Tlist_Window_Refresh() + + " Go back to the original window + if save_winnr != winnr() + call s:Tlist_Exe_Cmd_No_Acmds('wincmd p') + endif + endif +endfunction + +" Tlist_Session_Save +" Save a taglist session (information about all the displayed files +" and the tags) into the specified file +function! s:Tlist_Session_Save(...) + if a:0 == 0 || a:1 == '' + call s:Tlist_Warning_Msg('Usage: TlistSessionSave ') + return + endif + + let sessionfile = a:1 + + if s:tlist_file_count == 0 + " There is nothing to save + call s:Tlist_Warning_Msg('Warning: Taglist is empty. Nothing to save.') + return + endif + + if filereadable(sessionfile) + let ans = input('Do you want to overwrite ' . sessionfile . ' (Y/N)?') + if ans !=? 'y' + return + endif + + echo "\n" + endif + + let old_verbose = &verbose + set verbose&vim + + exe 'redir! > ' . sessionfile + + silent! echo '" Taglist session file. This file is auto-generated.' + silent! echo '" File information' + silent! echo 'let tlist_file_count = ' . s:tlist_file_count + + let i = 0 + + while i < s:tlist_file_count + " Store information about the file + silent! echo 'let tlist_' . i . "_filename = '" . + \ s:tlist_{i}_filename . "'" + silent! echo 'let tlist_' . i . '_sort_type = "' . + \ s:tlist_{i}_sort_type . '"' + silent! echo 'let tlist_' . i . '_filetype = "' . + \ s:tlist_{i}_filetype . '"' + silent! echo 'let tlist_' . i . '_tag_count = ' . + \ s:tlist_{i}_tag_count + " Store information about all the tags + let j = 1 + while j <= s:tlist_{i}_tag_count + let txt = escape(s:tlist_{i}_{j}_tag, '"\\') + silent! echo 'let tlist_' . i . '_' . j . '_tag = "' . txt . '"' + silent! echo 'let tlist_' . i . '_' . j . '_tag_name = "' . + \ s:tlist_{i}_{j}_tag_name . '"' + silent! echo 'let tlist_' . i . '_' . j . '_ttype_idx' . ' = ' . + \ s:tlist_{i}_{j}_ttype_idx + let j = j + 1 + endwhile + + " Store information about all the tags grouped by their type + let ftype = s:tlist_{i}_filetype + let j = 1 + while j <= s:tlist_{ftype}_count + let ttype = s:tlist_{ftype}_{j}_name + if s:tlist_{i}_{ttype}_count != 0 + let txt = escape(s:tlist_{i}_{ttype}, '"\') + let txt = substitute(txt, "\n", "\\\\n", 'g') + silent! echo 'let tlist_' . i . '_' . ttype . ' = "' . + \ txt . '"' + silent! echo 'let tlist_' . i . '_' . ttype . '_count = ' . + \ s:tlist_{i}_{ttype}_count + let k = 1 + while k <= s:tlist_{i}_{ttype}_count + silent! echo 'let tlist_' . i . '_' . ttype . '_' . k . + \ ' = ' . s:tlist_{i}_{ttype}_{k} + let k = k + 1 + endwhile + endif + let j = j + 1 + endwhile + + silent! echo + + let i = i + 1 + endwhile + + redir END + + let &verbose = old_verbose +endfunction + +" Tlist_Buffer_Removed +" A buffer is removed from the Vim buffer list. Remove the tags defined +" for that file +function! s:Tlist_Buffer_Removed(filename) + call s:Tlist_Log_Msg('Tlist_Buffer_Removed (' . a:filename . ')') + + " Make sure a valid filename is supplied + if a:filename == '' + return + endif + + " Get tag list index of the specified file + let fidx = s:Tlist_Get_File_Index(a:filename) + if fidx == -1 + " File not present in the taglist + return + endif + + " Remove the file from the list + call s:Tlist_Remove_File(fidx, 0) +endfunction + +" When a buffer is deleted, remove the file from the taglist +autocmd BufDelete * silent call s:Tlist_Buffer_Removed(expand(':p')) + +" Tlist_Window_Open_File_Fold +" Open the fold for the specified file and close the fold for all the +" other files +function! s:Tlist_Window_Open_File_Fold(acmd_bufnr) + call s:Tlist_Log_Msg('Tlist_Window_Open_File_Fold (' . a:acmd_bufnr . ')') + + " Make sure the taglist window is present + let winnum = bufwinnr(g:TagList_title) + if winnum == -1 + call s:Tlist_Warning_Msg('Taglist: Error - Taglist window is not open') + return + endif + + " Save the original window number + let org_winnr = winnr() + if org_winnr == winnum + let in_taglist_window = 1 + else + let in_taglist_window = 0 + endif + + if in_taglist_window + " When entering the taglist window, no need to update the folds + return + endif + + " Go to the taglist window + if !in_taglist_window + call s:Tlist_Exe_Cmd_No_Acmds(winnum . 'wincmd w') + endif + + " Close all the folds + silent! %foldclose + + " Get tag list index of the specified file + let fname = fnamemodify(bufname(a:acmd_bufnr + 0), ':p') + if filereadable(fname) + let fidx = s:Tlist_Get_File_Index(fname) + if fidx != -1 + " Open the fold for the file + exe "silent! " . s:tlist_{fidx}_start . "," . + \ s:tlist_{fidx}_end . "foldopen" + endif + endif + + " Go back to the original window + if !in_taglist_window + call s:Tlist_Exe_Cmd_No_Acmds(org_winnr . 'wincmd w') + endif +endfunction + +" Tlist_Window_Check_Auto_Open +" Open the taglist window automatically on Vim startup. +" Open the window only when files present in any of the Vim windows support +" tags. +function! s:Tlist_Window_Check_Auto_Open() + let open_window = 0 + + let i = 1 + let buf_num = winbufnr(i) + while buf_num != -1 + let filename = fnamemodify(bufname(buf_num), ':p') + let ft = s:Tlist_Get_Buffer_Filetype(buf_num) + if !s:Tlist_Skip_File(filename, ft) + let open_window = 1 + break + endif + let i = i + 1 + let buf_num = winbufnr(i) + endwhile + + if open_window + call s:Tlist_Window_Toggle() + endif +endfunction + +" Tlist_Refresh_Folds +" Remove and create the folds for all the files displayed in the taglist +" window. Used after entering a tab. If this is not done, then the folds +" are not properly created for taglist windows displayed in multiple tabs. +function! s:Tlist_Refresh_Folds() + let winnum = bufwinnr(g:TagList_title) + if winnum == -1 + return + endif + + let save_wnum = winnr() + exe winnum . 'wincmd w' + + " First remove all the existing folds + normal! zE + + " Create the folds for each in the tag list + let fidx = 0 + while fidx < s:tlist_file_count + let ftype = s:tlist_{fidx}_filetype + + " Create the folds for each tag type in a file + let j = 1 + while j <= s:tlist_{ftype}_count + let ttype = s:tlist_{ftype}_{j}_name + if s:tlist_{fidx}_{ttype}_count + let s = s:tlist_{fidx}_start + s:tlist_{fidx}_{ttype}_offset + let e = s + s:tlist_{fidx}_{ttype}_count + exe s . ',' . e . 'fold' + endif + let j = j + 1 + endwhile + + exe s:tlist_{fidx}_start . ',' . s:tlist_{fidx}_end . 'fold' + exe 'silent! ' . s:tlist_{fidx}_start . ',' . + \ s:tlist_{fidx}_end . 'foldopen!' + let fidx = fidx + 1 + endwhile + + exe save_wnum . 'wincmd w' +endfunction + +function! s:Tlist_Menu_Add_Base_Menu() + call s:Tlist_Log_Msg('Adding the base menu') + + " Add the menu + anoremenu T&ags.Refresh\ menu :call Tlist_Menu_Refresh() + anoremenu T&ags.Sort\ menu\ by.Name + \ :call Tlist_Change_Sort('menu', 'set', 'name') + anoremenu T&ags.Sort\ menu\ by.Order + \ :call Tlist_Change_Sort('menu', 'set', 'order') + anoremenu T&ags.-SEP1- : + + if &mousemodel =~ 'popup' + anoremenu PopUp.T&ags.Refresh\ menu + \ :call Tlist_Menu_Refresh() + anoremenu PopUp.T&ags.Sort\ menu\ by.Name + \ :call Tlist_Change_Sort('menu', 'set', 'name') + anoremenu PopUp.T&ags.Sort\ menu\ by.Order + \ :call Tlist_Change_Sort('menu', 'set', 'order') + anoremenu PopUp.T&ags.-SEP1- : + endif +endfunction + +let s:menu_char_prefix = + \ '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' + +" Tlist_Menu_Get_Tag_Type_Cmd +" Get the menu command for the specified tag type +" fidx - File type index +" ftype - File Type +" add_ttype_name - To add or not to add the tag type name to the menu entries +" ttype_idx - Tag type index +function! s:Tlist_Menu_Get_Tag_Type_Cmd(fidx, ftype, add_ttype_name, ttype_idx) + " Curly brace variable name optimization + let ftype_ttype_idx = a:ftype . '_' . a:ttype_idx + + let ttype = s:tlist_{ftype_ttype_idx}_name + if a:add_ttype_name + " If the tag type name contains space characters, escape it. This + " will be used to create the menu entries. + let ttype_fullname = escape(s:tlist_{ftype_ttype_idx}_fullname, ' ') + endif + + " Curly brace variable name optimization + let fidx_ttype = a:fidx . '_' . ttype + + " Number of tag entries for this tag type + let tcnt = s:tlist_{fidx_ttype}_count + if tcnt == 0 " No entries for this tag type + return '' + endif + + let mcmd = '' + + " Create the menu items for the tags. + " Depending on the number of tags of this type, split the menu into + " multiple sub-menus, if needed. + if tcnt > g:Tlist_Max_Submenu_Items + let j = 1 + while j <= tcnt + let final_index = j + g:Tlist_Max_Submenu_Items - 1 + if final_index > tcnt + let final_index = tcnt + endif + + " Extract the first and last tag name and form the + " sub-menu name + let tidx = s:tlist_{fidx_ttype}_{j} + let first_tag = s:tlist_{a:fidx}_{tidx}_tag_name + + let tidx = s:tlist_{fidx_ttype}_{final_index} + let last_tag = s:tlist_{a:fidx}_{tidx}_tag_name + + " Truncate the names, if they are greater than the + " max length + let first_tag = strpart(first_tag, 0, g:Tlist_Max_Tag_Length) + let last_tag = strpart(last_tag, 0, g:Tlist_Max_Tag_Length) + + " Form the menu command prefix + let m_prefix = 'anoremenu T\&ags.' + if a:add_ttype_name + let m_prefix = m_prefix . ttype_fullname . '.' + endif + let m_prefix = m_prefix . first_tag . '\.\.\.' . last_tag . '.' + + " Character prefix used to number the menu items (hotkey) + let m_prefix_idx = 0 + + while j <= final_index + let tidx = s:tlist_{fidx_ttype}_{j} + + let tname = s:tlist_{a:fidx}_{tidx}_tag_name + + let mcmd = mcmd . m_prefix . '\&' . + \ s:menu_char_prefix[m_prefix_idx] . '\.' . + \ tname . ' :call Tlist_Menu_Jump_To_Tag(' . + \ tidx . ')|' + + let m_prefix_idx = m_prefix_idx + 1 + let j = j + 1 + endwhile + endwhile + else + " Character prefix used to number the menu items (hotkey) + let m_prefix_idx = 0 + + let m_prefix = 'anoremenu T\&ags.' + if a:add_ttype_name + let m_prefix = m_prefix . ttype_fullname . '.' + endif + let j = 1 + while j <= tcnt + let tidx = s:tlist_{fidx_ttype}_{j} + + let tname = s:tlist_{a:fidx}_{tidx}_tag_name + + let mcmd = mcmd . m_prefix . '\&' . + \ s:menu_char_prefix[m_prefix_idx] . '\.' . + \ tname . ' :call Tlist_Menu_Jump_To_Tag(' . tidx + \ . ')|' + + let m_prefix_idx = m_prefix_idx + 1 + let j = j + 1 + endwhile + endif + + return mcmd +endfunction + +" Update the taglist menu with the tags for the specified file +function! s:Tlist_Menu_File_Refresh(fidx) + call s:Tlist_Log_Msg('Refreshing the tag menu for ' . s:tlist_{a:fidx}_filename) + " The 'B' flag is needed in the 'cpoptions' option + let old_cpoptions = &cpoptions + set cpoptions&vim + + exe s:tlist_{a:fidx}_menu_cmd + + " Update the popup menu (if enabled) + if &mousemodel =~ 'popup' + let cmd = substitute(s:tlist_{a:fidx}_menu_cmd, ' T\\&ags\.', + \ ' PopUp.T\\\&ags.', "g") + exe cmd + endif + + " The taglist menu is not empty now + let s:tlist_menu_empty = 0 + + " Restore the 'cpoptions' settings + let &cpoptions = old_cpoptions +endfunction + +" Tlist_Menu_Update_File +" Add the taglist menu +function! s:Tlist_Menu_Update_File(clear_menu) + if !has('gui_running') + " Not running in GUI mode + return + endif + + call s:Tlist_Log_Msg('Updating the tag menu, clear_menu = ' . a:clear_menu) + + " Remove the tags menu + if a:clear_menu + call s:Tlist_Menu_Remove_File() + + endif + + " Skip buffers with 'buftype' set to nofile, nowrite, quickfix or help + if &buftype != '' + return + endif + + let filename = fnamemodify(bufname('%'), ':p') + let ftype = s:Tlist_Get_Buffer_Filetype('%') + + " If the file doesn't support tag listing, skip it + if s:Tlist_Skip_File(filename, ftype) + return + endif + + let fidx = s:Tlist_Get_File_Index(filename) + if fidx == -1 || !s:tlist_{fidx}_valid + " Check whether this file is removed based on user request + " If it is, then don't display the tags for this file + if s:Tlist_User_Removed_File(filename) + return + endif + + " Process the tags for the file + let fidx = s:Tlist_Process_File(filename, ftype) + if fidx == -1 + return + endif + endif + + let fname = escape(fnamemodify(bufname('%'), ':t'), '.') + if fname != '' + exe 'anoremenu T&ags.' . fname . ' ' + anoremenu T&ags.-SEP2- : + endif + + if !s:tlist_{fidx}_tag_count + return + endif + + if s:tlist_{fidx}_menu_cmd != '' + " Update the menu with the cached command + call s:Tlist_Menu_File_Refresh(fidx) + + return + endif + + " We are going to add entries to the tags menu, so the menu won't be + " empty + let s:tlist_menu_empty = 0 + + let cmd = '' + + " Determine whether the tag type name needs to be added to the menu + " If more than one tag type is present in the taglisting for a file, + " then the tag type name needs to be present + let add_ttype_name = -1 + let i = 1 + while i <= s:tlist_{ftype}_count && add_ttype_name < 1 + let ttype = s:tlist_{ftype}_{i}_name + if s:tlist_{fidx}_{ttype}_count + let add_ttype_name = add_ttype_name + 1 + endif + let i = i + 1 + endwhile + + " Process the tags by the tag type and get the menu command + let i = 1 + while i <= s:tlist_{ftype}_count + let mcmd = s:Tlist_Menu_Get_Tag_Type_Cmd(fidx, ftype, add_ttype_name, i) + if mcmd != '' + let cmd = cmd . mcmd + endif + + let i = i + 1 + endwhile + + " Cache the menu command for reuse + let s:tlist_{fidx}_menu_cmd = cmd + + " Update the menu + call s:Tlist_Menu_File_Refresh(fidx) +endfunction + +" Tlist_Menu_Remove_File +" Remove the tags displayed in the tags menu +function! s:Tlist_Menu_Remove_File() + if !has('gui_running') || s:tlist_menu_empty + return + endif + + call s:Tlist_Log_Msg('Removing the tags menu for a file') + + " Cleanup the Tags menu + silent! unmenu T&ags + if &mousemodel =~ 'popup' + silent! unmenu PopUp.T&ags + endif + + " Add a dummy menu item to retain teared off menu + noremenu T&ags.Dummy l + + silent! unmenu! T&ags + if &mousemodel =~ 'popup' + silent! unmenu! PopUp.T&ags + endif + + call s:Tlist_Menu_Add_Base_Menu() + + " Remove the dummy menu item + unmenu T&ags.Dummy + + let s:tlist_menu_empty = 1 +endfunction + +" Tlist_Menu_Refresh +" Refresh the taglist menu +function! s:Tlist_Menu_Refresh() + call s:Tlist_Log_Msg('Refreshing the tags menu') + let fidx = s:Tlist_Get_File_Index(fnamemodify(bufname('%'), ':p')) + if fidx != -1 + " Invalidate the cached menu command + let s:tlist_{fidx}_menu_cmd = '' + endif + + " Update the taglist, menu and window + call s:Tlist_Update_Current_File() +endfunction + +" Tlist_Menu_Jump_To_Tag +" Jump to the selected tag +function! s:Tlist_Menu_Jump_To_Tag(tidx) + let fidx = s:Tlist_Get_File_Index(fnamemodify(bufname('%'), ':p')) + if fidx == -1 + return + endif + + let tagpat = s:Tlist_Get_Tag_SearchPat(fidx, a:tidx) + if tagpat == '' + return + endif + + " Add the current cursor position to the jump list, so that user can + " jump back using the ' and ` marks. + mark ' + + silent call search(tagpat, 'w') + + " Bring the line to the middle of the window + normal! z. + + " If the line is inside a fold, open the fold + if foldclosed('.') != -1 + .foldopen + endif +endfunction + +" Tlist_Menu_Init +" Initialize the taglist menu +function! s:Tlist_Menu_Init() + call s:Tlist_Menu_Add_Base_Menu() + + " Automatically add the tags defined in the current file to the menu + augroup TagListMenuCmds + autocmd! + + if !g:Tlist_Process_File_Always + autocmd BufEnter * call s:Tlist_Refresh() + endif + autocmd BufLeave * call s:Tlist_Menu_Remove_File() + augroup end + + call s:Tlist_Menu_Update_File(0) +endfunction + +" Tlist_Vim_Session_Load +" Initialize the taglist window/buffer, which is created when loading +" a Vim session file. +function! s:Tlist_Vim_Session_Load() + call s:Tlist_Log_Msg('Tlist_Vim_Session_Load') + + " Initialize the taglist window + call s:Tlist_Window_Init() + + " Refresh the taglist window + call s:Tlist_Window_Refresh() +endfunction + +" Tlist_Set_App +" Set the name of the external plugin/application to which taglist +" belongs. +" Taglist plugin is part of another plugin like cream or winmanager. +function! Tlist_Set_App(name) + if a:name == "" + return + endif + + let s:tlist_app_name = a:name +endfunction + +" Winmanager integration + +" Initialization required for integration with winmanager +function! TagList_Start() + " If current buffer is not taglist buffer, then don't proceed + if bufname('%') != '__Tag_List__' + return + endif + + call Tlist_Set_App('winmanager') + + " Get the current filename from the winmanager plugin + let bufnum = WinManagerGetLastEditedFile() + if bufnum != -1 + let filename = fnamemodify(bufname(bufnum), ':p') + let ftype = s:Tlist_Get_Buffer_Filetype(bufnum) + endif + + " Initialize the taglist window, if it is not already initialized + if !exists('s:tlist_window_initialized') || !s:tlist_window_initialized + call s:Tlist_Window_Init() + call s:Tlist_Window_Refresh() + let s:tlist_window_initialized = 1 + endif + + " Update the taglist window + if bufnum != -1 + if !s:Tlist_Skip_File(filename, ftype) && g:Tlist_Auto_Update + call s:Tlist_Window_Refresh_File(filename, ftype) + endif + endif +endfunction + +function! TagList_IsValid() + return 0 +endfunction + +function! TagList_WrapUp() + return 0 +endfunction + +" restore 'cpo' +let &cpo = s:cpo_save +unlet s:cpo_save + diff --git a/editor/vi/vim/files/vim-7.0-warning.patch b/editor/vi/vim/files/vim-7.0-warning.patch new file mode 100644 index 0000000000..314706154d --- /dev/null +++ b/editor/vi/vim/files/vim-7.0-warning.patch @@ -0,0 +1,12 @@ +--- vim70c/src/structs.h.warning1 2006-04-04 15:58:16.000000000 +0200 ++++ vim70c/src/structs.h 2006-04-04 15:58:20.000000000 +0200 +@@ -1082,7 +1082,7 @@ + { + typval_T di_tv; /* type and value of the variable */ + char_u di_flags; /* flags (only used for variable) */ +- char_u di_key[1]; /* key (actually longer!) */ ++ char_u di_key[10]; /* key (actually longer!) */ + }; + + typedef struct dictitem_S dictitem_T; + diff --git a/editor/vi/vim/files/vim-7.3-interix-link.patch b/editor/vi/vim/files/vim-7.3-interix-link.patch new file mode 100644 index 0000000000..26036652a6 --- /dev/null +++ b/editor/vi/vim/files/vim-7.3-interix-link.patch @@ -0,0 +1,12 @@ +diff -ru vim73.orig/src/link.sh vim73/src/link.sh +--- vim73.orig/src/link.sh 2010-10-21 16:29:07 +0200 ++++ vim73/src/link.sh 2010-10-21 16:23:15 +0200 +@@ -41,7 +41,7 @@ + if sh link.cmd; then + touch auto/link.sed + cp link.cmd linkit.sh +- for libname in SM ICE nsl dnet dnet_stub inet socket dir elf iconv Xt Xmu Xp Xpm X11 Xdmcp x w perl dl pthread thread readline m crypt attr; do ++ for libname in dummy; do + cont=yes + while test -n "$cont"; do + if grep "l$libname " linkit.sh >/dev/null; then diff --git a/editor/vi/vim/files/vim-fix-xml-crash.patch b/editor/vi/vim/files/vim-fix-xml-crash.patch new file mode 100644 index 0000000000..9e6f06c16d --- /dev/null +++ b/editor/vi/vim/files/vim-fix-xml-crash.patch @@ -0,0 +1,25 @@ +--- runtime/ftplugin/xml.vim.orig 2010-05-15 14:04:03.000000000 +0300 ++++ runtime/ftplugin/xml.vim 2010-08-21 01:12:43.218840497 +0300 +@@ -13,13 +13,6 @@ + set cpo-=C + + setlocal commentstring= +-setlocal comments=s: +- +-setlocal formatoptions-=t +-if !exists("g:ft_xml_autocomment") || (g:ft_xml_autocomment == 1) +- setlocal formatoptions+=croql +-endif +- + + " XML: thanks to Johannes Zellner and Akbar Ibrahim + " - case sensitive +@@ -56,7 +49,7 @@ + endif + + " Undo the stuff we changed. +-let b:undo_ftplugin = "setlocal commentstring< comments< formatoptions<" . ++let b:undo_ftplugin = "setlocal cms<" . + \ " | unlet! b:match_ignorecase b:match_words b:browsefilter" + + " Restore the saved compatibility options. diff --git a/editor/vi/vim/files/vimrc b/editor/vi/vim/files/vimrc new file mode 100644 index 0000000000..22a3d0eb72 --- /dev/null +++ b/editor/vi/vim/files/vimrc @@ -0,0 +1,117 @@ +" Default configuration file for Vim +" Written by Aron Griffis +" Modified by Ryan Phillips +" Added Redhat's vimrc info by Seemant Kulleen +" Added some enhancements by A. Murat Eren +" Tidy up by Onur Küçük + +" The following are some sensible defaults for Vim for most users. +" We attempt to change as little as possible from Vim's defaults, +" deviating only where it makes sense + +set nocompatible " Turn off compability mode with Vi, makes Vim more powerful +set backspace=2 " same as :set backspace=indent,eol,start +set autoindent " Always set auto-indenting on + +set viminfo='20,\"50 " Read/write a .viminfo file -- limit to only 50 +set history=100 " Keep 100 lines of command history +set ruler " Show the cursor position all the time +set showmode " Show current mode + +" Always enable syntax & last search highlighting +syntax enable +set shiftwidth=4 " Number of spaces to use for each step of (auto)indentF +set wrap " wrap long lines to windows width +set linebreak +set laststatus=2 +set showcmd +set wildmenu + +set incsearch " shows the match while typing +set hlsearch " highlight found searches +set background=dark +set modelines=0 + +" Vi is cooler with these settings :) +set ts=4 +set sta +set sts=4 +set expandtab + +if v:lang =~ "^ko" + set fileencodings=euc-kr + set guifontset=-*-*-medium-r-normal--16-*-*-*-*-*-*-* +elseif v:lang =~ "^ja_JP" + set fileencodings=euc-jp + set guifontset=-misc-fixed-medium-r-normal--14-*-*-*-*-*-*-* +elseif v:lang =~ "^zh_TW" + set fileencodings=big5 + set guifontset=-sony-fixed-medium-r-normal--16-150-75-75-c-80-iso8859-1,-taipei-fixed-medium-r-normal--16-150-75-75-c-160-big5-0 +elseif v:lang =~ "^zh_CN" + set fileencodings=gb2312 + set guifontset=*-r-* +endif +if v:lang =~ "utf8$" || v:lang =~ "UTF-8$" + set fileencodings=utf-8,latin1 +endif + +" Only do this part when compiled with support for autocommands +if has("autocmd") + " In text files, always limit the width of text to 78 characters + autocmd BufRead *.txt set tw=78 + " When editing a file, always jump to the last cursor position + autocmd BufReadPost * + \ if line("'\"") > 0 && line ("'\"") <= line("$") | + \ exe "normal g'\"" | + \ endif +endif + +" Don't use Ex mode, use Q for formatting +map Q gq + +if &term=="xterm" + set t_RV= " don't check terminal version + set t_Co=8 + set t_Sb=^[4%dm + set t_Sf=^[3%dm +endif + +" some extra commands for HTML editing +nmap ,mh wbgueyei<ea>pa>bba +nmap ,h1 _i

A

+nmap ,h2 _i

A

+nmap ,h3 _i

A

+nmap ,h4 _i

A

+nmap ,h5 _i
A
+nmap ,h6 _i
A
+nmap ,hb wbieabb +nmap ,he wbieabb +nmap ,hi wbieabb +nmap ,hu wbiea
bb +nmap ,hs wbieabb +nmap ,ht wbieabb +nmap ,hx wbFf + +" Enable this to automatically put extra space after ([ and before ]) +" This comes from kde-devel-vim.vim plugin +" let EnableSmartParens=1 + +nmap :set invnumber +nmap :Tlist + +" Enables to move upward/downward at long lines +map gk +map gj +map k gk +map j gj + +" Taglist defaults +let Tlist_Use_Right_Window=1 +let Tlist_WinWidth=40 +let Tlist_Exit_OnlyWindow=1 +let Tlist_File_Fold_Auto_Close=1 + +" Enable filetype stuff +filetype plugin indent on + + diff --git a/editor/vi/vim/pspec.xml b/editor/vi/vim/pspec.xml new file mode 100644 index 0000000000..ba95e6a8a3 --- /dev/null +++ b/editor/vi/vim/pspec.xml @@ -0,0 +1,174 @@ + + + + + vim + http://www.vim.org/ + + PisiLinux Community + admins@pisilinux.org + + GPLv2 + Vi IMproved, an advanced text editor + Vim, which stands for Vi IMproved, is an open-source, multiplatform text editor extended from vi. It was first released by Bram Moolenaar in 1991. Since then, numerous features have been added to Vim, many of which are helpful in editing program source code. + https://github.com/vim/vim/archive/v7-4-692.tar.gz + + gpm + ctags + python-devel + acl-devel + gtk2-devel + libSM-devel + libXt-devel + pango-devel + libICE-devel + ruby-devel + ncurses-devel + + + + + + + vim-fix-xml-crash.patch + + + + pisilinux/grub_conf.patch + pisilinux/xorg_conf.patch + vim-7.0-warning.patch + vim-7.3-interix-link.patch + + + + + vim + app:console + + gpm + ctags + perl + ruby + acl + ncurses + + + /usr/bin/vi* + /usr/bin/rvi* + /usr/bin/ex + /usr/bin/xxd + /bin + /usr/share/vim + /usr/share/man + /usr/share/doc + /etc/vim + + + vimrc + pisilinux/actions.vim + pisilinux/pspec.vim + pisilinux/translations.vim + plugins/taglist.vim + plugins/kde-devel-vim.vim + plugins/newpythonfile.vim + plugins/redstring.vim + + + + + gvim + gvim + app:gui + gui + + acl + perl + glib2 + libX11 + ncurses + gtk2 + gpm + libSM + libXt + pango + libICE + vim + ruby + gdk-pixbuf + + + /usr/bin/ggvi* + /usr/bin/gvi* + /usr/bin/egvi* + /usr/bin/rggvi* + /usr/bin/rgvi* + /usr/bin/gvimtutor + /usr/share/pixmaps + /usr/share/applications + + + gvimtutor + gvim.xpm + gvim.desktop + + + + + + 2015-04-12 + 0.7.4.692 + Rebuild for ruby + Ayhan Yalçınsoy + ayhanyalcinsoy@pisilinux.org + + + 2014-09-28 + 0.7.4.461 + Update official patches to current 461. + Serdar Soytetir + kaptan@pisilinux.org + + + 2014-05-27 + 0.7.4.307 + Version bump. + Osman Erkan + osman.erkan@pisilinux.org + + + 2014-02-17 + 0.7.3.843 + Rebuild. + Osman Erkan + osman.erkan@pisilinux.org + + + 2013-07-28 + 7.3.843 + Dep Fixed + Osman Erkan + osman.erkan@pisilinux.org + + + 2013-07-28 + 7.3.843 + Fix gvim desps. + Osman Erkan + osman.erkan@pisilinux.org + + + 2013-03-03 + 7.3.843 + Release no bump for ruby 2.0 + Osman Erkan + osman.erkan@pisilinux.org + + + 2013-01-06 + 7.3.762 + First release + Osman Erkan + osman.erkan@pisilinux.org + + + diff --git a/editor/vi/vim/translations.xml b/editor/vi/vim/translations.xml new file mode 100644 index 0000000000..18e225af36 --- /dev/null +++ b/editor/vi/vim/translations.xml @@ -0,0 +1,10 @@ + + + + vim + Vi Improved, gelişmiş metin editörü + Vi IMproved – klon edytora Vi + VIM, açık hali ile Vi Improved - Geliştirilmiş Vi, 1991 yılında Bram Moolenaar tarafından yazılmış ve özellikle programcılar ve sistem yöneticileri tarafından çok kullanılan bir metin editörüdür. Çok geniş bir kullanıcı kitlesi olan VIM metin düzenleyicisi yüksek oranda özelleştirilebilir bir yazılımdır. Ayrıca VIM için pek çok destekleyici betik (script) bulunmaktadır. + Edytor tekstu podobny do Vi. Ważne ulepszenia: możliwość pracy w wielu oknach, wielopoziomowa opcja ‚cofnij’, bloki, podświetlanie składni, folding i wiele innych. + + diff --git a/programming/tool/component.xml b/programming/tool/component.xml new file mode 100644 index 0000000000..67cb9f57aa --- /dev/null +++ b/programming/tool/component.xml @@ -0,0 +1,3 @@ + + programming.tool + diff --git a/programming/tool/ctags/actions.py b/programming/tool/ctags/actions.py new file mode 100644 index 0000000000..278deec392 --- /dev/null +++ b/programming/tool/ctags/actions.py @@ -0,0 +1,27 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import autotools +from pisi.actionsapi import pisitools + +def setup(): + autotools.configure("--with-posix-regex \ + --without-readlib \ + --disable-etags \ + --enable-tmpdir=/tmp") + +def build(): + autotools.make() + +def install(): + autotools.install() + + # Don't conflict with emacs + pisitools.rename("/usr/bin/ctags", "exuberant-ctags") + pisitools.rename("/usr/share/man/man1/ctags.1", "exuberant-ctags.1") + + pisitools.dohtml("EXTENDING.html", "ctags.html") + pisitools.dodoc("COPYING", "FAQ", "NEWS", "README") diff --git a/programming/tool/ctags/files/ctags-5.7-segment-fault.patch b/programming/tool/ctags/files/ctags-5.7-segment-fault.patch new file mode 100644 index 0000000000..60e8809480 --- /dev/null +++ b/programming/tool/ctags/files/ctags-5.7-segment-fault.patch @@ -0,0 +1,41 @@ +diff -ruN -x '*~' ctags-5.7/vim.c ctags-5.7/vim.c +--- ctags-5.7/vim.c 2006-10-26 12:06:21.000000000 +0900 ++++ ctags-5.7/vim.c 2009-08-28 22:21:31.000000000 +0900 +@@ -328,7 +328,7 @@ + */ + const unsigned char *cp = line; + +- if ( (int) *cp == '\\' ) ++ if ( cp && ( (int) *cp == '\\' ) ) + { + /* + * We are recursively calling this function is the command +@@ -350,9 +350,10 @@ + while (*cp && isspace ((int) *cp)) + ++cp; + } +- else if ( (!strncmp ((const char*) line, "comp", (size_t) 4) == 0) && +- (!strncmp ((const char*) line, "comc", (size_t) 4) == 0) && +- (strncmp ((const char*) line, "com", (size_t) 3) == 0) ) ++ else if ( line && ++ (!strncmp ((const char*) line, "comp", (size_t) 4) == 0) && ++ (!strncmp ((const char*) line, "comc", (size_t) 4) == 0) && ++ (strncmp ((const char*) line, "com", (size_t) 3) == 0) ) + { + cp += 2; + if ((int) *++cp == 'm' && (int) *++cp == 'a' && +@@ -394,6 +395,14 @@ + while (*cp && !isspace ((int) *cp)) + ++cp; + } ++ else if (!isalnum ((int) *cp)) ++ { ++ /* ++ * Broken syntax: throw away this line ++ */ ++ cmdProcessed = TRUE; ++ goto cleanUp; ++ } + } while ( *cp && !isalnum ((int) *cp) ); + + if ( ! *cp ) diff --git a/programming/tool/ctags/files/ctags-5.8-f95-pointers.patch b/programming/tool/ctags/files/ctags-5.8-f95-pointers.patch new file mode 100644 index 0000000000..4ac9560f87 --- /dev/null +++ b/programming/tool/ctags/files/ctags-5.8-f95-pointers.patch @@ -0,0 +1,12 @@ +--- fortran-orig.c 2009-11-16 23:38:06.154328652 +0200 ++++ fortran.c 2009-11-16 23:38:08.711335501 +0200 +@@ -1319,7 +1319,8 @@ + readToken (token); + skipPast (token, TOKEN_OPERATOR); + } +- else if (strcmp (vStringValue (token->string), "=") == 0) ++ else if ((strcmp (vStringValue (token->string), "=") == 0) || ++ (strcmp (vStringValue (token->string), "=>") == 0)) + { + while (! isType (token, TOKEN_COMMA) && + ! isType (token, TOKEN_STATEMENT_END)) diff --git a/programming/tool/ctags/files/ctags-5.8-python-vars-starting-with-def.patch b/programming/tool/ctags/files/ctags-5.8-python-vars-starting-with-def.patch new file mode 100644 index 0000000000..83d9f7e887 --- /dev/null +++ b/programming/tool/ctags/files/ctags-5.8-python-vars-starting-with-def.patch @@ -0,0 +1,13 @@ +--- python-orig.c 2009-11-16 23:33:44.930351712 +0200 ++++ python.c 2009-11-16 23:35:08.433328150 +0200 +@@ -264,8 +264,8 @@ + while (*cp) + { + cp = skipEverything (cp); +- if (!strncmp(cp, "def", 3) || !strncmp(cp, "class", 5) || +- !strncmp(cp, "cdef", 4) || !strncmp(cp, "cpdef", 5)) ++ if (!strncmp(cp, "def ", 4) || !strncmp(cp, "class ", 6) || ++ !strncmp(cp, "cdef ", 5) || !strncmp(cp, "cpdef ", 6)) + { + return cp; + } diff --git a/programming/tool/ctags/pspec.xml b/programming/tool/ctags/pspec.xml new file mode 100644 index 0000000000..540d56756c --- /dev/null +++ b/programming/tool/ctags/pspec.xml @@ -0,0 +1,48 @@ + + + + + ctags + http://ctags.sourceforge.net + + PisiLinux Community + admins@pisilinux.org + + GPLv2 + app:console + Exuberant Ctags generates an index (or tag) file of objects found in source and header files + Exuberant Ctags generates an index (or tag) file of objects found in source and header files that allows these items to be quickly and easily located by a text editor or other utility. Currently supports 33 programming languages. + mirrors://sourceforge/ctags/ctags-5.8.tar.gz + + ctags-5.7-segment-fault.patch + ctags-5.8-f95-pointers.patch + ctags-5.8-python-vars-starting-with-def.patch + + + + + ctags + + /usr/bin + /usr/share/man + /usr/share/doc + + + + + + 2014-01-21 + 5.8 + Rebuild + Stefan Gronewold(groni) + groni@pisilinux.org + + + 2010-10-13 + 5.8 + First release + Pisi Linux Admins + admins@pisilinux.org + + + diff --git a/programming/tool/ctags/translations.xml b/programming/tool/ctags/translations.xml new file mode 100644 index 0000000000..19f4a1563a --- /dev/null +++ b/programming/tool/ctags/translations.xml @@ -0,0 +1,10 @@ + + + + ctags + Kod ve başlık dosyalarında bulunan objeler için indeks dosyaları üretir + Exuberant Ctags, kod ve başlık dosyalarında bulunan objeler için indeks dosyaları üretir. + Exuberant Ctags génère un fichier d'index (ou tag) pour les objets trouvés dans les fichiers sources et d'entête permettant à ces entités d'être rapidement et facilement localisées par un éditeur de texte et d'autres utilitaires. Il gère actuellement 33 langages de programmation. + Exuberant Ctags genera un archivo de índice (o tag) de objetos encontrados en archivos de fuente y cabeceras, para localizar fácilmente estos ítemes con un editor de texto u otra herramienta. Actualmente soporta 33 lenguajes de programación. + +