// console language standard library // creates a macro whose body is a format string // i.e. macro greet [ say Hi, %1! ] macro = [ $arg1 = (concat [format [@@arg2]] (loopconcat i $numargs [concatword " $arg" (+ $i 1)])) ] // binds a key so that it will toggle a variable // i.e. bindvar 9 thirdperson togglevar = [ set $arg1 (= $$arg1 0) if (= $$arg1 0) [echo $arg1 OFF] [echo $arg1 ON] ] bindvar = [ if (>= $numargs 3) [ bind $arg1 [if (@arg3) [togglevar @@arg2]] ] [ bind $arg1 [togglevar @arg2] ] ] bindvarquiet = [ bind $arg1 [set @arg2 (= $@arg2 0)] ] // same as above, but only binds for edit mode editbindvar = [ if (>= $numargs 3) [ editbind $arg1 [if (@arg3) [togglevar @@arg2]] ] [ editbind $arg1 [togglevar @arg2] ] ] editbindvarquiet = [ editbind $arg1 [set @arg2 (= $@arg2 0)] ] // binds a key so that it will set a modifier while held down bindmod = [ bind $arg1 [set @arg2 1; onrelease [set @@arg2 0]] ] // same as above, but only binds for edit mode editbindmod = [ editbind $arg1 [set @arg2 1; onrelease [set @@arg2 0]] ] quine = [ echo (format "quine = [%1]" $quine) ]