bugfix: pasting newlines
[?]
Jun 3, 2022, 1:35 AM
GN3IF4WF352YK5K4YHVMAIMPL7PNTCEMDWW22PTKDOXKV2FZJ7NQCDependencies
- [2]
QVDQMJXVavoid scrolling down if possible - [3]
VJ77YABHmore efficient undo/redo - [4]
CG3264MMmove - [5]
JY4VK7L2rename - [6]
PHFWIFYKscroll on enter - [7]
2ZYV7D3Whandle tab characters - [8]
537TQ2QNsome more logging - [9]
SQLVYKVJrename - [10]
2POFQQLWkeep cursor on screen when pressing 'down' - [11]
2RXZ3PGObeginning of a new approach to scroll+wrap - [12]
73OCE2MCafter much struggle, a brute-force undo - [13]
XNFTJHC4split keyboard handling between Text and Drawing - [*]
BULPIBEGbeginnings of a module for the text editor - [*]
KOYAJWE4extract a couple more methods
Change contents
- replacement in text.lua at line 1253[4.138]→[4.764:950](∅→∅),[3.1421]→[4.764:950](∅→∅),[4.6491]→[4.764:950](∅→∅),[4.655]→[4.764:950](∅→∅),[4.950]→[2.1389:1466](∅→∅),[2.1466]→[4.950:1130](∅→∅),[4.950]→[4.950:1130](∅→∅)
local byte_offset = utf8.offset(Lines[Cursor1.line].data, Cursor1.pos)table.insert(Lines, Cursor1.line+1, {mode='text', data=string.sub(Lines[Cursor1.line].data, byte_offset)})local scroll_down = (Cursor_y + math.floor(15*Zoom)) > App.screen.heightLines[Cursor1.line].data = string.sub(Lines[Cursor1.line].data, 1, byte_offset-1)Lines[Cursor1.line].fragments = nilCursor1.line = Cursor1.line+1Cursor1.pos = 1Text.insert_return() - edit in text.lua at line 1255
if scroll_down thenScreen_top1.line = Cursor1.lineText.scroll_up_while_cursor_on_screen()end - replacement in text.lua at line 1377
Text.insert_at_cursor(utf8.char(code))local c = utf8.char(code)if c == '\n' thenText.insert_return()elseText.insert_at_cursor(utf8.char(code))end - edit in text.lua at line 1487[16.40][16.40]
endendfunction Text.insert_return()local byte_offset = utf8.offset(Lines[Cursor1.line].data, Cursor1.pos)table.insert(Lines, Cursor1.line+1, {mode='text', data=string.sub(Lines[Cursor1.line].data, byte_offset)})local scroll_down = (Cursor_y + math.floor(15*Zoom)) > App.screen.heightLines[Cursor1.line].data = string.sub(Lines[Cursor1.line].data, 1, byte_offset-1)Lines[Cursor1.line].fragments = nilCursor1.line = Cursor1.line+1Cursor1.pos = 1if scroll_down thenScreen_top1.line = Cursor1.lineText.scroll_up_while_cursor_on_screen()