Hi Tony, That's fine, thanks. When I have some time, I'll try and have a look at the script in detail. If I have further questioning I'll then directly contact the maintainer.
Regards, Julien Internet [EMAIL PROTECTED] - 07/18/2006 01:52 PM To: Julien 3 NGUYEN cc: drchip, vim Subject: Re: ftplugin not detected [EMAIL PROTECTED] wrote: > Hi Tony and Chip, > > Yes indeed. When processing with my test there was a local $HOME/.vimrc > file. > > First case: without line "filetype plugin on" in $HOME/.vimrc file. > > Second case: with line "filetype plugin on" in $HOME/.vimrc file. > > In both cases: no $HOME/.vim/filetype.vim file and no file in > $HOME/.vim/ftplugin directory. > > In the first case, the Ctrl-] shortcut calls the tag in my ./tags file. The > :verbose map <C-]> echos: > "No mapping found" > on the command line. > > In the second case, the Ctrl-] shortcut echos ":call JumpToTag_ada('')" on > the command line. The :verbose map <C-]> echos: > "n <C-]> *@:call JumpToTag_ada('')<CR>" > on the command line. > > JumpToTag() lies in the default ada ftplugin: > > $ grep -n -R JumpToTag_ada /usr/share/vim/ > /usr/share/vim/vim63/ftplugin/ada.vim:37: nnoremap <unique> <buffer> <C-]> > :call JumpToTag_ada('')<cr> > /usr/share/vim/vim63/ftplugin/ada.vim:40: nnoremap <unique> <buffer> > g<C-]> :call JumpToTag_ada('','stj')<cr> > /usr/share/vim/vim63/ftplugin/ada.vim:168:function! JumpToTag_ada(word,...) > > So in the first case, the <C-]> was no particular mapping but the default > behaviour which works. > In the second case, the <C-]> is mapped to the special function > JumpToTag_ada() from $VIMRUNTIME/ftplugin/ada.vim filetype plugin file. > > That function is: > > function! JumpToTag_ada(word,...) > if a:word == '' > " Get current word > let word = AdaWord() > if word == '' > return > endif > else > let word = a:word > endif > if a:0 > 0 > let mode = a:1 > else > let mode = 'tj' > endif > > let v:errmsg = '' > execute 'silent!' mode word > if v:errmsg != '' > if v:errmsg =~ '^E426:' " Tag not found > let ignorecase = &ignorecase > set ignorecase > execute mode word > let &ignorecase = ignorecase > else > " Repeat to give error > execute mode word > endif > endif > endfunction > if mapcheck('<C-]>','n') == '' > nnoremap <unique> <buffer> <C-]> :call JumpToTag_ada('')<cr> > endif > > which is supposed to call ":tj" on the word under the cursor. > The word under the cursor is indeed the right one. I called an "word = > AdaWord(); echo word" to be sure. > The bug is in the function JumpToTag_ada(). > > To convince everyone, I added the following lines in my local ada.vim > ftplugin file (which overwrites that of $VIMRUNTIME)): > > function! GetToTag(...) > let word = AdaWord() > execute "tj" word > endfunction > noremap <unique> <buffer> <C-]> :call GetToTag()<cr> > > Those lines make everything work fine. So the few lines of JumpToTag_ada() > seem to be bugged. > What to you think? > > Regards, > Julien Mappings defined in an ftplugin ought, for sanity, to have the <buffer> attribute so they don't interfere with other filetypes. If the mapping defined by the ada ftplugin remains active even when the active cursor is in a file of a different filetype, then IMHO it's a bug in the ada ftplugin and in that case you should contact its maintainer (look for a comment near the top of $VIMRUNTIME/ftplugin/ada.vim). OTOH, if you experience the disturbing behaviour _only_ when editing an ada source file, then it could be either a "bug" or a "feature". In that case, since I don't know ada myself, I'm not qualified to offer an opinion. Best regards, Tony. This message and any attachments (the "message") is intended solely for the addressees and is confidential. If you receive this message in error, please delete it and immediately notify the sender. Any use not in accord with its purpose, any dissemination or disclosure, either whole or partial, is prohibited except formal approval. The internet can not guarantee the integrity of this message. BNP PARIBAS (and its subsidiaries) shall (will) not therefore be liable for the message if modified. --------------------------------------------- Ce message et toutes les pieces jointes (ci-apres le "message") sont etablis a l'intention exclusive de ses destinataires et sont confidentiels. Si vous recevez ce message par erreur, merci de le detruire et d'en avertir immediatement l'expediteur. Toute utilisation de ce message non conforme a sa destination, toute diffusion ou toute publication, totale ou partielle, est interdite, sauf autorisation expresse. L'internet ne permettant pas d'assurer l'integrite de ce message, BNP PARIBAS (et ses filiales) decline(nt) toute responsabilite au titre de ce message, dans l'hypothese ou il aurait ete modifie.