mirror of https://github.com/jkjoy/sunpeiwen.git
79 lines
1.4 KiB
JavaScript
79 lines
1.4 KiB
JavaScript
|
/*
|
||
|
Language: GraphQL
|
||
|
Author: John Foster (GH jf990), and others
|
||
|
Description: GraphQL is a query language for APIs
|
||
|
Category: web, common
|
||
|
*/
|
||
|
|
||
|
/** @type LanguageFn */
|
||
|
function graphql(hljs) {
|
||
|
const regex = hljs.regex;
|
||
|
const GQL_NAME = /[_A-Za-z][_0-9A-Za-z]*/;
|
||
|
return {
|
||
|
name: "GraphQL",
|
||
|
aliases: [ "gql" ],
|
||
|
case_insensitive: true,
|
||
|
disableAutodetect: false,
|
||
|
keywords: {
|
||
|
keyword: [
|
||
|
"query",
|
||
|
"mutation",
|
||
|
"subscription",
|
||
|
"type",
|
||
|
"input",
|
||
|
"schema",
|
||
|
"directive",
|
||
|
"interface",
|
||
|
"union",
|
||
|
"scalar",
|
||
|
"fragment",
|
||
|
"enum",
|
||
|
"on"
|
||
|
],
|
||
|
literal: [
|
||
|
"true",
|
||
|
"false",
|
||
|
"null"
|
||
|
]
|
||
|
},
|
||
|
contains: [
|
||
|
hljs.HASH_COMMENT_MODE,
|
||
|
hljs.QUOTE_STRING_MODE,
|
||
|
hljs.NUMBER_MODE,
|
||
|
{
|
||
|
scope: "punctuation",
|
||
|
match: /[.]{3}/,
|
||
|
relevance: 0
|
||
|
},
|
||
|
{
|
||
|
scope: "punctuation",
|
||
|
begin: /[\!\(\)\:\=\[\]\{\|\}]{1}/,
|
||
|
relevance: 0
|
||
|
},
|
||
|
{
|
||
|
scope: "variable",
|
||
|
begin: /\$/,
|
||
|
end: /\W/,
|
||
|
excludeEnd: true,
|
||
|
relevance: 0
|
||
|
},
|
||
|
{
|
||
|
scope: "meta",
|
||
|
match: /@\w+/,
|
||
|
excludeEnd: true
|
||
|
},
|
||
|
{
|
||
|
scope: "symbol",
|
||
|
begin: regex.concat(GQL_NAME, regex.lookahead(/\s*:/)),
|
||
|
relevance: 0
|
||
|
}
|
||
|
],
|
||
|
illegal: [
|
||
|
/[;<']/,
|
||
|
/BEGIN/
|
||
|
]
|
||
|
};
|
||
|
}
|
||
|
|
||
|
module.exports = graphql;
|