描述自定义折叠



对于"标准"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) ->

折叠文字对象也有加分,但功能已经很棒了!

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

由于我不知道cofeee,也不知道它支持什么文本对象,所以我对此无能为力。不管你想要什么,都可以通过这个设置来实现(可以转换为模型线):

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

你没有指定要在折叠上显示什么,所以我省略了这个。您可以使用文件夹文本设置。请参见:h fold-foldtext

最新更新