merge bugfix
Dependencies
- [2]
PZYSWJZCresolve conflicts - [3]
AVTNUQYRbasic test-enabled framework - [4]
FS2ITYYHrecord a known issue - [5]
ORKN6EOBMerge lines.love - [6]
2DVVKKVAflesh out Readme - [7]
D43U7GQ4alter on-disk representation (manifest files) - [8]
CZQ3NJ4NMerge text0 - [9]
PJ5PQAQErecord support for multiple versions - [10]
OTIBCAUJlove2d scaffold - [11]
KKQKPGCIresolve conflicts - [12]
6LJZN727handle chords - [13]
5SM6DRHKport inscript's bugfix to source editor - [14]
QMRQL2FOresolve conflicts - [15]
BJ5X5O4Alet's prevent the text cursor from ever getting on a drawing - [16]
XX7G2FFJintermingle freehand line drawings with text - [17]
BULPIBEGbeginnings of a module for the text editor - [18]
EZHO4TSWnew file-system format for freewheeling apps - [19]
CAG7PP5YMerge text.love - [20]
PCHTG7YUresolve conflicts - [21]
CRBLAWBOresolve conflicts - [22]
KQ22RW43resolve conflicts - [23]
KMSL74GAsupport selections in the source editor - [24]
R6MNUXDJpijul bug - [25]
TOXPJJYYresolve conflicts - [26]
T4FRZSYLdelete an ancient, unused file - [27]
G3DLS5OUaudit all asserts - [28]
N2NUGNN4include a brief reference enabling many useful apps - [29]
ZLJYLPOTMerge lines.love - [30]
LWPFEZBIMerge lines.love - [31]
CE4LZV4Tdrop last couple of manual tests - [32]
VHQCNMARseveral more modules - [33]
TLOAPLBJadd a license - [34]
5OVKHVY6nice way to make on.* handlers more discoverable - [35]
VSGPLJFAresolve conflicts - [36]
ZS5IYZH5stop caching screen_bottom1 - [37]
52YBYUCOresolve conflicts - [38]
4YDBYBA4clean up memory leak experiments - [39]
MBAJPTDJresolve conflicts - [40]
JCRUUD2SMerge text.love - [41]
RXMHAZ6Vresolve conflicts - [42]
SW5GN5LPsuggest a default layout for freewheeling apps - [43]
KJLZCK2Rresolve conflicts - [44]
JOPVPUSAediting source code from within the app - [45]
K2X6G75Zstart writing some tests for drawings - [46]
SGMA5JLEsave the list of tests in repo - [47]
UEG224LHdebug animations - [48]
3PSFWAILMerge lines.love - [49]
66X36NZNa little more prose describing manual_tests - [50]
VHUNJHXBMerge lines.love - [51]
4J3Y3DJWpijul bug: redo upstream change - [52]
BLWAYPKVextract a module - [53]
RSZD5A7Gforgot to add json.lua - [54]
36Z442IVback to commit 8123959e52f without code editing - [55]
2CFLXLIEMerge text.love - [56]
TVCPXAAUrename - [57]
4SR3Z4Y3document the version of LÖVE I've been using - [58]
HWTLXESCMerge lines.love - [59]
6VJTQKW7start supporting LÖVE v12 - [60]
FBBHEUQNresolve conflicts - [61]
D2GCFTTTclean up repl functionality - [62]
X43ZIKR3Merge text.love - [63]
QZUFJMD5resolve conflicts - [64]
OL7ZCZWDMerge text.love - [65]
ED4Z6ORCcleaner API for file-system access - [66]
4Y2QDDAZresolve conflicts - [67]
LXTTOB33extract a couple of files - [68]
VXRYVZ74Merge text.love - [69]
2L5MEZV3experiment: new edit namespace - [70]
KKMFQDR4editing source code from within the app - [71]
3QNOKBFMbeginnings of a test harness - [72]
6TBU3VTNexplicitly state when operations manage undo - [73]
D4B52CQ2Merge lines.love - [74]
73OCE2MCafter much struggle, a brute-force undo - [75]
57HKHZ7Zinclude the tool that's mentioned in representation.md - [76]
TBTRYEBPMerge lines.love - [77]
VP5KC4XZMerge lines.love - [78]
LRDM35CEapp running again - [79]
VLTU33KWresolve conflicts - [80]
R5QXEHUIsomebody stop me - [81]
BDUAJA6Tresolve conflicts - [82]
OGUV4HSAremove some memory leaks from rendered fragments - [83]
VXORMHMEdelete experimental REPL
Change contents
- file deletion: source_select.lua source_select.lua
function Text.cut_selection_and_record_undo_event(State)Text.delete_selection_and_record_undo_event(State)function Text.delete_selection_and_record_undo_event(State)if State.selection1.line == nil then return endlocal minl,maxl = minmax(State.selection1.line, State.cursor1.line)local before = snapshot(State, minl, maxl)Text.delete_selection_without_undo(State)record_undo_event(State, {before=before, after=snapshot(State, State.cursor1.line)})endfunction Text.delete_selection_without_undo(State)if State.selection1.line == nil then return end-- min,max = sorted(State.selection1,State.cursor1)local minl,minp = State.selection1.line,State.selection1.poslocal maxl,maxp = State.cursor1.line,State.cursor1.posif minl > maxl thenminl,maxl = maxl,minlminp,maxp = maxp,minpelseif minl == maxl thenif minp > maxp thenminp,maxp = maxp,minpendend-- update State.cursor1 and State.selection1State.cursor1.line = minlState.cursor1.pos = minpif Text.lt1(State.cursor1, State.screen_top1) thenState.screen_top1.line = State.cursor1.lineState.screen_top1.pos = Text.pos_at_start_of_screen_line(State, State.cursor1)endState.selection1 = {}-- delete everything between min (inclusive) and max (exclusive)Text.clear_screen_line_cache(State, minl)local min_offset = Text.offset(State.lines[minl].data, minp)local max_offset = Text.offset(State.lines[maxl].data, maxp)if minl == maxl then--? print('minl == maxl')State.lines[minl].data = State.lines[minl].data:sub(1, min_offset-1)..State.lines[minl].data:sub(max_offset)returnendreturn resultendif State.selection1.line == nil then return endlocal result = Text.selection(State) - file deletion: source_text.lua source_text.lua source_text.lua source_text.lua[3.2]→[3.147125:147164](∅→∅),[3.2]→[3.147125:147164](∅→∅),[3.147164]→[3.83786:83786](∅→∅),[3.2]→[3.147125:147164](∅→∅),[3.2]→[3.147125:147164](∅→∅)
Text.delete_selection_and_record_undo_event(State)Text.delete_selection_and_record_undo_event(State)schedule_save(State)returnendschedule_save(State)returnend - file deletion: source_edit.lua source_edit.lua source_edit.lua source_edit.lua[3.2]→[3.165788:165827](∅→∅),[3.2]→[3.165788:165827](∅→∅),[3.165827]→[3.152503:152503](∅→∅),[3.2]→[3.165788:165827](∅→∅),[3.2]→[3.165788:165827](∅→∅)
Drawing.before = nilText.delete_selection_and_record_undo_event(State)local s = Text.cut_selection_and_record_undo_event(State)if s thenendschedule_save(State)