Merge lines.love
This commit is contained in:
commit
fdb2172843
|
@ -5,6 +5,10 @@ record those here.
|
||||||
|
|
||||||
Initializing settings:
|
Initializing settings:
|
||||||
- delete app settings, start; window opens running the text editor
|
- delete app settings, start; window opens running the text editor
|
||||||
|
- run with a filename on commandline, scroll around, quit; restart without a filename; window opens running the text editor in same position+dimensions
|
||||||
|
- run with a filename on commandline, scroll around, quit; restart with same filename; window opens running the text editor in same position+dimensions
|
||||||
|
- run with a filename on commandline, scroll around, quit; restart with new filename; window opens new filename with cursor up top
|
||||||
|
- run editor, scroll around, move cursor to end of some line, quit; restart with new filename; window opens running the text editor in same position+dimensions
|
||||||
- quit while running the text editor, restart; window opens running the text editor in same position+dimensions
|
- quit while running the text editor, restart; window opens running the text editor in same position+dimensions
|
||||||
- quit while editing source (color; no selection), restart; window opens editing source in same position+dimensions
|
- quit while editing source (color; no selection), restart; window opens editing source in same position+dimensions
|
||||||
- start out running the text editor, move window, press ctrl+e twice; window is running text editor in same position+dimensions
|
- start out running the text editor, move window, press ctrl+e twice; window is running text editor in same position+dimensions
|
||||||
|
|
12
edit.lua
12
edit.lua
|
@ -73,7 +73,7 @@ function edit.check_locs(State)
|
||||||
-- if State is inconsistent (i.e. file changed by some other program),
|
-- if State is inconsistent (i.e. file changed by some other program),
|
||||||
-- throw away all cursor state entirely
|
-- throw away all cursor state entirely
|
||||||
if edit.invalid1(State, State.screen_top1)
|
if edit.invalid1(State, State.screen_top1)
|
||||||
or edit.invalid1(State, State.cursor1)
|
or edit.invalid_cursor1(State)
|
||||||
or not Text.le1(State.screen_top1, State.cursor1) then
|
or not Text.le1(State.screen_top1, State.cursor1) then
|
||||||
State.screen_top1 = {line=1, pos=1}
|
State.screen_top1 = {line=1, pos=1}
|
||||||
State.cursor1 = {line=1, pos=1}
|
State.cursor1 = {line=1, pos=1}
|
||||||
|
@ -87,6 +87,16 @@ function edit.invalid1(State, loc1)
|
||||||
return loc1.pos > #State.lines[loc1.line].data
|
return loc1.pos > #State.lines[loc1.line].data
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- cursor loc in particular differs from other locs in one way:
|
||||||
|
-- pos might occur just after end of line
|
||||||
|
function edit.invalid_cursor1(State)
|
||||||
|
local cursor1 = State.cursor1
|
||||||
|
if cursor1.line > #State.lines then return true end
|
||||||
|
local l = State.lines[cursor1.line]
|
||||||
|
if l.mode ~= 'text' then return false end -- pos is irrelevant to validity for a drawing line
|
||||||
|
return cursor1.pos > #State.lines[cursor1.line].data + 1
|
||||||
|
end
|
||||||
|
|
||||||
-- return y drawn until
|
-- return y drawn until
|
||||||
function edit.draw(State)
|
function edit.draw(State)
|
||||||
App.color(Text_color)
|
App.color(Text_color)
|
||||||
|
|
15
run.lua
15
run.lua
|
@ -19,7 +19,7 @@ function run.initialize(arg)
|
||||||
run.initialize_default_settings()
|
run.initialize_default_settings()
|
||||||
end
|
end
|
||||||
|
|
||||||
if #arg > 0 then
|
if #arg > 0 and Editor_state.filename ~= absolutize(arg[1]) then
|
||||||
Editor_state.filename = arg[1]
|
Editor_state.filename = arg[1]
|
||||||
load_from_disk(Editor_state)
|
load_from_disk(Editor_state)
|
||||||
Text.redraw_all(Editor_state)
|
Text.redraw_all(Editor_state)
|
||||||
|
@ -154,19 +154,22 @@ function run.settings()
|
||||||
if Current_app == 'run' then
|
if Current_app == 'run' then
|
||||||
Settings.x, Settings.y, Settings.displayindex = App.screen.position()
|
Settings.x, Settings.y, Settings.displayindex = App.screen.position()
|
||||||
end
|
end
|
||||||
local filename = Editor_state.filename
|
|
||||||
if is_relative_path(filename) then
|
|
||||||
filename = love.filesystem.getWorkingDirectory()..'/'..filename -- '/' should work even on Windows
|
|
||||||
end
|
|
||||||
return {
|
return {
|
||||||
x=Settings.x, y=Settings.y, displayindex=Settings.displayindex,
|
x=Settings.x, y=Settings.y, displayindex=Settings.displayindex,
|
||||||
width=App.screen.width, height=App.screen.height,
|
width=App.screen.width, height=App.screen.height,
|
||||||
font_height=Editor_state.font_height,
|
font_height=Editor_state.font_height,
|
||||||
filename=filename,
|
filename=absolutize(Editor_state.filename),
|
||||||
screen_top=Editor_state.screen_top1, cursor=Editor_state.cursor1
|
screen_top=Editor_state.screen_top1, cursor=Editor_state.cursor1
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function absolutize(path)
|
||||||
|
if is_relative_path(path) then
|
||||||
|
return love.filesystem.getWorkingDirectory()..'/'..path -- '/' should work even on Windows
|
||||||
|
end
|
||||||
|
return path
|
||||||
|
end
|
||||||
|
|
||||||
function run.mouse_press(x,y, mouse_button)
|
function run.mouse_press(x,y, mouse_button)
|
||||||
Cursor_time = 0 -- ensure cursor is visible immediately after it moves
|
Cursor_time = 0 -- ensure cursor is visible immediately after it moves
|
||||||
return edit.mouse_press(Editor_state, x,y, mouse_button)
|
return edit.mouse_press(Editor_state, x,y, mouse_button)
|
||||||
|
|
Loading…
Reference in New Issue