Skip to content

Commit 9b5be5b

Browse files
committed
Improved ruby brush.
1 parent 8d1d99b commit 9b5be5b

File tree

1 file changed

+19
-19
lines changed

1 file changed

+19
-19
lines changed

jquery.syntax.brush.ruby.js

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,34 @@
11
// brush: "ruby" aliases: []
22

3-
/*
4-
# This ruby code will generate a list of classes.
5-
classes = []
6-
7-
ObjectSpace.each_object(Class) do |c|
8-
classes << c
9-
end
10-
11-
puts classes.collect{|cls| cls.name}.inspect
12-
*/
3+
Syntax.lib.rubyStyleFunction = {pattern: /(?:def\s+|\.)([a-z_][a-z0-9_]+)/gi, matches: Syntax.singleMatchFunction(1, {klass: 'function', allow: []})};
4+
Syntax.lib.rubyStyleSymbol = {pattern: /:[\w]+/, klass: 'constant', allow: []};
135

146
Syntax.register('ruby', function(brush) {
157
var keywords = ["alias", "and", "begin", "break", "case", "class", "def", "define_method", "defined", "do", "each", "else", "elsif", "end", "ensure", "false", "for", "if", "in", "module", "new", "next", "nil", "not", "or", "raise", "redo", "rescue", "retry", "return", "self", "super", "then", "throw", "true", "undef", "unless", "until", "when", "while", "yield"];
168

17-
var types = ["Socket", "UNIXServer", "UNIXSocket", "UDPSocket", "TCPServer", "TCPSocket", "IPSocket", "BasicSocket", "SocketError", "Pathname", "StopIteration", "Enumerable::Enumerator", "Binding", "UnboundMethod", "Method", "Proc", "SystemStackError", "LocalJumpError", "Struct::Tms", "Process::Status", "Time", "Dir", "File::Stat", "File", "IO", "EOFError", "IOError", "Range", "MatchData", "Regexp", "RegexpError", "Struct", "Hash", "Array", "Errno::EDQUOT", "Errno::ESTALE", "Errno::EINPROGRESS", "Errno::EALREADY", "Errno::EHOSTUNREACH", "Errno::EHOSTDOWN", "Errno::ECONNREFUSED", "Errno::ETIMEDOUT", "Errno::ETOOMANYREFS", "Errno::ESHUTDOWN", "Errno::ENOTCONN", "Errno::EISCONN", "Errno::ENOBUFS", "Errno::ECONNRESET", "Errno::ECONNABORTED", "Errno::ENETRESET", "Errno::ENETUNREACH", "Errno::ENETDOWN", "Errno::EADDRNOTAVAIL", "Errno::EADDRINUSE", "Errno::EAFNOSUPPORT", "Errno::EPFNOSUPPORT", "Errno::EOPNOTSUPP", "Errno::ESOCKTNOSUPPORT", "Errno::EPROTONOSUPPORT", "Errno::ENOPROTOOPT", "Errno::EPROTOTYPE", "Errno::EMSGSIZE", "Errno::EDESTADDRREQ", "Errno::ENOTSOCK", "Errno::EUSERS", "Errno::EILSEQ", "Errno::EOVERFLOW", "Errno::EBADMSG", "Errno::EMULTIHOP", "Errno::EPROTO", "Errno::ENOLINK", "Errno::EREMOTE", "Errno::ENOSR", "Errno::ETIME", "Errno::ENODATA", "Errno::ENOSTR", "Errno::EIDRM", "Errno::ENOMSG", "Errno::ELOOP", "Errno::ENOTEMPTY", "Errno::ENOSYS", "Errno::ENOLCK", "Errno::ENAMETOOLONG", "Errno::EDEADLK", "Errno::ERANGE", "Errno::EDOM", "Errno::EPIPE", "Errno::EMLINK", "Errno::EROFS", "Errno::ESPIPE", "Errno::ENOSPC", "Errno::EFBIG", "Errno::ETXTBSY", "Errno::ENOTTY", "Errno::EMFILE", "Errno::ENFILE", "Errno::EINVAL", "Errno::EISDIR", "Errno::ENOTDIR", "Errno::ENODEV", "Errno::EXDEV", "Errno::EEXIST", "Errno::EBUSY", "Errno::ENOTBLK", "Errno::EFAULT", "Errno::EACCES", "Errno::ENOMEM", "Errno::EAGAIN", "Errno::ECHILD", "Errno::EBADF", "Errno::ENOEXEC", "Errno::E2BIG", "Errno::ENXIO", "Errno::EIO", "Errno::EINTR", "Errno::ESRCH", "Errno::ENOENT", "Errno::EPERM", "Bignum", "Float", "Fixnum", "Integer", "Numeric", "FloatDomainError", "ZeroDivisionError", "ThreadGroup", "Continuation", "Thread", "ThreadError", "SystemCallError", "NoMemoryError", "SecurityError", "RuntimeError", "NotImplementedError", "LoadError", "SyntaxError", "ScriptError", "NoMethodError", "NameError::message", "NameError", "RangeError", "IndexError", "ArgumentError", "TypeError", "StandardError", "Interrupt", "SignalException", "fatal", "SystemExit", "Exception", "String", "FalseClass", "TrueClass", "Data", "Symbol", "NilClass", "Class", "Module", "Object"];
18-
199
var operators = ["+", "*", "/", "-", "&", "|", "~", "!", "%", "<", "=", ">"];
2010
var values = ["this", "true", "false", "nil", /[0-9]+(\.[0-9]+)?/g];
2111

22-
brush.push(values, {klass: 'constant', children: null});
23-
brush.push(types, {klass: 'type', children: null})
24-
brush.push(keywords, {klass: 'keyword', children: null})
25-
brush.push(operators, {klass: 'operator', children: null})
12+
var access = ["private", "public"];
13+
14+
brush.push(access, {klass: 'access', allow: []});
15+
brush.push(values, {klass: 'constant', allow: []});
16+
17+
brush.push({pattern: /(@+|\$)[\w]+/g, klass: 'variable', allow: []});
18+
19+
brush.push({pattern: /_*[A-Z][\w:]+/g, klass: 'type', allow: []});
20+
brush.push(keywords, {klass: 'keyword', allow: []});
21+
brush.push(operators, {klass: 'operator', allow: []});
2622

27-
brush.push(Syntax.lib.perlStyleComment)
23+
brush.push(Syntax.lib.perlStyleComment);
24+
brush.push(Syntax.lib.webLink);
2825

29-
brush.push({pattern: /".+?"/g, klass: 'string', children: ['escape']});
30-
brush.push({pattern: /\\./g, klass: 'escape'});
26+
// Strings
27+
brush.push(Syntax.lib.singleQuotedString);
28+
brush.push(Syntax.lib.doubleQuotedString);
29+
brush.push(Syntax.lib.stringEscape);
3130

3231
brush.push(Syntax.lib.rubyStyleFunction);
32+
brush.push(Syntax.lib.cStyleFunction);
3333
});
3434

0 commit comments

Comments
 (0)