GSIYZ7K25HG2BYKUF3G5JKI4M3MBWC2LRC5KJIHKG2JES6GYX5DAC 2H45O6WPWH2REQVGSOJ2WDUUIL4BBM5CRNTD3OB4RLFBXZKF5J2AC XUGDTYW2OALZNGX52BJXFYW2IJ6YSXA62ANG2NX2KDWULYAPZYOAC H2DPLWMVRFYTO2CQTG54FMT2LF3B6UKLXH32CUA22DNQJVP5XBNQC MXA3RZYKUI4UF2ISY7JEF6VKX6NOPZMZH5SLLCZHRJKFIXXXDPSAC BULPIBEGL7TMK6CVIE7IS7WGAHGOSUJBGJSFQK542MOWGHP2ADQQC GK47BBCYVEZ3OEQ7ISE2WCJULAFZ35WC6EYJ5CTBYNM26RSAELOQC 3ZSUBI574IYW3BKS6OFPDD6UY2IJBNOQIGA4YFGQSF4VZ3PPATYQC MYC7XR5QOT2AXHF6UNGSNFFD5VL6UHGUZQBP7PWWLZ5NNXE7UMTAC ODLKHO7BO2AODYO2OEQ6D4NSNBT5GR3CKLUXWMDLRYXL7DJOI7BAC ILOA5BYFTQKBSHLFMMZUVPQ2JXBFJD62ERQFBTDK2WSRXUN525VQC LERERVPHE5SEWDHQ7IAGQSXUAI2QHQJ33NBNRMRXZ34X7P23I2IAC X3F7ECSLGXCH6NBSDIH7LY47I4EG2RR5VFPEMM6ZVDYQIGFID4HQC XNFTJHC4QSHNSIWNN7K6QZEZ37GTQYKHS4EPNSVPQCUSWREROGIQC UWPRFECMDHR6H7AOLZ7BKT5TG7LIRZOO425KI3UZ3MLGNKVDJGGAC UB3O7QODEK7BMKXQOPPMFNPIA6DSVJXAJESZUPZ6CXDYQOP3Y3CAC 6QTCZLJ7E6F3UGS6LFH2FMKPFNKJ7PDWHHI2EWTK7SB2K4IBY5SQC 6XN3ENWCDNTCGJBJF35YKV6ME5DODEXQZSQTNXFW4DZY6EKQF2PQC Z4XRNDTRTGSZHNB65WNHOVUBFW4QWQABLVSK4RM3QJHGK33DMRJAC RTDYYP4HQI4RLAISRXGB6TFWALBXSO3EQ4JCABRZM2TOQEJOGB6QC Y36LOGR5X6S6AEJJ3EBVDC4I3RRFRCZ6GXPXSEIOMVXY2B7UCCGQC 5DOC2CBMBDMAOJ7IKLDGVRCY4SNPCJTTF7DK7WGNLPGNV4AWVJNAC JY4VK7L2JKRWRV45QEMGLWPFAQRUWKFHMAL6DWNYEDCKO5Y4W5FQC CVGE3SIGJRGCLY3A2RBPGFXAEKVZXUUIZQLRHJLM4VPUM4SHEZIAC M6TH7VSZQGKDB7SFNN5K52WWAX5VTVNT6GOKNKTXPVZBT6NEYDOQC local x = State.leftlocal pos = 1
local overflows_screen, x, y, pos, screen_line_starting_pos = Text.draw_wrapping_line(State, line_index, State.left, y, startpos)if overflows_screen thenreturn y, screen_line_starting_posendif line.data2 and #line.data2 > 0 thenif not line_cache.expanded thenbutton('expand', {x=x+5, y=y+2, w=App.width(State.em), h=State.line_height-4, color={1,1,1},icon = function(x,y)App.color(Fold_background_color)love.graphics.rectangle('fill', x, y, App.width(State.em), State.line_height-4, 2,2)end,onpress1 = function()line_cache.expanded = trueend,})elseApp.color(Fold_color)App.screen.print(line.data2, x+5+5,y)endendif State.search_term == nil thenif line_index == State.cursor1.line and State.cursor1.pos == pos thenText.draw_cursor(State, x, y)endendreturn y, screen_line_starting_posend-- manual tests:-- draw with small screen width of 100-- Given an array of fragments, draw the subset starting from pos to screen-- starting from (x,y).-- Return:-- - whether we got to bottom of screen before end of line-- - the final (x,y)-- - the final pos-- - starting pos of the final screen line drawnfunction Text.draw_wrapping_line(State, line_index, x,y, startpos)local line = State.lines[line_index]local line_cache = State.line_cache[line_index]
if line.data2 and #line.data2 > 0 thenif not line_cache.expanded thenbutton('expand', {x=x+5, y=y+2, w=App.width(State.em), h=State.line_height-4, color={1,1,1},icon = function(x,y)App.color(Fold_background_color)love.graphics.rectangle('fill', x, y, App.width(State.em), State.line_height-4, 2,2)end,onpress1 = function()line_cache.expanded = trueend,})elseApp.color(Fold_color)App.screen.print(line.data2, x+5+5,y)endendif State.search_term == nil thenif line_index == State.cursor1.line and State.cursor1.pos == pos thenText.draw_cursor(State, x, y)endendreturn y, screen_line_starting_pos
return false, x,y, pos, screen_line_starting_pos