This commit is contained in:
2024-01-25 10:08:10 +08:00
parent 28536af48b
commit cd6b616129
2 changed files with 13 additions and 9 deletions

View File

@@ -30,4 +30,6 @@ export const pythonTexts = [
" in ",
"range():",
"while",
"[]",
"{}",
]

View File

@@ -39,23 +39,25 @@ function onReady(view: EditorView) {
whenever(insertText, (text: string) => {
if (!codeEditor) return
codeEditor.dispatch(codeEditor.state.replaceSelection(text))
codeEditor.focus() // 保持光标选中状态
// 处理换行或者移动光标
let delta = 0
if (text === '""' || text === "''") delta = 1
if (text[text.length - 1] === ")") delta = 1
if (text[text.length - 1] === ":" && text[text.length - 2] === ")") {
delta = 2
}
const len = text.length
// "", [], ()
if (['"', "]", ")"].includes(text[len - 1])) delta = 1
// {}
if (text === "{}") delta = 1
// range():
if (text.slice(len - 2) === "):") delta = 2
if (delta > 0) {
const newPos = codeEditor.state.selection.ranges[0].from - delta
const pos = codeEditor.state.selection.main.head - delta
codeEditor.dispatch({
selection: {
anchor: newPos,
head: newPos,
anchor: pos,
head: pos,
},
})
}
codeEditor.focus() // 保持光标选中状态
insertText.value = ""
})