bugfix: searching files containing unicode
[?]
May 14, 2023, 12:02 AM
2H76FV5SK3ZWFVQ6ISAOSUJQWW4SSNPRDEI75JIQAJRPIVWPOCDACDependencies
- [2]
QSKWIEU3support special chars like '(' in search - [3]
ORRSP7FVdeduce test names on failures - [4]
LF7BWEG4group all editor globals - [5]
5ZA3BRNYadd state arg to a few functions - [6]
LXTTOB33extract a couple of files - [7]
MSOQI3A5bugfix: check before cursor on same line - [8]
AMOPICKVbugfix: check after cursor on same line when searching upwards - [9]
LLAOOMULbugfix: search upwards - [10]
7PZ4CQFVsearch: transparently handle drawings everywhere - [11]
OI4FPFINsupport drawings in the source editor - [12]
KKMFQDR4editing source code from within the app - [13]
FZBXBUFFbugfix: search - [14]
EETIR4GXbugfix: skip over drawings when searching - [15]
2CK5QI7Wmake love event names consistent
Change contents
- replacement in text_tests.lua at line 1988
Editor_state.lines = load_array{'```lines', '```', 'def', 'ghi', 'deg'}Editor_state.lines = load_array{'```lines', '```', 'def', 'ghi', '’deg'} -- contains unicode quote in final line - replacement in text_tests.lua at line 2009
check_eq(Editor_state.cursor1.pos, 1, '2/cursor:pos')check_eq(Editor_state.cursor1.pos, 2, '2/cursor:pos') - replacement in text_tests.lua at line 2015
Editor_state.lines = load_array{'abc abd'}Editor_state.lines = load_array{'’abc', 'abd'} -- contains unicode quote - replacement in text_tests.lua at line 2017
Editor_state.cursor1 = {line=1, pos=2}Editor_state.cursor1 = {line=2, pos=1} - replacement in text_tests.lua at line 2027
check_eq(Editor_state.cursor1.pos, 1, '2/cursor:pos')check_eq(Editor_state.cursor1.pos, 2, '2/cursor:pos') - replacement in text_tests.lua at line 2033
Editor_state.lines = load_array{'abc'}Editor_state.lines = load_array{'’abc', 'def'} -- contains unicode quote in first line - replacement in text_tests.lua at line 2035
Editor_state.cursor1 = {line=1, pos=3}Editor_state.cursor1 = {line=2, pos=1} - replacement in text_tests.lua at line 2045
check_eq(Editor_state.cursor1.pos, 1, '1/cursor:pos')check_eq(Editor_state.cursor1.pos, 2, '1/cursor:pos') - replacement in text_tests.lua at line 2051
Editor_state.lines = load_array{'abc abd'}Editor_state.lines = load_array{'abc ’abd'} -- contains unicode quote - replacement in text_tests.lua at line 2063
check_eq(Editor_state.cursor1.pos, 5, '1/cursor:pos')check_eq(Editor_state.cursor1.pos, 6, '1/cursor:pos') - replacement in source_text_tests.lua at line 1958
Editor_state.lines = load_array{'```lines', '```', 'def', 'ghi', 'deg'}Editor_state.lines = load_array{'```lines', '```', 'def', 'ghi', '’deg'} -- contains unicode quote in final line - replacement in source_text_tests.lua at line 1979
check_eq(Editor_state.cursor1.pos, 1, '2/cursor:pos')check_eq(Editor_state.cursor1.pos, 2, '2/cursor:pos') - replacement in source_text_tests.lua at line 1985
Editor_state.lines = load_array{'abc abd'}Editor_state.lines = load_array{'’abc', 'abd'} -- contains unicode quote - replacement in source_text_tests.lua at line 1987
Editor_state.cursor1 = {line=1, pos=2}Editor_state.cursor1 = {line=2, pos=1} - replacement in source_text_tests.lua at line 1997
check_eq(Editor_state.cursor1.pos, 1, '2/cursor:pos')check_eq(Editor_state.cursor1.pos, 2, '2/cursor:pos') - replacement in source_text_tests.lua at line 2003
Editor_state.lines = load_array{'abc'}Editor_state.lines = load_array{'’abc', 'def'} -- contains unicode quote in first line - replacement in source_text_tests.lua at line 2005
Editor_state.cursor1 = {line=1, pos=3}Editor_state.cursor1 = {line=2, pos=1} - replacement in source_text_tests.lua at line 2015
check_eq(Editor_state.cursor1.pos, 1, '1/cursor:pos')check_eq(Editor_state.cursor1.pos, 2, '1/cursor:pos') - replacement in source_text_tests.lua at line 2021
Editor_state.lines = load_array{'abc abd'}Editor_state.lines = load_array{'abc ’abd'} -- contains unicode quote - replacement in source_text_tests.lua at line 2033
check_eq(Editor_state.cursor1.pos, 5, '1/cursor:pos')check_eq(Editor_state.cursor1.pos, 6, '1/cursor:pos') - replacement in search.lua at line 21
local pos = find(State.lines[State.cursor1.line].data, State.search_term, State.cursor1.pos, --[[literal]] true)if pos thenState.cursor1.pos = poslocal curr_pos = State.cursor1.poslocal curr_line = State.lines[State.cursor1.line].datalocal curr_offset = Text.offset(curr_line, curr_pos)local offset = find(curr_line, State.search_term, curr_offset, --[[literal]] true)if offset thenState.cursor1.pos = utf8.len(curr_line, 1, offset) - replacement in search.lua at line 28
if pos == nil thenif offset == nil then - replacement in search.lua at line 31[4.211]→[2.130:229](∅→∅),[2.229]→[4.201:219](∅→∅),[4.201]→[4.201:219](∅→∅),[4.219]→[4.177689:177731](∅→∅)
pos = find(State.lines[i].data, State.search_term, --[[from start]] nil, --[[literal]] true)if pos thenState.cursor1 = {line=i, pos=pos}local curr_line = State.lines[i].dataoffset = find(curr_line, State.search_term, --[[from start]] nil, --[[literal]] true)if offset thenState.cursor1 = {line=i, pos=utf8.len(curr_line, 1, offset)} - replacement in search.lua at line 39
if pos == nil thenif offset == nil then - replacement in search.lua at line 42[4.368]→[2.230:329](∅→∅),[2.329]→[4.50189:50207](∅→∅),[4.354]→[4.50189:50207](∅→∅),[4.424]→[4.50189:50207](∅→∅),[4.82591]→[4.50189:50207](∅→∅),[4.50189]→[4.50189:50207](∅→∅),[4.50207]→[4.177732:177774](∅→∅)
pos = find(State.lines[i].data, State.search_term, --[[from start]] nil, --[[literal]] true)if pos thenState.cursor1 = {line=i, pos=pos}local curr_line = State.lines[i].dataoffset = find(curr_line, State.search_term, --[[from start]] nil, --[[literal]] true)if offset thenState.cursor1 = {line=i, pos=utf8.len(curr_line, 1, offset)} - replacement in search.lua at line 50
if pos == nil thenif offset == nil then - replacement in search.lua at line 52
pos = find(State.lines[State.cursor1.line].data, State.search_term, --[[from start]] nil, --[[literal]] true)local curr_line = State.lines[State.cursor1.line].dataoffset = find(curr_line, State.search_term, --[[from start]] nil, --[[literal]] true)local pos = utf8.len(curr_line, 1, offset) - replacement in search.lua at line 59
if pos == nil thenif offset == nil then - replacement in search.lua at line 74[4.800]→[2.445:563](∅→∅),[2.563]→[4.50856:50870](∅→∅),[4.849]→[4.50856:50870](∅→∅),[4.1169]→[4.50856:50870](∅→∅),[4.83452]→[4.50856:50870](∅→∅),[4.50856]→[4.50856:50870](∅→∅),[4.50870]→[4.1170:1198](∅→∅)
local pos = rfind(State.lines[State.cursor1.line].data, State.search_term, State.cursor1.pos-1, --[[literal]] true)if pos thenState.cursor1.pos = poslocal curr_pos = State.cursor1.poslocal curr_line = State.lines[State.cursor1.line].datalocal curr_offset = Text.offset(curr_line, curr_pos)local offset = rfind(curr_line, State.search_term, curr_offset-1, --[[literal]] true)if offset thenState.cursor1.pos = utf8.len(curr_line, 1, offset) - replacement in search.lua at line 81
if pos == nil thenif offset == nil then - replacement in search.lua at line 84[4.1238]→[2.564:662](∅→∅),[2.662]→[4.50998:51016](∅→∅),[4.1296]→[4.50998:51016](∅→∅),[4.83607]→[4.50998:51016](∅→∅),[4.50998]→[4.50998:51016](∅→∅),[4.51016]→[4.177775:177817](∅→∅)
pos = rfind(State.lines[i].data, State.search_term, --[[from end]] nil, --[[literal]] true)if pos thenState.cursor1 = {line=i, pos=pos}local curr_line = State.lines[i].dataoffset = rfind(curr_line, State.search_term, --[[from end]] nil, --[[literal]] true)if offset thenState.cursor1 = {line=i, pos=utf8.len(curr_line, 1, offset)} - replacement in search.lua at line 92
if pos == nil thenif offset == nil then - replacement in search.lua at line 95[4.1411]→[2.663:761](∅→∅),[2.761]→[4.51229:51247](∅→∅),[4.1469]→[4.51229:51247](∅→∅),[4.83822]→[4.51229:51247](∅→∅),[4.51229]→[4.51229:51247](∅→∅),[4.51247]→[4.177818:177860](∅→∅)
pos = rfind(State.lines[i].data, State.search_term, --[[from end]] nil, --[[literal]] true)if pos thenState.cursor1 = {line=i, pos=pos}local curr_line = State.lines[i].dataoffset = rfind(curr_line, State.search_term, --[[from end]] nil, --[[literal]] true)if offset thenState.cursor1 = {line=i, pos=utf8.len(curr_line, 1, offset)} - replacement in search.lua at line 103
if pos == nil thenif offset == nil then - replacement in search.lua at line 105
pos = rfind(State.lines[State.cursor1.line].data, State.search_term, --[[from end]] nil, --[[literal]] true)local curr_line = State.lines[State.cursor1.line].dataoffset = rfind(curr_line, State.search_term, --[[from end]] nil, --[[literal]] true)local pos = utf8.len(curr_line, 1, offset) - replacement in search.lua at line 112
if pos == nil thenif offset == nil then