tab key works
This commit is contained in:
parent
1e91232bd6
commit
e52c8c69a0
36
editmode.ts
36
editmode.ts
@ -46,9 +46,33 @@ const codeTabState = {
|
||||
this.code = code.slice(0, Math.min(anchor, focus)) + text + code.slice(Math.max(anchor, focus));
|
||||
this.setSelection(Math.min(anchor, focus) + text.length);
|
||||
},
|
||||
// indent(char) {
|
||||
// const lines = this.code.split("\n").
|
||||
// },
|
||||
indent(indentString: string) {
|
||||
const lines = this.code.split("\n");
|
||||
const {focusY, anchorY} = this;
|
||||
const newLines = lines.map((line, i) => {
|
||||
console.log(i, Math.min(focusY, anchorY), Math.max(focusY, anchorY));
|
||||
if (i >= Math.min(focusY, anchorY) && i <= Math.max(focusY, anchorY)) {
|
||||
console.log(indentString+line);
|
||||
return indentString+line;
|
||||
} else {
|
||||
return line;
|
||||
}
|
||||
});
|
||||
this.code = newLines.join("\n");
|
||||
},
|
||||
outdent(outdentRegex: RegExp) {
|
||||
const lines = this.code.split("\n");
|
||||
const {focusY, anchorY} = this;
|
||||
const newLines = lines.map((line, i) => {
|
||||
const match = line.match(outdentRegex);
|
||||
if (i >= Math.min(focusY, anchorY) && i <= Math.max(focusY, anchorY) && match) {
|
||||
return line.slice(match[0].length);
|
||||
} else {
|
||||
return line;
|
||||
}
|
||||
});
|
||||
this.code = newLines.join("\n");
|
||||
},
|
||||
backspace() {
|
||||
const {code, focus} = this;
|
||||
if (this.isCollapsed()) {
|
||||
@ -127,12 +151,12 @@ const update = () => {
|
||||
if (keyPressed(K.TAB)) {
|
||||
if (!shiftKeyDown()) {
|
||||
if (codeTabState.isCollapsed()) {
|
||||
codeTabState.insertText("\n");
|
||||
codeTabState.insertText("\t");
|
||||
} else {
|
||||
// codeTabState.indent("\t");
|
||||
codeTabState.indent("\t");
|
||||
}
|
||||
} else {
|
||||
// codeTabState.outdent(/\t| /);
|
||||
codeTabState.outdent(/^(\t| )/);
|
||||
}
|
||||
}
|
||||
if (keyPressed(K.BACKSPACE)) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user