comparison third_party/highlight/es/languages/json.js @ 173:827c6ac504cd hg-web

Merged in default here.
author MrJuneJune <me@mrjunejune.com>
date Mon, 19 Jan 2026 18:59:10 -0800
parents 2db6253f355d
children
comparison
equal deleted inserted replaced
151:c033667da5f9 173:827c6ac504cd
1 /*! `json` grammar compiled for Highlight.js 11.11.1 */
2 var hljsGrammar = (function () {
3 'use strict';
4
5 /*
6 Language: JSON
7 Description: JSON (JavaScript Object Notation) is a lightweight data-interchange format.
8 Author: Ivan Sagalaev <[email protected]>
9 Website: http://www.json.org
10 Category: common, protocols, web
11 */
12
13 function json(hljs) {
14 const ATTRIBUTE = {
15 className: 'attr',
16 begin: /"(\\.|[^\\"\r\n])*"(?=\s*:)/,
17 relevance: 1.01
18 };
19 const PUNCTUATION = {
20 match: /[{}[\],:]/,
21 className: "punctuation",
22 relevance: 0
23 };
24 const LITERALS = [
25 "true",
26 "false",
27 "null"
28 ];
29 // NOTE: normally we would rely on `keywords` for this but using a mode here allows us
30 // - to use the very tight `illegal: \S` rule later to flag any other character
31 // - as illegal indicating that despite looking like JSON we do not truly have
32 // - JSON and thus improve false-positively greatly since JSON will try and claim
33 // - all sorts of JSON looking stuff
34 const LITERALS_MODE = {
35 scope: "literal",
36 beginKeywords: LITERALS.join(" "),
37 };
38
39 return {
40 name: 'JSON',
41 aliases: ['jsonc'],
42 keywords:{
43 literal: LITERALS,
44 },
45 contains: [
46 ATTRIBUTE,
47 PUNCTUATION,
48 hljs.QUOTE_STRING_MODE,
49 LITERALS_MODE,
50 hljs.C_NUMBER_MODE,
51 hljs.C_LINE_COMMENT_MODE,
52 hljs.C_BLOCK_COMMENT_MODE
53 ],
54 illegal: '\\S'
55 };
56 }
57
58 return json;
59
60 })();
61 ;
62 export default hljsGrammar;