Git Product home page Git Product logo

sublimeprettyjson's Introduction

Pretty Json Tests

Prettify/Minify/Query/Goto/Validate/Lint JSON plugin for Sublime Text 3 & 4

Updates

All keybindings have been removed in favor of the Command Palette. And to allow for users to configure their own specific key bindings.

This also prevents key binding overrides which conflict with other packages. For good documentation on key bindings I recommend you review the Offical Docs or Community Docs

Installation

Package Control (Recommended)

Install this sublime text 3 / 4 package via Package Control search for package: "Pretty JSON"

Manual Installation

Sublime Text 4

  • cd <Packages directory> (MacOS: ~/Library/Application\ Support/Sublime\ Text/Packages)
  • git clone https://github.com/dzhibas/SublimePrettyJson.git "Pretty JSON"

Sublime Text 3

  • cd <Packages directory> (MacOS: ~/Library/Application\ Support/Sublime\ Text\ 3/Packages)
  • git clone https://github.com/dzhibas/SublimePrettyJson.git "Pretty JSON"
  • cd Pretty JSON
  • git checkout st3

Sublime Text 2 No longer supported

Usage

To prettify JSON, make selection of json (or else it will try to use full view buffer) and through Command Palette Ctrl+Shift+P find "Pretty JSON: Format JSON" (you can search for part of it like 'pretty format')

If selection is empty and configuration entry use_entire_file_if_no_selection is true, tries to prettify whole file

If JSON is not valid it will be displayed in status bar of Sublime Text

Validate JSON

Using Command Palette Ctrl+Shift+P find "Pretty JSON: Validate" (you can search for partial string 'validate') this will validate selection or full file and will show in dialog if it's valid or invalid. In case of found errors view will jump to error and will highlight it

Compress / Minify JSON

Using Command Palette Ctrl+Shift+P find "Pretty JSON: Minify JSON" (you can search for part of it like 'json minify') this will make selection or full buffer as single line JSON which later you can use in command lines (curl/httpie) or somewhere else...

To map a key combination like Ctrl+Alt+M to the Minify command, you can add a setting like this to your .sublime-keymap file (eg: Packages/User/Default (Windows).sublime-keymap):

  { "keys": [ "ctrl+alt+m" ], "command": "un_pretty_json" }

List of commands that can be mapped to shortcuts

  • pretty_json
  • un_pretty_json
  • pretty_json_goto_symbol

Convert JSON to XML

Using Command Palette Ctrl+Shift+P search for "Pretty JSON: json2xml" (you can search for part of it like '2XML') this will convert your selected JSON of full buffer to XML and replace syntax and buffer to XML output

./jQ query/filter usage

Demo:

Demo

If on your machine "./jq" tool is available with ctrl+atl+shift+j you can run against your json. output will be opened in new view so you can once again apply jq on new buffer

You can find instructions of tool here:

http://stedolan.github.io/jq/

Default configuration

  • use_entire_file_if_no_selection

    • Default: true
  • indent

    • Default: 2
    • Integer represents amount of spaces
    • \t will utilize a tab character
  • sort_keys

    • Default: false
  • ensure_ascii

    • Default: false
  • line_separator

    • ","
  • value_separator

    • ": "
    • Value separator in config, so if you need to get rid of extra space you can remove it with this param
  • keep_arrays_single_line

    • Default: false
    • If we need to re-structure arrays and make them single-line
  • max_arrays_line_length

    • Default: 120
    • If array for example '["a", "b", 123213, ....]' length will reach max it will be kept multi-line
  • pretty_on_save

    • Default: false
    • Do we need to automatically Pretty JSON on save
  • validate_on_save

    • Default: true
    • Do we need validate JSON files on each save
  • reindent_block

    • Default: false

    • If we are formatting a selection, if we need to reindent the resulting block to follow the flow of the source document the posible values are 'minimal' and 'start'

      using minimal, the resulting json lines are indented as much spaces as the line where the selection starts. e.g

    yaml_container:
      yaml_key: { "json": "value" }

    gets formatted as:

    yaml_container:
        yaml_key: {
          "json": "value"
        }

    using start, the resulting json lines are indented a number of spaces equal to the column number of the start of the selection

    with start the previous example gets formatted as:

    yaml_container:
        yaml_key: {
                    "json": "value"
                  }

Using tabs for indentation

You can change configuration key indent to string value "\t" or any other string

"indent" : "\t",

Be sure "Indent Using Spaces" is unchecked otherwise you will not see effect and ST3/4 will convert it back to spaces

Contributors

Others

If you YAMLing then maybe you interested in this plugin: PrettyYAML

sublimeprettyjson's People

Contributors

dzhibas avatar terminalfi avatar the3rdhbtaylor avatar crcastle avatar kuttkatrea avatar grenade avatar frewsxcv avatar yukixz avatar jonnolen avatar seldaek avatar grossbart avatar pradeephrish avatar silwing avatar sharunkumar avatar tolgamorf avatar mrliaocn avatar tadashi-aikawa avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.