Peter Odding wrote:

> Ingo Karkat wrote:
>>
>> Granted, most filetypes do define custom highlighting via a
>> $VIMRUNTIME/syntax/<filetype>.vim script. But shouldn't the filetype
>> completion
>> also take into account files from the ftplugin and syntax directories,
>> too?
>> If I for example have a custom filetype "bullettext" that defines custom
>> fold
>> and indent settings, but no highlighting, I would expect to have this
>> filetype
>> included in the completion.
>
> Like Ingo I have several custom file types under my ~/.vim/ directory that
> don't have an associated syntax script and visa versa.
>
> Bram Molenaar wrote:
>>
>> Aha, so the filetypes are found by looking in the syntax directory.
>> Well, the result is still a list of filetypes, although there can be a
>> few syntax files that are not a filetype (e.g. 2html.vim).  So do we let
>> the implementation details prevail?  Or stick to the intention?
>
> If sticking to the intention doesn't involve too much code that would IMHO
> be preferable to the current implementation because of the reason given
> above.
>
> Ideally file type completion would consider the base filenames of the Vim
> scripts in the system wide / user specific ftplugin / syntax / indent
> directories (and also their /after/ variants) but this might be too complex?

I can try to change the behavior.   But just to make sure I understand
the problems:

:setfiletype and :ownsyntax commands currently both perform
completion by looking at syntax/*.vim from both $VIMRUNTIME
and ~/.vim/.

That's almost fine, but it not ideal for 2 reasons:

1/ :setfiletype should actually complete by looking at files matching
  {syntax,ftplugin,indent}/*.vim from both $VIMRUNTIME/ and ~/.vim/
  :ownsyntax completion should only look at syntax/*.vim (as it does now).

2/ there are a few files matching syntax/*.vim which are not syntax
   files such as 2html.vim, syntax.vim, colortest.vim... They can thus
   show up as a spurious completion results.  These special files are
   listed in syntax/README.txt. Any reasons for them to be in the
   syntax/ directory?

In practice, current implementation is almost fine since almost
all files matching $VIMRUNTIME/{ftplugin,indent}/*.vim have a
corresponding file matching $VIMRUNTIME/syntax/*.vim.  Using
the following commands...

$ cd /usr/local/share/vim/vim73c
$ vim -d <(cd syntax/; ls *.vim) <(cd ftplugin/; ls *.vim)
$ vim -d <(cd syntax/; ls *.vim) <(cd indent/; ls *.vim)

... I see only 3 files matching ftplugin/*.vim which do not correspond
to any file syntax/*.vim

- ftplugin/hostaccess.vim
- ftplugin/quickfix.vim
- ftplugin/AppendMatchGroup.vim:   this file does not look
  like a file type plugin anyway. It appears to contain a helper
  function. Should it really be there?

And 1 file matching index/*.vim which has no corresponding files
matching syntax/*.vim:

- indent/GenericIndent.vim: this file is not an indent file but
  contains helper functions. Should it be stored somewhere else?

I don't think this is a blocker for the release but Bram can decide :-)

-- Dominique

-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

Raspunde prin e-mail lui