snippet prog "Add new program template" b Program ${1:Name}`!p snip.rv = "" if t[2] == "" else " ("`${2:FileList}`!p snip.rv = "" if t[2] == "" else ")"`;`!p if t[3] == "": snip.rv = "" else: snip.rv = "\nconst\n (* Constant declarations *)\n "`${3:Const}`!p if t[4] == "": snip.rv = "" else: snip.rv = "\ntype\n (* Type declarations *)\n "`${4:Types}`!p if t[5] == "": snip.rv = "" else: snip.rv = "\nvar\n (* Variable declarations *)\n "`${5:Variables} Begin $0 End. endsnippet snippet procedure "Add a new procedure" b { Procedure @name: $1`!p if t[2] == "": snip.rv = "\n\t" else: snip.rv = "\n" groups = t[2].split(";"); for group in groups: snip.rv += f"\t@param {group}\n" snip.rv += "\t" `@description: $3 } Procedure ${1:name}`!p if not (t[2] == ""): snip.rv = " (" else: snip.rv = ""`$2`!p if not (t[2] == ""): snip.rv = ")" else: snip.rv = ""`;`!p if t[4] == "": snip.rv = "" else: snip.rv = "\nVar\n\t"`$4 Begin $0 End; endsnippet snippet -- "Add multiline comment" A (* $1 *)$0 endsnippet snippet begin "Create Code Block" b begin $1 end; $0 endsnippet