Mercurial Hosting > editor
comparison editor.luan @ 11:538cb5ad031c
start line numbers
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Thu, 03 Apr 2025 14:34:55 -0600 |
parents | a83c8842ca3b |
children | 27f2e1aaf8ff |
comparison
equal
deleted
inserted
replaced
10:a83c8842ca3b | 11:538cb5ad031c |
---|---|
9 local Swing = require "luan:swing/Swing.luan" | 9 local Swing = require "luan:swing/Swing.luan" |
10 local new_frame = require("luan:swing/Frame.luan").new or error() | 10 local new_frame = require("luan:swing/Frame.luan").new or error() |
11 local new_label = require("luan:swing/Label.luan").new or error() | 11 local new_label = require("luan:swing/Label.luan").new or error() |
12 local new_text_area = require("luan:swing/Text_area.luan").new or error() | 12 local new_text_area = require("luan:swing/Text_area.luan").new or error() |
13 local new_scroll_pane = require("luan:swing/Scroll_pane.luan").new or error() | 13 local new_scroll_pane = require("luan:swing/Scroll_pane.luan").new or error() |
14 local new_list = require("luan:swing/List.luan").new or error() | 14 local List = require "luan:swing/List.luan" |
15 local new_default_list = List.new_default_list or error() | |
16 local new_text_area_line_numbers = List.new_text_area_line_numbers or error() | |
15 local new_menu_bar = require("luan:swing/Menu_bar.luan").new or error() | 17 local new_menu_bar = require("luan:swing/Menu_bar.luan").new or error() |
16 local new_menu = require("luan:swing/Menu.luan").new or error() | 18 local new_menu = require("luan:swing/Menu.luan").new or error() |
17 local new_menu_item = require("luan:swing/Menu_item.luan").new or error() | 19 local new_menu_item = require("luan:swing/Menu_item.luan").new or error() |
18 local new_check_box_menu_item = require("luan:swing/Check_box_menu_item.luan").new or error() | 20 local new_check_box_menu_item = require("luan:swing/Check_box_menu_item.luan").new or error() |
19 local Logging = require "luan:logging/Logging.luan" | 21 local Logging = require "luan:logging/Logging.luan" |
83 end | 85 end |
84 local function update_undo_redo() | 86 local function update_undo_redo() |
85 undo.set_enabled(document.can_undo()) | 87 undo.set_enabled(document.can_undo()) |
86 redo.set_enabled(document.can_redo()) | 88 redo.set_enabled(document.can_redo()) |
87 end | 89 end |
88 edit_menu.update_undo_redo = update_undo_redo -- prevent gc | 90 edit_menu.dont_gc(update_undo_redo) |
89 update_undo_redo() | 91 update_undo_redo() |
90 document.add_undo_listener(update_undo_redo) | 92 document.add_undo_listener(update_undo_redo) |
91 edit_menu.add_separator() | 93 edit_menu.add_separator() |
92 do | 94 do |
93 local cut = new_menu_item() | 95 local cut = new_menu_item() |
170 s = s.." *" | 172 s = s.." *" |
171 end | 173 end |
172 frame.title = s | 174 frame.title = s |
173 end | 175 end |
174 set_title() | 176 set_title() |
175 text_area.set_title = set_title -- no gc | 177 text_area.dont_gc(set_title) |
176 text_area.document.add_undo_listener(set_title) | 178 text_area.document.add_undo_listener(set_title) |
177 text_area.rows = 10 | 179 text_area.rows = 10 |
178 text_area.columns = 20 | 180 text_area.columns = 20 |
179 text_area.wrap_style_word = true | 181 text_area.wrap_style_word = true |
180 text_area.line_wrap = true | 182 text_area.line_wrap = true |
181 text_area.tab_size = 4 | 183 text_area.tab_size = 4 |
182 text_area.set_font{ family="Monospaced", size=13 } | 184 text_area.set_font{ family="Monospaced", size=13 } |
183 text_area.caret_position = 0 | 185 text_area.caret_position = 0 |
184 --print(text_area.line_count) | 186 --print(text_area.line_count) |
185 local scroll_pane = new_scroll_pane(text_area) | 187 local scroll_pane = new_scroll_pane(text_area) |
186 local list = new_list() | 188 local list = new_text_area_line_numbers(text_area) |
187 list.add_element("1") | 189 --print(list.size) |
188 list.add_element("2") | 190 scroll_pane.set_row_header_view(list) |
189 list.add_element("3") | |
190 --scroll_pane.set_row_header_view(list) | |
191 frame.add(scroll_pane) | 191 frame.add(scroll_pane) |
192 function window.open() | 192 function window.open() |
193 local file_chooser = frame.file_chooser_load() | 193 local file_chooser = frame.file_chooser_load() |
194 if file ~= nil then | 194 if file ~= nil then |
195 file_chooser.directory = file.parent() | 195 file_chooser.directory = file.parent() |