aboutsummaryrefslogtreecommitdiffhomepage
path: root/modules/ansi_c
diff options
context:
space:
mode:
authorGravatar mitchell <70453897+orbitalquark@users.noreply.github.com>2020-11-10 11:06:53 -0500
committerGravatar mitchell <70453897+orbitalquark@users.noreply.github.com>2020-11-10 11:06:53 -0500
commit269f42273129fcfbaf67e157d8784666e0c65c9c (patch)
tree4e5e9c7568edd3834f0585f40bcf609a68ef561e /modules/ansi_c
parent87a11d65ee576d965bcf432e878f191512e46bdd (diff)
Fill `keys` and `snippet` tables with language-specific tables on init.
This allows users and language modules to easily add bindings and snippets without stepping on each other.
Diffstat (limited to 'modules/ansi_c')
-rw-r--r--modules/ansi_c/init.lua64
1 files changed, 26 insertions, 38 deletions
diff --git a/modules/ansi_c/init.lua b/modules/ansi_c/init.lua
index 3f5288c4..af6955a6 100644
--- a/modules/ansi_c/init.lua
+++ b/modules/ansi_c/init.lua
@@ -85,45 +85,33 @@ for _, tags in ipairs(M.tags) do
table.insert(textadept.editing.api_files.ansi_c, (tags:gsub('tags$', 'api')))
end
--- Commands.
-
----
--- Table of C-specific key bindings.
--- @class table
--- @name _G.keys.ansi_c
-keys.ansi_c = {}
-
-- Snippets.
----
--- Table of C-specific snippets.
--- @class table
--- @name _G.snippets.ansi_c
-snippets.ansi_c = {
- func = '%1(int) %2(name)(%3(args)) {\n\t%0\n\treturn %4(0);\n}',
- vfunc = 'void %1(name)(%2(args)) {\n\t%0\n}',
- ['if'] = 'if (%1) {\n\t%0\n}',
- eif = 'else if (%1) {\n\t%0\n}',
- ['else'] = 'else {\n\t%0\n}',
- ['for'] = 'for (%1; %2; %3) {\n\t%0\n}',
- ['fori'] = 'for (%1(int) %2(i) = %3(0); %2 %4(<) %5(count); %2%6(++)) {\n'..
- '\t%0\n}',
- ['while'] = 'while (%1) {\n\t%0\n}',
- ['do'] = 'do {\n\t%0\n} while (%1);',
- sw = 'switch (%1) {\n\tcase %2:\n\t\t%0\n\t\tbreak;\n}',
- case = 'case %1:\n\t%0\n\tbreak;',
-
- st = 'struct %1(name) {\n\t%0\n};',
- td = 'typedef %1(int) %2(name_t);',
- tds = 'typedef struct %1(name) {\n\t%0\n} %1%2(_t);',
-
- def = '#define %1(name) %2(value)',
- inc = '#include "%1"',
- Inc = '#include <%1>',
- pif = '#if %1\n%0\n#endif',
-
- main = 'int main(int argc, const char **argv) {\n\t%0\n\treturn 0;\n}',
- printf = 'printf("%1(%s)\\n", %2);',
-}
+local snip = snippets.ansi_c
+
+snip.func = '%1(int) %2(name)(%3(args)) {\n\t%0\n\treturn %4(0);\n}'
+snip.vfunc = 'void %1(name)(%2(args)) {\n\t%0\n}'
+snip['if'] = 'if (%1) {\n\t%0\n}'
+snip.eif = 'else if (%1) {\n\t%0\n}'
+snip['else'] = 'else {\n\t%0\n}'
+snip['for'] = 'for (%1; %2; %3) {\n\t%0\n}'
+snip['fori'] =
+ 'for (%1(int) %2(i) = %3(0); %2 %4(<) %5(count); %2%6(++)) {\n\t%0\n}'
+snip['while'] = 'while (%1) {\n\t%0\n}'
+snip['do'] = 'do {\n\t%0\n} while (%1);'
+snip.sw = 'switch (%1) {\n\tcase %2:\n\t\t%0\n\t\tbreak;\n}'
+snip.case = 'case %1:\n\t%0\n\tbreak;'
+
+snip.st = 'struct %1(name) {\n\t%0\n};'
+snip.td = 'typedef %1(int) %2(name_t);'
+snip.tds = 'typedef struct %1(name) {\n\t%0\n} %1%2(_t);'
+
+snip.def = '#define %1(name) %2(value)'
+snip.inc = '#include "%1"'
+snip.Inc = '#include <%1>'
+snip.pif = '#if %1\n%0\n#endif'
+
+snip.main = 'int main(int argc, const char **argv) {\n\t%0\n\treturn 0;\n}'
+snip.printf = 'printf("%1(%s)\\n", %2);'
return M