# monaco-editor **Repository Path**: lesterchn/monaco-editor ## Basic Information - **Project Name**: monaco-editor - **Description**: monaco-editor - **Primary Language**: JavaScript - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2023-05-09 - **Last Updated**: 2024-04-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # @lesterchn/monaco-editor + 已支持汉化 + 支持json/js/mysql语法 + worker目录 为webworker > 1. JSON 案列 ```javascript import Vue from 'vue'; import { EditorWorker, JsonWorker, monaco } from '@lesterchn/monaco-editor'; import '@lesterchn/monaco-editor/dist/lib/style.css'; // @ts-ignore self.MonacoEnvironment = { getWorker: function (_, label) { if (label === 'json') { return new JsonWorker() } return new EditorWorker() }, } /** @type {Vue} */ export const QryApiJsonEditor = Vue.extend({ name: 'QryApiJsonEditor', props: { readOnly: { type: Boolean, required: false }, apiJson: { type: Object, default: () => ({ "$schema": `${location.origin}/apiJson/v2.json`, designConfig: {} }) }, }, render(h) { return h('div', { class: 'qry-api-json-editor' }); }, created() { // monaco.languages.registerDefinitionProvider() monaco.languages.json.jsonDefaults.setDiagnosticsOptions({ validate: true, schemas: [ { uri: `${location.origin}/apiJson/v2.json`, schema: { type: 'object', description: '查询组件/查询配置/V2', properties: { queryCode: { description: '查询代码(queryCode)', type: 'string', }, queryName: { title: '查询名称(queryName)', type: 'string' }, version: { title: '版本(version)', description: '保留字段', type: 'number', exclusiveMinimum: 0 }, }, required: [ "queryCode" ] } } ] }) }, mounted() { const $editor = monaco.editor.create(this.$el, { language: "json", fontSize: 20 }); this.$watch(() => JSON.stringify(this.apiJson, null, 2), (value) => { $editor.setValue(value); }, { immediate: true }) } }) ```