b2668dae67
* snippets: Allow keybinding overloading of snippet-next-cursor. This allows to use the same key as for inserting snippets, or plugins to map something to the same keybinding (e.g. if they implement a similar facility). * snippets: Remove cursor position at the end of constructs. This is not consistently done for all languages, and hard to get right e.g. for python. It's probably not terribly useful either. * snippets: Use Scintilla indicators for cursor posititons * api: Increment API version. * snippets: restore behavior of cursor-less snippets * snippts: use ascii character for the placeholder. Do not require documents to be UTF-8 for using snippets. * snippets: fix start/end detection, when searching for the next cursor Tested @vfaronov
141 lines
5.5 KiB
Plaintext
141 lines
5.5 KiB
Plaintext
# Geany's snippets configuration file
|
|
#
|
|
# use \n or %newline% for a new line (it will be replaced by the used EOL char(s) - LF, CR/LF, CR).
|
|
# use \t or %ws% for an indentation step, it will be replaced according to the current document's indent mode.
|
|
# use \s to force whitespace at beginning or end of a value ('key= value' won't work, use 'key=\svalue').
|
|
# use %key% for all keys defined in the [Special] section.
|
|
# use %cursor% to define where the cursor should be placed after completion. You can define multiple
|
|
# %cursor% wildcards and use the "Move cursor in snippet" to jump to the next defined cursor
|
|
# position in the completed snippet.
|
|
# You can define a section for each supported filetype to overwrite default settings, the section
|
|
# name must match exactly the internal filetype name, run 'geany --ft-names' for a full list.
|
|
#
|
|
# Additionally, you can use most of the template wildcards like {developer}, {command:...},
|
|
# or {date} in the snippets.
|
|
# See the documentation for details.
|
|
|
|
# For a list of available filetype names, execute:
|
|
# geany --ft-names
|
|
|
|
# Default is used for all filetypes and keys can be overwritten by [filetype] sections
|
|
[Default]
|
|
|
|
# special keys to be used in other snippets, cannot be used "standalone"
|
|
# can be used by %key%, e.g. %brace_open%
|
|
# nesting of special keys is not supported (e.g. brace_open=\n{\n%brace_close% won't work)
|
|
# key "wordchars" is very special, it defines the word delimiting characters when looking for
|
|
# a word to auto complete, leave commented to use the default wordchars
|
|
[Special]
|
|
brace_open=\n{\n\t
|
|
brace_close=}\n
|
|
block=\n{\n\t%cursor%\n}
|
|
block_cursor=\n{\n\t%cursor%\n}
|
|
#wordchars=_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
|
|
|
|
# Optional keybindings to insert snippets
|
|
# Note: these can be overridden by Geany's configurable keybindings
|
|
[Keybindings]
|
|
#for=<Ctrl>7
|
|
|
|
[C]
|
|
if=if (%cursor%)%block_cursor%
|
|
else=else%block_cursor%
|
|
for=for (i = 0; i < %cursor%; i++)%block_cursor%
|
|
while=while (%cursor%)%block_cursor%
|
|
do=do\n{\n\t%cursor%\n} while (%cursor%)\n
|
|
switch=switch (%cursor%)%brace_open%case %cursor%:\n\t\t%cursor%\n\t\tbreak;\n\tdefault:\n\t\t%cursor%\n%brace_close%
|
|
|
|
[C++]
|
|
if=if (%cursor%)%block_cursor%
|
|
else=else%block_cursor%
|
|
for=for (int i = 0; i < %cursor%; i++)%brace_open%\n%brace_close%
|
|
while=while (%cursor%)%block_cursor%
|
|
do=do\n{\n\t%cursor%\n} while (%cursor%)\n
|
|
switch=switch (%cursor%)%brace_open%case %cursor%:\n\t\t%cursor%\n\t\tbreak;\n\tdefault:\n\t\t%cursor%\n%brace_close%
|
|
try=try%block%\ncatch (%cursor%)%block_cursor%
|
|
|
|
[Java]
|
|
if=if (%cursor%)%block_cursor%
|
|
else=else%block_cursor%
|
|
for=for (int i = 0; i < %cursor%; i++)%brace_open%\n%brace_close%
|
|
while=while (%cursor%)%block_cursor%
|
|
do=do\n{\n\t%cursor%\n} while (%cursor%)\n
|
|
switch=switch (%cursor%)%brace_open%case %cursor%:\n\t\t%cursor%\n\t\tbreak;\n\tdefault:\n\t\t%cursor%\n%brace_close%
|
|
try=try%block%\ncatch (%cursor%)%block_cursor%
|
|
|
|
[PHP]
|
|
if=if (%cursor%)%block_cursor%
|
|
else=else%block_cursor%
|
|
for=for ($i = 0; $i < %cursor%; $i++)%brace_open%\n%brace_close%
|
|
while=while (%cursor%)%block_cursor%
|
|
do=do\n{\n\t%cursor%\n} while (%cursor%)\n
|
|
switch=switch (%cursor%)%brace_open%case %cursor%:\n\t\t%cursor%\n\t\tbreak;\n\tdefault:\n\t\t%cursor%\n%brace_close%
|
|
try=try%block%\ncatch (%cursor%)%block_cursor%
|
|
|
|
[Javascript]
|
|
if=if (%cursor%)%block_cursor%
|
|
else=else%block_cursor%
|
|
for=for (i = 0; i < %cursor%; i++)%block_cursor%
|
|
while=while (%cursor%)%block_cursor%
|
|
do=do\n{\n\t%cursor%\n} while (%cursor%)\n
|
|
switch=switch (%cursor%)%brace_open%case %cursor%:\n\t\t%cursor%\n\t\tbreak;\n\tdefault:\n\t\t%cursor%\n%brace_close%
|
|
try=try%block%\ncatch (%cursor%)%block_cursor%
|
|
|
|
[C#]
|
|
if=if (%cursor%)%block_cursor%
|
|
else=else%block_cursor%
|
|
for=for (i = 0; i < %cursor%; i++)%block_cursor%
|
|
while=while (%cursor%)%block_cursor%
|
|
do=do\n{\n\t%cursor%\n} while (%cursor%)\n
|
|
switch=switch (%cursor%)%brace_open%case %cursor%:\n\t\t%cursor%\n\t\tbreak;\n\tdefault:\n\t\t%cursor%\n%brace_close%
|
|
try=try%block%\ncatch (%cursor%)%block_cursor%
|
|
|
|
[Vala]
|
|
if=if (%cursor%)%block_cursor%
|
|
else=else%block_cursor%
|
|
for=for (i = 0; i < %cursor%; i++)%block_cursor%
|
|
while=while (%cursor%)%block_cursor%
|
|
do=do\n{\n\t%cursor%\n} while (%cursor%)\n
|
|
switch=switch (%cursor%)%brace_open%case %cursor%:\n\t\t%cursor%\n\t\tbreak;\n\tdefault:\n\t\t%cursor%\n%brace_close%
|
|
try=try%block%\ncatch (%cursor%)%block_cursor%
|
|
|
|
[ActionScript]
|
|
if=if (%cursor%)%block_cursor%
|
|
else=else%block_cursor%
|
|
for=for (i = 0; i < %cursor%; i++)%block_cursor%
|
|
while=while (%cursor%)%block_cursor%
|
|
do=do\n{\n\t%cursor%\n} while (%cursor%)\n
|
|
switch=switch (%cursor%)%brace_open%case %cursor%:\n\t\t%cursor%\n\t\tbreak;\n\tdefault:\n\t\t%cursor%\n%brace_close%
|
|
try=try%block%\ncatch (%cursor%)%block_cursor%
|
|
|
|
[Python]
|
|
for=for i in xrange(%cursor%):\n\t
|
|
if=if %cursor%:\n\t
|
|
elif=elif %cursor%:\n\t
|
|
else=else:\n\t
|
|
while=while %cursor%:\n\t
|
|
try=try:\n\t%cursor%\nexcept Exception, ex:\n\t
|
|
with=with %cursor%:\n\t
|
|
def=def %cursor% (%cursor%):\n\t""" Function doc """\n\t
|
|
class=class %cursor%:\n\t""" Class doc """\n\t\n\tdef __init__ (self):\n\t\t""" Class initialiser """\n\t\tpass
|
|
|
|
[Ferite]
|
|
iferr=iferr%block_cursor%fix%block%
|
|
monitor=monitor%block_cursor%handle%block%
|
|
|
|
[Haskell]
|
|
|
|
[HTML]
|
|
table=<table>\n\t<tr>\n\t\t<td>%cursor%</td>\n\t</tr>\n</table>
|
|
|
|
[Erlang]
|
|
case=case %cursor% of\n\t%cursor% -> %cursor%\nend
|
|
if=if\n\t%cursor% -> %cursor%\nend
|
|
begin=begin\n\t%cursor%\nend
|
|
fun=fun(%cursor%) ->\n\t%cursor%\nend
|
|
try=try %cursor% of\n\t%cursor% ->\n\t%cursor%\ncatch\n\t%cursor% ->\n\t%cursor%\nend
|
|
module=-module(%cursor%).
|
|
export=-export(%cursor%).
|
|
compile=-compile(%cursor%).
|
|
include=-include(%cursor%).
|