咖啡定制折叠

问题描述

| 对于“标准” 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使用coffee-script插件     

解决方法

        我不知道咖啡,也不知道它支持哪些文字对象,对此我无能为力。但是,您可以通过此设置(可以将其转换为模型)来实现:
:setl fdm=expr fde=getline(v:lnum)=~\'->$\'?\'>1\':getline(v:lnum)=~\'^\\\\s*$\'?0:\'=\'
您没有指定要在首屏显示的内容,因此我将其省略。您可以为此使用折叠文本设置。参见
:h fold-foldtext
。