aboutsummaryrefslogtreecommitdiff
path: root/modules/textadept/keys.lua
diff options
context:
space:
mode:
Diffstat (limited to 'modules/textadept/keys.lua')
-rw-r--r--modules/textadept/keys.lua383
1 files changed, 185 insertions, 198 deletions
diff --git a/modules/textadept/keys.lua b/modules/textadept/keys.lua
index 4d906f38..7188a5d6 100644
--- a/modules/textadept/keys.lua
+++ b/modules/textadept/keys.lua
@@ -8,8 +8,8 @@ local L = _G.locale.localize
module('_m.textadept.keys', package.seeall)
local keys = _G.keys
-local b, v = 'buffer', 'view'
-local gui = gui
+local _buffer, _view = buffer, view
+local gui, m_textadept = gui, _m.textadept
-- Utility functions used by both layouts.
local function enclose_in_tag()
@@ -68,9 +68,9 @@ if not OSX then
-- Windows and Linux key commands.
--[[
- C: D J K M U
+ C: D J K M T U
A: A B D E F G H J K L M N P T U V W X Y Z
- CS: A B C D G I J K L M N O Q T U V X Y Z
+ CS: A C D G I J K L M N O Q T U V X Y Z
SA: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
CA: A B C D E F G H J K L M N O Q R S T U W X Y Z
CSA: A B C D E F G H J K L M N O P Q R S T U V W X Y Z
@@ -81,280 +81,267 @@ if not OSX then
keys.ct = {} -- Textadept command chain
-- File
- local m_session = _m.textadept.session
- keys.cn = { new_buffer }
- keys.co = { io.open_file }
- -- TODO: { 'reload', b }
- keys.cs = { 'save', b }
- keys.cS = { 'save_as', b }
- keys.cw = { 'close', b }
- keys.cW = { io.close_all }
- -- TODO: { m_session.load } after prompting with open dialog
- -- TODO: { m_session.save } after prompting with save dialog
- keys.aq = { quit }
+ keys.cn = new_buffer
+ keys.co = io.open_file
+ -- TODO: { _buffer.reload, _buffer }
+ keys.cs = { _buffer.save, _buffer }
+ keys.cS = { _buffer.save_as, _buffer }
+ keys.cw = { _buffer.close, _buffer }
+ keys.cW = io.close_all
+ -- TODO: m_textadept.session.load after prompting with open dialog
+ -- TODO: m_textadept.session.save after prompting with save dialog
+ keys.aq = quit
-- Edit
- local m_editing = _m.textadept.editing
- keys.cz = { 'undo', b }
- keys.cy = { 'redo', b }
- keys.cx = { 'cut', b }
- keys.cc = { 'copy', b }
- keys.cv = { 'paste', b }
+ local m_editing = m_textadept.editing
+ keys.cz = { _buffer.undo, _buffer }
+ keys.cy = { _buffer.redo, _buffer }
+ keys.cx = { _buffer.cut, _buffer }
+ keys.cc = { _buffer.copy, _buffer }
+ keys.cv = { _buffer.paste, _buffer }
-- Delete is delete.
- keys.ca = { 'select_all', b }
- keys.ce = { m_editing.match_brace }
- keys.cE = { m_editing.match_brace, 'select' }
- keys['c\n'] = { m_editing.autocomplete_word, '%w_' }
+ keys.ca = { _buffer.select_all, _buffer }
+ keys.ce = m_editing.match_brace
+ keys.cE = { m_editing.match_brace, 'select' }
+ keys['c\n'] = { m_editing.autocomplete_word, '%w_' }
keys['c\n\r'] = { m_editing.autocomplete_word, '%w_' } -- win32
- keys.cq = { m_editing.block_comment }
+ keys.cq = m_editing.block_comment
-- TODO: { m_editing.current_word, 'delete' }
- keys.csh = { m_editing.highlight_word }
- -- TODO: { m_editing.transpose_chars }
- -- TODO: { m_editing.convert_indentation }
+ keys.csh = m_editing.highlight_word
+ -- TODO: m_editing.transpose_chars
+ -- TODO: m_editing.convert_indentation
keys.ac = { -- enClose in...
- t = { enclose_in_tag },
- T = { m_editing.enclose, '<', ' />' },
- ['"'] = { m_editing.enclose, '"', '"' },
- ["'"] = { m_editing.enclose, "'", "'" },
- ['('] = { m_editing.enclose, '(', ')' },
- ['['] = { m_editing.enclose, '[', ']' },
- ['{'] = { m_editing.enclose, '{', '}' },
+ t = enclose_in_tag,
+ T = { m_editing.enclose, '<', ' />' },
+ ['"'] = { m_editing.enclose, '"', '"' },
+ ["'"] = { m_editing.enclose, "'", "'" },
+ ['('] = { m_editing.enclose, '(', ')' },
+ ['['] = { m_editing.enclose, '[', ']' },
+ ['{'] = { m_editing.enclose, '{', '}' },
c = any_char_mt(m_editing.enclose),
}
keys.as = { -- select in...
- t = { m_editing.select_enclosed, '>', '<' },
+ t = { m_editing.select_enclosed, '>', '<' },
['"'] = { m_editing.select_enclosed, '"', '"' },
["'"] = { m_editing.select_enclosed, "'", "'" },
['('] = { m_editing.select_enclosed, '(', ')' },
['['] = { m_editing.select_enclosed, '[', ']' },
['{'] = { m_editing.select_enclosed, '{', '}' },
- w = { m_editing.current_word, 'select' },
- l = { m_editing.select_line },
- p = { m_editing.select_paragraph },
- b = { m_editing.select_indented_block },
- s = { m_editing.select_scope },
- g = { m_editing.grow_selection, 1 },
- c = any_char_mt(m_editing.select_enclosed),
+ w = { m_editing.current_word, 'select' },
+ l = m_editing.select_line,
+ p = m_editing.select_paragraph,
+ b = m_editing.select_indented_block,
+ s = m_editing.select_scope,
+ g = { m_editing.grow_selection, 1 },
+ c = any_char_mt(m_editing.select_enclosed),
}
-- Search
- keys.cf = { gui.find.focus } -- find/replace
- keys['f3'] = { gui.find.find_next }
+ keys.cf = gui.find.focus -- find/replace
+ keys['f3'] = gui.find.find_next
-- Find Next is an when find pane is focused.
-- Find Prev is ap when find pane is focused.
-- Replace is ar when find pane is focused.
- keys.cF = { gui.find.find_incremental }
+ keys.cF = gui.find.find_incremental
-- Find in Files is ai when find pane is focused.
- -- TODO: { gui.find.goto_file_in_list, true }
+ -- TODO: { gui.find.goto_file_in_list, true }
-- TODO: { gui.find.goto_file_in_list, false }
- keys.cg = { m_editing.goto_line }
+ keys.cg = m_editing.goto_line
-- Tools
- keys['f2'] = { gui.command_entry.focus }
+ keys['f2'] = gui.command_entry.focus
-- Run
- local m_run = _m.textadept.run
- keys.cr = { m_run.run }
- keys.cR = { m_run.compile }
- keys.ar = { _m.textadept.filter_through.filter_through }
+ keys.cr = m_textadept.run.run
+ keys.cR = m_textadept.run.compile
+ keys.ar = m_textadept.filter_through.filter_through
-- Snippets
- local m_snippets = _m.textadept.snippets
- keys['\t'] = { m_snippets._insert }
- keys['s\t'] = { m_snippets._previous }
- keys.cai = { m_snippets._cancel_current }
- keys.ai = { m_snippets._select }
+ keys['\t'] = m_textadept.snippets._insert
+ keys['s\t'] = m_textadept.snippets._previous
+ keys.cai = m_textadept.snippets._cancel_current
+ keys.ai = m_textadept.snippets._select
-- Buffers
- keys.cb = { gui.switch_buffer }
- keys['c\t'] = { 'goto_buffer', v, 1, false }
- keys['cs\t'] = { 'goto_buffer', v, -1, false }
- keys.ct.v = {
- e = { toggle_setting, 'view_eol' },
- w = { toggle_setting, 'wrap_mode' },
- i = { toggle_setting, 'indentation_guides' },
- ['\t'] = { toggle_setting, 'use_tabs' },
- [' '] = { toggle_setting, 'view_ws' },
- v = { toggle_setting, 'virtual_space_options', 2 },
+ keys.cb = gui.switch_buffer
+ keys['c\t'] = { _view.goto_buffer, _view, 1, false }
+ keys['cs\t'] = { _view.goto_buffer, _view, -1, false }
+ keys.cB = {
+ e = { toggle_setting, 'view_eol' },
+ w = { toggle_setting, 'wrap_mode' },
+ i = { toggle_setting, 'indentation_guides' },
+ ['\t'] = { toggle_setting, 'use_tabs' },
+ [' '] = { toggle_setting, 'view_ws' },
+ v = { toggle_setting, 'virtual_space_options', 2 },
}
- keys.cl = { _m.textadept.mime_types.select_lexer }
- keys['f5'] = { 'colourise', b, 0, -1 }
+ keys.cl = m_textadept.mime_types.select_lexer
+ keys['f5'] = { _buffer.colourise, _buffer, 0, -1 }
-- Views
keys.cav = {
- n = { gui.goto_view, 1, false },
- p = { gui.goto_view, -1, false },
- S = { 'split', v }, -- vertical
- s = { 'split', v, false }, -- horizontal
- w = { function() view:unsplit() return true end },
- W = { function() while view:unsplit() do end end },
- -- TODO: { function() view.size = view.size + 10 end }
- -- TODO: { function() view.size = view.size - 10 end }
+ n = { gui.goto_view, 1, false },
+ p = { gui.goto_view, -1, false },
+ S = { _view.split, _view }, -- vertical
+ s = { _view.split, _view, false }, -- horizontal
+ w = function() view:unsplit() return true end,
+ W = function() while view:unsplit() do end end,
+ -- TODO: function() view.size = view.size + 10 end
+ -- TODO: function() view.size = view.size - 10 end
}
- keys.c0 = { function() buffer.zoom = 0 end }
+ keys.c0 = function() buffer.zoom = 0 end
-- Miscellaneous not in standard menu.
- keys.ao = { show_recent_file_list }
- keys.caI = { show_style }
+ keys.ao = show_recent_file_list
+ keys.caI = show_style
else
-- Mac OSX key commands
--[[
C: J M U W X Z
- A: D E H J K L U Y
+ A: D E H J K L T U Y
CS: C D G H I J K L M O Q S T U V W X Y Z
- SA: A B C D H I J K L M N O Q R T U V X Y
+ SA: A C D H I J K L M N O Q R T U V X Y
CA: A C E J K L M N O Q S U V W X Y Z
CSA: A C D E H J K L M N O P Q R S T U V W X Y Z
]]--
keys.clear_sequence = 'aesc'
- keys.at = {} -- Textadept command chain
-
-- File
- local m_session = _m.textadept.session
- keys.an = { new_buffer }
- keys.ao = { io.open_file }
- -- TODO: { 'reload', b }
- keys.as = { 'save', b }
- keys.aS = { 'save_as', b }
- keys.aw = { 'close', b }
+ keys.an = new_buffer
+ keys.ao = io.open_file
+ -- TODO: { _buffer.reload, _buffer }
+ keys.as = { _buffer.save, _buffer }
+ keys.aS = { _buffer.save_as, _buffer }
+ keys.aw = { _buffer.close, _buffer }
keys.aW = { io.close_all }
- -- TODO: { m_session.load } after prompting with open dialog
- -- TODO: { m_session.save } after prompting with save dialog
- keys.aq = { quit }
+ -- TODO: m_textadept.session.load after prompting with open dialog
+ -- TODO: m_textadept.session.save after prompting with save dialog
+ keys.aq = quit
-- Edit
- local m_editing = _m.textadept.editing
- keys.az = { 'undo', b }
- keys.aZ = { 'redo', b }
- keys.ax = { 'cut', b }
- keys.ac = { 'copy', b }
- keys.av = { 'paste', b }
+ local m_editing = m_textadept.editing
+ keys.az = { _buffer.undo, _buffer }
+ keys.aZ = { _buffer.redo, _buffer }
+ keys.ax = { _buffer.cut, _buffer }
+ keys.ac = { _buffer.copy, _buffer }
+ keys.av = { _buffer.paste, _buffer }
-- Delete is delete.
- keys.aa = { 'select_all', b }
- keys.cm = { m_editing.match_brace }
- keys.aE = { m_editing.match_brace, 'select' }
+ keys.aa = { _buffer.select_all, _buffer }
+ keys.cm = m_editing.match_brace
+ keys.aE = { m_editing.match_brace, 'select' }
keys.esc = { m_editing.autocomplete_word, '%w_' }
- keys.cq = { m_editing.block_comment }
+ keys.cq = m_editing.block_comment
-- TODO: { m_editing.current_word, 'delete' }
- keys.cat = { m_editing.highlight_word }
- keys.ct = { m_editing.transpose_chars }
- -- TODO: { m_editing.convert_indentation }
+ keys.cat = m_editing.highlight_word
+ keys.ct = m_editing.transpose_chars
+ -- TODO: m_editing.convert_indentation
keys.cc = { -- enClose in...
- t = { enclose_in_tag },
- T = { m_editing.enclose, '<', ' />' },
- ['"'] = { m_editing.enclose, '"', '"' },
- ["'"] = { m_editing.enclose, "'", "'" },
- ['('] = { m_editing.enclose, '(', ')' },
- ['['] = { m_editing.enclose, '[', ']' },
- ['{'] = { m_editing.enclose, '{', '}' },
- c = any_char_mt(m_editing.enclose),
+ t = enclose_in_tag,
+ T = { m_editing.enclose, '<', ' />' },
+ ['"'] = { m_editing.enclose, '"', '"' },
+ ["'"] = { m_editing.enclose, "'", "'" },
+ ['('] = { m_editing.enclose, '(', ')' },
+ ['['] = { m_editing.enclose, '[', ']' },
+ ['{'] = { m_editing.enclose, '{', '}' },
+ c = any_char_mt(m_editing.enclose),
}
keys.cs = { -- select in...
- t = { m_editing.select_enclosed, '>', '<' },
+ t = { m_editing.select_enclosed, '>', '<' },
['"'] = { m_editing.select_enclosed, '"', '"' },
["'"] = { m_editing.select_enclosed, "'", "'" },
['('] = { m_editing.select_enclosed, '(', ')' },
['['] = { m_editing.select_enclosed, '[', ']' },
['{'] = { m_editing.select_enclosed, '{', '}' },
- w = { m_editing.current_word, 'select' },
- l = { m_editing.select_line },
- p = { m_editing.select_paragraph },
- b = { m_editing.select_indented_block },
- s = { m_editing.select_scope },
- g = { m_editing.grow_selection, 1 },
- c = any_char_mt(m_editing.select_enclosed),
+ w = { m_editing.current_word, 'select' },
+ l = m_editing.select_line,
+ p = m_editing.select_paragraph,
+ b = m_editing.select_indented_block,
+ s = m_editing.select_scope,
+ g = { m_editing.grow_selection, 1 },
+ c = any_char_mt(m_editing.select_enclosed),
}
-- Search
- keys.af = { gui.find.focus } -- find/replace
- keys.ag = { gui.find.find_next }
- keys.aG = { gui.find.find_prev }
- keys.ar = { gui.find.replace }
- keys.ai = { gui.find.find_incremental }
- keys.aF = {
- function()
- gui.find.in_files = true
- gui.find.focus()
- end
- }
- keys.cag = { gui.find.goto_file_in_list, true }
+ keys.af = gui.find.focus -- find/replace
+ keys.ag = gui.find.find_next
+ keys.aG = gui.find.find_prev
+ keys.ar = gui.find.replace
+ keys.ai = gui.find.find_incremental
+ keys.aF = function()
+ gui.find.in_files = true
+ gui.find.focus()
+ end
+ keys.cag = { gui.find.goto_file_in_list, true }
keys.caG = { gui.find.goto_file_in_list, false }
- keys.cg = { m_editing.goto_line }
+ keys.cg = m_editing.goto_line
-- Tools
- keys['f2'] = { gui.command_entry.focus }
+ keys['f2'] = gui.command_entry.focus
-- Run
- local m_run = _m.textadept.run
- keys.cr = { m_run.run }
- keys.cR = { m_run.compile }
- keys.car = { _m.textadept.filter_through.filter_through }
+ keys.cr = { m_textadept.run.run }
+ keys.cR = { m_textadept.run.compile }
+ keys.car = { m_textadept.filter_through.filter_through }
-- Snippets
- local m_snippets = _m.textadept.snippets
- keys['\t'] = { m_snippets._insert }
- keys['s\t'] = { m_snippets._previous }
- keys.cai = { m_snippets._cancel_current }
- keys.ci = { m_snippets._select }
+ keys['\t'] = m_textadept.snippets._insert
+ keys['s\t'] = m_textadept.snippets._previous
+ keys.cai = m_textadept.snippets._cancel_current
+ keys.ci = m_textadept.snippets._select
-- Buffers
- keys.ab = { gui.switch_buffer }
- keys['c\t'] = { 'goto_buffer', v, 1, false }
- keys['cs\t'] = { 'goto_buffer', v, -1, false }
- keys.at.v = {
- e = { toggle_setting, 'view_eol' },
- w = { toggle_setting, 'wrap_mode' },
- i = { toggle_setting, 'indentation_guides' },
- ['\t'] = { toggle_setting, 'use_tabs' },
- [' '] = { toggle_setting, 'view_ws' },
- v = { toggle_setting, 'virtual_space_options', 2 },
+ keys.ab = gui.switch_buffer
+ keys['c\t'] = { _view.goto_buffer, _view, 1, false }
+ keys['cs\t'] = { _view.goto_buffer, _view, -1, false }
+ keys.aB = {
+ e = { toggle_setting, 'view_eol' },
+ w = { toggle_setting, 'wrap_mode' },
+ i = { toggle_setting, 'indentation_guides' },
+ ['\t'] = { toggle_setting, 'use_tabs' },
+ [' '] = { toggle_setting, 'view_ws' },
+ v = { toggle_setting, 'virtual_space_options', 2 },
}
- keys.cl = { _m.textadept.mime_types.select_lexer }
- keys['f5'] = { 'colourise', b, 0, -1 }
+ keys.cl = m_textadept.mime_types.select_lexer
+ keys['f5'] = { _buffer.colourise, _buffer, 0, -1 }
-- Views
keys.cv = {
- n = { gui.goto_view, 1, false },
- p = { gui.goto_view, -1, false },
- S = { 'split', v }, -- vertical
- s = { 'split', v, false }, -- horizontal
- w = { function() view:unsplit() return true end },
- W = { function() while view:unsplit() do end end },
- -- TODO: { function() view.size = view.size + 10 end }
- -- TODO: { function() view.size = view.size - 10 end }
+ n = { gui.goto_view, 1, false },
+ p = { gui.goto_view, -1, false },
+ S = { _view.split, _view }, -- vertical
+ s = { _view.split, _view, false }, -- horizontal
+ w = function() view:unsplit() return true end,
+ W = function() while view:unsplit() do end end,
+ -- TODO: function() view.size = view.size + 10 end
+ -- TODO: function() view.size = view.size - 10 end
}
- keys.c0 = { function() buffer.zoom = 0 end }
+ keys.c0 = function() buffer.zoom = 0 end
-- Miscellaneous not in standard menu.
- keys.co = { show_recent_file_list }
- keys.caI = { show_style }
+ keys.co = show_recent_file_list
+ keys.caI = show_style
-- Movement/selection commands
- keys.cf = { 'char_right', b }
- keys.cF = { 'char_right_extend', b }
- keys.caf = { 'word_right', b }
- keys.caF = { 'word_right_extend', b }
- keys.cb = { 'char_left', b }
- keys.cB = { 'char_left_extend', b }
- keys.cab = { 'word_left', b }
- keys.caB = { 'word_left_extend', b }
- keys.cn = { 'line_down', b }
- keys.cN = { 'line_down_extend', b }
- keys.cp = { 'line_up', b }
- keys.cP = { 'line_up_extend', b }
- keys.ca = { 'vc_home', b }
- keys.cA = { 'home_extend', b }
- keys.ce = { 'line_end', b }
- keys.cE = { 'line_end_extend', b }
- --keys.ch = { 'delete_back', b }
- keys.cah = { 'del_word_left', b }
- keys.cd = { 'clear', b }
- keys.cad = { 'del_word_right', b }
- keys.ck = {
- function()
- buffer:line_end_extend()
- buffer:cut()
- end
- }
- keys.cy = { 'paste', b }
+ keys.cf = { _buffer.char_right, _buffer }
+ keys.cF = { _buffer.char_right_extend, _buffer }
+ keys.caf = { _buffer.word_right, _buffer }
+ keys.caF = { _buffer.word_right_extend, _buffer }
+ keys.cb = { _buffer.char_left, _buffer }
+ keys.cB = { _buffer.char_left_extend, _buffer }
+ keys.cab = { _buffer.word_left, _buffer }
+ keys.caB = { _buffer.word_left_extend, _buffer }
+ keys.cn = { _buffer.line_down, _buffer }
+ keys.cN = { _buffer.line_down_extend, _buffer }
+ keys.cp = { _buffer.line_up, _buffer }
+ keys.cP = { _buffer.line_up_extend, _buffer }
+ keys.ca = { _buffer.vc_home, _buffer }
+ keys.cA = { _buffer.home_extend, _buffer }
+ keys.ce = { _buffer.line_end, _buffer }
+ keys.cE = { _buffer.line_end_extend, _buffer }
+ keys.cah = { _buffer.del_word_left, _buffer }
+ keys.cd = { _buffer.clear, _buffer }
+ keys.cad = { _buffer.del_word_right, _buffer }
+ keys.ck = function()
+ buffer:line_end_extend()
+ buffer:cut()
+ end
+ keys.cy = { _buffer.paste, _buffer }
end