hexo/node_modules/highlight.js/es/languages/graphql.js

79 lines
1.5 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/
]
};
}
export { graphql as default };