Add Mojo syntax style

This commit is contained in:
1024jp 2023-05-03 11:10:49 +09:00
parent 527aa95996
commit af6ab34158
23 changed files with 557 additions and 0 deletions

View File

@ -5,6 +5,11 @@ Change Log
4.5.5 (unreleased)
--------------------------
### New Features
- Add Mojo syntax style.
### Fixes
- Workaround an issue that “Keep on Top” feature blocks all windows from coming back to the foreground in the Stage Manager mode.

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 306 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 589 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 561 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

View File

@ -60,6 +60,7 @@
<string>org.tug.tex</string>
<string>com.coteditor.conf</string>
<string>com.coteditor.lisp</string>
<string>com.coteditor.mojo</string>
<string>com.coteditor.scheme</string>
<string>com.coteditor.verilog</string>
<string>com.coteditor.vhdl</string>
@ -264,6 +265,31 @@
</array>
</dict>
</dict>
<dict>
<key>UTTypeConformsTo</key>
<array>
<string>public.source-code</string>
</array>
<key>UTTypeDescription</key>
<string>Mojo script</string>
<key>UTTypeIcons</key>
<dict>
<key>UTTypeIconBackgroundName</key>
<string>Mojo-fill</string>
<key>UTTypeIconText</key>
<string>mojo</string>
</dict>
<key>UTTypeIdentifier</key>
<string>com.coteditor.mojo</string>
<key>UTTypeTagSpecification</key>
<dict>
<key>public.filename-extension</key>
<array>
<string>mojo</string>
<string>🔥</string>
</array>
</dict>
</dict>
<dict>
<key>UTTypeConformsTo</key>
<array>

View File

