comparison editor.luan @ 13:2baecd73d6bb

line numbers
author Franklin Schmidt <fschmidt@gmail.com>
date Sat, 05 Apr 2025 08:21:52 -0600
parents 27f2e1aaf8ff
children 357fdbf446cb
comparison
equal deleted inserted replaced
12:27f2e1aaf8ff 13:2baecd73d6bb
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 List = require "luan:swing/List.luan" 14 local new_text_area_line_numbers = require("luan:swing/TextAreaLineNumbers.luan").new or error()
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()
17 local new_menu_bar = require("luan:swing/Menu_bar.luan").new or error() 15 local new_menu_bar = require("luan:swing/Menu_bar.luan").new or error()
18 local new_menu = require("luan:swing/Menu.luan").new or error() 16 local new_menu = require("luan:swing/Menu.luan").new or error()
19 local new_menu_item = require("luan:swing/Menu_item.luan").new or error() 17 local new_menu_item = require("luan:swing/Menu_item.luan").new or error()
20 local new_check_box_menu_item = require("luan:swing/Check_box_menu_item.luan").new or error() 18 local new_check_box_menu_item = require("luan:swing/Check_box_menu_item.luan").new or error()
21 local int_to_color = require("luan:swing/Color.luan").int_to_color or error() 19 local int_to_color = require("luan:swing/Color.luan").int_to_color or error()
20 local create_empty_border = require("luan:swing/Border.luan").create_empty_border or error()
22 local Logging = require "luan:logging/Logging.luan" 21 local Logging = require "luan:logging/Logging.luan"
23 local logger = Logging.logger "editor" 22 local logger = Logging.logger "editor"
24 23
25 24
26 local new_window 25 local new_window
184 text_area.tab_size = 4 183 text_area.tab_size = 4
185 text_area.set_font{ family="Monospaced", size=13 } 184 text_area.set_font{ family="Monospaced", size=13 }
186 text_area.caret_position = 0 185 text_area.caret_position = 0
187 --print(text_area.line_count) 186 --print(text_area.line_count)
188 local scroll_pane = new_scroll_pane(text_area) 187 local scroll_pane = new_scroll_pane(text_area)
189 local list = new_text_area_line_numbers(text_area) 188 local line_numbers = new_text_area_line_numbers(text_area)
190 list.foreground_color = int_to_color(0x888888) 189 line_numbers.foreground_color = int_to_color(0x888888)
191 --print(list.size) 190 line_numbers.border = create_empty_border(0,8,0,8)
192 scroll_pane.set_row_header_view(list) 191 scroll_pane.set_row_header_view(line_numbers)
193 frame.add(scroll_pane) 192 frame.add(scroll_pane)
194 function window.open() 193 function window.open()
195 local file_chooser = frame.file_chooser_load() 194 local file_chooser = frame.file_chooser_load()
196 if file ~= nil then 195 if file ~= nil then
197 file_chooser.directory = file.parent() 196 file_chooser.directory = file.parent()