Mercurial Hosting > editor
comparison src/luan_editor/find.luan @ 70:f4e393a13d59
no find toggle
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Tue, 10 Jun 2025 22:34:24 -0600 |
parents | 3867e9e1b94c |
children |
comparison
equal
deleted
inserted
replaced
69:3867e9e1b94c | 70:f4e393a13d59 |
---|---|
187 text = "Replace All" | 187 text = "Replace All" |
188 action = "replace_all" | 188 action = "replace_all" |
189 action_listener = replace_match | 189 action_listener = replace_match |
190 } | 190 } |
191 new_panel{ | 191 new_panel{ |
192 constraints = "span,wrap" | 192 constraints = "span,grow,wrap" |
193 layout = new_mig_layout("insets 0,gap 16px") | 193 layout = new_mig_layout("insets 0,gap 16px") |
194 children = { | 194 children = { |
195 regex_check_box | 195 regex_check_box |
196 new_button{ | 196 new_button{ |
197 text = "Learn About Regular Expressions" | 197 text = "Learn About Regular Expressions" |
198 action_listener = function(_) | 198 action_listener = function(_) |
199 browse("https://www.reactionary.software/learn.html#regex") | 199 browse("https://www.reactionary.software/learn.html#regex") |
200 end | 200 end |
201 } | 201 } |
202 new_button{ | |
203 constraints = "pushx, align right" | |
204 text = "Close" | |
205 action_listener = function(_) | |
206 window.hide_find_panel() | |
207 end | |
208 } | |
202 } | 209 } |
203 } | 210 } |
204 } | 211 } |
205 } | 212 } |
206 function window.show_find_panel(is_visible) | 213 function window.show_find_panel() |
207 find_panel.is_visible = is_visible | 214 find_panel.is_visible = true |
208 if is_visible then | 215 find_field.request_focus_in_window() |
209 find_field.request_focus_in_window() | 216 find_field.select_all() |
210 find_field.select_all() | 217 end |
211 else | 218 function window.hide_find_panel() |
212 text_area.clear_hightlights() | 219 find_panel.is_visible = false |
213 end | 220 text_area.clear_hightlights() |
214 end | 221 end |
215 function window.find_case_insensitive(_) | 222 function window.find_case_insensitive(_) |
216 find_panel.visible = true | 223 find_panel.is_visible = true |
217 window.find_menu_item.is_selected = true | |
218 regex_check_box.is_selected = true | 224 regex_check_box.is_selected = true |
219 find_field.text = "(?i)\Q\E" | 225 find_field.text = "(?i)\Q\E" |
220 find_field.set_selection(7) | 226 find_field.set_selection(7) |
221 find_field.request_focus_in_window() | 227 find_field.request_focus_in_window() |
222 status_bar.text = [[Put search text between "\Q" and "\E"]] | 228 status_bar.text = [[Put search text between "\Q" and "\E"]] |
223 end | 229 end |
224 function window.tabs_to_spaces(_) | 230 function window.tabs_to_spaces(_) |
225 find_panel.visible = true | 231 find_panel.is_visible = true |
226 window.find_menu_item.is_selected = true | |
227 regex_check_box.is_selected = true | 232 regex_check_box.is_selected = true |
228 find_field.text = [[(?m)^(\t*)\t]] | 233 find_field.text = [[(?m)^(\t*)\t]] |
229 local spaces = repeated( " ", text_area.tab_size ) | 234 local spaces = repeated( " ", text_area.tab_size ) |
230 replace_field.text = "$1"..spaces | 235 replace_field.text = "$1"..spaces |
231 status_bar.text = [[Do "Replace All" until 0 replacements]] | 236 status_bar.text = [[Do "Replace All" until 0 replacements]] |
232 end | 237 end |
233 function window.spaces_to_tabs(_) | 238 function window.spaces_to_tabs(_) |
234 find_panel.visible = true | 239 find_panel.is_visible = true |
235 window.find_menu_item.is_selected = true | |
236 regex_check_box.is_selected = true | 240 regex_check_box.is_selected = true |
237 local tab_size = text_area.tab_size | 241 local tab_size = text_area.tab_size |
238 find_field.text = `%>(?m)^(( {<%=tab_size%>})*) {<%=tab_size%>}<%` | 242 find_field.text = `%>(?m)^(( {<%=tab_size%>})*) {<%=tab_size%>}<%` |
239 replace_field.text = "$1\t" | 243 replace_field.text = "$1\t" |
240 status_bar.text = [[Do "Replace All" until 0 replacements]] | 244 status_bar.text = [[Do "Replace All" until 0 replacements]] |