(
editor: vscode.TextEditor,
templateStr: string,
myStatusBarItem: vscode.StatusBarItem,
g_isLoading: boolean
)
| 6 | import { apiKey, apiSecret } from "../localconfig"; |
| 7 | |
| 8 | export 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, |
no test coverage detected