mirror of
https://github.com/Combodo/iTop.git
synced 2026-02-13 15:34:12 +01:00
Mind that this lib is not maintained through NPM yet as its sources alone don't allow to be used in CKEditor out of the box, it needs extra steps to be built/used. And as we are already struggling with the CKEditor integration, we rather make baby steps.
94 lines
2.4 KiB
JavaScript
94 lines
2.4 KiB
JavaScript
/*! `makefile` grammar compiled for Highlight.js 11.9.0 */
|
|
var hljsGrammar = (function () {
|
|
'use strict';
|
|
|
|
/*
|
|
Language: Makefile
|
|
Author: Ivan Sagalaev <maniac@softwaremaniacs.org>
|
|
Contributors: Joël Porquet <joel@porquet.org>
|
|
Website: https://www.gnu.org/software/make/manual/html_node/Introduction.html
|
|
Category: common, build-system
|
|
*/
|
|
|
|
function makefile(hljs) {
|
|
/* Variables: simple (eg $(var)) and special (eg $@) */
|
|
const VARIABLE = {
|
|
className: 'variable',
|
|
variants: [
|
|
{
|
|
begin: '\\$\\(' + hljs.UNDERSCORE_IDENT_RE + '\\)',
|
|
contains: [ hljs.BACKSLASH_ESCAPE ]
|
|
},
|
|
{ begin: /\$[@%<?\^\+\*]/ }
|
|
]
|
|
};
|
|
/* Quoted string with variables inside */
|
|
const QUOTE_STRING = {
|
|
className: 'string',
|
|
begin: /"/,
|
|
end: /"/,
|
|
contains: [
|
|
hljs.BACKSLASH_ESCAPE,
|
|
VARIABLE
|
|
]
|
|
};
|
|
/* Function: $(func arg,...) */
|
|
const FUNC = {
|
|
className: 'variable',
|
|
begin: /\$\([\w-]+\s/,
|
|
end: /\)/,
|
|
keywords: { built_in:
|
|
'subst patsubst strip findstring filter filter-out sort '
|
|
+ 'word wordlist firstword lastword dir notdir suffix basename '
|
|
+ 'addsuffix addprefix join wildcard realpath abspath error warning '
|
|
+ 'shell origin flavor foreach if or and call eval file value' },
|
|
contains: [ VARIABLE ]
|
|
};
|
|
/* Variable assignment */
|
|
const ASSIGNMENT = { begin: '^' + hljs.UNDERSCORE_IDENT_RE + '\\s*(?=[:+?]?=)' };
|
|
/* Meta targets (.PHONY) */
|
|
const META = {
|
|
className: 'meta',
|
|
begin: /^\.PHONY:/,
|
|
end: /$/,
|
|
keywords: {
|
|
$pattern: /[\.\w]+/,
|
|
keyword: '.PHONY'
|
|
}
|
|
};
|
|
/* Targets */
|
|
const TARGET = {
|
|
className: 'section',
|
|
begin: /^[^\s]+:/,
|
|
end: /$/,
|
|
contains: [ VARIABLE ]
|
|
};
|
|
return {
|
|
name: 'Makefile',
|
|
aliases: [
|
|
'mk',
|
|
'mak',
|
|
'make',
|
|
],
|
|
keywords: {
|
|
$pattern: /[\w-]+/,
|
|
keyword: 'define endef undefine ifdef ifndef ifeq ifneq else endif '
|
|
+ 'include -include sinclude override export unexport private vpath'
|
|
},
|
|
contains: [
|
|
hljs.HASH_COMMENT_MODE,
|
|
VARIABLE,
|
|
QUOTE_STRING,
|
|
FUNC,
|
|
ASSIGNMENT,
|
|
META,
|
|
TARGET
|
|
]
|
|
};
|
|
}
|
|
|
|
return makefile;
|
|
|
|
})();
|
|
;
|
|
export default hljsGrammar; |