Browse Source

Format code

Alex Dima 7 năm trước cách đây
mục cha
commit
3b733d9822
2 tập tin đã thay đổi với 117 bổ sung109 xóa
  1. 1 0
      README.md
  2. 116 109
      src/rust/rust.ts

+ 1 - 0
README.md

@@ -23,6 +23,7 @@ Colorization and configuration supports for multiple languages for the Monaco Ed
 * r
 * razor
 * ruby
+* rust
 * sql
 * swift
 * vb

+ 116 - 109
src/rust/rust.ts

@@ -41,124 +41,131 @@ export const conf: IRichLanguageConfiguration = {
 };
 
 export const language = <ILanguage>{
-  tokenPostfix: '.rust',
-  defaultToken: 'invalid',
-  keywords: [
-    'as', 'box', 'break', 'const', 'continue', 'crate', 'else', 'enum',
-    'extern', 'false', 'fn', 'for', 'if', 'impl', 'in', 'let', 'loop',
-    'match', 'mod', 'move', 'mut', 'pub', 'ref', 'return', 'self',
-    'static', 'struct', 'super', 'trait', 'true', 'type', 'unsafe', 'use',
-    'where', 'while', 'catch', 'default', 'union', 'static', 'abstract',
-    'alignof', 'become', 'do', 'final', 'macro', 'offsetof', 'override',
-    'priv', 'proc', 'pure', 'sizeof', 'typeof', 'unsized', 'virtual',
-    'yield',
-  ],
+	tokenPostfix: '.rust',
+	defaultToken: 'invalid',
+	keywords: [
+		'as', 'box', 'break', 'const', 'continue', 'crate', 'else', 'enum',
+		'extern', 'false', 'fn', 'for', 'if', 'impl', 'in', 'let', 'loop',
+		'match', 'mod', 'move', 'mut', 'pub', 'ref', 'return', 'self',
+		'static', 'struct', 'super', 'trait', 'true', 'type', 'unsafe', 'use',
+		'where', 'while', 'catch', 'default', 'union', 'static', 'abstract',
+		'alignof', 'become', 'do', 'final', 'macro', 'offsetof', 'override',
+		'priv', 'proc', 'pure', 'sizeof', 'typeof', 'unsized', 'virtual',
+		'yield',
+	],
 
-  typeKeywords: [
-    'Self', 'm32', 'm64', 'm128', 'f80', 'f16', 'f128', 'int', 'uint',
-    'float', 'char', 'bool', 'u8', 'u16', 'u32', 'u64', 'f32', 'f64', 'i8',
-    'i16', 'i32', 'i64', 'str', 'Option', 'Either', 'c_float', 'c_double',
-    'c_void', 'FILE', 'fpos_t', 'DIR', 'dirent', 'c_char', 'c_schar',
-    'c_uchar', 'c_short', 'c_ushort', 'c_int', 'c_uint', 'c_long',
-    'c_ulong', 'size_t', 'ptrdiff_t', 'clock_t', 'time_t', 'c_longlong',
-    'c_ulonglong', 'intptr_t', 'uintptr_t', 'off_t', 'dev_t', 'ino_t',
-    'pid_t', 'mode_t', 'ssize_t',
-  ],
+	typeKeywords: [
+		'Self', 'm32', 'm64', 'm128', 'f80', 'f16', 'f128', 'int', 'uint',
+		'float', 'char', 'bool', 'u8', 'u16', 'u32', 'u64', 'f32', 'f64', 'i8',
+		'i16', 'i32', 'i64', 'str', 'Option', 'Either', 'c_float', 'c_double',
+		'c_void', 'FILE', 'fpos_t', 'DIR', 'dirent', 'c_char', 'c_schar',
+		'c_uchar', 'c_short', 'c_ushort', 'c_int', 'c_uint', 'c_long',
+		'c_ulong', 'size_t', 'ptrdiff_t', 'clock_t', 'time_t', 'c_longlong',
+		'c_ulonglong', 'intptr_t', 'uintptr_t', 'off_t', 'dev_t', 'ino_t',
+		'pid_t', 'mode_t', 'ssize_t',
+	],
 
-  constants: [
-    'true', 'false', 'Some', 'None', 'Left', 'Right', 'Ok', 'Err',
-  ],
+	constants: [
+		'true', 'false', 'Some', 'None', 'Left', 'Right', 'Ok', 'Err',
+	],
 
-  supportConstants: [
-    'EXIT_FAILURE', 'EXIT_SUCCESS', 'RAND_MAX', 'EOF', 'SEEK_SET',
-    'SEEK_CUR', 'SEEK_END', '_IOFBF', '_IONBF', '_IOLBF', 'BUFSIZ',
-    'FOPEN_MAX', 'FILENAME_MAX', 'L_tmpnam', 'TMP_MAX', 'O_RDONLY',
-    'O_WRONLY', 'O_RDWR', 'O_APPEND', 'O_CREAT', 'O_EXCL', 'O_TRUNC',
-    'S_IFIFO', 'S_IFCHR', 'S_IFBLK', 'S_IFDIR', 'S_IFREG', 'S_IFMT',
-    'S_IEXEC', 'S_IWRITE', 'S_IREAD', 'S_IRWXU', 'S_IXUSR', 'S_IWUSR',
-    'S_IRUSR', 'F_OK', 'R_OK', 'W_OK', 'X_OK', 'STDIN_FILENO',
-    'STDOUT_FILENO', 'STDERR_FILENO',
-  ],
+	supportConstants: [
+		'EXIT_FAILURE', 'EXIT_SUCCESS', 'RAND_MAX', 'EOF', 'SEEK_SET',
+		'SEEK_CUR', 'SEEK_END', '_IOFBF', '_IONBF', '_IOLBF', 'BUFSIZ',
+		'FOPEN_MAX', 'FILENAME_MAX', 'L_tmpnam', 'TMP_MAX', 'O_RDONLY',
+		'O_WRONLY', 'O_RDWR', 'O_APPEND', 'O_CREAT', 'O_EXCL', 'O_TRUNC',
+		'S_IFIFO', 'S_IFCHR', 'S_IFBLK', 'S_IFDIR', 'S_IFREG', 'S_IFMT',
+		'S_IEXEC', 'S_IWRITE', 'S_IREAD', 'S_IRWXU', 'S_IXUSR', 'S_IWUSR',
+		'S_IRUSR', 'F_OK', 'R_OK', 'W_OK', 'X_OK', 'STDIN_FILENO',
+		'STDOUT_FILENO', 'STDERR_FILENO',
+	],
 
-  supportMacros: [
-    'format!', 'print!', 'println!', 'panic!', 'format_args!', 'unreachable!',
-    'write!', 'writeln!'
-  ],
+	supportMacros: [
+		'format!', 'print!', 'println!', 'panic!', 'format_args!', 'unreachable!',
+		'write!', 'writeln!'
+	],
 
-  operators: [
-    '!', '!=', '%', '%=', '&', '&=', '&&', '*', '*=', '+', '+=', '-', '-=',
-    '->', '.', '..', '...', '/', '/=', ':', ';', '<<', '<<=', '<', '<=', '=',
-    '==', '=>', '>', '>=', '>>', '>>=', '@', '^', '^=', '|', '|=', '||', '_',
-    '?', '#'
-  ],
+	operators: [
+		'!', '!=', '%', '%=', '&', '&=', '&&', '*', '*=', '+', '+=', '-', '-=',
+		'->', '.', '..', '...', '/', '/=', ':', ';', '<<', '<<=', '<', '<=', '=',
+		'==', '=>', '>', '>=', '>>', '>>=', '@', '^', '^=', '|', '|=', '||', '_',
+		'?', '#'
+	],
 
-  escapes: /\\([nrt0\"''\\]|x\h{2}|u\{\h{1,6}\})/,
-  delimiters: /[,]/,
-  symbols: /[\#\!\%\&\*\+\-\.\/\:\;\<\=\>\@\^\|_\?]+/,
-  intSuffixes: /[iu](8|16|32|64|128|size)/,
-  floatSuffixes: /f(32|64)/,
+	escapes: /\\([nrt0\"''\\]|x\h{2}|u\{\h{1,6}\})/,
+	delimiters: /[,]/,
+	symbols: /[\#\!\%\&\*\+\-\.\/\:\;\<\=\>\@\^\|_\?]+/,
+	intSuffixes: /[iu](8|16|32|64|128|size)/,
+	floatSuffixes: /f(32|64)/,
 
-  tokenizer: {
-    root: [
-      [/[a-zA-Z][a-zA-Z0-9_]*!?|_[a-zA-Z0-9_]+/,
-         { cases: { '@typeKeywords': 'keyword.type',
-                    '@keywords': 'keyword',
-                    '@supportConstants': 'keyword',
-                    '@supportMacros': 'keyword',
-                    '@constants': 'keyword',
-                    '@default': 'identifier', }
-         }
-      ],
-      // Designator
-      [/\$/, 'identifier'],
-      // Lifetime annotations
-      [/'[a-zA-Z_][a-zA-Z0-9_]*(?=[^\'])/, 'identifier'],
-      // Byte literal
-      [/'\S'/, 'string.byteliteral'],
-      // Strings
-      [/"/,  { token: 'string.quote', bracket: '@open', next: '@string' }],
-      {include: '@numbers'},
-      // Whitespace + comments
-      { include: '@whitespace' },
-      [/@delimiters/, { cases: { '@keywords': 'keyword',
-                                 '@default': 'delimiter' }}],
+	tokenizer: {
+		root: [
+			[/[a-zA-Z][a-zA-Z0-9_]*!?|_[a-zA-Z0-9_]+/,
+				{
+					cases: {
+						'@typeKeywords': 'keyword.type',
+						'@keywords': 'keyword',
+						'@supportConstants': 'keyword',
+						'@supportMacros': 'keyword',
+						'@constants': 'keyword',
+						'@default': 'identifier',
+					}
+				}
+			],
+			// Designator
+			[/\$/, 'identifier'],
+			// Lifetime annotations
+			[/'[a-zA-Z_][a-zA-Z0-9_]*(?=[^\'])/, 'identifier'],
+			// Byte literal
+			[/'\S'/, 'string.byteliteral'],
+			// Strings
+			[/"/, { token: 'string.quote', bracket: '@open', next: '@string' }],
+			{ include: '@numbers' },
+			// Whitespace + comments
+			{ include: '@whitespace' },
+			[/@delimiters/, {
+				cases: {
+					'@keywords': 'keyword',
+					'@default': 'delimiter'
+				}
+			}],
 
-      [/[{}()\[\]<>]/, '@brackets'],
-      [/@symbols/, { cases: {'@operators': 'operator', '@default'  : '' }}],
-    ],
+			[/[{}()\[\]<>]/, '@brackets'],
+			[/@symbols/, { cases: { '@operators': 'operator', '@default': '' } }],
+		],
 
-    whitespace: [
-      [/[ \t\r\n]+/, 'white'],
-      [/\/\*/, 'comment', '@comment'],
-      [/\/\/.*$/, 'comment'],
-    ],
+		whitespace: [
+			[/[ \t\r\n]+/, 'white'],
+			[/\/\*/, 'comment', '@comment'],
+			[/\/\/.*$/, 'comment'],
+		],
 
-    comment: [
-      [/[^\/*]+/, 'comment' ],
-      [/\/\*/, 'comment', '@push' ],
-      ["\\*/", 'comment', '@pop'],
-      [/[\/*]/, 'comment' ]
-    ],
+		comment: [
+			[/[^\/*]+/, 'comment'],
+			[/\/\*/, 'comment', '@push'],
+			["\\*/", 'comment', '@pop'],
+			[/[\/*]/, 'comment']
+		],
 
-    string: [
-      [/[^\\"]+/, 'string'],
-      [/@escapes/, 'string.escape'],
-      [/\\./, 'string.escape.invalid'],
-      [/"/, { token: 'string.quote', bracket: '@close', next: '@pop' } ]
-    ],
-    numbers: [
-      //Octal
-      [/(0o[0-7_]+)(@intSuffixes)?/, {token: 'number', log: 'Octal'}],
-      //Binary
-      [/(0b[0-1_]+)(@intSuffixes)?/, {token: 'number', log: 'Binary'}],
-      //Exponent
-      [/[\d][\d_]*(\.[\d][\d_]*)?[eE][+-][\d_]+(@floatSuffixes)?/, {token: 'number', log: 'Exponent'}],
-      //Float
-      [/\b(\d\.?[\d_]*)(@floatSuffixes)?\b/,{token: 'number', log: 'Float'}],
-      //Hexadecimal
-      [/(0x[\da-fA-F]+)_?(@intSuffixes)?/, {token: 'number', log: 'Hexadecimal'}],
-      //Integer
-      [/[\d][\d_]*(@intSuffixes?)?/, {token: 'number', log: 'Integer'}],
-    ]
-  }
+		string: [
+			[/[^\\"]+/, 'string'],
+			[/@escapes/, 'string.escape'],
+			[/\\./, 'string.escape.invalid'],
+			[/"/, { token: 'string.quote', bracket: '@close', next: '@pop' }]
+		],
+		numbers: [
+			//Octal
+			[/(0o[0-7_]+)(@intSuffixes)?/, { token: 'number', log: 'Octal' }],
+			//Binary
+			[/(0b[0-1_]+)(@intSuffixes)?/, { token: 'number', log: 'Binary' }],
+			//Exponent
+			[/[\d][\d_]*(\.[\d][\d_]*)?[eE][+-][\d_]+(@floatSuffixes)?/, { token: 'number', log: 'Exponent' }],
+			//Float
+			[/\b(\d\.?[\d_]*)(@floatSuffixes)?\b/, { token: 'number', log: 'Float' }],
+			//Hexadecimal
+			[/(0x[\da-fA-F]+)_?(@intSuffixes)?/, { token: 'number', log: 'Hexadecimal' }],
+			//Integer
+			[/[\d][\d_]*(@intSuffixes?)?/, { token: 'number', log: 'Integer' }],
+		]
+	}
 };