forked from highlightjs/highlight.js
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgraphql.js
76 lines (75 loc) · 1.43 KB
/
graphql.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
/*
Language: GraphQL
Author: John Foster (GH jf990), and others
Description: GraphQL is a query language for APIs
Category: web, common
*/
/** @type LanguageFn */
export default function(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/
]
};
}