Mercurial Hosting > editor
changeset 24:da93a58e24aa
work
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Wed, 09 Apr 2025 11:43:31 -0600 |
parents | e4af9e024d63 |
children | ce3d1dc406a8 |
files | editor.luan |
diffstat | 1 files changed, 29 insertions(+), 29 deletions(-) [+] |
line wrap: on
line diff
--- a/editor.luan Wed Apr 09 08:58:42 2025 -0600 +++ b/editor.luan Wed Apr 09 11:43:31 2025 -0600 @@ -228,17 +228,17 @@ function new_window(file) local window = {} window.has_file = file~=nil and file.is_file() - local frame = new_frame() - window.frame = frame + local text_area = new_text_area{ + rows = 10 + columns = 20 + wrap_style_word = true + line_wrap = true + tab_size = 4 + font = { family="Monospaced", size=13 } + border = create_empty_border(0,4,0,4) + } + window.text_area = text_area local title = file and file.canonical().to_string() or "new" - frame.add_close_listener(function() - n_windows = n_windows - 1 - if n_windows == 0 then - Luan.exit() - end - end) - local text_area = new_text_area{} - window.text_area = text_area if file ~= nil then local document = documents[title] if document == nil then @@ -251,6 +251,24 @@ text_area.document.clear_unedited() end end + text_area.set_selection(0) + local frame = new_frame{ + content_pane = new_scroll_pane{ + view = text_area + row_header_view = new_text_area_line_numbers{ + text_area = text_area + foreground_color = int_to_color(0x888888) + border = create_empty_border(0,8,0,8) + } + } + } + window.frame = frame + frame.add_close_listener(function() + n_windows = n_windows - 1 + if n_windows == 0 then + Luan.exit() + end + end) local function set_title() local s = title if not text_area.document.is_unedited() then @@ -259,26 +277,8 @@ frame.title = s end set_title() - text_area.dont_gc(set_title) + window.set_title = set_title -- dont gc text_area.document.add_undo_listener(set_title) - text_area.rows = 10 - text_area.columns = 20 - text_area.wrap_style_word = true - text_area.line_wrap = true - text_area.tab_size = 4 - text_area.set_font{ family="Monospaced", size=13 } - text_area.set_selection(0) - --print(text_area.line_count) - local scroll_pane = new_scroll_pane{ - view = text_area - } - local line_numbers = new_text_area_line_numbers{ - text_area = text_area - } - line_numbers.foreground_color = int_to_color(0x888888) - line_numbers.border = create_empty_border(0,8,0,8) - scroll_pane.set_row_header_view(line_numbers) - frame.add(scroll_pane) function window.open() local file_chooser = frame.file_chooser_load() if file ~= nil then