Draw full text selection

This commit is contained in:
dylan 2023-05-06 12:24:40 -07:00
parent 2e3b689c16
commit 0adfdabffa

View File

@ -373,22 +373,18 @@ const drawCodeField = (code: string, x: number, y: number, w: number, h: number)
scrollY, scrollY,
anchor, anchor,
focus, focus,
focusX,
focusY,
} = state; } = state;
const {
x: focusX,
y: focusY,
} = indexToGrid(code, focus);
const {
x: anchorX,
y: anchorY,
} = indexToGrid(code, anchor);
fillRect(x, y, w, h, COLOR.DARKBLUE); fillRect(x, y, w, h, COLOR.DARKBLUE);
if (anchor === focus) { if (anchor === focus) {
fillRect(x+focusX*fontWidth-scrollX, y+focusY*(fontHeight+1)-scrollY, fontWidth+1, fontHeight+1, COLOR.YELLOW); fillRect(x+focusX*fontWidth-scrollX, y+focusY*(fontHeight+1)-scrollY, fontWidth+1, fontHeight+1, COLOR.YELLOW);
} else { } else {
// TODO: Draw this selection better for (let i = Math.min(anchor, focus); i < Math.max(anchor, focus); i++) {
fillRect(x+anchorX*fontWidth-scrollX, y+anchorY*(fontHeight+1)-scrollY, fontWidth+1, fontHeight+1, COLOR.WHITE); const {x: selX, y: selY} = indexToGrid(code, i);
fillRect(x+focusX*fontWidth-scrollX, y+focusY*(fontHeight+1)-scrollY, fontWidth+1, fontHeight+1, COLOR.YELLOW); fillRect(x+selX*fontWidth-scrollX, y+selY*(fontHeight+1)-scrollY, fontWidth+1, fontHeight+1, COLOR.WHITE);
}
// fillRect(x+focusX*fontWidth-scrollX, y+focusY*(fontHeight+1)-scrollY, fontWidth+1, fontHeight+1, COLOR.YELLOW);
} }
const builtins = Object.keys(getContext()); const builtins = Object.keys(getContext());
const tokens = [...tokenize(code)]; const tokens = [...tokenize(code)];