blob: bd7507c142252cbdbf82419323e0189f0bc39e10 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
// 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) ]
|