Mercurial
diff third_party/highlight/languages/thrift.js @ 157:2db6253f355d
[ThirdParty] Added highlight library for better readability on blog.
| author | June Park <parkjune1995@gmail.com> |
|---|---|
| date | Tue, 13 Jan 2026 19:18:47 -0800 |
| parents | |
| children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/third_party/highlight/languages/thrift.js Tue Jan 13 19:18:47 2026 -0800 @@ -0,0 +1,87 @@ +/*! `thrift` grammar compiled for Highlight.js 11.11.1 */ + (function(){ + var hljsGrammar = (function () { + 'use strict'; + + /* + Language: Thrift + Author: Oleg Efimov <[email protected]> + Description: Thrift message definition format + Website: https://thrift.apache.org + Category: protocols + */ + + function thrift(hljs) { + const TYPES = [ + "bool", + "byte", + "i16", + "i32", + "i64", + "double", + "string", + "binary" + ]; + const KEYWORDS = [ + "namespace", + "const", + "typedef", + "struct", + "enum", + "service", + "exception", + "void", + "oneway", + "set", + "list", + "map", + "required", + "optional" + ]; + return { + name: 'Thrift', + keywords: { + keyword: KEYWORDS, + type: TYPES, + literal: 'true false' + }, + contains: [ + hljs.QUOTE_STRING_MODE, + hljs.NUMBER_MODE, + hljs.C_LINE_COMMENT_MODE, + hljs.C_BLOCK_COMMENT_MODE, + { + className: 'class', + beginKeywords: 'struct enum service exception', + end: /\{/, + illegal: /\n/, + contains: [ + hljs.inherit(hljs.TITLE_MODE, { + // hack: eating everything after the first title + starts: { + endsWithParent: true, + excludeEnd: true + } }) + ] + }, + { + begin: '\\b(set|list|map)\\s*<', + keywords: { type: [ + ...TYPES, + "set", + "list", + "map" + ] }, + end: '>', + contains: [ 'self' ] + } + ] + }; + } + + return thrift; + +})(); + + hljs.registerLanguage('thrift', hljsGrammar); + })(); \ No newline at end of file