coffeescript定制折叠

时间:2011-06-13 13:05:03

标签: vim macvim

对于“标准”JavaScript,我有这个我喜欢的自定义折叠功能:

function! JavaScriptFold()
    setl foldmethod=syntax
    setl foldlevelstart=1
    set fillchars=fold:\ 
    syn region foldBraces start=/{/ end=/}/ transparent fold keepend extend

    function! FoldText()
        return substitute(getline(v:foldstart), '{.*', '{...}', '')
    endfunction
    setl foldtext=FoldText()
endfunction

善良的灵魂请给我看一下CoffeeScript的翻译吗? 那么

testFunction = (x) ->
    x + x

会像这样折叠成第一行

testFunction = (x) ->

折叠文字对象的加分点,但函数已经很好了!

PS:当然,我正在使用Vim的咖啡脚本插件

1 个答案:

答案 0 :(得分:2)

由于我不知道cofee,而且我不知道它支持哪些文字对象,所以我无能为力。然而,你想要的,可以通过这个设置(可以转换成模式)来实现:

:setl fdm=expr fde=getline(v:lnum)=~'->$'?'>1':getline(v:lnum)=~'^\\s*$'?0:'='

你没有指定在折叠上显示什么,所以我把它留了出来。您可以使用foldtext设置。请参阅:h fold-foldtext