feat: codemirror6

This commit is contained in:
dap 2024-09-09 15:12:42 +08:00
parent d5da8ec765
commit e87cc9db51
11 changed files with 434 additions and 23 deletions

View File

@ -52,7 +52,6 @@
"pinia": "2.2.2",
"tinymce": "^7.3.0",
"vue": "^3.5.3",
"vue-json-pretty": "^2.4.0",
"vue-router": "^4.4.3"
},
"devDependencies": {

View File

@ -1,5 +0,0 @@
import { withInstall } from '#/utils';
import jsonPreview from './src/json-preview/json-preview.vue';
export const JsonPreview = withInstall(jsonPreview);

View File

@ -1,24 +1,28 @@
<script setup lang="ts">
import { Page } from '@vben/common-ui';
import { CodeMirror, JsonPreview, Page } from '@vben/common-ui';
import packageJson from '#/../package.json';
import { Card } from 'ant-design-vue';
import { JsonPreview } from '#/components/code-editor';
const obj = {
address: {
a: 1,
b: true,
},
age: 1234,
name: 'ruoyi-plus',
};
import code from '#/components/tinymce/src/editor.vue?raw';
</script>
<template>
<Page>
<Card title="json预览">
<JsonPreview :data="obj" />
<Page content-class="flex lg:flex-row flex-col gap-[16px]">
<Card class="flex-1" title="json预览">
<div class="h-[600px] overflow-y-auto">
<JsonPreview :data="packageJson" />
</div>
</Card>
<Card class="flex-1" title="codeMirror预览">
<div class="h-[600px] overflow-y-auto">
<CodeMirror
v-model="code"
class="text-[16px]"
language="vue"
readonly
/>
</div>
</Card>
</Page>
</template>

View File

@ -20,16 +20,27 @@
}
},
"dependencies": {
"@codemirror/lang-html": "^6.4.9",
"@codemirror/lang-java": "^6.0.1",
"@codemirror/lang-javascript": "^6.2.2",
"@codemirror/lang-sql": "^6.7.1",
"@codemirror/lang-vue": "^0.1.3",
"@codemirror/lang-xml": "^6.1.0",
"@codemirror/theme-one-dark": "^6.1.2",
"@vben-core/popup-ui": "workspace:*",
"@vben-core/shadcn-ui": "workspace:*",
"@vben/constants": "workspace:*",
"@vben/hooks": "workspace:*",
"@vben/icons": "workspace:*",
"@vben/locales": "workspace:*",
"@vben/preferences": "workspace:*",
"@vben/types": "workspace:*",
"@vueuse/integrations": "^11.0.3",
"codemirror": "^6.0.1",
"qrcode": "^1.5.4",
"vue": "^3.5.3",
"vue-codemirror6": "^1.3.4",
"vue-json-pretty": "^2.4.0",
"vue-router": "^4.4.3"
},
"devDependencies": {

View File

@ -0,0 +1,68 @@
<script setup lang="ts">
import { computed, nextTick, ref, useTemplateRef, watch } from 'vue';
import CodeMirror from 'vue-codemirror6';
import { usePreferences } from '@vben/preferences';
import { javascript } from '@codemirror/lang-javascript';
import { oneDark } from '@codemirror/theme-one-dark';
import { type LanguageSupport, languageSupportMap } from './data';
const props = withDefaults(
defineProps<{
/**
* 语言
*/
language: LanguageSupport;
/**
* 只读
*/
readonly: boolean;
}>(),
{
language: 'js',
readonly: false,
},
);
const codeMirrorRef =
useTemplateRef<InstanceType<typeof CodeMirror>>('codeMirrorRef');
const { isDark } = usePreferences();
const modelValue = defineModel({ default: '', type: String });
const lang = computed(() => languageSupportMap[props.language] ?? javascript());
// v-if
const langChanged = ref(true);
watch(
() => props.language,
() => {
langChanged.value = false;
nextTick(() => (langChanged.value = true));
},
);
/** 插件 */
const extensions = [oneDark];
</script>
<template>
<CodeMirror
v-if="langChanged"
v-bind="$attrs"
ref="codeMirrorRef"
v-model="modelValue"
:dark="isDark"
:extensions="extensions"
:lang="lang"
:readonly="props.readonly"
basic
wrap
>
<template v-for="slotName in Object.keys($slots)" #[slotName]="scope">
<slot :name="slotName" v-bind="scope ?? {}"></slot>
</template>
</CodeMirror>
</template>

View File

@ -0,0 +1,24 @@
import { html } from '@codemirror/lang-html';
import { java } from '@codemirror/lang-java';
import { javascript } from '@codemirror/lang-javascript';
import { sql } from '@codemirror/lang-sql';
import { vue } from '@codemirror/lang-vue';
import { xml } from '@codemirror/lang-xml';
/**
*
* @see https://github.com/logue/vue-codemirror6?tab=readme-ov-file#supported-languages Language Support项
*/
export const languageSupportMap = {
html: html(),
java: java(),
js: javascript(),
jsx: javascript({ jsx: true }),
sql: sql(),
ts: javascript({ typescript: true }),
tsx: javascript({ jsx: true, typescript: true }),
vue: vue(),
xml: xml(),
};
export type LanguageSupport = keyof typeof languageSupportMap;

View File

@ -0,0 +1,2 @@
export { default as CodeMirror } from './code-mirror.vue';
export type { LanguageSupport } from './data';

View File

@ -1,5 +1,7 @@
export * from './captcha';
export * from './code-mirror';
export * from './ellipsis-text';
export * from './json-preview';
export * from './page';
export * from '@vben-core/popup-ui';

View File

@ -0,0 +1 @@
export { default as JsonPreview } from './json-preview.vue';

View File

@ -207,9 +207,6 @@ importers:
vue:
specifier: 3.5.3
version: 3.5.3(typescript@5.5.4)
vue-json-pretty:
specifier: ^2.4.0
version: 2.4.0(vue@3.5.3(typescript@5.5.4))
vue-router:
specifier: ^4.4.3
version: 4.4.3(vue@3.5.3(typescript@5.5.4))
@ -957,6 +954,27 @@ importers:
packages/effects/common-ui:
dependencies:
'@codemirror/lang-html':
specifier: ^6.4.9
version: 6.4.9
'@codemirror/lang-java':
specifier: ^6.0.1
version: 6.0.1
'@codemirror/lang-javascript':
specifier: ^6.2.2
version: 6.2.2
'@codemirror/lang-sql':
specifier: ^6.7.1
version: 6.7.1(@codemirror/view@6.33.0)
'@codemirror/lang-vue':
specifier: ^0.1.3
version: 0.1.3
'@codemirror/lang-xml':
specifier: ^6.1.0
version: 6.1.0
'@codemirror/theme-one-dark':
specifier: ^6.1.2
version: 6.1.2
'@vben-core/popup-ui':
specifier: workspace:*
version: link:../../@core/ui-kit/popup-ui
@ -975,18 +993,30 @@ importers:
'@vben/locales':
specifier: workspace:*
version: link:../../locales
'@vben/preferences':
specifier: workspace:*
version: link:../../preferences
'@vben/types':
specifier: workspace:*
version: link:../../types
'@vueuse/integrations':
specifier: ^11.0.3
version: 11.0.3(async-validator@4.2.5)(axios@1.7.7)(focus-trap@7.5.4)(nprogress@0.2.0)(qrcode@1.5.4)(sortablejs@1.15.3)(vue@3.5.3(typescript@5.5.4))
codemirror:
specifier: ^6.0.1
version: 6.0.1(@lezer/common@1.2.1)
qrcode:
specifier: ^1.5.4
version: 1.5.4
vue:
specifier: 3.5.3
version: 3.5.3(typescript@5.5.4)
vue-codemirror6:
specifier: ^1.3.4
version: 1.3.4(@lezer/common@1.2.1)(vue@3.5.3(typescript@5.5.4))
vue-json-pretty:
specifier: ^2.4.0
version: 2.4.0(vue@3.5.3(typescript@5.5.4))
vue-router:
specifier: ^4.4.3
version: 4.4.3(vue@3.5.3(typescript@5.5.4))
@ -2196,6 +2226,56 @@ packages:
resolution: {integrity: sha512-YLPHc8yASwjNkmcDMQMY35yiWjoKAKnhUbPRszBRS0YgH+IXtsMp61j+yTcnCE3oO2DgP0U3iejLC8FTtKDC8Q==}
engines: {node: '>=16.13'}
'@codemirror/autocomplete@6.18.0':
resolution: {integrity: sha512-5DbOvBbY4qW5l57cjDsmmpDh3/TeK1vXfTHa+BUMrRzdWdcxKZ4U4V7vQaTtOpApNU4kLS4FQ6cINtLg245LXA==}
peerDependencies:
'@codemirror/language': ^6.0.0
'@codemirror/state': ^6.0.0
'@codemirror/view': ^6.0.0
'@lezer/common': ^1.0.0
'@codemirror/commands@6.6.1':
resolution: {integrity: sha512-iBfKbyIoXS1FGdsKcZmnrxmbc8VcbMrSgD7AVrsnX+WyAYjmUDWvE93dt5D874qS4CCVu4O1JpbagHdXbbLiOw==}
'@codemirror/lang-css@6.3.0':
resolution: {integrity: sha512-CyR4rUNG9OYcXDZwMPvJdtb6PHbBDKUc/6Na2BIwZ6dKab1JQqKa4di+RNRY9Myn7JB81vayKwJeQ7jEdmNVDA==}
'@codemirror/lang-html@6.4.9':
resolution: {integrity: sha512-aQv37pIMSlueybId/2PVSP6NPnmurFDVmZwzc7jszd2KAF8qd4VBbvNYPXWQq90WIARjsdVkPbw29pszmHws3Q==}
'@codemirror/lang-java@6.0.1':
resolution: {integrity: sha512-OOnmhH67h97jHzCuFaIEspbmsT98fNdhVhmA3zCxW0cn7l8rChDhZtwiwJ/JOKXgfm4J+ELxQihxaI7bj7mJRg==}
'@codemirror/lang-javascript@6.2.2':
resolution: {integrity: sha512-VGQfY+FCc285AhWuwjYxQyUQcYurWlxdKYT4bqwr3Twnd5wP5WSeu52t4tvvuWmljT4EmgEgZCqSieokhtY8hg==}
'@codemirror/lang-sql@6.7.1':
resolution: {integrity: sha512-flQa7zemrLKk0TIrOJnpeyH/b29BcVybtsTeZMgAo40O6kGbrnUSCgwI3TF5iJY3O9VXJKKCA+i0CBVvDfr88w==}
'@codemirror/lang-vue@0.1.3':
resolution: {integrity: sha512-QSKdtYTDRhEHCfo5zOShzxCmqKJvgGrZwDQSdbvCRJ5pRLWBS7pD/8e/tH44aVQT6FKm0t6RVNoSUWHOI5vNug==}
'@codemirror/lang-xml@6.1.0':
resolution: {integrity: sha512-3z0blhicHLfwi2UgkZYRPioSgVTo9PV5GP5ducFH6FaHy0IAJRg+ixj5gTR1gnT/glAIC8xv4w2VL1LoZfs+Jg==}
'@codemirror/language@6.10.2':
resolution: {integrity: sha512-kgbTYTo0Au6dCSc/TFy7fK3fpJmgHDv1sG1KNQKJXVi+xBTEeBPY/M30YXiU6mMXeH+YIDLsbrT4ZwNRdtF+SA==}
'@codemirror/lint@6.8.1':
resolution: {integrity: sha512-IZ0Y7S4/bpaunwggW2jYqwLuHj0QtESf5xcROewY6+lDNwZ/NzvR4t+vpYgg9m7V8UXLPYqG+lu3DF470E5Oxg==}
'@codemirror/search@6.5.6':
resolution: {integrity: sha512-rpMgcsh7o0GuCDUXKPvww+muLA1pDJaFrpq/CCHtpQJYz8xopu4D1hPcKRoDD0YlF8gZaqTNIRa4VRBWyhyy7Q==}
'@codemirror/state@6.4.1':
resolution: {integrity: sha512-QkEyUiLhsJoZkbumGZlswmAhA7CBU02Wrz7zvH4SrcifbsqwlXShVXg65f3v/ts57W3dqyamEriMhij1Z3Zz4A==}
'@codemirror/theme-one-dark@6.1.2':
resolution: {integrity: sha512-F+sH0X16j/qFLMAfbciKTxVOwkdAS336b7AXTKOZhy8BR3eH/RelsnLgLFINrpST63mmN2OuwUt0W2ndUgYwUA==}
'@codemirror/view@6.33.0':
resolution: {integrity: sha512-AroaR3BvnjRW8fiZBalAaK+ZzB5usGgI014YKElYZvQdNH5ZIidHlO+cyf/2rWzyBFRkvG6VhiXeAEbC53P2YQ==}
'@commitlint/cli@19.4.1':
resolution: {integrity: sha512-EerFVII3ZcnhXsDT9VePyIdCJoh3jEzygN1L37MjQXgPfGS6fJTWL/KHClVMod1d8w94lFC3l4Vh/y5ysVAz2A==}
engines: {node: '>=v18'}
@ -3476,6 +3556,30 @@ packages:
'@juggle/resize-observer@3.4.0':
resolution: {integrity: sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==}
'@lezer/common@1.2.1':
resolution: {integrity: sha512-yemX0ZD2xS/73llMZIK6KplkjIjf2EvAHcinDi/TfJ9hS25G0388+ClHt6/3but0oOxinTcQHJLDXh6w1crzFQ==}
'@lezer/css@1.1.8':
resolution: {integrity: sha512-7JhxupKuMBaWQKjQoLtzhGj83DdnZY9MckEOG5+/iLKNK2ZJqKc6hf6uc0HjwCX7Qlok44jBNqZhHKDhEhZYLA==}
'@lezer/highlight@1.2.1':
resolution: {integrity: sha512-Z5duk4RN/3zuVO7Jq0pGLJ3qynpxUVsh7IbUbGj88+uV2ApSAn6kWg2au3iJb+0Zi7kKtqffIESgNcRXWZWmSA==}
'@lezer/html@1.3.10':
resolution: {integrity: sha512-dqpT8nISx/p9Do3AchvYGV3qYc4/rKr3IBZxlHmpIKam56P47RSHkSF5f13Vu9hebS1jM0HmtJIwLbWz1VIY6w==}
'@lezer/java@1.1.2':
resolution: {integrity: sha512-3j8X70JvYf0BZt8iSRLXLkt0Ry1hVUgH6wT32yBxH/Xi55nW2VMhc1Az4SKwu4YGSmxCm1fsqDDcHTuFjC8pmg==}
'@lezer/javascript@1.4.17':
resolution: {integrity: sha512-bYW4ctpyGK+JMumDApeUzuIezX01H76R1foD6LcRX224FWfyYit/HYxiPGDjXXe/wQWASjCvVGoukTH68+0HIA==}
'@lezer/lr@1.4.2':
resolution: {integrity: sha512-pu0K1jCIdnQ12aWNaAVU5bzi7Bd1w54J3ECgANPmYLtQKP0HBj2cE/5coBD66MT10xbtIuUr7tg0Shbsvk0mDA==}
'@lezer/xml@1.0.5':
resolution: {integrity: sha512-VFouqOzmUWfIg+tfmpcdV33ewtK+NSwd4ngSe1aG7HFb4BN0ExyY1b8msp+ndFrnlG4V4iC8yXacjFtrwERnaw==}
'@manypkg/find-root@1.1.0':
resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==}
@ -4991,6 +5095,9 @@ packages:
resolution: {integrity: sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==}
engines: {node: '>=0.10.0'}
codemirror@6.0.1:
resolution: {integrity: sha512-J8j+nZ+CdWmIeFIGXEFbFPtpiYacFMDR8GlHK3IyHQJMCaVRfGx9NT+Hxivv1ckLWPvNdZqndbr/7lVhrf/Svg==}
color-convert@1.9.3:
resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==}
@ -5173,6 +5280,9 @@ packages:
resolution: {integrity: sha512-piICUB6ei4IlTv1+653yq5+KoqfBYmj9bw6LqXoOneTMDXk5nM1qt12mFW1caG3LlJXEKW1Bp0WggEmIfQB34g==}
engines: {node: '>= 14'}
crelt@1.0.6:
resolution: {integrity: sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==}
croner@8.1.1:
resolution: {integrity: sha512-1VdUuRnQP4drdFkS8NKvDR1NBgevm8TOuflcaZEKsxw42CxonjW/2vkj1AKlinJb4ZLwBcuWF9GiPr7FQc6AQA==}
engines: {node: '>=18.0'}
@ -8998,6 +9108,9 @@ packages:
stubborn-fs@1.2.5:
resolution: {integrity: sha512-H2N9c26eXjzL/S/K+i/RHHcFanE74dptvvjM8iwzwbVcWY/zjBbgRqF3K0DY4+OD+uTTASTBvDoxPDaPN02D7g==}
style-mod@4.1.2:
resolution: {integrity: sha512-wnD1HyVqpJUI2+eKZ+eo1UwghftP6yuFheBqqe+bWCotBjC2K1YnteJILRMs3SM4V/0dLEW1SC27MWP5y+mwmw==}
style-search@0.1.0:
resolution: {integrity: sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==}
@ -9713,6 +9826,12 @@ packages:
vscode-uri@3.0.8:
resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==}
vue-codemirror6@1.3.4:
resolution: {integrity: sha512-Gmu2t4Exz3pQdtAsb7wINREx2nswNW+FV+q8S1wmsmeC3OLio5RkybRLsErP1b8+suqsVD/7t0Cx/XmBpQnHJA==}
engines: {yarn: '>=1.22.19'}
peerDependencies:
vue: 3.5.3
vue-component-type-helpers@2.0.29:
resolution: {integrity: sha512-58i+ZhUAUpwQ+9h5Hck0D+jr1qbYl4voRt5KffBx8qzELViQ4XdT/Tuo+mzq8u63teAG8K0lLaOiL5ofqW38rg==}
@ -9781,6 +9900,9 @@ packages:
peerDependencies:
vue: 3.5.3
w3c-keyname@2.2.8:
resolution: {integrity: sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==}
w3c-xmlserializer@5.0.0:
resolution: {integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==}
engines: {node: '>=18'}
@ -11287,6 +11409,122 @@ snapshots:
dependencies:
mime: 3.0.0
'@codemirror/autocomplete@6.18.0(@codemirror/language@6.10.2)(@codemirror/state@6.4.1)(@codemirror/view@6.33.0)(@lezer/common@1.2.1)':
dependencies:
'@codemirror/language': 6.10.2
'@codemirror/state': 6.4.1
'@codemirror/view': 6.33.0
'@lezer/common': 1.2.1
'@codemirror/commands@6.6.1':
dependencies:
'@codemirror/language': 6.10.2
'@codemirror/state': 6.4.1
'@codemirror/view': 6.33.0
'@lezer/common': 1.2.1
'@codemirror/lang-css@6.3.0(@codemirror/view@6.33.0)':
dependencies:
'@codemirror/autocomplete': 6.18.0(@codemirror/language@6.10.2)(@codemirror/state@6.4.1)(@codemirror/view@6.33.0)(@lezer/common@1.2.1)
'@codemirror/language': 6.10.2
'@codemirror/state': 6.4.1
'@lezer/common': 1.2.1
'@lezer/css': 1.1.8
transitivePeerDependencies:
- '@codemirror/view'
'@codemirror/lang-html@6.4.9':
dependencies:
'@codemirror/autocomplete': 6.18.0(@codemirror/language@6.10.2)(@codemirror/state@6.4.1)(@codemirror/view@6.33.0)(@lezer/common@1.2.1)
'@codemirror/lang-css': 6.3.0(@codemirror/view@6.33.0)
'@codemirror/lang-javascript': 6.2.2
'@codemirror/language': 6.10.2
'@codemirror/state': 6.4.1
'@codemirror/view': 6.33.0
'@lezer/common': 1.2.1
'@lezer/css': 1.1.8
'@lezer/html': 1.3.10
'@codemirror/lang-java@6.0.1':
dependencies:
'@codemirror/language': 6.10.2
'@lezer/java': 1.1.2
'@codemirror/lang-javascript@6.2.2':
dependencies:
'@codemirror/autocomplete': 6.18.0(@codemirror/language@6.10.2)(@codemirror/state@6.4.1)(@codemirror/view@6.33.0)(@lezer/common@1.2.1)
'@codemirror/language': 6.10.2
'@codemirror/lint': 6.8.1
'@codemirror/state': 6.4.1
'@codemirror/view': 6.33.0
'@lezer/common': 1.2.1
'@lezer/javascript': 1.4.17
'@codemirror/lang-sql@6.7.1(@codemirror/view@6.33.0)':
dependencies:
'@codemirror/autocomplete': 6.18.0(@codemirror/language@6.10.2)(@codemirror/state@6.4.1)(@codemirror/view@6.33.0)(@lezer/common@1.2.1)
'@codemirror/language': 6.10.2
'@codemirror/state': 6.4.1
'@lezer/common': 1.2.1
'@lezer/highlight': 1.2.1
'@lezer/lr': 1.4.2
transitivePeerDependencies:
- '@codemirror/view'
'@codemirror/lang-vue@0.1.3':
dependencies:
'@codemirror/lang-html': 6.4.9
'@codemirror/lang-javascript': 6.2.2
'@codemirror/language': 6.10.2
'@lezer/common': 1.2.1
'@lezer/highlight': 1.2.1
'@lezer/lr': 1.4.2
'@codemirror/lang-xml@6.1.0':
dependencies:
'@codemirror/autocomplete': 6.18.0(@codemirror/language@6.10.2)(@codemirror/state@6.4.1)(@codemirror/view@6.33.0)(@lezer/common@1.2.1)
'@codemirror/language': 6.10.2
'@codemirror/state': 6.4.1
'@codemirror/view': 6.33.0
'@lezer/common': 1.2.1
'@lezer/xml': 1.0.5
'@codemirror/language@6.10.2':
dependencies:
'@codemirror/state': 6.4.1
'@codemirror/view': 6.33.0
'@lezer/common': 1.2.1
'@lezer/highlight': 1.2.1
'@lezer/lr': 1.4.2
style-mod: 4.1.2
'@codemirror/lint@6.8.1':
dependencies:
'@codemirror/state': 6.4.1
'@codemirror/view': 6.33.0
crelt: 1.0.6
'@codemirror/search@6.5.6':
dependencies:
'@codemirror/state': 6.4.1
'@codemirror/view': 6.33.0
crelt: 1.0.6
'@codemirror/state@6.4.1': {}
'@codemirror/theme-one-dark@6.1.2':
dependencies:
'@codemirror/language': 6.10.2
'@codemirror/state': 6.4.1
'@codemirror/view': 6.33.0
'@lezer/highlight': 1.2.1
'@codemirror/view@6.33.0':
dependencies:
'@codemirror/state': 6.4.1
style-mod: 4.1.2
w3c-keyname: 2.2.8
'@commitlint/cli@19.4.1(@types/node@22.5.4)(typescript@5.5.4)':
dependencies:
'@commitlint/format': 19.3.0
@ -12348,6 +12586,46 @@ snapshots:
'@juggle/resize-observer@3.4.0': {}
'@lezer/common@1.2.1': {}
'@lezer/css@1.1.8':
dependencies:
'@lezer/common': 1.2.1
'@lezer/highlight': 1.2.1
'@lezer/lr': 1.4.2
'@lezer/highlight@1.2.1':
dependencies:
'@lezer/common': 1.2.1
'@lezer/html@1.3.10':
dependencies:
'@lezer/common': 1.2.1
'@lezer/highlight': 1.2.1
'@lezer/lr': 1.4.2
'@lezer/java@1.1.2':
dependencies:
'@lezer/common': 1.2.1
'@lezer/highlight': 1.2.1
'@lezer/lr': 1.4.2
'@lezer/javascript@1.4.17':
dependencies:
'@lezer/common': 1.2.1
'@lezer/highlight': 1.2.1
'@lezer/lr': 1.4.2
'@lezer/lr@1.4.2':
dependencies:
'@lezer/common': 1.2.1
'@lezer/xml@1.0.5':
dependencies:
'@lezer/common': 1.2.1
'@lezer/highlight': 1.2.1
'@lezer/lr': 1.4.2
'@manypkg/find-root@1.1.0':
dependencies:
'@babel/runtime': 7.25.6
@ -14239,6 +14517,18 @@ snapshots:
cluster-key-slot@1.1.2: {}
codemirror@6.0.1(@lezer/common@1.2.1):
dependencies:
'@codemirror/autocomplete': 6.18.0(@codemirror/language@6.10.2)(@codemirror/state@6.4.1)(@codemirror/view@6.33.0)(@lezer/common@1.2.1)
'@codemirror/commands': 6.6.1
'@codemirror/language': 6.10.2
'@codemirror/lint': 6.8.1
'@codemirror/search': 6.5.6
'@codemirror/state': 6.4.1
'@codemirror/view': 6.33.0
transitivePeerDependencies:
- '@lezer/common'
color-convert@1.9.3:
dependencies:
color-name: 1.1.3
@ -14404,6 +14694,8 @@ snapshots:
crc-32: 1.2.2
readable-stream: 4.5.2
crelt@1.0.6: {}
croner@8.1.1: {}
cropperjs@1.6.2: {}
@ -18593,6 +18885,8 @@ snapshots:
stubborn-fs@1.2.5: {}
style-mod@4.1.2: {}
style-search@0.1.0: {}
stylehacks@7.0.4(postcss@8.4.45):
@ -19488,6 +19782,15 @@ snapshots:
vscode-uri@3.0.8: {}
vue-codemirror6@1.3.4(@lezer/common@1.2.1)(vue@3.5.3(typescript@5.5.4)):
dependencies:
codemirror: 6.0.1(@lezer/common@1.2.1)
vue: 3.5.3(typescript@5.5.4)
vue-demi: 0.14.10(vue@3.5.3(typescript@5.5.4))
transitivePeerDependencies:
- '@lezer/common'
- '@vue/composition-api'
vue-component-type-helpers@2.0.29: {}
vue-demi@0.14.10(vue@3.5.3(typescript@5.5.4)):
@ -19563,6 +19866,8 @@ snapshots:
vooks: 0.2.12(vue@3.5.3(typescript@5.5.4))
vue: 3.5.3(typescript@5.5.4)
w3c-keyname@2.2.8: {}
w3c-xmlserializer@5.0.0:
dependencies:
xml-name-validator: 5.0.0