Page Menu
Home
WickedGov Phorge
Search
Configure Global Search
Log In
Files
F4129896
mode-mushcode.js
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
15 KB
Referenced Files
None
Subscribers
None
mode-mushcode.js
View Options
ace
.
define
(
"ace/mode/mushcode_highlight_rules"
,[
"require"
,
"exports"
,
"module"
,
"ace/lib/oop"
,
"ace/mode/text_highlight_rules"
],
function
(
require
,
exports
,
module
){
/*
* MUSHCodeMode
*/
"use strict"
;
var
oop
=
require
(
"../lib/oop"
);
var
TextHighlightRules
=
require
(
"./text_highlight_rules"
).
TextHighlightRules
;
var
MushCodeRules
=
function
()
{
var
keywords
=
(
"@if|"
+
"@ifelse|"
+
"@switch|"
+
"@halt|"
+
"@dolist|"
+
"@create|"
+
"@scent|"
+
"@sound|"
+
"@touch|"
+
"@ataste|"
+
"@osound|"
+
"@ahear|"
+
"@aahear|"
+
"@amhear|"
+
"@otouch|"
+
"@otaste|"
+
"@drop|"
+
"@odrop|"
+
"@adrop|"
+
"@dropfail|"
+
"@odropfail|"
+
"@smell|"
+
"@oemit|"
+
"@emit|"
+
"@pemit|"
+
"@parent|"
+
"@clone|"
+
"@taste|"
+
"whisper|"
+
"page|"
+
"say|"
+
"pose|"
+
"semipose|"
+
"teach|"
+
"touch|"
+
"taste|"
+
"smell|"
+
"listen|"
+
"look|"
+
"move|"
+
"go|"
+
"home|"
+
"follow|"
+
"unfollow|"
+
"desert|"
+
"dismiss|"
+
"@tel"
);
var
builtinConstants
=
(
"=#0"
);
var
builtinFunctions
=
(
"default|"
+
"edefault|"
+
"eval|"
+
"get_eval|"
+
"get|"
+
"grep|"
+
"grepi|"
+
"hasattr|"
+
"hasattrp|"
+
"hasattrval|"
+
"hasattrpval|"
+
"lattr|"
+
"nattr|"
+
"poss|"
+
"udefault|"
+
"ufun|"
+
"u|"
+
"v|"
+
"uldefault|"
+
"xget|"
+
"zfun|"
+
"band|"
+
"bnand|"
+
"bnot|"
+
"bor|"
+
"bxor|"
+
"shl|"
+
"shr|"
+
"and|"
+
"cand|"
+
"cor|"
+
"eq|"
+
"gt|"
+
"gte|"
+
"lt|"
+
"lte|"
+
"nand|"
+
"neq|"
+
"nor|"
+
"not|"
+
"or|"
+
"t|"
+
"xor|"
+
"con|"
+
"entrances|"
+
"exit|"
+
"followers|"
+
"home|"
+
"lcon|"
+
"lexits|"
+
"loc|"
+
"locate|"
+
"lparent|"
+
"lsearch|"
+
"next|"
+
"num|"
+
"owner|"
+
"parent|"
+
"pmatch|"
+
"rloc|"
+
"rnum|"
+
"room|"
+
"where|"
+
"zone|"
+
"worn|"
+
"held|"
+
"carried|"
+
"acos|"
+
"asin|"
+
"atan|"
+
"ceil|"
+
"cos|"
+
"e|"
+
"exp|"
+
"fdiv|"
+
"fmod|"
+
"floor|"
+
"log|"
+
"ln|"
+
"pi|"
+
"power|"
+
"round|"
+
"sin|"
+
"sqrt|"
+
"tan|"
+
"aposs|"
+
"andflags|"
+
"conn|"
+
"commandssent|"
+
"controls|"
+
"doing|"
+
"elock|"
+
"findable|"
+
"flags|"
+
"fullname|"
+
"hasflag|"
+
"haspower|"
+
"hastype|"
+
"hidden|"
+
"idle|"
+
"isbaker|"
+
"lock|"
+
"lstats|"
+
"money|"
+
"who|"
+
"name|"
+
"nearby|"
+
"obj|"
+
"objflags|"
+
"photo|"
+
"poll|"
+
"powers|"
+
"pendingtext|"
+
"receivedtext|"
+
"restarts|"
+
"restarttime|"
+
"subj|"
+
"shortestpath|"
+
"tmoney|"
+
"type|"
+
"visible|"
+
"cat|"
+
"element|"
+
"elements|"
+
"extract|"
+
"filter|"
+
"filterbool|"
+
"first|"
+
"foreach|"
+
"fold|"
+
"grab|"
+
"graball|"
+
"index|"
+
"insert|"
+
"itemize|"
+
"items|"
+
"iter|"
+
"last|"
+
"ldelete|"
+
"map|"
+
"match|"
+
"matchall|"
+
"member|"
+
"mix|"
+
"munge|"
+
"pick|"
+
"remove|"
+
"replace|"
+
"rest|"
+
"revwords|"
+
"setdiff|"
+
"setinter|"
+
"setunion|"
+
"shuffle|"
+
"sort|"
+
"sortby|"
+
"splice|"
+
"step|"
+
"wordpos|"
+
"words|"
+
"add|"
+
"lmath|"
+
"max|"
+
"mean|"
+
"median|"
+
"min|"
+
"mul|"
+
"percent|"
+
"sign|"
+
"stddev|"
+
"sub|"
+
"val|"
+
"bound|"
+
"abs|"
+
"inc|"
+
"dec|"
+
"dist2d|"
+
"dist3d|"
+
"div|"
+
"floordiv|"
+
"mod|"
+
"modulo|"
+
"remainder|"
+
"vadd|"
+
"vdim|"
+
"vdot|"
+
"vmag|"
+
"vmax|"
+
"vmin|"
+
"vmul|"
+
"vsub|"
+
"vunit|"
+
"regedit|"
+
"regeditall|"
+
"regeditalli|"
+
"regediti|"
+
"regmatch|"
+
"regmatchi|"
+
"regrab|"
+
"regraball|"
+
"regraballi|"
+
"regrabi|"
+
"regrep|"
+
"regrepi|"
+
"after|"
+
"alphamin|"
+
"alphamax|"
+
"art|"
+
"before|"
+
"brackets|"
+
"capstr|"
+
"case|"
+
"caseall|"
+
"center|"
+
"containsfansi|"
+
"comp|"
+
"decompose|"
+
"decrypt|"
+
"delete|"
+
"edit|"
+
"encrypt|"
+
"escape|"
+
"if|"
+
"ifelse|"
+
"lcstr|"
+
"left|"
+
"lit|"
+
"ljust|"
+
"merge|"
+
"mid|"
+
"ostrlen|"
+
"pos|"
+
"repeat|"
+
"reverse|"
+
"right|"
+
"rjust|"
+
"scramble|"
+
"secure|"
+
"space|"
+
"spellnum|"
+
"squish|"
+
"strcat|"
+
"strmatch|"
+
"strinsert|"
+
"stripansi|"
+
"stripfansi|"
+
"strlen|"
+
"switch|"
+
"switchall|"
+
"table|"
+
"tr|"
+
"trim|"
+
"ucstr|"
+
"unsafe|"
+
"wrap|"
+
"ctitle|"
+
"cwho|"
+
"channels|"
+
"clock|"
+
"cflags|"
+
"ilev|"
+
"itext|"
+
"inum|"
+
"convsecs|"
+
"convutcsecs|"
+
"convtime|"
+
"ctime|"
+
"etimefmt|"
+
"isdaylight|"
+
"mtime|"
+
"secs|"
+
"msecs|"
+
"starttime|"
+
"time|"
+
"timefmt|"
+
"timestring|"
+
"utctime|"
+
"atrlock|"
+
"clone|"
+
"create|"
+
"cook|"
+
"dig|"
+
"emit|"
+
"lemit|"
+
"link|"
+
"oemit|"
+
"open|"
+
"pemit|"
+
"remit|"
+
"set|"
+
"tel|"
+
"wipe|"
+
"zemit|"
+
"fbcreate|"
+
"fbdestroy|"
+
"fbwrite|"
+
"fbclear|"
+
"fbcopy|"
+
"fbcopyto|"
+
"fbclip|"
+
"fbdump|"
+
"fbflush|"
+
"fbhset|"
+
"fblist|"
+
"fbstats|"
+
"qentries|"
+
"qentry|"
+
"play|"
+
"ansi|"
+
"break|"
+
"c|"
+
"asc|"
+
"die|"
+
"isdbref|"
+
"isint|"
+
"isnum|"
+
"isletters|"
+
"linecoords|"
+
"localize|"
+
"lnum|"
+
"nameshort|"
+
"null|"
+
"objeval|"
+
"r|"
+
"rand|"
+
"s|"
+
"setq|"
+
"setr|"
+
"soundex|"
+
"soundslike|"
+
"valid|"
+
"vchart|"
+
"vchart2|"
+
"vlabel|"
+
"@@|"
+
"bakerdays|"
+
"bodybuild|"
+
"box|"
+
"capall|"
+
"catalog|"
+
"children|"
+
"ctrailer|"
+
"darttime|"
+
"debt|"
+
"detailbar|"
+
"exploredroom|"
+
"fansitoansi|"
+
"fansitoxansi|"
+
"fullbar|"
+
"halfbar|"
+
"isdarted|"
+
"isnewbie|"
+
"isword|"
+
"lambda|"
+
"lobjects|"
+
"lplayers|"
+
"lthings|"
+
"lvexits|"
+
"lvobjects|"
+
"lvplayers|"
+
"lvthings|"
+
"newswrap|"
+
"numsuffix|"
+
"playerson|"
+
"playersthisweek|"
+
"randomad|"
+
"randword|"
+
"realrandword|"
+
"replacechr|"
+
"second|"
+
"splitamount|"
+
"strlenall|"
+
"text|"
+
"third|"
+
"tofansi|"
+
"totalac|"
+
"unique|"
+
"getaddressroom|"
+
"listpropertycomm|"
+
"listpropertyres|"
+
"lotowner|"
+
"lotrating|"
+
"lotratingcount|"
+
"lotvalue|"
+
"boughtproduct|"
+
"companyabb|"
+
"companyicon|"
+
"companylist|"
+
"companyname|"
+
"companyowners|"
+
"companyvalue|"
+
"employees|"
+
"invested|"
+
"productlist|"
+
"productname|"
+
"productowners|"
+
"productrating|"
+
"productratingcount|"
+
"productsoldat|"
+
"producttype|"
+
"ratedproduct|"
+
"soldproduct|"
+
"topproducts|"
+
"totalspentonproduct|"
+
"totalstock|"
+
"transfermoney|"
+
"uniquebuyercount|"
+
"uniqueproductsbought|"
+
"validcompany|"
+
"deletepicture|"
+
"fbsave|"
+
"getpicturesecurity|"
+
"haspicture|"
+
"listpictures|"
+
"picturesize|"
+
"replacecolor|"
+
"rgbtocolor|"
+
"savepicture|"
+
"setpicturesecurity|"
+
"showpicture|"
+
"piechart|"
+
"piechartlabel|"
+
"createmaze|"
+
"drawmaze|"
+
"drawwireframe"
);
var
keywordMapper
=
this
.
createKeywordMapper
({
"invalid.deprecated"
:
"debugger"
,
"support.function"
:
builtinFunctions
,
"constant.language"
:
builtinConstants
,
"keyword"
:
keywords
},
"identifier"
);
var
strPre
=
"(?:r|u|ur|R|U|UR|Ur|uR)?"
;
var
decimalInteger
=
"(?:(?:[1-9]\\d*)|(?:0))"
;
var
octInteger
=
"(?:0[oO]?[0-7]+)"
;
var
hexInteger
=
"(?:0[xX][\\dA-Fa-f]+)"
;
var
binInteger
=
"(?:0[bB][01]+)"
;
var
integer
=
"(?:"
+
decimalInteger
+
"|"
+
octInteger
+
"|"
+
hexInteger
+
"|"
+
binInteger
+
")"
;
var
exponent
=
"(?:[eE][+-]?\\d+)"
;
var
fraction
=
"(?:\\.\\d+)"
;
var
intPart
=
"(?:\\d+)"
;
var
pointFloat
=
"(?:(?:"
+
intPart
+
"?"
+
fraction
+
")|(?:"
+
intPart
+
"\\.))"
;
var
exponentFloat
=
"(?:(?:"
+
pointFloat
+
"|"
+
intPart
+
")"
+
exponent
+
")"
;
var
floatNumber
=
"(?:"
+
exponentFloat
+
"|"
+
pointFloat
+
")"
;
this
.
$rules
=
{
"start"
:
[
{
token
:
"variable"
,
// mush substitution register
regex
:
"%[0-9]{1}"
},
{
token
:
"variable"
,
// mush substitution register
regex
:
"%q[0-9A-Za-z]{1}"
},
{
token
:
"variable"
,
// mush special character register
regex
:
"%[a-zA-Z]{1}"
},
{
token
:
"variable.language"
,
regex
:
"%[a-z0-9-_]+"
},
{
token
:
"constant.numeric"
,
// imaginary
regex
:
"(?:"
+
floatNumber
+
"|\\d+)[jJ]\\b"
},
{
token
:
"constant.numeric"
,
// float
regex
:
floatNumber
},
{
token
:
"constant.numeric"
,
// long integer
regex
:
integer
+
"[lL]\\b"
},
{
token
:
"constant.numeric"
,
// integer
regex
:
integer
+
"\\b"
},
{
token
:
keywordMapper
,
regex
:
"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"
},
{
token
:
"keyword.operator"
,
regex
:
"\\+|\\-|\\*|\\*\\*|\\/|\\/\\/|#|%|<<|>>|\\||\\^|~|<|>|<=|=>|==|!=|<>|="
},
{
token
:
"paren.lparen"
,
regex
:
"[\\[\\(\\{]"
},
{
token
:
"paren.rparen"
,
regex
:
"[\\]\\)\\}]"
},
{
token
:
"text"
,
regex
:
"\\s+"
}
]
};
};
oop
.
inherits
(
MushCodeRules
,
TextHighlightRules
);
exports
.
MushCodeRules
=
MushCodeRules
;
});
ace
.
define
(
"ace/mode/folding/pythonic"
,[
"require"
,
"exports"
,
"module"
,
"ace/lib/oop"
,
"ace/mode/folding/fold_mode"
],
function
(
require
,
exports
,
module
){
"use strict"
;
var
oop
=
require
(
"../../lib/oop"
);
var
BaseFoldMode
=
require
(
"./fold_mode"
).
FoldMode
;
var
FoldMode
=
exports
.
FoldMode
=
function
(
markers
)
{
this
.
foldingStartMarker
=
new
RegExp
(
"([\\[{])(?:\\s*)$|("
+
markers
+
")(?:\\s*)(?:#.*)?$"
);
};
oop
.
inherits
(
FoldMode
,
BaseFoldMode
);
(
function
()
{
this
.
getFoldWidgetRange
=
function
(
session
,
foldStyle
,
row
)
{
var
line
=
session
.
getLine
(
row
);
var
match
=
line
.
match
(
this
.
foldingStartMarker
);
if
(
match
)
{
if
(
match
[
1
])
return
this
.
openingBracketBlock
(
session
,
match
[
1
],
row
,
match
.
index
);
if
(
match
[
2
])
return
this
.
indentationBlock
(
session
,
row
,
match
.
index
+
match
[
2
].
length
);
return
this
.
indentationBlock
(
session
,
row
);
}
};
}).
call
(
FoldMode
.
prototype
);
});
ace
.
define
(
"ace/mode/mushcode"
,[
"require"
,
"exports"
,
"module"
,
"ace/lib/oop"
,
"ace/mode/text"
,
"ace/mode/mushcode_highlight_rules"
,
"ace/mode/folding/pythonic"
,
"ace/range"
],
function
(
require
,
exports
,
module
){
"use strict"
;
var
oop
=
require
(
"../lib/oop"
);
var
TextMode
=
require
(
"./text"
).
Mode
;
var
MushCodeRules
=
require
(
"./mushcode_highlight_rules"
).
MushCodeRules
;
var
PythonFoldMode
=
require
(
"./folding/pythonic"
).
FoldMode
;
var
Range
=
require
(
"../range"
).
Range
;
var
Mode
=
function
()
{
this
.
HighlightRules
=
MushCodeRules
;
this
.
foldingRules
=
new
PythonFoldMode
(
"\\:"
);
this
.
$behaviour
=
this
.
$defaultBehaviour
;
};
oop
.
inherits
(
Mode
,
TextMode
);
(
function
()
{
this
.
getNextLineIndent
=
function
(
state
,
line
,
tab
)
{
var
indent
=
this
.
$getIndent
(
line
);
var
tokenizedLine
=
this
.
getTokenizer
().
getLineTokens
(
line
,
state
);
var
tokens
=
tokenizedLine
.
tokens
;
if
(
tokens
.
length
&&
tokens
[
tokens
.
length
-
1
].
type
==
"comment"
)
{
return
indent
;
}
if
(
state
==
"start"
)
{
var
match
=
line
.
match
(
/^.*[\{\(\[:]\s*$/
);
if
(
match
)
{
indent
+=
tab
;
}
}
return
indent
;
};
var
outdents
=
{
"pass"
:
1
,
"return"
:
1
,
"raise"
:
1
,
"break"
:
1
,
"continue"
:
1
};
this
.
checkOutdent
=
function
(
state
,
line
,
input
)
{
if
(
input
!==
"\r\n"
&&
input
!==
"\r"
&&
input
!==
"\n"
)
return
false
;
var
tokens
=
this
.
getTokenizer
().
getLineTokens
(
line
.
trim
(),
state
).
tokens
;
if
(
!
tokens
)
return
false
;
do
{
var
last
=
tokens
.
pop
();
}
while
(
last
&&
(
last
.
type
==
"comment"
||
(
last
.
type
==
"text"
&&
last
.
value
.
match
(
/^\s+$/
))));
if
(
!
last
)
return
false
;
return
(
last
.
type
==
"keyword"
&&
outdents
[
last
.
value
]);
};
this
.
autoOutdent
=
function
(
state
,
doc
,
row
)
{
row
+=
1
;
var
indent
=
this
.
$getIndent
(
doc
.
getLine
(
row
));
var
tab
=
doc
.
getTabString
();
if
(
indent
.
slice
(
-
tab
.
length
)
==
tab
)
doc
.
remove
(
new
Range
(
row
,
indent
.
length
-
tab
.
length
,
row
,
indent
.
length
));
};
this
.
$id
=
"ace/mode/mushcode"
;
}).
call
(
Mode
.
prototype
);
exports
.
Mode
=
Mode
;
});
(
function
()
{
ace
.
require
([
"ace/mode/mushcode"
],
function
(
m
)
{
if
(
typeof
module
==
"object"
&&
typeof
exports
==
"object"
&&
module
)
{
module
.
exports
=
m
;
}
});
})();
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Wed, Aug 19, 10:08 (2 w, 6 d ago)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
70/fb/a056183867ff2fd9f405da0a02a4
Default Alt Text
mode-mushcode.js (15 KB)
Attached To
Mode
rMWPROD MediaWiki Production
Attached
Detach File
Event Timeline
Log In to Comment