Phần mở rộng mã gấp cho json


15

Tôi đang xử lý các tệp json với nhiều khối lặp lại chỉ với một giá trị trường (số nguyên) đã thay đổi - trên thực tế, mọi giá trị thay đổi chỉ là giá trị tương ứng trước đó tăng lên. Để làm cho các tệp như vậy dễ đọc, tôi muốn có thể gấp toàn bộ tập hợp các khối lặp lại này thành một khối với một số dấu hiệu cho thấy phạm vi của giá trị thay đổi trên các khối này là gì. Tìm kiếm các phương pháp gấp mã trong emacs, tôi tìm thấy hs-minor-modeoutline-mode. Tuy nhiên, tôi không thấy cách đi từ chức năng mà họ cung cấp đến chức năng mà tôi mong muốn. Ai đó có thể cung cấp một cái nhìn tổng quan về cách tôi có thể đạt được điều này?

EDIT: Một ví dụ về những gì tôi đang cố gắng làm:

Đưa ra một tệp json trông như thế này:

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

Tôi muốn nó được hiển thị như thế này:

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

Xin lỗi cho câu hỏi rất mở.


1
Câu hỏi hay - điều đó sẽ khá hữu ích.
vẽ

Câu trả lời:


8

Có nhiều tùy chọn gấp hơn cho Emacs: http://wikemacs.org/wiki/Folding#Yafolding và Yafolding có vẻ như là tốt nhất cho trường hợp của bạn vì nó dựa trên thụt lề. Nó cũng bao gồm một giao diện đẹp à-la Magit để khám phá các lệnh.

Tuy nhiên, điều đó không trả lời đầy đủ câu hỏi của bạn vì nó sẽ không hiển thị phạm vi của các trường ngoài hộp.

Yafolding có trong MELPA:

M-x package-install yafolding

1

Sử dụng emacs ' hideshow. Bạn có thể giữ con trỏ ở bất cứ đâu & để ẩn mức 'n' bên dưới nó, sử dụng lệnh

C-c @ C-l

Ở đây, n là một đối số tiền tố số được đặt bằng cách nhấn

C-u 1 RET

Tìm hiểu thêm về hsmode ở đây, hs-mode . Thông tin thêm về lập luận prefix đây, args prefix chế độ hs không làm việc trên chế độ mặc định. Bạn cần phải có chế độ js2 (hoặc) js-mode để điều này hoạt động.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.