[visual] Move the cursor after leading whitespace when creating a new list item on Enter (#13828)
GitOrigin-RevId: 2f5941627b64fb53efce0bdd6f2d888986f45a9d
This commit is contained in:
@@ -63,11 +63,22 @@ export const visualKeymap = Prec.highest(
|
||||
const indent = indentString(state, columns)
|
||||
const insert = `\n${indent}\\item `
|
||||
|
||||
const countWhitespaceAfterPosition = (pos: number) => {
|
||||
const line = state.doc.lineAt(pos)
|
||||
const followingText = state.sliceDoc(pos, line.to)
|
||||
const matches = followingText.match(/^(\s+)/)
|
||||
return matches ? matches[1].length : 0
|
||||
}
|
||||
|
||||
// move the cursor past any whitespace on the new line
|
||||
const pos =
|
||||
from + insert.length + countWhitespaceAfterPosition(from)
|
||||
|
||||
handled = true
|
||||
|
||||
return {
|
||||
changes: { from, insert },
|
||||
range: EditorSelection.cursor(from + insert.length),
|
||||
range: EditorSelection.cursor(pos),
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user