I use a pretty simple folding algorithm for C files and it works very well:
" This is in my .vimrc
set foldnestmax=1
" And these are in .vim/ftplugin/c.vim
syn sync fromstart
set foldmethod=syntax
I guess the default settings for C files are also loaded from
/usr/share/vim/vim72/syntax/c.vim etc.
The above settings do exactly what I need, folding only top level
braces, i.e. if I have
void x( )
{
something
{
.................
}
}
void y( )
{
etc
{
.........
}
somemorestuff
{
...........
}
}
then folding everything produces
void x( )
-----------------folded--------------
void y( )
-----------------folded--------------
And if the folded regions are unfolded, there are no enclosed folds
either (only top level braces are folded).
This is all good.
Now I have a hard time reproducing all of this with javascript files :(
If I copy the same settings from ~/.vim/ftplugin/c.vim to
~/.vim/ftplugin/javascript.vim I don't get the same results, for
example vim can't find folds where there should be one, for example
between two top level braces.
I guess the different behavior has to do with the fact that although
my custom settings are the same, the system wide
/usr/share/vim/vim72/syntax/* settings are not the same for javascript
and C.
I tried solving the problem by :set filetype=c for javascript, which
indeed does the folding as I expect it, but it comes with all sorts of
other problems due to the source file not being C but javascript (for
example something({ ........ }) which is common in javascript
highlights the braces in red, indicating an error, since this
construct is indeed erroneous in C).
So my question is: how would I make vim fold only top level braces
once for javascript files?
vim 7.2.245
Cheers,
Daniel
--
Psss, psss, put it down! - http://www.cafepress.com/putitdown
--
You received this message from the "vim_use" maillist.
For more information, visit http://www.vim.org/maillist.php
No comments:
Post a Comment