Skip to content

joe-dil/json-cmp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 

Repository files navigation

json-cmp

Neovim auto-completion for JSON schemas. Works with Swagger/OpenAPI docs, database schemas, and custom JSON formats.

Installation

{
  "joe-dil/json-cmp",
  dependencies = { "hrsh7th/nvim-cmp" },
  opts = { paths = { "/path/to/json" } }
}

Quick Start

Single Directory

require("json-cmp").setup({
  paths = { "/path/to/json/files" }
})

Multiple Sources with Presets

require("json-cmp").setup({
  sources = {
    { name = "swagger", paths = { "/api/docs" }, preset = "swagger" },
    { name = "db", paths = { "/db/schemas" }, preset = "generic" }
  }
})

Presets

  • swagger: Swagger/OpenAPI parameters (name, description, schema.type)
  • generic: Standard schemas (column, fieldType.type, fieldType.options)
  • json_schema: JSON Schema properties (name, type, description)

Swagger Example

JSON:

{
  "paths": {
    "/users": {
      "get": {
        "parameters": [
          {
            "name": "limit",
            "description": "Max results",
            "schema": { "type": "integer" }
          }
        ]
      }
    }
  }
}

Config:

require("json-cmp").setup({
  sources = {
    { name = "api", paths = { "/api/swagger" }, preset = "swagger" }
  }
})

Advanced Configuration

Custom Field Mappings

require("json-cmp").setup({
  sources = {
    {
      name = "custom",
      paths = { "/path/to/schemas" },
      mapping = {
        labelField = {"name", "column"},
        typeField = {"dataType", "type"},
        docField = {"description"},
        fieldsContainer = {"columns", "fields"}
      }
    }
  }
})

Manual Registration

local result = require("json-cmp").setup({
  autoRegister = false,
  sources = {
    { name = "my_source", paths = { "/path" } }
  }
})

-- Register manually
require("cmp").register_source("my_source", result.sources[1])

License

MIT

About

A companion plugin for hrsh7th/nvim-cmp

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages