Forráskód Böngészése

优化加载速度、修复代码提示重复导包的问题

mxd 3 éve
szülő
commit
c1fc6a6567

+ 11 - 3
src/components/common/magic-monaco-editor.vue

@@ -50,7 +50,8 @@ export default {
 		})
 		this.instance.onDidChangeModelContent((e) => {
 			this.$emit('update:value', this.instance.getValue())
-			this.$emit('change')
+			this.$emit('change', e)
+
 		})
 		this.instance.addAction({
 			id: 'editor.action.triggerSuggest.extension',
@@ -60,7 +61,15 @@ export default {
 				this.instance.trigger(null, 'editor.action.triggerSuggest', {})
 			}
 		})
-		CommandsRegistry.registerCommand('editor.action.scrollUp1Line', () => {
+		CommandsRegistry.registerCommand('editor.action.appendHead', (_c, text) => {
+			if(this.value?.indexOf(text) > -1){
+				return
+			}
+			this.instance.executeEdits('command', [{
+				forceMoveMarkers: true,
+				text,
+				range: new monaco.Range(1, 0, 1, 0)
+			}])
 			this.instance.setScrollTop(this.instance.getScrollTop() - 22)
 		})
 		this.instance.addCommand(monaco.KeyMod.Alt | monaco.KeyCode.US_SLASH, () => {
@@ -177,7 +186,6 @@ export default {
 			if(newVal !== this.instance.getValue()){
 				this.instance.setValue(newVal || '')
 				this.match()
-				this.$emit('change')
 			}
 		},
 		matches(){

+ 4 - 1
src/components/panel/api/magic-api-request-body.vue

@@ -7,7 +7,10 @@ import { parseJson } from '../../../scripts/parsing/parser.js'
 import { definition2TreeList } from '../../../scripts/utils.js'
 const info = inject('info')
 const opened = inject('opened')
-const onChange = ()=>{
+const onChange = e => {
+    if(e.isFlush){
+        return
+    }
     const definition = parseJson(info.value.requestBody, info.value.requestBodyDefinition)
     if(definition){
         info.value.requestBodyDefinition = definition

+ 1 - 4
src/components/panel/api/magic-api-response-body.vue

@@ -5,16 +5,13 @@
 </template>
 <script setup>
 import { computed, inject, ref } from 'vue'
-import Beautifier from '../../../scripts/beautifier/javascript/beautifier'
 import { download } from '../../../scripts/utils.js'
 import $i from '../../../scripts/i18n.js'
 const info = inject('info')
 const opened = inject('opened')
 const iframe = ref(null)
 const elementRoot = inject('ELEMENT_ROOT')
-const responseBody = computed(() => {
-    return new Beautifier(info.value.responseBody || '').beautify()
-})
+const responseBody = computed(() => info.value.responseBody || '')
 const blobURL = computed(() => {
     if(opened.value.responseBlob){
         const disposition = opened.value.responseHeaders['content-disposition'];

+ 3 - 7
src/scripts/editor/completion.js

@@ -151,14 +151,10 @@ const completionFunction = async (suggestions, input, env, best, isNew) => {
                         detail: clazz,
                         insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
                         command: {
-                            id: 'editor.action.scrollUp1Line'
+                            id: 'editor.action.appendHead',
+                            arguments: [`import ${clazz}\r\n`]
                         },
                         insertText: className + (isNew ? '()' : ''),
-                        additionalTextEdits: [{
-                            forceMoveMarkers: true,
-                            text: `import ${clazz}\r\n`,
-                            range: new monaco.Range(1, 0, 1, 0)
-                        }]
                     })
                 }
             })
@@ -375,4 +371,4 @@ const CompletionItemProvider = {
     },
     triggerCharacters: ['.', ':']
 };
-export default CompletionItemProvider
+export default CompletionItemProvider