咖啡脚本定制折叠

发布于 2024-11-15 10:41:55 字数 643 浏览 1 评论 0原文

对于“标准”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 的咖啡脚本插件

For "standard" JavaScript, I have this custom folding function which I like a lot:

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

Could a kind soul please show me a translation of this for CoffeeScript?
So that

testFunction = (x) ->
    x + x

would be folded like this into its first line only

testFunction = (x) ->

Bonus points for folding literal objects too, but functions would be great already!

PS: of course, I'm using the coffee-script plugin for Vim

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

我也只是我 2024-11-22 10:41:55

由于我不了解咖啡,也不知道它支持哪些文字对象,所以我无能为力。但是,您想要的可以通过此设置来实现(可以转换为模型行):

:setl fdm=expr fde=getline(v:lnum)=~'->

您没有指定在折叠上显示的内容,所以我将其省略。您可以使用折叠文本设置。请参阅 :h Fold-foldtext 来了解这一点。

?'>1':getline(v:lnum)=~'^\\s*

您没有指定在折叠上显示的内容,所以我将其省略。您可以使用折叠文本设置。请参阅 :h Fold-foldtext 来了解这一点。

?0:'='

您没有指定在折叠上显示的内容,所以我将其省略。您可以使用折叠文本设置。请参阅 :h Fold-foldtext 来了解这一点。

As I don't know cofee, and I don't know what literal objects it support, I can't help with that. However what you want, can be achieved by this setting (which could be translated into a modeline):

:setl fdm=expr fde=getline(v:lnum)=~'->

You didn't specify what to display on the fold, so I left this out. You can use the foldtext setting for that. See :h fold-foldtext for that.

?'>1':getline(v:lnum)=~'^\\s*

You didn't specify what to display on the fold, so I left this out. You can use the foldtext setting for that. See :h fold-foldtext for that.

?0:'='

You didn't specify what to display on the fold, so I left this out. You can use the foldtext setting for that. See :h fold-foldtext for that.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文