resolve conflicts
Dependencies
- [2]
CZ6X73VYmerge bugfix - [3]
S7CSVBHZresolve conflicts - [4]
VHUNJHXBMerge lines.love - [5]
VLTU33KWresolve conflicts - [6]
KQ22RW43resolve conflicts - [7]
RSZD5A7Gforgot to add json.lua - [8]
3QNOKBFMbeginnings of a test harness - [9]
TLOAPLBJadd a license - [10]
XX7G2FFJintermingle freehand line drawings with text - [11]
VHQCNMARseveral more modules - [12]
OGUV4HSAremove some memory leaks from rendered fragments - [13]
BULPIBEGbeginnings of a module for the text editor - [14]
JOPVPUSAediting source code from within the app - [15]
ZLJYLPOTMerge lines.love - [16]
TOXPJJYYresolve conflicts - [17]
CE4LZV4Tdrop last couple of manual tests - [18]
QXXISTGEresolve conflicts - [19]
4SR3Z4Y3document the version of LÖVE I've been using - [20]
VXORMHMEdelete experimental REPL - [21]
36Z442IVback to commit 8123959e52f without code editing - [22]
4YDBYBA4clean up memory leak experiments - [23]
6VJTQKW7start supporting LÖVE v12 - [24]
73OCE2MCafter much struggle, a brute-force undo - [25]
6LJZN727handle chords - [26]
A4BSGS2CMerge lines.love - [27]
RAXUQQ6ZMerge lines.love - [28]
D2GCFTTTclean up repl functionality - [29]
LWPFEZBIMerge lines.love - [30]
K2X6G75Zstart writing some tests for drawings - [31]
BLWAYPKVextract a module - [32]
RXMHAZ6Vresolve conflicts - [33]
ECBDENZ4Merge text.love - [34]
FS2ITYYHrecord a known issue - [35]
U3MJNFUYMerge lines.love - [36]
AVTNUQYRbasic test-enabled framework - [37]
ZJFSVE47Merge text.love - [38]
R56CKHYZMerge text.love - [39]
2L5MEZV3experiment: new edit namespace - [40]
34BZ5ZKNMerge lines.love - [41]
3PSFWAILMerge lines.love - [42]
TVCPXAAUrename - [43]
SGMA5JLEsave the list of tests in repo - [44]
2TQUKHBCMerge lines.love - [45]
VXRYVZ74Merge text.love - [46]
I4S4EFYXMerge lines.love - [47]
T4FRZSYLdelete an ancient, unused file - [48]
66X36NZNa little more prose describing manual_tests - [49]
OTYGZVPWMerge text.love - [50]
ED4Z6ORCcleaner API for file-system access - [51]
CAG7PP5YMerge text.love - [52]
MBAJPTDJresolve conflicts - [53]
R6MNUXDJpijul bug - [54]
4Y2QDDAZresolve conflicts - [55]
KKQKPGCIresolve conflicts - [56]
ORKN6EOBMerge lines.love - [57]
N2NUGNN4include a brief reference enabling many useful apps - [58]
2CFLXLIEMerge text.love - [59]
VBU5YHLRMerge lines.love - [60]
TBTRYEBPMerge lines.love - [61]
R5QXEHUIsomebody stop me - [62]
3G723RV5Merge text.love - [63]
KMSL74GAsupport selections in the source editor - [64]
BJ5X5O4Alet's prevent the text cursor from ever getting on a drawing - [65]
M5JXTW56Merge text.love - [66]
LXTTOB33extract a couple of files - [67]
KKMFQDR4editing source code from within the app - [68]
PJ5PQAQErecord support for multiple versions - [69]
SLMSBVJWresolve conflicts - [70]
7LXXQBNEresolve conflicts - [71]
SYWQBIO5resolve conflicts - [72]
2CTN2IEFMerge lines.love - [73]
VP5KC4XZMerge lines.love - [74]
KJLZCK2Rresolve conflicts - [75]
OTIBCAUJlove2d scaffold
Change contents
- file deletion: source_text_tests.lua source_text_tests.lua
endfunction test_search_downwards_from_end_of_line()App.screen.init{width=120, height=60}Editor_state = edit.initialize_test_state()Editor_state.lines = load_array{'abc', 'def', 'ghi'}Text.redraw_all(Editor_state)Editor_state.cursor1 = {line=1, pos=4}Editor_state.screen_top1 = {line=1, pos=1}edit.draw(Editor_state)-- search for empty stringedit.run_after_keychord(Editor_state, 'C-f', 'f')edit.run_after_keychord(Editor_state, 'down', 'down')-- no crashendfunction test_search_downwards_from_final_pos_of_line()App.screen.init{width=120, height=60}Editor_state = edit.initialize_test_state()Editor_state.lines = load_array{'abc', 'def', 'ghi'}Text.redraw_all(Editor_state)Editor_state.cursor1 = {line=1, pos=3}Editor_state.screen_top1 = {line=1, pos=1}edit.draw(Editor_state)-- search for empty stringedit.run_after_keychord(Editor_state, 'C-f', 'f')edit.run_after_keychord(Editor_state, 'down', 'down')-- no crashend - file deletion: source_edit.lua source_edit.lua
local line = State.cursor1.linewhile line < #State.lines doline = line+1if State.lines[line].mode == 'text' thenState.cursor1.line = lineState.cursor1.pos = 1endendfunction edit.put_cursor_on_next_text_line_wrapping_around_if_necessary(State)local line = State.cursor1.linelocal max = #State.linesfor _ = 1, max-1 doline = (line+1) % maxif State.lines[line].mode == 'text' thenState.cursor1.line = lineState.cursor1.pos = 1endendfunction edit.put_cursor_on_next_text_loc_wrapping_around_if_necessary(State)local cursor_line = State.lines[State.cursor1.line].dataif State.cursor1.pos <= utf8.len(cursor_line) thenState.cursor1.pos = State.cursor1.pos + 1elseedit.put_cursor_on_next_text_line_wrapping_around_if_necessary(State)State.cursor = deepcopy(State.search_backup.cursor)State.screen_top = deepcopy(State.search_backup.screen_top)elseif chord == 'down' thenif #State.search_term > 0 thenedit.put_cursor_on_next_text_loc_wrapping_around_if_necessary(State)Text.search_next(State)endelseif chord == 'up' thenText.search_previous(State)endreturnelseif chord == 'C-f' thenState.search_term = ''State.search_backup = {Text.search_next(State)endendbreakendbreakend