JSON的大纲编辑(如组织模式)


15

我正在尝试在emacs中编辑Swagger JSON文件。它包含大型嵌套的JSON对象,因此我想折叠并隐藏其中的一些对象。

我已经尝试过origami-mode,按origami-c-style-parser中所述进行配置origami-parser-alist,但是它并不复杂(“ parser”一词似乎对它的功能而言过于夸张)。它没有注意到Swagger URL参数子字符串{id}在JSON字符串中,因此当我要求它折叠缓冲区中除当前节点之外的所有节点时,它也会愉快地折叠它们。我不希望它那样做。我想要一种仅折叠像对象这样的JSON子树的方法,而不是折叠其中恰好有花括号的JSON字符串的子字符串的方法。我怎样才能实现这个目标?


我不确定这一点,但是很有可能js2-mode折叠也可以折叠JSON文件。
wvxvw


一种方法是将json转换为类似的树格式并对其进行操作。这可以转换为xml github.com/hay/xml2json。Yaml将是另一种方法。
Att Righ

Answers:


1

Emacs带有hs-minor-mode,可以选择性地使用多种语言(包括JavaScript)隐藏/显示代码和注释块。默认情况下,这将允许您隐藏和显示以'{'和'}'分隔的JSON块,但可以轻松地对其进行修改以允许也将'['和']'作为块分隔符。为此,我们需要使用以下内容修改js-mode条目hs-special-modes-alist

(setcdr(assoc'js-mode hs-special-modes-alist)'(“ [[{[]”“ [} \\]]”“ / [* /]”无))

然后,您应该发现可以隐藏和显示[...]块以及{...}块。


0

Myjson-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.