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.
119 lines
3.8 KiB
119 lines
3.8 KiB
define(["../_base"], function(dh){ |
|
|
|
var DELPHI_KEYWORDS = { |
|
'and': 1, 'safecall': 1, 'cdecl': 1, 'then': 1, 'string': 1, |
|
'exports': 1, 'library': 1, 'not': 1, 'pascal': 1, 'set': 1, |
|
'virtual': 1, 'file': 1, 'in': 1, 'array': 1, 'label': 1, 'packed': 1, |
|
'end.': 1, 'index': 1, 'while': 1, 'const': 1, 'raise': 1, 'for': 1, |
|
'to': 1, 'implementation': 1, 'with': 1, 'except': 1, 'overload': 1, |
|
'destructor': 1, 'downto': 1, 'finally': 1, 'program': 1, 'exit': 1, |
|
'unit': 1, 'inherited': 1, 'override': 1, 'if': 1, 'type': 1, |
|
'until': 1, 'function': 1, 'do': 1, 'begin': 1, 'repeat': 1, 'goto': 1, |
|
'nil': 1, 'far': 1, 'initialization': 1, 'object': 1, 'else': 1, |
|
'var': 1, 'uses': 1, 'external': 1, 'resourcestring': 1, |
|
'interface': 1, 'end': 1, 'finalization': 1, 'class': 1, 'asm': 1, |
|
'mod': 1, 'case': 1, 'on': 1, 'shr': 1, 'shl': 1, 'of': 1, |
|
'register': 1, 'xorwrite': 1, 'threadvar': 1, 'try': 1, 'record': 1, |
|
'near': 1, 'stored': 1, 'constructor': 1, 'stdcall': 1, 'inline': 1, |
|
'div': 1, 'out': 1, 'or': 1, 'procedure': 1 |
|
}; |
|
var DELPHI_CLASS_KEYWORDS = { |
|
'safecall': 1, 'stdcall': 1, 'pascal': 1, 'stored': 1, 'const': 1, |
|
'implementation': 1, 'finalization': 1, 'except': 1, 'to': 1, |
|
'finally': 1, 'program': 1, 'inherited': 1, 'override': 1, 'then': 1, |
|
'exports': 1, 'string': 1, 'read': 1, 'not': 1, 'mod': 1, 'shr': 1, |
|
'try': 1, 'div': 1, 'shl': 1, 'set': 1, 'library': 1, 'message': 1, |
|
'packed': 1, 'index': 1, 'for': 1, 'near': 1, 'overload': 1, |
|
'label': 1, 'downto': 1, 'exit': 1, 'public': 1, 'goto': 1, |
|
'interface': 1, 'asm': 1, 'on': 1, 'of': 1, 'constructor': 1, 'or': 1, |
|
'private': 1, 'array': 1, 'unit': 1, 'raise': 1, 'destructor': 1, |
|
'var': 1, 'type': 1, 'until': 1, 'function': 1, 'else': 1, |
|
'external': 1, 'with': 1, 'case': 1, 'default': 1, 'record': 1, |
|
'while': 1, 'protected': 1, 'property': 1, 'procedure': 1, |
|
'published': 1, 'and': 1, 'cdecl': 1, 'do': 1, 'threadvar': 1, |
|
'file': 1, 'in': 1, 'if': 1, 'end': 1, 'virtual': 1, 'write': 1, |
|
'far': 1, 'out': 1, 'begin': 1, 'repeat': 1, 'nil': 1, |
|
'initialization': 1, 'object': 1, 'uses': 1, 'resourcestring': 1, |
|
'class': 1, 'register': 1, 'xorwrite': 1, 'inline': 1 |
|
}; |
|
|
|
var dhc = dh.constants; |
|
dh.languages.delphi = { |
|
// summary: |
|
// Delphi highlight definitions |
|
defaultMode: { |
|
lexems: [dhc.IDENT_RE], |
|
illegal: '("|\\$[G-Zg-z]|\\/\\*|</)', |
|
contains: ['comment', 'string', 'number', 'function', 'class'], |
|
keywords: DELPHI_KEYWORDS |
|
}, |
|
case_insensitive: true, |
|
modes: [ |
|
{ |
|
className: 'comment', |
|
begin: '{', end: '}' |
|
}, |
|
{ |
|
className: 'comment', |
|
begin: '\\(\\*', end: '\\*\\)', |
|
relevance: 10 |
|
}, |
|
dhc.C_LINE_COMMENT_MODE, |
|
{ |
|
className: 'number', |
|
begin: dhc.NUMBER_RE, end: '^', |
|
relevance: 0 |
|
}, |
|
{ |
|
className: 'string', |
|
begin: '\'', end: '\'', |
|
contains: ['quote'], |
|
relevance: 0 |
|
}, |
|
{ |
|
className: 'string', |
|
begin: '(#\\d+)+', end: '^' |
|
}, |
|
{ |
|
className: 'quote', |
|
begin: '\'\'', end: '^' |
|
}, |
|
{ |
|
className: 'function', |
|
begin: 'function', end: '[:;]', |
|
lexems: [dhc.IDENT_RE], |
|
keywords: {'function': 1}, |
|
contains: ['title', 'params', 'comment'], |
|
relevance: 0 |
|
}, |
|
{ |
|
className: 'function', |
|
begin: '(procedure|constructor|destructor)', end: ';', |
|
lexems: [dhc.IDENT_RE], |
|
keywords: {'constructor': 1, 'destructor': 1, 'procedure': 1}, |
|
contains: ['title', 'params', 'comment'], |
|
relevance: 10 |
|
}, |
|
{ |
|
className: 'title', |
|
begin: dhc.IDENT_RE, end: '^' |
|
}, |
|
{ |
|
className: 'params', |
|
begin: '\\(', end: '\\)', |
|
lexems: [dhc.IDENT_RE], |
|
keywords: DELPHI_KEYWORDS, |
|
contains: ['string'] |
|
}, |
|
{ |
|
className: 'class', |
|
begin: '=\\s*class', end: 'end;', |
|
lexems: [dhc.IDENT_RE], |
|
keywords: DELPHI_CLASS_KEYWORDS, |
|
contains: ['string', 'comment', 'function'] |
|
} |
|
] |
|
}; |
|
|
|
return dh.languages.delphi |
|
});
|
|
|