MCPcopy Create free account
hub / github.com/CodeGeeX/codegeex-vscode-extension / codeGenByTemplate

Function codeGenByTemplate

src/utils/codeGenByTemplate.ts:8–99  ·  view source on GitHub ↗
(
    editor: vscode.TextEditor,
    templateStr: string,
    myStatusBarItem: vscode.StatusBarItem,
    g_isLoading: boolean
)

Source from the content-addressed store, hash-verified

6import { apiKey, apiSecret } from "../localconfig";
7
8export default async function codeGenByTemplate(
9 editor: vscode.TextEditor,
10 templateStr: string,
11 myStatusBarItem: vscode.StatusBarItem,
12 g_isLoading: boolean
13) {
14 let prompt_input = "";
15 let document = editor.document;
16 let sel = editor.selections;
17 for (var x = 0; x < sel.length; x++) {
18 let txt: string = document.getText(
19 new vscode.Range(sel[x].start, sel[x].end)
20 );
21 prompt_input += txt;
22 }
23 var selection = editor.selection;
24 let rs: any;
25 let prompt = "";
26 let lang = "";
27 try {
28 let promptInputArr = prompt_input.split("\n");
29 const re = /<INPUT(:.+)?>/g;
30 let iter = re.exec(templateStr);
31 prompt = templateStr;
32 while (iter) {
33 if (iter[0] == "<INPUT>") {
34 prompt = prompt.replace(iter[0], prompt_input);
35 } else if (iter[0].indexOf(":") != -1) {
36 if (iter[0].indexOf(",") != -1) {
37 let rangeStr = iter[0].split(":")[1];
38 rangeStr = rangeStr.slice(0, -1);
39 let fromLine = Number(rangeStr.split(",")[0]);
40 let toLine = Number(rangeStr.split(",")[1]);
41 prompt = prompt.replace(
42 iter[0],
43 promptInputArr.slice(fromLine, toLine).join("\n")
44 );
45 } else {
46 let rangeStr = Number(iter[0].split(":")[1].slice(0, -1));
47 prompt = prompt.replace(
48 iter[0],
49 promptInputArr.slice(rangeStr).join("\n")
50 );
51 }
52 } else {
53 vscode.window.showInformationMessage(
54 localeTag.errorInInputMarkup
55 );
56 return;
57 }
58 iter = re.exec(templateStr);
59 }
60 console.log("about to request");
61 lang = getDocumentLanguage(editor);
62 updateStatusBarItem(myStatusBarItem, g_isLoading, true, "");
63 rs = await getCodeCompletions(
64 prompt,
65 1,

Callers 1

generateWithPromptModeFunction · 0.85

Calls 3

updateStatusBarItemFunction · 0.90
getCodeCompletionsFunction · 0.90
getDocumentLanguageFunction · 0.85

Tested by

no test coverage detected