11<script setup lang="ts">
22import { ref , watch } from ' vue' ;
33import { Codemirror } from ' vue-codemirror' ;
4- import * as yaml from ' js-yaml' ;
4+ import yaml from ' js-yaml' ;
55import { jsonSchema } from " codemirror-json-schema" ;
6+ import { NewLanguageComplete } from ' ./languageComplete'
7+ import { jsonLanguage } from " @codemirror/lang-json"
68import { API } from ' ./net' ;
79import {useI18n } from " vue-i18n" ;
810import EditButton from ' ../components/EditButton.vue'
@@ -11,6 +13,7 @@ import mockSchema from '../assets/api-testing-mock-schema.json';
1113const { t } = useI18n ()
1214
1315const mockschema = ref (mockSchema as any ); // Type assertion to any for JSON schema
16+ const jsonComplete = NewLanguageComplete (jsonLanguage )
1417
1518interface MockConfig {
1619 Config: string
@@ -31,7 +34,6 @@ watch(mockConfig, (newValue) => {
3134}, { deep: true });
3235
3336function jsonToYaml(jsonData : object | string ): string {
34- // 如果是字符串,先解析成对象
3537 const data = typeof jsonData === ' string'
3638 ? JSON .parse (jsonData )
3739 : jsonData ;
@@ -88,11 +90,12 @@ items:
8890 <div >
8991 <el-tabs v-model =" tabActive" >
9092 <el-tab-pane label =" YAML" name =" yaml" >
91- <Codemirror v-model =" mockConfig.Config" />
93+ <Codemirror v-model =" mockConfig.Config"
94+ :extensions =" [jsonComplete]" />
9295 </el-tab-pane >
9396 <el-tab-pane label =" JSON" name =" json" >
9497 <Codemirror v-model =" mockConfig.ConfigAsJSON"
95- :extensions =" [jsonSchema(mockschema)]" />
98+ :extensions =" [jsonSchema(mockschema), jsonComplete ]" />
9699 </el-tab-pane >
97100 </el-tabs >
98101 </div >
0 commit comments