Skip to content

Commit 0c06d8f

Browse files
committed
add http header autocomplete
1 parent fbf244c commit 0c06d8f

File tree

3 files changed

+37
-8
lines changed

3 files changed

+37
-8
lines changed

console/atest-ui/src/views/MockManager.vue

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { ref, watch } from 'vue';
33
import { Codemirror } from 'vue-codemirror';
44
import yaml from 'js-yaml';
55
import { jsonSchema } from "codemirror-json-schema";
6-
import { NewLanguageComplete } from './languageComplete'
6+
import { NewTemplateLangComplete, NewHeaderLangComplete } from './languageComplete'
77
import { jsonLanguage } from "@codemirror/lang-json"
88
import { API } from './net';
99
import {useI18n} from "vue-i18n";
@@ -13,7 +13,8 @@ import mockSchema from '../assets/api-testing-mock-schema.json';
1313
const { t } = useI18n()
1414
1515
const mockschema = ref(mockSchema as any); // Type assertion to any for JSON schema
16-
const jsonComplete = NewLanguageComplete(jsonLanguage)
16+
const jsonComplete = NewTemplateLangComplete(jsonLanguage)
17+
const headerComplete = NewHeaderLangComplete(jsonLanguage)
1718
1819
interface MockConfig {
1920
Config: string
@@ -91,11 +92,11 @@ items:
9192
<el-tabs v-model="tabActive">
9293
<el-tab-pane label="YAML" name="yaml">
9394
<Codemirror v-model="mockConfig.Config"
94-
:extensions="[jsonComplete]" />
95+
:extensions="[jsonComplete, headerComplete]" />
9596
</el-tab-pane>
9697
<el-tab-pane label="JSON" name="json">
9798
<Codemirror v-model="mockConfig.ConfigAsJSON"
98-
:extensions="[jsonSchema(mockschema), jsonComplete]" />
99+
:extensions="[jsonSchema(mockschema), jsonComplete, headerComplete]" />
99100
</el-tab-pane>
100101
</el-tabs>
101102
</div>

console/atest-ui/src/views/TestCase.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ import jsonlint from 'jsonlint-mod'
2020
2121
import CodeMirror from 'codemirror'
2222
import { json, jsonLanguage } from "@codemirror/lang-json"
23-
import { NewLanguageComplete } from './languageComplete'
23+
import { NewTemplateLangComplete } from './languageComplete'
2424
import 'codemirror/lib/codemirror.css'
2525
import 'codemirror/addon/merge/merge.js'
2626
import 'codemirror/addon/merge/merge.css'
@@ -32,7 +32,7 @@ window.DIFF_DELETE = -1;
3232
window.DIFF_INSERT = 1;
3333
window.DIFF_EQUAL = 0;
3434
35-
const jsonComplete = NewLanguageComplete(jsonLanguage)
35+
const jsonComplete = NewTemplateLangComplete(jsonLanguage)
3636
const { t } = useI18n()
3737
3838
const props = defineProps({

console/atest-ui/src/views/languageComplete.ts

Lines changed: 30 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,28 @@ function tplFuncCompletions(context: CompletionContext) {
1919
})
2020
}
2121

22+
return pairCompletions(context, templateFuncs.value)
23+
}
24+
25+
const headerFuncs = ref([] as Completion[])
26+
function headerCompletions(context: CompletionContext) {
27+
if (headerFuncs.value.length == 0) {
28+
API.PopularHeaders((e) => {
29+
if (e.data) {
30+
e.data.forEach((item: any) => {
31+
headerFuncs.value.push({
32+
label: item.key,
33+
type: "text",
34+
} as Completion)
35+
})
36+
}
37+
})
38+
}
39+
40+
return pairCompletions(context, headerFuncs.value)
41+
}
42+
43+
function pairCompletions(context: CompletionContext, source: Completion[]) {
2244
let word = context.matchBefore(/\w*/) || {
2345
from: "",
2446
to: ""
@@ -27,12 +49,18 @@ function tplFuncCompletions(context: CompletionContext) {
2749
return null
2850
return {
2951
from: word.from,
30-
options: templateFuncs.value
52+
options: source
3153
}
3254
}
3355

34-
export const NewLanguageComplete = (lang: Language) => {
56+
export const NewTemplateLangComplete = (lang: Language) => {
3557
return new LanguageSupport(lang, lang.data.of(
3658
{autocomplete: tplFuncCompletions}
3759
))
3860
}
61+
62+
export const NewHeaderLangComplete = (lang: Language) => {
63+
return new LanguageSupport(lang, lang.data.of(
64+
{autocomplete: headerCompletions}
65+
))
66+
}

0 commit comments

Comments
 (0)