mirror of
https://github.com/ZuneDev/vscode-UIXA.git
synced 2026-07-27 13:22:18 -07:00
294 lines
6.6 KiB
Plaintext
294 lines
6.6 KiB
Plaintext
#################################################################
|
|
## Iro
|
|
################################################################
|
|
##
|
|
## * Press Ctrl + '+'/'-' To Zoom in
|
|
## * Press Ctrl + S to save and recalculate...
|
|
## * Documents are saved to web storage.
|
|
## * Only one save slot supported.
|
|
## * Matches cannot span lines.
|
|
## * Unicode chars must be defined in \u0000 to \uffff format.
|
|
## * All matches must be contained by a single group ( ... )
|
|
## * Look behinds not permitted, (?<= or (?<!
|
|
## * Look forwards are permitted (?= or (?!
|
|
## * Constants are defined as __my_const = (......)
|
|
## * The \= format allows unescaped regular expressions
|
|
## * Constants referenced by match \= $${__my_const}
|
|
## * Constants can reference other constants
|
|
## * You are free to delete all the default scopes.
|
|
## * Twitter : ainslec , Web: http://eeyo.io/iro
|
|
##
|
|
################################################################
|
|
|
|
name = uixa
|
|
file_extensions [] = uixa;
|
|
|
|
################################################################
|
|
## Constants
|
|
################################################################
|
|
|
|
//__MY_CONSTANT \= (\b[a-z][a-z0-9]*)
|
|
__ID \= [\w\d_]+
|
|
__QUALTYPEID \= ($${__ID}:)?($${__ID})
|
|
|
|
################################################################
|
|
## Styles
|
|
################################################################
|
|
|
|
styles [] {
|
|
|
|
.keyword : style {
|
|
color = #569CD6
|
|
textmate_scope = keyword
|
|
pygments_scope = Keyword
|
|
}
|
|
|
|
.numeric : style {
|
|
color = #B5CEA8
|
|
textmate_scope = constant.numeric.uixa
|
|
pygments_scope = Number
|
|
}
|
|
|
|
.punctuation : style {
|
|
color = white
|
|
textmate_scope = punctuation
|
|
pygments_scope = Punctuation
|
|
}
|
|
|
|
.text : style {
|
|
color = #D69D85
|
|
textmate_scope = string
|
|
}
|
|
|
|
.userId : style {
|
|
color = #9CDCFE
|
|
textmate_scope = entity.name.variable.parameter.uixa
|
|
}
|
|
|
|
.typeId : style {
|
|
color = #4EC9B0
|
|
textmate_scope = entity.name.type.uixa
|
|
}
|
|
|
|
.operator : style {
|
|
color = #B4B4B4
|
|
textmate_scope = keyword.operator
|
|
}
|
|
|
|
.method : style {
|
|
color = #DCDCAA
|
|
textmate_scope = entity.name.function.uixa
|
|
}
|
|
|
|
.illegal : style {
|
|
color = white
|
|
background_color = red
|
|
textmate_scope = invalid
|
|
pygments_scope = Generic.Error
|
|
}
|
|
|
|
}
|
|
|
|
#################################################
|
|
## Parse contexts
|
|
#################################################
|
|
|
|
contexts [] {
|
|
|
|
##############################################
|
|
## Main Context - Entry point context
|
|
##############################################
|
|
|
|
main : context {
|
|
: inline_push {
|
|
regex \= (.export)
|
|
styles [] = .keyword;
|
|
: eol_pop {}
|
|
: pattern {
|
|
regex \= ($${__ID}\s+)(\d+\s+)$${__QUALTYPEID}
|
|
styles [] = .text, .numeric, .userId, .typeId;
|
|
}
|
|
}
|
|
|
|
: inline_push {
|
|
regex \= (.section)
|
|
styles [] = .keyword;
|
|
: eol_pop {}
|
|
: pattern {
|
|
regex \= (\w+)
|
|
styles [] = .userId;
|
|
}
|
|
}
|
|
|
|
: inline_push {
|
|
regex \= (.import-ns)
|
|
styles [] = .keyword;
|
|
: eol_pop {}
|
|
: include "uri";
|
|
: pattern {
|
|
regex \= (as)
|
|
styles [] = .keyword;
|
|
}
|
|
: pattern {
|
|
regex \= ([\w_]+)
|
|
styles [] = .userId;
|
|
}
|
|
}
|
|
|
|
: inline_push {
|
|
regex \= (.import-type)
|
|
styles [] = .keyword;
|
|
: eol_pop {}
|
|
: include "type";
|
|
}
|
|
|
|
: inline_push {
|
|
regex \= (.import-ctor)
|
|
styles [] = .keyword;
|
|
: eol_pop {}
|
|
: include "method";
|
|
}
|
|
|
|
: inline_push {
|
|
regex \= (.import-mthd)
|
|
styles [] = .keyword;
|
|
: eol_pop {}
|
|
: include "method";
|
|
}
|
|
|
|
: inline_push {
|
|
regex \= (.import-mbrs)
|
|
styles [] = .keyword;
|
|
: eol_pop {}
|
|
: include "type";
|
|
: inline_push {
|
|
regex \= (\{)
|
|
styles [] = .punctuation;
|
|
: pop {
|
|
regex \= (\})
|
|
styles [] = .punctuation;
|
|
}
|
|
: pattern {
|
|
regex \= (,)
|
|
styles [] = .punctuation;
|
|
}
|
|
}
|
|
}
|
|
|
|
: inline_push {
|
|
regex \= (.constant)
|
|
styles [] = .keyword;
|
|
: eol_pop {}
|
|
: pattern {
|
|
regex \= ($${__ID})(\s*)(=)
|
|
styles [] = .userId, .punctuation, .operator;
|
|
}
|
|
|
|
: include "type";
|
|
|
|
: pattern {
|
|
regex \= (\.)([\w_]+)
|
|
styles [] = .operator, .method;
|
|
}
|
|
|
|
: inline_push {
|
|
regex \= (\()
|
|
styles [] = .punctuation;
|
|
default_style = .text
|
|
: pop {
|
|
regex \= (\))
|
|
styles [] = .punctuation;
|
|
}
|
|
}
|
|
}
|
|
|
|
: pattern {
|
|
regex \= ($${__ID})(:)
|
|
styles [] = .userId, .punctuation;
|
|
}
|
|
|
|
: include "numeric";
|
|
|
|
: pattern {
|
|
regex \= (\w+)
|
|
styles [] = .method;
|
|
}
|
|
|
|
: pattern {
|
|
regex \= (,)
|
|
styles [] = .punctuation;
|
|
}
|
|
|
|
: pattern {
|
|
regex \= (@$${__ID})
|
|
styles [] = .userId;
|
|
}
|
|
|
|
: pattern {
|
|
regex \= ([^\s])
|
|
styles [] = .illegal;
|
|
}
|
|
|
|
}
|
|
|
|
#################################################
|
|
## End of Contexts
|
|
#################################################
|
|
|
|
###########################################
|
|
## Numeric Context
|
|
###########################################
|
|
|
|
numeric : context {
|
|
: pattern {
|
|
regex \= (\b\d+)
|
|
styles [] = .numeric;
|
|
}
|
|
}
|
|
|
|
uri : context {
|
|
: pattern {
|
|
regex \= ([\w-]+://[\w/.!]+)
|
|
styles [] = .text;
|
|
}
|
|
}
|
|
|
|
type : context {
|
|
: pattern {
|
|
regex \= $${__QUALTYPEID}
|
|
styles [] = .userId, .typeId;
|
|
}
|
|
}
|
|
|
|
userId : context {
|
|
: pattern {
|
|
regex \= ($${__ID})
|
|
styles [] = .userId;
|
|
}
|
|
}
|
|
|
|
method : context {
|
|
: include "type";
|
|
|
|
: pattern {
|
|
regex \= (\.)([\w_]+)
|
|
styles [] = .operator, .method;
|
|
}
|
|
|
|
: inline_push {
|
|
regex \= (\()
|
|
styles [] = .punctuation;
|
|
: pop {
|
|
regex \= (\))
|
|
styles [] = .punctuation;
|
|
}
|
|
: include "type" ;
|
|
: pattern {
|
|
regex \= (,)
|
|
styles [] = .punctuation;
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|