You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
184 lines
5.3 KiB
184 lines
5.3 KiB
/*--------------------------------------------------------------------------------------------- |
|
* Copyright (c) Microsoft Corporation. All rights reserved. |
|
* Licensed under the MIT License. See License.txt in the project root for license information. |
|
*--------------------------------------------------------------------------------------------*/ |
|
define(["require", "exports"], function (require, exports) { |
|
'use strict'; |
|
Object.defineProperty(exports, "__esModule", { value: true }); |
|
exports.conf = { |
|
comments: { |
|
lineComment: '//', |
|
blockComment: ['/*', '*/'], |
|
}, |
|
brackets: [ |
|
['{', '}'], |
|
['[', ']'], |
|
['(', ')'] |
|
], |
|
autoClosingPairs: [ |
|
{ open: '{', close: '}' }, |
|
{ open: '[', close: ']' }, |
|
{ open: '(', close: ')' }, |
|
{ open: '"', close: '"' }, |
|
{ open: '\'', close: '\'' }, |
|
], |
|
surroundingPairs: [ |
|
{ open: '{', close: '}' }, |
|
{ open: '[', close: ']' }, |
|
{ open: '(', close: ')' }, |
|
{ open: '"', close: '"' }, |
|
{ open: '\'', close: '\'' }, |
|
] |
|
}; |
|
exports.language = { |
|
defaultToken: '', |
|
tokenPostfix: '.objective-c', |
|
keywords: [ |
|
'#import', |
|
'#include', |
|
'#define', |
|
'#else', |
|
'#endif', |
|
'#if', |
|
'#ifdef', |
|
'#ifndef', |
|
'#ident', |
|
'#undef', |
|
'@class', |
|
'@defs', |
|
'@dynamic', |
|
'@encode', |
|
'@end', |
|
'@implementation', |
|
'@interface', |
|
'@package', |
|
'@private', |
|
'@protected', |
|
'@property', |
|
'@protocol', |
|
'@public', |
|
'@selector', |
|
'@synthesize', |
|
'__declspec', |
|
'assign', |
|
'auto', |
|
'BOOL', |
|
'break', |
|
'bycopy', |
|
'byref', |
|
'case', |
|
'char', |
|
'Class', |
|
'const', |
|
'copy', |
|
'continue', |
|
'default', |
|
'do', |
|
'double', |
|
'else', |
|
'enum', |
|
'extern', |
|
'FALSE', |
|
'false', |
|
'float', |
|
'for', |
|
'goto', |
|
'if', |
|
'in', |
|
'int', |
|
'id', |
|
'inout', |
|
'IMP', |
|
'long', |
|
'nil', |
|
'nonatomic', |
|
'NULL', |
|
'oneway', |
|
'out', |
|
'private', |
|
'public', |
|
'protected', |
|
'readwrite', |
|
'readonly', |
|
'register', |
|
'return', |
|
'SEL', |
|
'self', |
|
'short', |
|
'signed', |
|
'sizeof', |
|
'static', |
|
'struct', |
|
'super', |
|
'switch', |
|
'typedef', |
|
'TRUE', |
|
'true', |
|
'union', |
|
'unsigned', |
|
'volatile', |
|
'void', |
|
'while', |
|
], |
|
decpart: /\d(_?\d)*/, |
|
decimal: /0|@decpart/, |
|
tokenizer: { |
|
root: [ |
|
{ include: '@comments' }, |
|
{ include: '@whitespace' }, |
|
{ include: '@numbers' }, |
|
{ include: '@strings' }, |
|
[/[,:;]/, 'delimiter'], |
|
[/[{}\[\]()<>]/, '@brackets'], |
|
[/[a-zA-Z@#]\w*/, { |
|
cases: { |
|
'@keywords': 'keyword', |
|
'@default': 'identifier' |
|
} |
|
}], |
|
[/[<>=\\+\\-\\*\\/\\^\\|\\~,]|and\\b|or\\b|not\\b]/, 'operator'], |
|
], |
|
whitespace: [ |
|
[/\s+/, 'white'], |
|
], |
|
comments: [ |
|
['\\/\\*', 'comment', '@comment'], |
|
['\\/\\/+.*', 'comment'], |
|
], |
|
comment: [ |
|
['\\*\\/', 'comment', '@pop'], |
|
['.', 'comment',], |
|
], |
|
numbers: [ |
|
[/0[xX][0-9a-fA-F]*(_?[0-9a-fA-F])*/, 'number.hex'], |
|
[/@decimal((\.@decpart)?([eE][\-+]?@decpart)?)[fF]*/, { |
|
cases: { |
|
'(\\d)*': 'number', |
|
'$0': 'number.float' |
|
} |
|
}] |
|
], |
|
// Recognize strings, including those broken across lines with \ (but not without) |
|
strings: [ |
|
[/'$/, 'string.escape', '@popall'], |
|
[/'/, 'string.escape', '@stringBody'], |
|
[/"$/, 'string.escape', '@popall'], |
|
[/"/, 'string.escape', '@dblStringBody'] |
|
], |
|
stringBody: [ |
|
[/\\./, 'string'], |
|
[/'/, 'string.escape', '@popall'], |
|
[/.(?=.*')/, 'string'], |
|
[/.*\\$/, 'string'], |
|
[/.*$/, 'string', '@popall'] |
|
], |
|
dblStringBody: [ |
|
[/\\./, 'string'], |
|
[/"/, 'string.escape', '@popall'], |
|
[/.(?=.*")/, 'string'], |
|
[/.*\\$/, 'string'], |
|
[/.*$/, 'string', '@popall'] |
|
] |
|
} |
|
}; |
|
});
|
|
|