summaryrefslogtreecommitdiff
path: root/geany-filetype
diff options
context:
space:
mode:
authoromatt <m.vuoso@laposte.net>2016-11-18 16:36:27 +0100
committeromatt <m.vuoso@laposte.net>2016-11-18 19:57:49 +0100
commit6cff96b734ee03cf4c26a9e7b10e074e105526fa (patch)
tree12fbe6ae8fa6146dcbc5009979d2ad783389bc10 /geany-filetype
parent345f5ba63e23033488d51893c2c22d3268b9a52c (diff)
downloadtools-6cff96b734ee03cf4c26a9e7b10e074e105526fa.tar.gz
tools-6cff96b734ee03cf4c26a9e7b10e074e105526fa.tar.bz2
tools-6cff96b734ee03cf4c26a9e7b10e074e105526fa.tar.xz
tools-6cff96b734ee03cf4c26a9e7b10e074e105526fa.zip
Add :
filetype_extensions.conf filedefs/filetypes.Hercule.conf snippets.conf
Diffstat (limited to 'geany-filetype')
-rw-r--r--geany-filetype/README29
-rw-r--r--geany-filetype/filetype_extensions.conf81
-rw-r--r--geany-filetype/filetypes.Hercule.conf65
-rw-r--r--geany-filetype/snippets.conf170
4 files changed, 345 insertions, 0 deletions
diff --git a/geany-filetype/README b/geany-filetype/README
new file mode 100644
index 0000000..7ed5d45
--- /dev/null
+++ b/geany-filetype/README
@@ -0,0 +1,29 @@
+For use this Hercule filetype and snippet, follow this 3 steps.
+
+First:
+Modify filetypes_extensions.conf. On Linux systems,
+this file is located at ~/.config/geany/filetypes_extensions.conf.
+If the file does not exist, copy the file
+filetypes_extensions.conf in your folder and skip this step.
+
+Once the file has been opened, add the below code to the file.
+
+(NOTE: “…” represents existing data in the file.)
+---------------------------------
+| [Extensions] |
+| ... |
+| Hercule=*.txt; |
+| ... |
+| |
+| [Groups] |
+| ... |
+| Misc=...;Hercule; |
+| ... |
+---------------------------------
+
+Second:
+Then add the file filetypes.Hercule.conf into your folder ~/.config/geany/filedefs/
+
+Third:
+Open the file snippets.conf and copy the [Hercule] sections
+at the end of your snippets file in ~/.config/geany/snippets.conf.
diff --git a/geany-filetype/filetype_extensions.conf b/geany-filetype/filetype_extensions.conf
new file mode 100644
index 0000000..ce02744
--- /dev/null
+++ b/geany-filetype/filetype_extensions.conf
@@ -0,0 +1,81 @@
+# Filetype extension configuration file for Geany
+# Insert as many items as you want, separate them with a ";".
+# See Geany's main documentation for details.
+[Extensions]
+Abaqus=*.inp;
+Abc=*.abc;*.abp;
+ActionScript=*.as;
+Ada=*.adb;*.ads;
+Asciidoc=*.asciidoc;*.adoc;
+ASM=*.asm;*.asm51;*.a51;
+Batch=*.bat;*.cmd;*.nt;
+CAML=*.ml;*.mli;
+C=*.c;*.xpm;
+C++=*.cpp;*.cxx;*.c++;*.cc;*.h;*.hpp;*.hxx;*.h++;*.hh;*.C;*.H;
+Clojure=*.clj;*.cljs;*.cljc;
+CUDA=*.cu;*.cuh;*.h;
+C#=*.cs;
+CMake=CMakeLists.txt;*.cmake;*.ctest;
+COBOL=*.cob;*.cpy;*.cbl;*.cobol;
+CoffeeScript=*.coffee;Cakefile;*.Cakefile;*.coffee.erb;*.iced;*.iced.erb;
+Conf=*.conf;*.ini;config;*rc;*.cfg;*.desktop;*.properties;
+CSS=*.css;
+Cython=*.pyx;*.pxd;*.pxi;
+D=*.d;*.di;
+Diff=*.diff;*.patch;*.rej;
+Docbook=*.docbook;
+Erlang=*.erl;*.hrl;
+Hercule=*.txt;
+F77=*.f;*.for;*.ftn;*.f77;*.F;*.FOR;*.FTN;*.fpp;*.FPP;
+Ferite=*.fe;
+Forth=*.fs;*.fth;
+Fortran=*.f90;*.f95;*.f03;*.f08;*.F90;*.F95;*.F03;*.F08;
+FreeBasic=*.bas;*.bi;*.vbs;
+Genie=*.gs;
+GLSL=*.glsl;*.frag;*.vert;
+Go=*.go;
+Graphviz=*.gv;*.dot;
+Haskell=*.hs;*.lhs;*.hs-boot;*.lhs-boot;
+Haxe=*.hx;
+HTML=*.htm;*.html;*.shtml;*.hta;*.htd;*.htt;*.cfm;*.tpl;
+Java=*.java;*.jsp;
+Javascript=*.js;
+JSON=*.json;
+LaTeX=*.tex;*.sty;*.idx;*.ltx;*.latex;*.aux;*.bib;
+Lisp=*.lisp;
+Lua=*.lua;
+Make=*.mak;*.mk;GNUmakefile;makefile;Makefile;makefile.*;Makefile.*;
+Markdown=*.mdml;*.markdown;*.md;*.mkd;*.mkdn;*.mdwn;*.mdown;*.mdtxt;*.mdtext;
+Matlab/Octave=*.m;
+NSIS=*.nsi;*.nsh;
+Objective-C=*.m;*.mm;*.h;
+Pascal=*.pas;*.pp;*.inc;*.dpr;*.dpk;
+Perl=*.pl;*.perl;*.pm;*.agi;*.pod;
+PHP=*.php;*.php3;*.php4;*.php5;*.phtml;
+Po=*.po;*.pot;
+Python=*.py;*.pyw;SConstruct;SConscript;wscript;
+PowerShell=*.ps1;*.psm1;
+reStructuredText=*.rest;*.reST;*.rst;
+R=*.R;*.r;
+Rust=*.rs;
+Ruby=*.rb;*.rhtml;*.ruby;*.gemspec;Gemfile;rakefile;Rakefile;
+Scala=*.scala;*.scl;
+Sh=*.sh;configure;configure.in;configure.in.in;configure.ac;*.ksh;*.mksh;*.zsh;*.ash;*.bash;.bashrc;bash.bashrc;.bash_*;bash_*;*.m4;PKGBUILD;*profile;
+SQL=*.sql;
+Tcl=*.tcl;*.tk;*.wish;
+Txt2tags=*.t2t;
+Vala=*.vala;*.vapi;
+Verilog=*.v;
+VHDL=*.vhd;*.vhdl;
+XML=*.xml;*.sgml;*.xsl;*.xslt;*.xsd;*.xhtml;*.xul;*.dtd;*.xtpl;*.mml;*.mathml;
+YAML=*.yaml;*.yml;
+Zephir=*.zep;
+None=*;
+
+# Note: restarting is required after editing groups
+[Groups]
+Programming=Clojure;CUDA;Cython;Genie;Scala;
+Script=Graphviz;
+Markup=
+Misc=JSON;Hercule;
+None=
diff --git a/geany-filetype/filetypes.Hercule.conf b/geany-filetype/filetypes.Hercule.conf
new file mode 100644
index 0000000..0ebb753
--- /dev/null
+++ b/geany-filetype/filetypes.Hercule.conf
@@ -0,0 +1,65 @@
+[styling]
+default=default
+comment=comment
+commentline=comment_line
+commentdoc=comment_doc
+preprocessorcomment=comment
+preprocessorcommentdoc=comment_doc
+commentblock=comment
+commentline=comment_line
+commentblockdoc=comment_doc
+commentlinedoc=comment_doc
+number=number_1
+word=keyword_1
+word2=keyword_2
+word3=function
+string=string_1
+stringraw=string_2
+character=character
+userliteral=other
+uuid=other
+preprocessor=preprocessor
+operator=operator
+identifier=identifier_1
+stringeol=string_eol
+verbatim=string_2
+regex=regex
+commentlinedoc=comment_line_doc
+commentdockeyword=comment_doc_keyword
+commentdockeyworderror=comment_doc_keyword_error
+globalclass=class
+# """verbatim"""
+tripleverbatim=string_2
+hashquotedstring=string_2
+taskmarker=comment
+escapesequence=string_1
+
+[keywords]
+primary=arguments break case catch class const continue default do dynamic each else extends false final finally for function get if implements import in include Infinity interface internal label namespace NaN native new null override package private protected public return set static super switch this throw true typeof undefined var while with goto getitemlink countitem rand select delitem resetstatus setnpcdir stopnpctimer initnpctimer end emotion close getlook getarraysize setlook sleep startnpctimer setarray getmapxy sleep2 getitem getitemname next getarg BaseLevel strcharinfo strnpcinfo getvariableofnpc getargcount savepoint getareausers getinventorylist getskilllv setmapmask getmapmask getstrlen gettimetick misceffect getcharid getexp close2 closedialog clear getinvindexlink requestlang requestitem requestitems requestitemindex requestitemsindex requestcraft initcraft dumpcraft deletecraft findcraftentry usecraft getcraftcode getcraftslotid getcraftslotamount validatecraft npcsit npcstand setnpcsex npcwalkto setnpcdialogtitle addmapmask removemapmask showavatar setavatardir setavataraction changemusic getmapname unequipbyid ispcdead areatimer getareadropitem clientcommand isunitwalking failedrefindex downrefindex successrefindex isstr setbgteam checknpccell setcells delcells setmount setskin successremovecardsindex failedremovecardsindex getcardbyindex htnew htdelete htget htput htsize htclear htiterator htinextkey hticheck htidelete setfakecells chatjoin setcamnpc setcam movecam restorecam shop getq setq setd getd prompt input callfunc callsub is_function cleararray copyarray deletearray charid2rid readparam getnpcid Zeny getequipid getguildmaster getguildmasterid getcastledata setcastledata getcastlename getgdskilllv requestguildinfo getmapguildusers getguildmember getskilllist getpetinfo petstat getmonsterinfo addmonsterdrop delmonsterdrop getmobdrops skillpointcount getscrate playerattached isloggedin checkweight checkweight2 basicskillcheck checkoption checkoption1 checkoption2 setoption setcart checkcart setfalcon checkfalcon checkmount setcashmount hascashmount checkwug checkvending checkchatting checkidle agitcheck agitcheck2 isnight isequipped isequippedcnt checkequipedcard getequipisidentify attachrid detachrid rid2name warp areawarp warpparty warpchar warpguild warppartner heal itemheal percentheal recovery jobchange jobname eaclass roclass changebase classchange changesex changecharsex changelook pushpc get_version getitem2 getitembound getitembound2 countbound checkbound getnameditem rentitem makeitem cleanarea cleanmap searchitem delitem2 countitem2 groupranditem getrandgroupitem packageitem enable_items disable_items itemskill itemeffect consumeitem produce cooking makerune successremovecards failedremovecards repair repairall successrefitem failedrefitem downrefitem unequip clearitem equip equip2 autoequip buyingstore searchstores mergeitem delequip openstorage openmail openauction guildopenstorage guildchangegm guildgetexp guildskill resetlvl resetskill getstatus skilleffect npcskilleffect specialeffect specialeffect2 statusup statusup2 bonus bonus1 bonus2 bonus3 bonus4 bonus5 autobonus autobonus2 autobonus3 skill addtoskill nude disguise undisguise marriage wedding divorce pcfollow pcstopfollow pcblockmove monster areamonster areamobuseskill killmonster killmonsterall strmobinfo mobcount clone summon homevolution gethominfo morphembryo hommutate checkhomcall getunittype unitwalk unitkill unitwarp unitattack unitstop unittalk unitemote disablenpc enablenpc hideonnpc hideoffnpc doevent donpcevent setnpcdisplay addtimer deltimer addtimercount setnpctimer getnpctimer attachnpctimer detachnpctimer awake progressbar callshop npcshopitem npcshopadditem npcshopdelitem npcshopattach waitingroom delwaitingroom enablewaitingroomevent disablewaitingroomevent getwaitingroomstate warpwaitingpc kickwaitingroomall setmapflagnosave setmapflag removemapflag getmapflag setbattleflag getbattleflag warpportal mapwarp maprespawnguildid agitstart agitend agitstart2 agitend2 gvgon gvgoff flagemblem guardian guardianinfo npcspeed npcstop movenpc viewpoint cutin pet soundeffect soundeffectall playbgm playbgmall pvpon pvpoff atcommand charcommand bindatcmd unbindatcmd useatcmd unitskilluseid unitskillusepos npcskill setnpcdistance getnpcdir getnpcclass day night pcre_match defpattern activatepset deactivatepset deletepset pow log10 sqrt distance min max md5 swap query_sql query_logsql escape_sql setiteminfo setitemscript atoi axtoi strtol compare strcmp charisalpha charat setchar insertchar delchar strtoupper strtolower charisupper charislower substr explode implode setfont showdigit petskillbonus petrecovery petloot petskillsupport bpet makepet homshuffle setcell checkcell setwall delwall readbook instance_create instance_destroy instance_attachmap instance_detachmap instance_init instance_announce instance_attach instance_npcname has_instance has_instance2 instance_id instance_warpall instance_set_timeout instance_check_party instance_check_guild instance_set_respawn instance_mapname questinfo setquest completequest erasequest changequest questprogress questactive showevent waitingroom2bg_single waitingroom2bg bg_team_setxy bg_warp bg_monster bg_monster_set_team bg_leave bg_destroy areapercentheal bg_get_data bg_getareausers bg_updatescore bg_create_team bg_join_team bg_match_over bStr bAgi bVit bInt bDex bLuk removecardbyindex mercenary_create mercenary_heal mercenary_sc_start mercenary_get_calls mercenary_set_calls mercenary_get_faith mercenary_set_faith getmercinfo queue queueadd queueremove queueopt queuedel queueiterator qicheck qiget qiclear openshop sellitem stopselling setcurrency tradertype purchaseok shopcount Hp MaxHp Sp MaxSp StatusPoint SkillPoint JobLevel BaseExp JobExp NextBaseExp NextJobExp Weight MaxWeight Sex Class Upper BaseClass BaseJob Karma Manner freeloop getelementofarray getchildid getmotherid getfatherid ispartneron getpartnerid getpartyname getpartymember getpartyleader getsavepoint getcharip sit stand issit getequipname getbrokenid getbrokencount getequipisequiped getequipisenableref getequiprefinerycnt getequipweaponlv getequippercentrefinery getequipcardcnt getcartinventorylist cardscnt getrefine getitemslots getiteminfo getequipcardid getgmlevel setgroupid getgroupid gettime gettimestr getusers getmapusers getusersname getguildname montransform sc_start sc_start2 sc_start4 sc_end queuesize sex getlabel tolabel slide
+secondary=lognbaselvl goodbye asleep BarberSayStyle BarberChangeStyle BarberChangeColor bedTouch bedClic checkclientversion doorTouch doorUnTouch doorTimer doorInit open_door close_door fishing goodbye_msg hamTouchLeft villagertalk hello hamUnTouch hamTimerLeft hamTouchRight hamTimerRight harbourClic harbourTimer inventoryplace legiontalk marriagecheckname getmarriageregistrant getmarriagepartner marriageregisterself getmarriagepartneraccepted ismarriagepartneraccepted marriageacceptpartner askmarry marriageregister marriageclear domarriage marriagemarry marriagedivorce marriagemain marriagecheck artisALRemTopMask artisALAddTopMask artisALRemBotMask artisALAddBotMask artisALUpdateMask moubootalk mouboocheckxy moubootimer mouboograph mouboochecklock initpath domoveaction movetonextpos initialmove getmovecmd domovestep initmovegraph findmovegraphlabel setmovegraphcmd execmovecmd getnextmovecmd getrandompoint mg_npcwalkto movetonextpoint firstmove npc_pausemove npc_resumemove npc_turntoxy dographmovestep openbook openbookshelf openoldbook sailorfood sailortalk savepointparticle restoreshopitem startswith endswith capitalize titlecase zfill fishingspot qDebugShip qDebugArtis qDebugGeneral qdebug GlobalQuestDebug qDebugGugli questgen GenericQuestDebug QuestDebug0 QuestDebug1 QuestDebug2 QuestDebug3 QuestDebug4 QuestDebug5 QuestDebug6 QuestDebug7 QuestDebug8 QuestDebug9 QuestDebug10 QuestDebug11 QuestDebug12 QuestDebug13 QuestDebug14 QuestDebug15 QuestDebug16 QuestDebug17 QuestDebug18 QuestDebug19 QuestDebug20 QuestDebug21 QuestDebug22 QuestDebug23 QuestDebug24 QuestDebug25 QuestDebug26 QuestDebug27 QuestDebug28 QuestDebug29 QuestDebug30 QuestDebug31 QuestDebug32 QuestDebug33
+tertiary=menu menuint menustr rif speech narrator l lg mes mesn npctalk3 col menuimage menuaction mesq str addremovemapmask strip npcdebug askyesno compareandsetq npctalkonce npctalk debugmes abs script mapannounce areaannounce announce logmes globalmes channelmes countstr replacestr sprintf sscanf strpos mesf message dispbottom showscript
+# primary other command of hercule
+# secondary are other command function of tmw/evol
+# tertiary are command who display text, or somewhat
+
+[settings]
+lexer_filetype=Rust
+extension=txt
+styling.within.preprocessor=1
+lexer.cpp.track.preprocessor=0
+
+comment_single=//
+comment_open=/*
+comment_close=*/
+
+comment_use_indent=true
+
+context_action_cmd=
+
+[build-menu]
+compiler=
+run_cmd=
+
+[indentation]
+width=4
+type=0
diff --git a/geany-filetype/snippets.conf b/geany-filetype/snippets.conf
new file mode 100644
index 0000000..f944391
--- /dev/null
+++ b/geany-filetype/snippets.conf
@@ -0,0 +1,170 @@
+# 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]
+brace_open=\n{\n\t
+brace_close=}\n
+block=\n{\n\t%cursor%\n}
+block_cursor=\n{\n\t%cursor%\n}\n%cursor%
+
+# 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]
+#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%cursor%
+switch=switch (%cursor%)%brace_open%case %cursor%:\n\t\t%cursor%\n\t\tbreak;\n\tdefault:\n\t\t%cursor%\n%brace_close%%cursor%
+
+[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%cursor%
+switch=switch (%cursor%)%brace_open%case %cursor%:\n\t\t%cursor%\n\t\tbreak;\n\tdefault:\n\t\t%cursor%\n%brace_close%%cursor%
+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%cursor%
+switch=switch (%cursor%)%brace_open%case %cursor%:\n\t\t%cursor%\n\t\tbreak;\n\tdefault:\n\t\t%cursor%\n%brace_close%%cursor%
+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%cursor%
+switch=switch (%cursor%)%brace_open%case %cursor%:\n\t\t%cursor%\n\t\tbreak;\n\tdefault:\n\t\t%cursor%\n%brace_close%%cursor%
+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%cursor%
+switch=switch (%cursor%)%brace_open%case %cursor%:\n\t\t%cursor%\n\t\tbreak;\n\tdefault:\n\t\t%cursor%\n%brace_close%%cursor%
+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%cursor%
+switch=switch (%cursor%)%brace_open%case %cursor%:\n\t\t%cursor%\n\t\tbreak;\n\tdefault:\n\t\t%cursor%\n%brace_close%%cursor%
+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%cursor%
+switch=switch (%cursor%)%brace_open%case %cursor%:\n\t\t%cursor%\n\t\tbreak;\n\tdefault:\n\t\t%cursor%\n%brace_close%%cursor%
+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%cursor%
+switch=switch (%cursor%)%brace_open%case %cursor%:\n\t\t%cursor%\n\t\tbreak;\n\tdefault:\n\t\t%cursor%\n%brace_close%%cursor%
+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%).
+
+[Hercule]
+menu=menu\n\t%cursor%
+menuint=menuint\n\t%cursor%
+menustr=menustr\n\t%cursor%
+speech=speech %cursor%,\n\t
+narrator=narrator %cursor%,\n\t
+rif=rif(%cursor%, )
+mes=mes "%cursor%";
+mesn=mesn;\n
+goto=goto %cursor%;
+getq=getq(%cursor%)
+setq=setq %cursor%, %cursor%;
+l=l("%cursor%")
+lg=lg("%cursor%")
+getcharid=getcharid(%cursor%)
+getarg=getarg(%cursor%)
+strcharinfo=strcharinfo(%cursor%)
+gettimetick=gettimetick(%cursor%)
+getitemlink=getitemlink(%cursor%)
+lognbaselvl=lognbaselvl(%cursor%, %cursor%)
+countitem=countitem(%cursor%)
+function=function %cursor% {\n\t%cursor%\n}
+
+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%);
+switch=switch (%cursor%)%brace_open%case %cursor%:\n\t\t%cursor%\n\t\tbreak;\n\tdefault:\n\t\t%cursor%\n%brace_close%%cursor%