- return this.editor.cm.state.doc.lineAt(index).text;
- }
-
- wrapLine(start: string, end: string) {
- const selectionRange = this.getSelection();
- const line = this.editor.cm.state.doc.lineAt(selectionRange.from);
- const lineContent = line.text;
- let newLineContent;
- let lineOffset = 0;
-
- if (lineContent.startsWith(start) && lineContent.endsWith(end)) {
- newLineContent = lineContent.slice(start.length, lineContent.length - end.length);
- lineOffset = -(start.length);
- } else {
- newLineContent = `${start}${lineContent}${end}`;
- lineOffset = start.length;
- }
-
- this.dispatchChange(line.from, line.to, newLineContent, selectionRange.from + lineOffset);