12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- module.exports = function(hljs) {
- var KEYWORDS =
- 'div mod in and or not xor asserterror begin case do downto else end exit for if of repeat then to ' +
- 'until while with var';
- var LITERALS = 'false true';
- var COMMENT_MODES = [
- hljs.C_LINE_COMMENT_MODE,
- hljs.COMMENT(
- /\{/,
- /\}/,
- {
- relevance: 0
- }
- ),
- hljs.COMMENT(
- /\(\*/,
- /\*\)/,
- {
- relevance: 10
- }
- )
- ];
- var STRING = {
- className: 'string',
- begin: /'/, end: /'/,
- contains: [{begin: /''/}]
- };
- var CHAR_STRING = {
- className: 'string', begin: /(#\d+)+/
- };
- var DATE = {
- className: 'number',
- begin: '\\b\\d+(\\.\\d+)?(DT|D|T)',
- relevance: 0
- };
- var DBL_QUOTED_VARIABLE = {
- className: 'string', // not a string technically but makes sense to be highlighted in the same style
- begin: '"',
- end: '"'
- };
- var PROCEDURE = {
- className: 'function',
- beginKeywords: 'procedure', end: /[:;]/,
- keywords: 'procedure|10',
- contains: [
- hljs.TITLE_MODE,
- {
- className: 'params',
- begin: /\(/, end: /\)/,
- keywords: KEYWORDS,
- contains: [STRING, CHAR_STRING]
- }
- ].concat(COMMENT_MODES)
- };
- var OBJECT = {
- className: 'class',
- begin: 'OBJECT (Table|Form|Report|Dataport|Codeunit|XMLport|MenuSuite|Page|Query) (\\d+) ([^\\r\\n]+)',
- returnBegin: true,
- contains: [
- hljs.TITLE_MODE,
- PROCEDURE
- ]
- };
- return {
- case_insensitive: true,
- keywords: { keyword: KEYWORDS, literal: LITERALS },
- illegal: /\/\*/,
- contains: [
- STRING, CHAR_STRING,
- DATE, DBL_QUOTED_VARIABLE,
- hljs.NUMBER_MODE,
- OBJECT,
- PROCEDURE
- ]
- };
- };
|