@ -465,6 +465,18 @@
]
},
"Mojo" : {
"extensions" : [
"mojo",
"🔥"
],
"filenames" : [
],
"interpreters" : [
"mojo"
]
},
"Pascal" : {
"extensions" : [
"pas",

505
CotEditor/Syntaxes/Mojo.yml Normal file
View File

@ -0,0 +1,505 @@
attributes:
- beginString: '@(?:\w|\.)+'
regularExpression: true
- beginString: '@abstractmethod'
- beginString: '@always_inline'
description: Mojo decorator
- beginString: '@classmethod'
- beginString: '@parameter'
description: Mojo decorator
- beginString: '@property'
- beginString: '@register_passable'
description: Mojo decorator
- beginString: '@staticmethod'
- beginString: '@value'
description: Mojo decorator
characters: []
commands:
- beginString: \bprint(?![\t ]*(\w|['"]))
regularExpression: true
- beginString: __abs__
- beginString: __add__
- beginString: __aenter__
- beginString: __aexit__
- beginString: __aiter__
- beginString: __and__
- beginString: __anext__
- beginString: __await__
- beginString: __bool__
- beginString: __bytes__
- beginString: __call__
- beginString: __cmp__
- beginString: __coerce__
- beginString: __complex__
- beginString: __concat__
- beginString: __contains__
- beginString: __copy__
- beginString: __copyinit__
description: Mojo method
- beginString: __deepcopy__
- beginString: __del__
- beginString: __delattr__
- beginString: __delete__
- beginString: __delitem__
- beginString: __delslice__
- beginString: __dir__
- beginString: __div__
- beginString: __divmod__
- beginString: __enter__
- beginString: __eq__
- beginString: __exit__
- beginString: __float__
- beginString: __floordiv__
- beginString: __ge__
- beginString: __get__
- beginString: __getattr__
- beginString: __getattribute__
- beginString: __getitem__
- beginString: __getnewargs__
- beginString: __getnewargs_ex__
- beginString: __getslice__
- beginString: __getstate__
- beginString: __gt__
- beginString: __hash__
- beginString: __hex__
- beginString: __iadd__
- beginString: __iand__
- beginString: __iconcat__
- beginString: __idiv__
- beginString: __ifloordiv__
- beginString: __ilshift__
- beginString: __imatmul__
- beginString: __imod__
- beginString: __import__
- beginString: __imul__
- beginString: __index__
- beginString: __init__
- beginString: __init_subclass__
- beginString: __instancecheck__
- beginString: __int__
- beginString: __inv__
- beginString: __invert__
- beginString: __ior__
- beginString: __ipow__
- beginString: __irshift__
- beginString: __isub__
- beginString: __iter__
- beginString: __itruediv__
- beginString: __ixor__
- beginString: __le__
- beginString: __len__
- beginString: __length_hint__
- beginString: __long__
- beginString: __lshift__
- beginString: __lt__
- beginString: __matmul__
- beginString: __missing__
- beginString: __mod__
- beginString: __moveinit__
description: Mojo method
- beginString: __mul__
- beginString: __ne__
- beginString: __neg__
- beginString: __new__
- beginString: __next__
- beginString: __nonzero__
- beginString: __not__
- beginString: __oct__
- beginString: __or__
- beginString: __pos__
- beginString: __pow__
- beginString: __radd__
- beginString: __rand__
- beginString: __rcmp__
- beginString: __rdiv__
- beginString: __rdivmod__
- beginString: __reduce__
- beginString: __reduce_ex__
- beginString: __repr__
- beginString: __reversed__
- beginString: __rfloordiv__
- beginString: __rlshift__
- beginString: __rmatmul__
- beginString: __rmod__
- beginString: __rmul__
- beginString: __ror__
- beginString: __round__
- beginString: __rpow__
- beginString: __rrshift__
- beginString: __rshift__
- beginString: __rsub__
- beginString: __rtruediv__
- beginString: __rxor__
- beginString: __set__
- beginString: __set_name__
- beginString: __setattr__
- beginString: __setitem__
- beginString: __setslice__
- beginString: __setstate__
- beginString: __str__
- beginString: __sub__
- beginString: __subclasscheck__
- beginString: __subclasses__
- beginString: __truediv__
- beginString: __unicode__
- beginString: __xor__
- beginString: abs
- beginString: add
- beginString: all
- beginString: any
- beginString: append
- beginString: as_integer_ratio
- beginString: ascii
- beginString: bin
- beginString: bit_length
- beginString: bool
- beginString: breakpoint
- beginString: bytearray
- beginString: bytes
- beginString: callable
- beginString: capitalize
- beginString: casefold
- beginString: cast
- beginString: center
- beginString: chr
- beginString: classmethod
- beginString: clear
- beginString: close
- beginString: cmp
- beginString: compile
- beginString: complex
- beginString: conjugate
- beginString: copy
- beginString: count
- beginString: decode
- beginString: delattr
- beginString: dict
- beginString: difference
- beginString: difference_update
- beginString: dir
- beginString: discard
- beginString: divmod
- beginString: encode
- beginString: endswith
- beginString: enumerate
- beginString: eval
- beginString: exec
- beginString: execfile
- beginString: expandtabs
- beginString: extend
- beginString: file
- beginString: fileno
- beginString: filter
- beginString: find
- beginString: float
- beginString: flush
- beginString: format
- beginString: format_map
- beginString: from_bytes
- beginString: fromhex
- beginString: fromkeys
- beginString: frozenset
- beginString: get
- beginString: getattr
- beginString: getboolean
- beginString: getfloat
- beginString: getint
- beginString: globals
- beginString: has_key
- beginString: hasattr
- beginString: hash
- beginString: help
- beginString: hex
- beginString: id
- beginString: index
- beginString: indices
- beginString: input
- beginString: insert
- beginString: int
- beginString: intersection
- beginString: intersection_update
- beginString: is_integer
- beginString: isalnum
- beginString: isalpha
- beginString: isatty
- beginString: isdecimal
- beginString: isdigit
- beginString: isdisjoint
- beginString: isinstance
- beginString: islower
- beginString: isnumeric
- beginString: isspace
- beginString: issubclass
- beginString: issubset
- beginString: issuperset
- beginString: istitle
- beginString: isupper
- beginString: items
- beginString: iter
- beginString: iteritems
- beginString: iterkeys
- beginString: itervalues
- beginString: join
- beginString: keys
- beginString: len
- beginString: list
- beginString: ljust
- beginString: locals
- beginString: long
- beginString: lower
- beginString: lstrip
- beginString: maketrans
- beginString: map
- beginString: max
- beginString: memoryview
- beginString: min
- beginString: mro
- beginString: next
- beginString: object
- beginString: oct
- beginString: open
- beginString: ord
- beginString: partition
- beginString: pop
- beginString: popitem
- beginString: pow
- beginString: property
- beginString: range
- beginString: raw_input
- beginString: read
- beginString: readline
- beginString: readlines
- beginString: reduce
- beginString: release
- beginString: reload
- beginString: remove
- beginString: removeprefix
- beginString: removesuffix
- beginString: replace
- beginString: repr
- beginString: reverse
- beginString: reversed
- beginString: rfind
- beginString: rindex
- beginString: rjust
- beginString: round
- beginString: rpartition
- beginString: rsplit
- beginString: rstrip
- beginString: seek
- beginString: set
- beginString: setattr
- beginString: setdefault
- beginString: slice
- beginString: sort
- beginString: sorted
- beginString: split
- beginString: splitlines
- beginString: startswith
- beginString: staticmethod
- beginString: str
- beginString: strip
- beginString: sum
- beginString: super
- beginString: swapcase
- beginString: symmetric_difference
- beginString: symmetric_difference_update
- beginString: tell
- beginString: title
- beginString: to_bytes
- beginString: tolist
- beginString: translate
- beginString: truncate
- beginString: tuple
- beginString: type
- beginString: unichr
- beginString: unicode
- beginString: union
- beginString: update
- beginString: upper
- beginString: values
- beginString: vars
- beginString: viewitems
- beginString: viewkeys
- beginString: viewvalues
- beginString: write
- beginString: writelines
- beginString: xrange
- beginString: xreadlines
- beginString: zfill
- beginString: zip
commentDelimiters:
inlineDelimiter: '#'
comments: []
extensions:
- keyString: mojo
- keyString: "\U0001F525"
filenames: []
interpreters:
- keyString: mojo
keywords:
- beginString: alias
description: Mojo keyword
- beginString: and
- beginString: as
- beginString: assert
- beginString: async
- beginString: await
- beginString: break
- beginString: case
- beginString: class
- beginString: continue
- beginString: def
- beginString: del
- beginString: elif
- beginString: else
- beginString: except
- beginString: finally
- beginString: fn
description: Mojo keyword
- beginString: for
- beginString: from
- beginString: global
- beginString: if
- beginString: import
- beginString: in
- beginString: is
- beginString: lambda
- beginString: let
description: Mojo keyword
- beginString: match
- beginString: nonlocal
- beginString: not
- beginString: or
- beginString: pass
- beginString: print
- beginString: raise
- beginString: raises
description: Mojo keyword
- beginString: return
- beginString: struct
description: Mojo keyword
- beginString: try
- beginString: var
description: Mojo keyword
- beginString: while
- beginString: with
- beginString: yield
metadata:
author: 1024jp
description: Based on the official Mojo programming manual on 2023-05-03
distributionURL: https://coteditor.com
lastModified: '2023-05-03'
license: Same as CotEditor
version: 1.0.0
numbers:
- beginString: ((?<!\w)|[-+])(?:\.[0-9][0-9_]*|[0-9][0-9_]*\.|[0-9]+\.[0-9][0-9_]*|[0-9][0-9_]*)(e[+-]?[0-9][0-9_]*)?[jl]?
description: decimal
ignoreCase: true
regularExpression: true
- beginString: \b0b[01][01_]*l?
description: binary
ignoreCase: true
regularExpression: true
- beginString: \b0o[0-7][0-7_]*l?
description: octal
ignoreCase: true
regularExpression: true
- beginString: \b0x[0-9a-f][0-9a-f_]*l?
description: hexadecimal
ignoreCase: true
regularExpression: true
outlineMenu:
- beginString: ^([\t ]*)class[\t ]+(.+?):?[\t]*$
bold: true
description: class
keyString: $1$2
- beginString: ^([\t ]*)def[\t ]+(.+?):?[\t]*$
description: function
keyString: $1$2
- beginString: ^([\t ]*)struct[\t ]+(.+?):?[\t]*$
bold: true
description: Mojo struct
keyString: $1$2
strings:
- beginString: '"'
endString: '"'
- beginString: '"""'
endString: '"""'
- beginString: ''''
endString: ''''
- beginString: ''''''''
endString: ''''''''
- beginString: \b(r|u|f|fr|rf|ur|b|br|rb)['"]
ignoreCase: true
regularExpression: true
- beginString: '`'
endString: '`'
types: []
values:
- beginString: __all__
- beginString: __annotations__
- beginString: __bases__
- beginString: __builtins__
- beginString: __cached__
- beginString: __callback__
- beginString: __cause__
- beginString: __class__
- beginString: __closure__
- beginString: __code__
- beginString: __context__
- beginString: __debug__
- beginString: __defaults__
- beginString: __dict__
- beginString: __displayhook__
- beginString: __doc__
- beginString: __excepthook__
- beginString: __file__
- beginString: __func__
- beginString: __future__
- beginString: __globals__
- beginString: __interactivehook__
- beginString: __kwdefaults__
- beginString: __loader__
- beginString: __main__
- beginString: __metaclass__
- beginString: __module__
- beginString: __mro__
- beginString: __name__
- beginString: __package__
- beginString: __path__
- beginString: __qualname__
- beginString: __self__
- beginString: __slots__
- beginString: __spec__
- beginString: __stderr__
- beginString: __stdin__
- beginString: __stdout__
- beginString: __suppress_context__
- beginString: __traceback__
- beginString: __wrapped__
- beginString: basestring
- beginString: closed
- beginString: Ellipsis
- beginString: encoding
- beginString: 'False'
- beginString: func_closure
- beginString: func_code
- beginString: func_defaults
- beginString: func_dict
- beginString: func_doc
- beginString: func_globals
- beginString: func_name
- beginString: im_class
- beginString: im_func
- beginString: im_self
- beginString: imag
- beginString: mode
- beginString: newlines
- beginString: None
- beginString: NotImplemented
- beginString: softspace
- beginString: 'True'
variables:
- beginString: cls
- beginString: self

View File

@ -56,6 +56,7 @@
"Lisp script" = "Lisp-Skript";
"Lua script" = "Lua-Skript";
"Markdown document" = "Markdown-Dokument";
"Mojo script" = "Mojo-Skript";
"Perl script" = "Perl-Skript";
"PHP script" = "PHP-Skript";
"Python script" = "Python-Skript";

View File

@ -57,6 +57,7 @@
"Lisp script" = "Lisp script";
"Lua script" = "Lua script";
"Markdown document" = "Markdown document";
"Mojo script" = "Mojo script";
"Perl script" = "Perl script";
"PHP script" = "PHP script";
"Python script" = "Python script";

View File

@ -57,6 +57,7 @@
"Lisp script" = "Script Lisp";
"Lua script" = "Script Lua";
"Markdown document" = "Document Markdown";
"Mojo script" = "Script Mojo";
"Perl script" = "Script Perl";
"PHP script" = "Script PHP";
"Python script" = "Script Python";

View File

@ -56,6 +56,7 @@
"Lisp script" = "Script Lisp";
"Lua script" = "Script Lua";
"Markdown document" = "Documento Markdown";
"Mojo script" = "Script Mojo";
"Perl script" = "Script Perl";
"PHP script" = "Script PHP";
"Python script" = "Script Python";

View File

@ -57,6 +57,7 @@
"Lisp script" = "Lispスクリプト";
"Lua script" = "Luaスクリプト";
"Markdown document" = "Markdown書類";
"Mojo script" = "Mojoスクリプト";
"Perl script" = "Perlスクリプト";
"PHP script" = "PHPスクリプト";
"Python script" = "Pythonスクリプト";

View File

@ -56,6 +56,7 @@
"Lisp script" = "Script Lisp";
"Lua script" = "Script Lua";
"Markdown document" = "Documento Markdown";
"Mojo script" = "Script Mojo";
"Perl script" = "Script Perl";
"PHP script" = "Script PHP";
"Python script" = "Script Python";

View File

@ -57,6 +57,7 @@
"Lisp script" = "Lisp betiği";
"Lua script" = "Lua betiğe";
"Markdown document" = "Markdown belgesi";
"Mojo script" = "Mojo betiği";
"Perl script" = "Perl betiği";
"PHP script" = "PHP betiği";
"Python script" = "Python betiği";

View File

@ -56,6 +56,7 @@
"Lisp script" = "Lisp脚本";
"Lua script" = "Lua脚本";
"Markdown document" = "Markdown文档";
"Mojo script" = "Mojo脚本";
"Perl script" = "Perl脚本";
"PHP script" = "PHP脚本";
"Python script" = "Python脚本";

View File

@ -56,6 +56,7 @@
"Lisp script" = "Lisp腳本";
"Lua script" = "Lua腳本";
"Markdown document" = "Markdown文件";
"Mojo script" = "Mojo腳本";
"Perl script" = "Perl腳本";
"PHP script" = "PHP腳本";
"Python script" = "Python腳本";