Skip to content

β΄πŸ¦‹β΅ Fly through your JSON / XML / YAML files with ease. Search ✨ blazingly fast ✨ for keys via Telescope.

Notifications You must be signed in to change notification settings

Myzel394/jsonfly.nvim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

50 Commits
 
 
 
 
 
 

Repository files navigation

jsonfly.nvim

Fly through your JSON files with ease. Search ✨ blazingly fast ✨ for keys via Telescope, and navigate through your JSON structure with ease.

json(fly) is a Telescope extension that will show you all keys (including nested ones) in your JSON files and allow you to search and jump to them quickly. It's completely customizable and even supports highlighting of the values.

Features

  • πŸ” Search for deeply nested keys - expo.android.imageAsset.0.uri
  • 🎨 See values with their correct syntax highlighting (numbers, strings, booleans, null; configurable)
  • πŸ’» Use your LSP or the built-in JSON parser
  • πŸ—‘ Values automatically cached for faster navigation
  • 🫣 Automatic concealment based on your configuration
  • πŸ“ Everything completely customizable!

Installation

Install with your favorite plugin manager, for example with lazy.nvim:

{
    "nvim-telescope/telescope.nvim",
    dependencies = {
        -- "Myzel394/easytables.nvim",
        -- "Myzel394/telescope-last-positions",
        -- Other dependencies
        -- ..
        "Myzel394/jsonfly.nvim",
    }
}

Here's how I load it with lazy.nvim with lazy-loading and <leader>j as the keymap :)

{
    "nvim-telescope/telescope.nvim",
    dependencies = {
        "Myzel394/jsonfly.nvim",
    },
    keys = {
        {
            "<leader>j",
            "<cmd>Telescope jsonfly<cr>",
            desc = "Open json(fly)",
            ft = { "json" },
            mode = "n"
        }
    }
}

Load the extension with:

require("telescope").load_extension("jsonfly")

Usage

Go to a JSON file and run:

:Telescope jsonfly

## See also

* [jsonpath.nvim](https://github.com/phelipetls/jsonpath.nvim) - Copy JSON paths to your clipboard

Configuration

Edit jsonfly like any other Telescope extension:

require"telescope".setup {
    extensions = {
        jsonfly = {
            -- Your configuration here
        }
    }
}

Please see jsonfly.lua for the default configuration. The first comment in the file contains a list of all available options.

Example: Vertical layout

require"telescope".setup {
    extensions = {
        jsonfly = {
            mirror = true,
            layout_strategy = "vertical",
            layout_config = {
                mirror = true,
                preview_height = 0.65,
                prompt_position = "top",
            },
            key_exact_length = true
        }
    }
}

Example: Horizontal layout

require"telescope".setup {
    extensions = {
        jsonfly = {
            layout_strategy = "horizontal",
            prompt_position = "top",
            layout_config = {
                mirror = false,
                prompt_position = "top",
                preview_width = 0.45
            }
        }
    }
}

Example: Waterfall keys

require"telescope".setup {
    extensions = {
        jsonfly = {
            subkeys_display = "waterfall"
        }
    }
}

Acknowledgements

About

β΄πŸ¦‹β΅ Fly through your JSON / XML / YAML files with ease. Search ✨ blazingly fast ✨ for keys via Telescope.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages