extract a function
This commit is contained in:
parent
5a06c1286d
commit
009c7abb60
|
@ -135,8 +135,7 @@ function Text.delete_selection_without_undo()
|
||||||
Cursor1.pos = minp
|
Cursor1.pos = minp
|
||||||
Selection1 = {}
|
Selection1 = {}
|
||||||
-- delete everything between min (inclusive) and max (exclusive)
|
-- delete everything between min (inclusive) and max (exclusive)
|
||||||
Lines[minl].fragments = nil
|
Text.clear_cache(Lines[minl])
|
||||||
Lines[minl].screen_line_starting_pos = nil
|
|
||||||
local min_offset = Text.offset(Lines[minl].data, minp)
|
local min_offset = Text.offset(Lines[minl].data, minp)
|
||||||
local max_offset = Text.offset(Lines[maxl].data, maxp)
|
local max_offset = Text.offset(Lines[maxl].data, maxp)
|
||||||
if minl == maxl then
|
if minl == maxl then
|
||||||
|
|
29
text.lua
29
text.lua
|
@ -155,8 +155,7 @@ end
|
||||||
function Text.insert_at_cursor(t)
|
function Text.insert_at_cursor(t)
|
||||||
local byte_offset = Text.offset(Lines[Cursor1.line].data, Cursor1.pos)
|
local byte_offset = Text.offset(Lines[Cursor1.line].data, Cursor1.pos)
|
||||||
Lines[Cursor1.line].data = string.sub(Lines[Cursor1.line].data, 1, byte_offset-1)..t..string.sub(Lines[Cursor1.line].data, byte_offset)
|
Lines[Cursor1.line].data = string.sub(Lines[Cursor1.line].data, 1, byte_offset-1)..t..string.sub(Lines[Cursor1.line].data, byte_offset)
|
||||||
Lines[Cursor1.line].fragments = nil
|
Text.clear_cache(Lines[Cursor1.line])
|
||||||
Lines[Cursor1.line].screen_line_starting_pos = nil
|
|
||||||
Cursor1.pos = Cursor1.pos+1
|
Cursor1.pos = Cursor1.pos+1
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -202,8 +201,7 @@ function Text.keychord_pressed(chord)
|
||||||
else
|
else
|
||||||
Lines[Cursor1.line].data = string.sub(Lines[Cursor1.line].data, 1, byte_start-1)
|
Lines[Cursor1.line].data = string.sub(Lines[Cursor1.line].data, 1, byte_start-1)
|
||||||
end
|
end
|
||||||
Lines[Cursor1.line].fragments = nil
|
Text.clear_cache(Lines[Cursor1.line])
|
||||||
Lines[Cursor1.line].screen_line_starting_pos = nil
|
|
||||||
Cursor1.pos = Cursor1.pos-1
|
Cursor1.pos = Cursor1.pos-1
|
||||||
end
|
end
|
||||||
elseif Cursor1.line > 1 then
|
elseif Cursor1.line > 1 then
|
||||||
|
@ -214,8 +212,7 @@ function Text.keychord_pressed(chord)
|
||||||
-- join lines
|
-- join lines
|
||||||
Cursor1.pos = utf8.len(Lines[Cursor1.line-1].data)+1
|
Cursor1.pos = utf8.len(Lines[Cursor1.line-1].data)+1
|
||||||
Lines[Cursor1.line-1].data = Lines[Cursor1.line-1].data..Lines[Cursor1.line].data
|
Lines[Cursor1.line-1].data = Lines[Cursor1.line-1].data..Lines[Cursor1.line].data
|
||||||
Lines[Cursor1.line-1].fragments = nil
|
Text.clear_cache(Lines[Cursor1.line-1])
|
||||||
Lines[Cursor1.line-1].screen_line_starting_pos = nil
|
|
||||||
table.remove(Lines, Cursor1.line)
|
table.remove(Lines, Cursor1.line)
|
||||||
end
|
end
|
||||||
Cursor1.line = Cursor1.line-1
|
Cursor1.line = Cursor1.line-1
|
||||||
|
@ -250,8 +247,7 @@ function Text.keychord_pressed(chord)
|
||||||
else
|
else
|
||||||
Lines[Cursor1.line].data = string.sub(Lines[Cursor1.line].data, 1, byte_start-1)
|
Lines[Cursor1.line].data = string.sub(Lines[Cursor1.line].data, 1, byte_start-1)
|
||||||
end
|
end
|
||||||
Lines[Cursor1.line].fragments = nil
|
Text.clear_cache(Lines[Cursor1.line])
|
||||||
Lines[Cursor1.line].screen_line_starting_pos = nil
|
|
||||||
-- no change to Cursor1.pos
|
-- no change to Cursor1.pos
|
||||||
end
|
end
|
||||||
elseif Cursor1.line < #Lines then
|
elseif Cursor1.line < #Lines then
|
||||||
|
@ -260,8 +256,7 @@ function Text.keychord_pressed(chord)
|
||||||
else
|
else
|
||||||
-- join lines
|
-- join lines
|
||||||
Lines[Cursor1.line].data = Lines[Cursor1.line].data..Lines[Cursor1.line+1].data
|
Lines[Cursor1.line].data = Lines[Cursor1.line].data..Lines[Cursor1.line+1].data
|
||||||
Lines[Cursor1.line].fragments = nil
|
Text.clear_cache(Lines[Cursor1.line])
|
||||||
Lines[Cursor1.line].screen_line_starting_pos = nil
|
|
||||||
table.remove(Lines, Cursor1.line+1)
|
table.remove(Lines, Cursor1.line+1)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -354,10 +349,8 @@ function Text.insert_return()
|
||||||
local byte_offset = Text.offset(Lines[Cursor1.line].data, Cursor1.pos)
|
local byte_offset = Text.offset(Lines[Cursor1.line].data, Cursor1.pos)
|
||||||
table.insert(Lines, Cursor1.line+1, {mode='text', data=string.sub(Lines[Cursor1.line].data, byte_offset)})
|
table.insert(Lines, Cursor1.line+1, {mode='text', data=string.sub(Lines[Cursor1.line].data, byte_offset)})
|
||||||
Lines[Cursor1.line].data = string.sub(Lines[Cursor1.line].data, 1, byte_offset-1)
|
Lines[Cursor1.line].data = string.sub(Lines[Cursor1.line].data, 1, byte_offset-1)
|
||||||
Lines[Cursor1.line].fragments = nil
|
Text.clear_cache(Lines[Cursor1.line])
|
||||||
Lines[Cursor1.line].screen_line_starting_pos = nil
|
Text.clear_cache(Lines[Cursor1.line+1])
|
||||||
Lines[Cursor1.line+1].fragments = nil
|
|
||||||
Lines[Cursor1.line+1].screen_line_starting_pos = nil
|
|
||||||
Cursor1.line = Cursor1.line+1
|
Cursor1.line = Cursor1.line+1
|
||||||
Cursor1.pos = 1
|
Cursor1.pos = 1
|
||||||
end
|
end
|
||||||
|
@ -883,9 +876,13 @@ function Text.redraw_all()
|
||||||
--? print('clearing fragments')
|
--? print('clearing fragments')
|
||||||
for _,line in ipairs(Lines) do
|
for _,line in ipairs(Lines) do
|
||||||
line.y = nil
|
line.y = nil
|
||||||
line.fragments = nil
|
Text.clear_cache(line)
|
||||||
line.screen_line_starting_pos = nil
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function Text.clear_cache(line)
|
||||||
|
line.fragments = nil
|
||||||
|
line.screen_line_starting_pos = nil
|
||||||
|
end
|
||||||
|
|
||||||
return Text
|
return Text
|
||||||
|
|
Loading…
Reference in New Issue