{"id":19904253,"url":"https://github.com/jsona/monaco-jsona","last_synced_at":"2026-05-09T22:06:44.948Z","repository":{"id":234539046,"uuid":"722636333","full_name":"jsona/monaco-jsona","owner":"jsona","description":"Jsona plugin for monaco editor","archived":false,"fork":false,"pushed_at":"2023-11-23T15:19:19.000Z","size":6,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-11T21:32:31.692Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jsona.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2023-11-23T15:18:50.000Z","updated_at":"2023-11-23T15:19:23.000Z","dependencies_parsed_at":"2024-04-19T19:02:37.292Z","dependency_job_id":"d220b13a-6663-4ed8-a79a-99ded12c5ff6","html_url":"https://github.com/jsona/monaco-jsona","commit_stats":null,"previous_names":["jsona/monaco-jsona"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jsona%2Fmonaco-jsona","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jsona%2Fmonaco-jsona/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jsona%2Fmonaco-jsona/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jsona%2Fmonaco-jsona/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jsona","download_url":"https://codeload.github.com/jsona/monaco-jsona/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241331811,"owners_count":19945460,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-12T20:27:35.733Z","updated_at":"2026-05-09T22:06:44.907Z","avatar_url":"https://github.com/jsona.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# monaco-jsona\n\nJSONA language plugin for the Monaco Editor. It provides the following features when editing JSONA files:\n\n- Code completion, based on JSONA schemas or by looking at similar objects in the same file\n- Hovers, based on JSON schemas\n- Validation: Syntax errors and schema validation\n- Formatting using Prettier\n- Document Symbols\n\n## Install\n\n```\nnpm i monaco-jsona\nyarn add monaco-jsona\n```\n\n## Usage\n\nImport monaco-jsona and configure it before an editor instance is created.\n\n```js\nimport jsonWorker from 'monaco-editor/esm/vs/language/json/json.worker?worker';\nimport * as monaco from 'monaco-editor/esm/vs/editor/editor.api';\nimport { jsonaDefaults } from 'monaco-jsona';\n\njsonaDefaults.setOptions({\n  schema: {\n    enabled: true,\n    associations: {},\n    storeUrl: \"https://cdn.jsdelivr.net/npm/@jsona/schemastore@latest/index.json\",\n    cache: false\n  },\n  formatter: {\n    indentString: \"  \",\n    trailingNewline: false,\n    trailingComma: false,\n    formatKey: false\n  }\n});\n\nmonaco.editor.create(document.getElementById('container'), {\n  model: monaco.editor.createModel(\n    `{ @jsonaschema(\"schema\")\n  value: { @pattern(\".*\")\n  }\n}`,\n    'jsona',\n    monaco.Uri.parse(\"inmemory:///demo.jsona\")\n  ),\n});\n```\n\nAlso make sure to register the web worker. When using Webpack 5, this looks like the code below. Other bundlers may use a different syntax, but the idea is the same. Languages you don’t used can be omitted.\n\n```js\nwindow.MonacoEnvironment = {\n  getWorker(moduleId, label) {\n    switch (label) {\n      case 'editorWorkerService':\n        return new Worker(new URL('monaco-editor/esm/vs/editor/editor.worker', import.meta.url));\n      case 'css':\n      case 'less':\n      case 'scss':\n        return new Worker(new URL('monaco-editor/esm/vs/language/css/css.worker', import.meta.url));\n      case 'handlebars':\n      case 'html':\n      case 'razor':\n        return new Worker(\n          new URL('monaco-editor/esm/vs/language/html/html.worker', import.meta.url),\n        );\n      case 'json':\n        return new Worker(\n          new URL('monaco-editor/esm/vs/language/json/json.worker', import.meta.url),\n        );\n      case 'javascript':\n      case 'typescript':\n        return new Worker(\n          new URL('monaco-editor/esm/vs/language/typescript/ts.worker', import.meta.url),\n        );\n      case 'yaml':\n        return new Worker(new URL('monaco-jsona/jsona.worker', import.meta.url));\n      default:\n        throw new Error(`Unknown label ${label}`);\n    }\n  },\n};\n\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjsona%2Fmonaco-jsona","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjsona%2Fmonaco-jsona","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjsona%2Fmonaco-jsona/lists"}