diff --git a/UltiSnips/ada.snippets b/UltiSnips/ada.snippets new file mode 100644 index 0000000..3cc4655 --- /dev/null +++ b/UltiSnips/ada.snippets @@ -0,0 +1,104 @@ +snippet textio "Insert Textio import" b +with Ada.Text_IO;$0 +endsnippet + +snippet procedure "insert procedure" bA +-- @name $1 +-- @return +`!p +snip.rv = "" +if t[2].startswith("l"): + parameters = [] +else: + parameters = t[2].replace("\n", "").split(";"); +for parameter in parameters: + if not parameter == "" and not parameter.startswith("typ"): + paramless = parameter.replace("\t", "") + snip.rv += f"-- @variable {paramless}\n" +`-- @description $3 +procedure ${1:Name} is + $2 +begin + $4 +end $1;$0 +endsnippet + +snippet function "insert function" bA +-- @name $1 +-- @return $3 +-- @param $2 +`!p +snip.rv = "" +if t[4].startswith("l"): + parameters = [] +else: + parameters = t[4].replace("\n", "").split(";") +for parameter in parameters: + if not parameter.startswith("typ") and not parameter == "": + paramless = parameter.replace("\t", "") + snip.rv += f"-- @variable {paramless}\n" +`-- @description $5 +function ${1:Name}($2`!p if (t[2] == ""): + t[2] = "a, b: Integer"`) return ${3:Integer} is + $4 +begin + $7 + return ${6:`!p snip.rv = t[3]`}; +end $1;$0 +endsnippet + +global !p +def complete(t, opts): + if t: + opts = [ m[len(t):] for m in opts if m.startswith(t) ] + if len(opts) == 1: + return opts[0] + if len(opts) > 5: + opts = opts[0:5] + return "(" + "|".join(opts) + ")" +endglobal + +snippet if "If condition" bA +if $1 then + $2 +$3`!p snip.rv = complete(t[3], ["elsif", "else", "end if;"])` ${4:`!p if t[3] == "elsif": + snip.rv = "condition" +else: + snip.rv = ""`} `!p +if t[3] == "elsif": + snip.rv = "then"` + $5 +`!p if t[3] == "end if;": + snip.rv = "" +else: + snip.rv = "end if;"`$0 +endsnippet + +snippet for "For loop" bA +for ${1:i} in ${2:1}..${3:10} loop + $4 +end loop;$0 +endsnippet + +snippet while "While loop" bA +while ${1:Condition} loop + $2 +end loop;$0 +endsnippet + +snippet let "Create new Variable" bA +${1:letName}`!p if not t[1].startswith("let"): + t[1] = t[1].capitalize()``!p snip.rv = "\t:\t"`${2}`!p if t[2].startswith("!"): + snip.rv = "" +else: + snip.rv = complete(t[2], ["Integer", "Boolean", "Float", "Natural", "Positive", "Negative", "Long_Float", "String"]) +``!p if t[3] == "": + snip.rv = "" +else: + snip.rv = " := " +`$3; +endsnippet + +snippet type "declare a new type" bA +type ${1:TypeName} is ${2:array($3..$4)} of ${5:Integer};$0 +endsnippet diff --git a/viml/legacyconf.vim b/viml/legacyconf.vim index a32633b..8650bee 100644 --- a/viml/legacyconf.vim +++ b/viml/legacyconf.vim @@ -33,8 +33,8 @@ function Liten() set spell spelllang=en_us endfunction -nnoremap :call Liten() -nnoremap :call Litde() +nnoremap :call Liten() +nnoremap :call Litde() " Theme nnoremap :colo github_light_high_contrast