JSON的代码折叠扩展


15

我正在处理具有多个重复块且仅更改一个字段值(整数)的json文件-实际上,每个更改的值只是先前递增的对应值。为了使此类文件易于阅读,我希望能够将整个重复块集折叠成一个块,并在其中指明这些块中变化值的范围是多少。在emacs中搜索代码折叠方法,我发现hs-minor-modeoutline-mode。但是,我看不出如何从它们提供的功能过渡到我想要的功能。有人可以概述我如何实现这一目标吗?

编辑:我正在尝试做的一个例子:

给定一个看起来像这样的json文件:

{
    "SomeArray": [
        {
        "ChangingField": 1,
        "ConstantField" : "X"
        },
        {
        "ChangingField": 2,
        "ConstantField" : "X"
        },
        {
        "ChangingField": 3,
        "ConstantField" : "X"
        },
        {
        "ChangingField": 4,
        "ConstantField" : "X"
        },
        {
        "ChangingField": 5,
        "ConstantField" : "X"
        }
    ]
}

我想这样显示它:

{
    "SomeArray": [
        {
        "ChangingField": 1...5,
        "ConstantField" : "X"
        }
    ]
}

对于这个开放性问题很抱歉。


1
好问题-这将非常有用。
德鲁

Answers:


8

Emacs有更多折叠选项:http : //wikemacs.org/wiki/Folding#Yafolding和Yafolding看起来最适合您的情况,因为它基于缩进。它还包括一个不错的界面à-laMagit,用于发现命令。

但是,这不能完全回答您的问题,因为它不会立即显示字段的范围。

Yafolding在MELPA中:

M-x package-install yafolding

1

使用emacs' hideshow。您可以将光标保持在任何位置并在其下方隐藏“ n”级块,请使用以下命令

C-c @ C-l

在这里,n是一个数字前缀参数,可以通过按

C-u 1 RET

在此处阅读有关hsmode的更多信息, hs-mode。有关前缀参数的更多信息, 前缀args hs模式在默认模式下不起作用。您需要具有js2-mode(或)js-mode才能起作用。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.