aboutsummaryrefslogtreecommitdiff
path: root/modules/textadept/menu.lua
diff options
context:
space:
mode:
Diffstat (limited to 'modules/textadept/menu.lua')
-rw-r--r--modules/textadept/menu.lua280
1 files changed, 137 insertions, 143 deletions
diff --git a/modules/textadept/menu.lua b/modules/textadept/menu.lua
index f29919fb..f02c27a2 100644
--- a/modules/textadept/menu.lua
+++ b/modules/textadept/menu.lua
@@ -27,7 +27,7 @@ local _L, io, gui, gui_find, buffer, view = _L, io, gui, gui.find, buffer, view
local m_textadept, m_editing = _M.textadept, _M.textadept.editing
local m_bookmarks, Msnippets = m_textadept.bookmarks, m_textadept.snippets
local utils = m_textadept.keys.utils
-local SEPARATOR, c = { '' }, _SCINTILLA.constants
+local SEPARATOR, c = {''}, _SCINTILLA.constants
---
-- Contains the main menubar.
@@ -36,190 +36,184 @@ local SEPARATOR, c = { '' }, _SCINTILLA.constants
-- @name menubar
M.menubar = {
{ title = _L['_File'],
- { _L['_New'], new_buffer },
- { _L['_Open'], io.open_file },
- { _L['Open _Recent...'], io.open_recent_file },
- { _L['Re_load'], buffer.reload },
- { _L['_Save'], buffer.save },
- { _L['Save _As'], buffer.save_as },
+ {_L['_New'], new_buffer},
+ {_L['_Open'], io.open_file},
+ {_L['Open _Recent...'], io.open_recent_file},
+ {_L['Re_load'], buffer.reload},
+ {_L['_Save'], buffer.save},
+ {_L['Save _As'], buffer.save_as},
SEPARATOR,
- { _L['_Close'], buffer.close },
- { _L['Close All'], io.close_all },
+ {_L['_Close'], buffer.close},
+ {_L['Close All'], io.close_all},
SEPARATOR,
- { _L['Loa_d Session...'], m_textadept.session.load },
- { _L['Sav_e Session...'], m_textadept.session.save },
+ {_L['Loa_d Session...'], m_textadept.session.load},
+ {_L['Sav_e Session...'], m_textadept.session.save},
SEPARATOR,
- { _L['_Quit'], quit },
+ {_L['_Quit'], quit},
},
{ title = _L['_Edit'],
- { _L['_Undo'], buffer.undo },
- { _L['_Redo'], buffer.redo },
+ {_L['_Undo'], buffer.undo},
+ {_L['_Redo'], buffer.redo},
SEPARATOR,
- { _L['Cu_t'], buffer.cut },
- { _L['_Copy'], buffer.copy },
- { _L['_Paste'], buffer.paste },
- { _L['Duplicate _Line'], buffer.line_duplicate },
- { _L['_Delete'], buffer.clear },
- { _L['D_elete Word'], utils.delete_word },
- { _L['Select _All'], buffer.select_all },
+ {_L['Cu_t'], buffer.cut},
+ {_L['_Copy'], buffer.copy},
+ {_L['_Paste'], buffer.paste},
+ {_L['Duplicate _Line'], buffer.line_duplicate},
+ {_L['_Delete'], buffer.clear},
+ {_L['D_elete Word'], utils.delete_word},
+ {_L['Select _All'], buffer.select_all},
SEPARATOR,
- { _L['_Match Brace'], m_editing.match_brace },
- { _L['Complete _Word'], { m_editing.autocomplete_word, '%w_' } },
- { _L['_Highlight Word'], m_editing.highlight_word },
- { _L['Toggle _Block Comment'], m_editing.block_comment },
- { _L['T_ranspose Characters'], m_editing.transpose_chars },
- { _L['_Join Lines'], m_editing.join_lines },
+ {_L['_Match Brace'], m_editing.match_brace},
+ {_L['Complete _Word'], {m_editing.autocomplete_word, '%w_'}},
+ {_L['_Highlight Word'], m_editing.highlight_word},
+ {_L['Toggle _Block Comment'], m_editing.block_comment},
+ {_L['T_ranspose Characters'], m_editing.transpose_chars},
+ {_L['_Join Lines'], m_editing.join_lines},
{ title = _L['_Select'],
- { _L['Select to _Matching Brace'], { m_editing.match_brace, 'select' } },
- { _L['Select between _XML Tags'],
- { m_editing.select_enclosed, '>', '<' } },
- { _L['Select in XML _Tag'], { m_editing.select_enclosed, '<', '>' } },
- { _L['Select in _Single Quotes'],
- { m_editing.select_enclosed, "'", "'" } },
- { _L['Select in _Double Quotes'],
- { m_editing.select_enclosed, '"', '"' } },
- { _L['Select in _Parentheses'], { m_editing.select_enclosed, '(', ')' } },
- { _L['Select in _Brackets'], { m_editing.select_enclosed, '[', ']' } },
- { _L['Select in B_races'], { m_editing.select_enclosed, '{', '}' } },
- { _L['Select _Word'], m_editing.select_word },
- { _L['Select _Line'], m_editing.select_line },
- { _L['Select Para_graph'], m_editing.select_paragraph },
- { _L['Select _Indented Block'], m_editing.select_indented_block },
+ {_L['Select to _Matching Brace'], {m_editing.match_brace, 'select'}},
+ {_L['Select between _XML Tags'], {m_editing.select_enclosed, '>', '<'}},
+ {_L['Select in XML _Tag'], {m_editing.select_enclosed, '<', '>'}},
+ {_L['Select in _Single Quotes'], {m_editing.select_enclosed, "'", "'"}},
+ {_L['Select in _Double Quotes'], {m_editing.select_enclosed, '"', '"'}},
+ {_L['Select in _Parentheses'], {m_editing.select_enclosed, '(', ')'}},
+ {_L['Select in _Brackets'], {m_editing.select_enclosed, '[', ']'}},
+ {_L['Select in B_races'], {m_editing.select_enclosed, '{', '}'}},
+ {_L['Select _Word'], m_editing.select_word},
+ {_L['Select _Line'], m_editing.select_line},
+ {_L['Select Para_graph'], m_editing.select_paragraph},
+ {_L['Select _Indented Block'], m_editing.select_indented_block},
},
{ title = _L['Selectio_n'],
- { _L['_Upper Case Selection'], buffer.upper_case },
- { _L['_Lower Case Selection'], buffer.lower_case },
+ {_L['_Upper Case Selection'], buffer.upper_case},
+ {_L['_Lower Case Selection'], buffer.lower_case},
SEPARATOR,
- { _L['Enclose as _XML Tags'], utils.enclose_as_xml_tags },
- { _L['Enclose as Single XML _Tag'], { m_editing.enclose, '<', ' />' } },
- { _L['Enclose in Single _Quotes'], { m_editing.enclose, "'", "'" } },
- { _L['Enclose in _Double Quotes'], { m_editing.enclose, '"', '"' } },
- { _L['Enclose in _Parentheses'], { m_editing.enclose, '(', ')' } },
- { _L['Enclose in _Brackets'], { m_editing.enclose, '[', ']' } },
- { _L['Enclose in B_races'], { m_editing.enclose, '{', '}' } },
+ {_L['Enclose as _XML Tags'], utils.enclose_as_xml_tags},
+ {_L['Enclose as Single XML _Tag'], {m_editing.enclose, '<', ' />'}},
+ {_L['Enclose in Single _Quotes'], {m_editing.enclose, "'", "'"}},
+ {_L['Enclose in _Double Quotes'], {m_editing.enclose, '"', '"'}},
+ {_L['Enclose in _Parentheses'], {m_editing.enclose, '(', ')'}},
+ {_L['Enclose in _Brackets'], {m_editing.enclose, '[', ']'}},
+ {_L['Enclose in B_races'], {m_editing.enclose, '{', '}'}},
SEPARATOR,
- { _L['_Grow Selection'], { m_editing.grow_selection, 1 } },
- { _L['_Shrink Selection'], { m_editing.grow_selection, -1 } },
+ {_L['_Grow Selection'], {m_editing.grow_selection, 1}},
+ {_L['_Shrink Selection'], {m_editing.grow_selection, -1}},
SEPARATOR,
- { _L['_Move Selected Lines Up'], buffer.move_selected_lines_up },
- { _L['Move Selected Lines Do_wn'], buffer.move_selected_lines_down },
+ {_L['_Move Selected Lines Up'], buffer.move_selected_lines_up},
+ {_L['Move Selected Lines Do_wn'], buffer.move_selected_lines_down},
},
},
{ title = _L['_Search'],
- { _L['_Find'], gui_find.focus },
- { _L['Find _Next'], gui_find.find_next },
- { _L['Find _Previous'], gui_find.find_prev },
- { _L['_Replace'], gui_find.replace },
- { _L['Replace _All'], gui_find.replace_all },
- { _L['Find _Incremental'], gui_find.find_incremental },
+ {_L['_Find'], gui_find.focus},
+ {_L['Find _Next'], gui_find.find_next},
+ {_L['Find _Previous'], gui_find.find_prev},
+ {_L['_Replace'], gui_find.replace},
+ {_L['Replace _All'], gui_find.replace_all},
+ {_L['Find _Incremental'], gui_find.find_incremental},
SEPARATOR,
- { _L['Find in Fi_les'], utils.find_in_files },
- { _L['Goto Nex_t File Found'], { gui_find.goto_file_in_list, true } },
- { _L['Goto Previou_s File Found'], { gui_find.goto_file_in_list, false } },
+ {_L['Find in Fi_les'], utils.find_in_files},
+ {_L['Goto Nex_t File Found'], {gui_find.goto_file_in_list, true}},
+ {_L['Goto Previou_s File Found'], {gui_find.goto_file_in_list, false}},
SEPARATOR,
- { _L['_Jump to'], m_editing.goto_line },
+ {_L['_Jump to'], m_editing.goto_line},
},
{ title = _L['_Tools'],
- { _L['Command _Entry'], gui.command_entry.focus },
- { _L['Select Co_mmand'], utils.select_command },
+ {_L['Command _Entry'], gui.command_entry.focus},
+ {_L['Select Co_mmand'], utils.select_command},
SEPARATOR,
- { _L['_Run'], m_textadept.run.run },
- { _L['_Compile'], m_textadept.run.compile },
- { _L['_Filter Through'], _M.textadept.filter_through.filter_through },
+ {_L['_Run'], m_textadept.run.run},
+ {_L['_Compile'], m_textadept.run.compile},
+ {_L['_Filter Through'], _M.textadept.filter_through.filter_through},
SEPARATOR,
{ title = _L['_Adeptsense'],
- { _L['_Complete Symbol'], m_textadept.adeptsense.complete },
- { _L['Show _Documentation'], m_textadept.adeptsense.show_apidoc },
+ {_L['_Complete Symbol'], m_textadept.adeptsense.complete},
+ {_L['Show _Documentation'], m_textadept.adeptsense.show_apidoc},
},
{ title = _L['_Bookmark'],
- { _L['_Toggle Bookmark'], m_bookmarks.toggle },
- { _L['_Clear Bookmarks'], m_bookmarks.clear },
- { _L['_Next Bookmark'], m_bookmarks.goto_next },
- { _L['_Previous Bookmark'], m_bookmarks.goto_prev },
- { _L['_Goto Bookmark...'], m_bookmarks.goto_bookmark },
+ {_L['_Toggle Bookmark'], m_bookmarks.toggle},
+ {_L['_Clear Bookmarks'], m_bookmarks.clear},
+ {_L['_Next Bookmark'], m_bookmarks.goto_next},
+ {_L['_Previous Bookmark'], m_bookmarks.goto_prev},
+ {_L['_Goto Bookmark...'], m_bookmarks.goto_bookmark},
},
{ title = _L['Snap_open'],
- { _L['Snapopen _User Home'], { m_textadept.snapopen.open, _USERHOME } },
- { _L['Snapopen _Textadept Home'], { m_textadept.snapopen.open, _HOME } },
- { _L['Snapopen _Current Directory'], utils.snapopen_filedir },
+ {_L['Snapopen _User Home'], {m_textadept.snapopen.open, _USERHOME}},
+ {_L['Snapopen _Textadept Home'], {m_textadept.snapopen.open, _HOME}},
+ {_L['Snapopen _Current Directory'], utils.snapopen_filedir},
},
{ title = _L['_Snippets'],
- { _L['_Insert Snippet...'], Msnippets._select },
- { _L['_Expand Snippet/Next Placeholder'], Msnippets._insert },
- { _L['_Previous Snippet Placeholder'], Msnippets._previous },
- { _L['_Cancel Snippet'], Msnippets._cancel_current },
+ {_L['_Insert Snippet...'], Msnippets._select},
+ {_L['_Expand Snippet/Next Placeholder'], Msnippets._insert},
+ {_L['_Previous Snippet Placeholder'], Msnippets._previous},
+ {_L['_Cancel Snippet'], Msnippets._cancel_current},
},
SEPARATOR,
- { _L['Show St_yle'], utils.show_style },
+ {_L['Show St_yle'], utils.show_style},
},
{ title = _L['_Buffer'],
- { _L['_Next Buffer'], { view.goto_buffer, view, 1, true } },
- { _L['_Previous Buffer'], { view.goto_buffer, view, -1, true } },
- { _L['_Switch to Buffer...'], gui.switch_buffer },
+ {_L['_Next Buffer'], {view.goto_buffer, view, 1, true}},
+ {_L['_Previous Buffer'], {view.goto_buffer, view, -1, true}},
+ {_L['_Switch to Buffer...'], gui.switch_buffer},
SEPARATOR,
{ title = _L['_Indentation'],
- { _L['Tab width: _2'], { utils.set_indentation, 2 } },
- { _L['Tab width: _3'], { utils.set_indentation, 3 } },
- { _L['Tab width: _4'], { utils.set_indentation, 4 } },
- { _L['Tab width: _8'], { utils.set_indentation, 8 } },
+ {_L['Tab width: _2'], {utils.set_indentation, 2}},
+ {_L['Tab width: _3'], {utils.set_indentation, 3}},
+ {_L['Tab width: _4'], {utils.set_indentation, 4}},
+ {_L['Tab width: _8'], {utils.set_indentation, 8}},
SEPARATOR,
- { _L['_Toggle Use Tabs'], { utils.toggle_property, 'use_tabs' } },
- { _L['_Convert Indentation'], m_editing.convert_indentation },
+ {_L['_Toggle Use Tabs'], {utils.toggle_property, 'use_tabs'}},
+ {_L['_Convert Indentation'], m_editing.convert_indentation},
},
{ title = _L['_EOL Mode'],
- { _L['CRLF'], { utils.set_eol_mode, c.SC_EOL_CRLF } },
- { _L['CR'], { utils.set_eol_mode, c.SC_EOL_CR } },
- { _L['LF'], { utils.set_eol_mode, c.SC_EOL_LF } },
+ {_L['CRLF'], {utils.set_eol_mode, c.SC_EOL_CRLF}},
+ {_L['CR'], {utils.set_eol_mode, c.SC_EOL_CR}},
+ {_L['LF'], {utils.set_eol_mode, c.SC_EOL_LF}},
},
{ title = _L['E_ncoding'],
- { _L['_UTF-8 Encoding'], { utils.set_encoding, 'UTF-8' } },
- { _L['_ASCII Encoding'], { utils.set_encoding, 'ASCII' } },
- { _L['_ISO-8859-1 Encoding'], { utils.set_encoding, 'ISO-8859-1' } },
- { _L['_MacRoman Encoding'], { utils.set_encoding, 'MacRoman' } },
- { _L['UTF-1_6 Encoding'], { utils.set_encoding, 'UTF-16LE' } },
+ {_L['_UTF-8 Encoding'], {utils.set_encoding, 'UTF-8'}},
+ {_L['_ASCII Encoding'], {utils.set_encoding, 'ASCII'}},
+ {_L['_ISO-8859-1 Encoding'], {utils.set_encoding, 'ISO-8859-1'}},
+ {_L['_MacRoman Encoding'], {utils.set_encoding, 'MacRoman'}},
+ {_L['UTF-1_6 Encoding'], {utils.set_encoding, 'UTF-16LE'}},
},
SEPARATOR,
- { _L['Select _Lexer...'], m_textadept.mime_types.select_lexer },
- { _L['_Refresh Syntax Highlighting'],
- { buffer.colourise, buffer, 0, -1 } },
+ {_L['Select _Lexer...'], m_textadept.mime_types.select_lexer},
+ {_L['_Refresh Syntax Highlighting'], {buffer.colourise, buffer, 0, -1}},
},
{ title = _L['_View'],
- { _L['_Next View'], { gui.goto_view, 1, true } },
- { _L['_Previous View'], { gui.goto_view, -1, true } },
+ {_L['_Next View'], {gui.goto_view, 1, true}},
+ {_L['_Previous View'], {gui.goto_view, -1, true}},
SEPARATOR,
- { _L['Split View _Horizontal'], { view.split, view } },
- { _L['Split View _Vertical'], { view.split, view, true } },
- { _L['_Unsplit View'], { view.unsplit, view } },
- { _L['Unsplit _All Views'], utils.unsplit_all },
- { _L['_Grow View'], { utils.grow, 10 } },
- { _L['Shrin_k View'], { utils.shrink, 10 } },
+ {_L['Split View _Horizontal'], {view.split, view}},
+ {_L['Split View _Vertical'], {view.split, view, true}},
+ {_L['_Unsplit View'], {view.unsplit, view}},
+ {_L['Unsplit _All Views'], utils.unsplit_all},
+ {_L['_Grow View'], {utils.grow, 10}},
+ {_L['Shrin_k View'], {utils.shrink, 10}},
SEPARATOR,
- { _L['Toggle Current _Fold'], utils.toggle_current_fold },
+ {_L['Toggle Current _Fold'], utils.toggle_current_fold},
SEPARATOR,
- { _L['Toggle View _EOL'], { utils.toggle_property, 'view_eol' } },
- { _L['Toggle _Wrap Mode'], { utils.toggle_property, 'wrap_mode' } },
- { _L['Toggle Show In_dent Guides'],
- { utils.toggle_property, 'indentation_guides' } },
- { _L['Toggle View White_space'], { utils.toggle_property, 'view_ws' } },
- { _L['Toggle _Virtual Space'],
- { utils.toggle_property, 'virtual_space_options',
- c.SCVS_USERACCESSIBLE } },
+ {_L['Toggle View _EOL'], {utils.toggle_property, 'view_eol'}},
+ {_L['Toggle _Wrap Mode'], {utils.toggle_property, 'wrap_mode'}},
+ {_L['Toggle Show In_dent Guides'],
+ {utils.toggle_property, 'indentation_guides'}},
+ {_L['Toggle View White_space'], {utils.toggle_property, 'view_ws'}},
+ {_L['Toggle _Virtual Space'],
+ {utils.toggle_property, 'virtual_space_options', c.SCVS_USERACCESSIBLE}},
SEPARATOR,
- { _L['Zoom _In'], buffer.zoom_in },
- { _L['Zoom _Out'], buffer.zoom_out },
- { _L['_Reset Zoom'], utils.reset_zoom },
+ {_L['Zoom _In'], buffer.zoom_in},
+ {_L['Zoom _Out'], buffer.zoom_out},
+ {_L['_Reset Zoom'], utils.reset_zoom},
SEPARATOR,
- { _L['Select _Theme...'], gui.select_theme },
+ {_L['Select _Theme...'], gui.select_theme},
},
{ title = _L['_Help'],
- { _L['Show _Manual'],
- { utils.open_webpage, _HOME..'/doc/01_Introduction.html' } },
- { _L['Show _LuaDoc'],
- { utils.open_webpage, _HOME..'/doc/api/index.html' } },
+ {_L['Show _Manual'],
+ {utils.open_webpage, _HOME..'/doc/01_Introduction.html'}},
+ {_L['Show _LuaDoc'], {utils.open_webpage, _HOME..'/doc/api/index.html'}},
SEPARATOR,
- { _L['_About'],
- { gui.dialog, 'ok-msgbox', '--title', 'Textadept', '--informative-text',
- _RELEASE, '--button1', _L['_OK'], '--no-cancel' } },
+ {_L['_About'],
+ {gui.dialog, 'ok-msgbox', '--title', 'Textadept', '--informative-text',
+ _RELEASE, '--button1', _L['_OK'], '--no-cancel'}},
},
}
@@ -229,15 +223,15 @@ M.menubar = {
-- @class table
-- @name context_menu
M.context_menu = {
- { _L['_Undo'], buffer.undo },
- { _L['_Redo'], buffer.redo },
+ {_L['_Undo'], buffer.undo},
+ {_L['_Redo'], buffer.redo},
SEPARATOR,
- { _L['Cu_t'], buffer.cut },
- { _L['_Copy'], buffer.copy },
- { _L['_Paste'], buffer.paste },
- { _L['_Delete'], buffer.clear },
+ {_L['Cu_t'], buffer.cut},
+ {_L['_Copy'], buffer.copy},
+ {_L['_Paste'], buffer.paste},
+ {_L['_Delete'], buffer.clear},
SEPARATOR,
- { _L['Select _All'], buffer.select_all }
+ {_L['Select _All'], buffer.select_all}
}
local key_shortcuts = {}
@@ -261,7 +255,7 @@ local function read_menu_table(menu, contextmenu)
local menu_id = not contextmenu and #menu_actions + 1 or
#contextmenu_actions + 1000 + 1
local key, mods = keys.get_gdk_key(key_shortcuts[get_id(f)])
- gtkmenu[#gtkmenu + 1] = { label, menu_id, key, mods }
+ gtkmenu[#gtkmenu + 1] = {label, menu_id, key, mods}
if f then
local actions = not contextmenu and menu_actions or contextmenu_actions
actions[menu_id < 1000 and menu_id or menu_id - 1000] = f
@@ -332,13 +326,13 @@ function M.set_contextmenu(menu_table)
end
if not NCURSES then M.set_contextmenu(M.context_menu) end
-local columns = { _L['Command'], _L['Key Command'] }
+local columns = {_L['Command'], _L['Key Command']}
---
-- Prompts the user with a filtered list dialog to run menu commands.
-- @name select_command
function M.select_command()
local i = gui.filteredlist(_L['Run Command'], columns, items, true,
- NCURSES and { '--width', gui.size[1] - 2 } or '')
+ NCURSES and {'--width', gui.size[1] - 2} or '')
if i then keys.run_command(commands[i + 1], type(commands[i + 1])) end
end