JSONの組織モードなどのアウトライン編集


15

emacsでSwagger JSONファイルを編集しようとしています。ネストされた大きなJSONオブジェクトが含まれているため、それらの一部を折りたたんで非表示にします。

私が試してみましたorigami-mode、として設定origami-c-style-parserorigami-parser-alist、それは非常に洗練されていないです(単語「パーサー」それが何のために過度に壮大な言葉のようです)。Swagger URLパラメーターのサブストリング{id}がJSONストリング内にあることに気付かないので、現在のノードを除くバッファー内のすべてのノードを折りたたむように要求すると、それらも喜んで折りたたまれます。そんなことはしたくない。私は、オブジェクトのようなJSONサブツリーのみを折りたたむ方法を望んでおり、たまたま中括弧が含まれているJSON文字列のサブストリングは望んでいません。どうすればこの目標を達成できますか?


私はこれを確かに知りませんが、js2-modeJSONファイルを折り畳むことができる折り畳みを持っていることはかなり可能です。
wvxvw


1つのアプローチは、jsonを同様のツリー形式に変換して操作することです。これはxml github.com/hay/xml2jsonに変換できます。Yamlは別のアプローチです。
肥満児RIGH

回答:


1

Emacsにはhs-minor-modeが付属しており、JavaScriptを含むいくつかの言語でコードとコメントブロックを選択的に非表示/表示できます。デフォルトでは、これにより「{」と「}」で区切られたJSONブロックを非表示および表示できますが、「[」と「]」もブロック区切りとして許可するように簡単に変更できます。これを行うにjs-modehs-special-modes-alist、次のようなエントリを変更する必要があります。

(setcdr(assoc 'js-mode hs-special-modes-alist)'( "[{[]" "[} \\]]" "/ [* /]" nil))

[...]ブロックは{...}ブロックと同様に非表示および表示できることがわかります。


0

json-modeは、文字列内のオブジェクトや配列のように見えるものを折りたたむべきではないコード折りたたみ機能を持っています。成熟したメジャーモードではありませんが、使用できるはずです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.