From 4f8425580accc61defad55e2abb3f8ffd0773f91 Mon Sep 17 00:00:00 2001 From: Jeremy Hull Date: Sat, 6 Sep 2014 19:12:08 -0700 Subject: [PATCH 01/14] Change highlight.js test for v8.x.x interface --- highlightjs/highlightjs-tests.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/highlightjs/highlightjs-tests.ts b/highlightjs/highlightjs-tests.ts index 749be67cc..178687451 100644 --- a/highlightjs/highlightjs-tests.ts +++ b/highlightjs/highlightjs-tests.ts @@ -12,7 +12,7 @@ import hljs = require("highlight.js"); var code = "using System;\npublic class Test\n{\npublic static void Main()\n{\n// your code goes here\n}\n}"; var lang = "cs"; -hljs.tabReplace = " "; // 4 spaces +hljs.configure({ tabReplace: " " }) // 4 spaces var hl = hljs.highlight(lang, code).value; -hl = hljs.highlightAuto(code).value; \ No newline at end of file +hl = hljs.highlightAuto(code).value; From 0350affc37a4214b043d37a89ca75e2ef927e516 Mon Sep 17 00:00:00 2001 From: Jeremy Hull Date: Sat, 6 Sep 2014 19:16:57 -0700 Subject: [PATCH 02/14] Move default highlight definition to 7.5.0 --- highlightjs/{highlightjs.d.ts => highlightjs-7.5.0.d.ts} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename highlightjs/{highlightjs.d.ts => highlightjs-7.5.0.d.ts} (98%) diff --git a/highlightjs/highlightjs.d.ts b/highlightjs/highlightjs-7.5.0.d.ts similarity index 98% rename from highlightjs/highlightjs.d.ts rename to highlightjs/highlightjs-7.5.0.d.ts index d730029b5..725f78fbc 100644 --- a/highlightjs/highlightjs.d.ts +++ b/highlightjs/highlightjs-7.5.0.d.ts @@ -1,4 +1,4 @@ -// Type definitions for highlight.js +// Type definitions for highlight.js v7.5.0 // Project: https://github.com/isagalaev/highlight.js // Definitions by: Niklas Mollenhauer // Definitions: https://github.com/borisyankov/DefinitelyTyped From 2382d22067c346c9f9e2a586a65a74f33c3a8401 Mon Sep 17 00:00:00 2001 From: Jeremy Hull Date: Sat, 6 Sep 2014 19:42:10 -0700 Subject: [PATCH 03/14] Add definition for latest version of highlightjs --- highlightjs/highlightjs.d.ts | 125 +++++++++++++++++++++++++++++++++++ 1 file changed, 125 insertions(+) create mode 100644 highlightjs/highlightjs.d.ts diff --git a/highlightjs/highlightjs.d.ts b/highlightjs/highlightjs.d.ts new file mode 100644 index 000000000..a4500bd95 --- /dev/null +++ b/highlightjs/highlightjs.d.ts @@ -0,0 +1,125 @@ +// Type definitions for highlight.js v8.2.0 +// Project: https://github.com/isagalaev/highlight.js +// Definitions by: Niklas Mollenhauer , Jeremy Hull +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +declare module "highlight.js" +{ + module hljs + { + export function highlight( + name: string, + value: string, + ignore_illegals?: boolean, + continuation?: boolean) : IHighlightResult + export function highlightAuto( + value: string, + languageSubset?: string[]) : IAutoHighlightResult + + export function fixMarkup(value: string) : string; + + export function highlightBlock(block: Node) : void; + + export function configure(options: IOptions): void; + + export function initHighlighting(): void; + export function initHighlightingOnLoad(): void; + + export function registerLanguage( + name: string, + language: IModeBase): void; + export function listLanguages(): string[]; + export function getLanguage(name: string): IMode; + + export function inherit(parent: Object, obj: Object): Object; + + // Common regexps + export var IDENT_RE: string; + export var UNDERSCORE_IDENT_RE: string; + export var NUMBER_RE: string; + export var C_NUMBER_RE: string; + export var BINARY_NUMBER_RE: string; + export var RE_STARTERS_RE: string; + + // Common modes + export var BACKSLASH_ESCAPE : IMode; + export var APOS_STRING_MODE : IMode; + export var QUOTE_STRING_MODE : IMode; + export var PHRASAL_WORDS_MODE : IMode; + export var C_LINE_COMMENT_MODE : IMode; + export var C_BLOCK_COMMENT_MODE : IMode; + export var HASH_COMMENT_MODE : IMode; + export var NUMBER_MODE : IMode; + export var C_NUMBER_MODE : IMode; + export var BINARY_NUMBER_MODE : IMode; + export var CSS_NUMBER_MODE : IMode; + export var REGEX_MODE : IMode; + export var TITLE_MODE : IMode; + export var UNDERSCORE_TITLE_MODE : IMode; + + export interface IHighlightResult + { + relevance: number; + language: string; + top: ICompiledMode; + value: string; + } + + export interface IAutoHighlightResult extends IHighlightResult + { + second_best?: IAutoHighlightResult; + } + + // Reference: + // https://github.com/isagalaev/highlight.js/blob/master/docs/reference.rst + export interface IModeBase + { + className?: string; + aliases?: string[]; + begin: string; + end?: string; + case_insensitive?: boolean; + beginKeyword?: string; + endsWithParent?: boolean; + lexems?: string; + illegal?: string; + excludeBegin?: boolean; + excludeEnd?: boolean; + returnBegin?: boolean; + returnEnd?: boolean; + starts?: string; + subLanguage?: string; + subLanguageMode?: string; + relevance?: number; + variants?: IMode[]; + } + + export interface IMode extends IModeBase + { + keywords?: string; + contains?: IMode[]; + } + + export interface ICompiledMode extends IModeBase + { + compiled: boolean; + contains?: ICompiledMode[]; + keywords?: Object[]; + beginRe: RegExp; + endRe?: RegExp; + lexemesRe?: RegExp; + illegalRe?: RegExp; + terminators: RegExp; + terminator_end?: string; + } + + export interface IOptions + { + classPrefix?: string; + tabReplace?: string; + useBR?: boolean; + languages?: string[]; + } + } + export = hljs; +} From 41f207409664fc7b1f6c887c14da17c43b6f0557 Mon Sep 17 00:00:00 2001 From: Jeremy Hull Date: Sat, 6 Sep 2014 19:42:31 -0700 Subject: [PATCH 04/14] Add myself to CONTRIBUTORS --- CONTRIBUTORS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index ec2eec5d8..d358b42ce 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -127,7 +127,7 @@ All definitions files include a header with the author and editors, so at some p * [HelloJS](http://adodson.com/hello.js) (by [Pavel Zika](https://github.com/PavelPZ)) * [Highcharts](http://www.highcharts.com/) (by [damianog](https://github.com/damianog)) * [Highland](http://highlandjs.org/) (by [Bart van der Schoor](https://github.com/Bartvds/)) -* [highlight.js](https://github.com/isagalaev/highlight.js) (by [Niklas Mollenhauer](https://github.com/nikeee)) +* [highlight.js](https://github.com/isagalaev/highlight.js) (by [Niklas Mollenhauer](https://github.com/nikeee) and [Jeremy Hull](https://github.com/sourrust)) * [History.js](https://github.com/browserstate/history.js) (by [Boris Yankov](https://github.com/borisyankov)) * [Html2Canvas.js](https://github.com/niklasvh/html2canvas/) (by [Richard Hepburn](https://github.com/rwhepburn)) * [htmlparser2](https://github.com/fb55/htmlparser2/) (by [James Roland Cabresos](https://github.com/staticfunction)) From 226d9e8344761a081b2c88ccb4b90d7ad9b7a198 Mon Sep 17 00:00:00 2001 From: Jeremy Hull Date: Sun, 7 Sep 2014 21:26:48 -0700 Subject: [PATCH 05/14] Add missing semicolon in test --- highlightjs/highlightjs-tests.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/highlightjs/highlightjs-tests.ts b/highlightjs/highlightjs-tests.ts index 178687451..233d1fa3e 100644 --- a/highlightjs/highlightjs-tests.ts +++ b/highlightjs/highlightjs-tests.ts @@ -12,7 +12,7 @@ import hljs = require("highlight.js"); var code = "using System;\npublic class Test\n{\npublic static void Main()\n{\n// your code goes here\n}\n}"; var lang = "cs"; -hljs.configure({ tabReplace: " " }) // 4 spaces +hljs.configure({ tabReplace: " " }); // 4 spaces var hl = hljs.highlight(lang, code).value; hl = hljs.highlightAuto(code).value; From 7f64b066967e45bdf8fffc45c3236159a07787da Mon Sep 17 00:00:00 2001 From: Jeremy Hull Date: Sun, 7 Sep 2014 21:28:20 -0700 Subject: [PATCH 06/14] Fix indention for highlightAuto parameters --- highlightjs/highlightjs.d.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/highlightjs/highlightjs.d.ts b/highlightjs/highlightjs.d.ts index a4500bd95..90a364d5b 100644 --- a/highlightjs/highlightjs.d.ts +++ b/highlightjs/highlightjs.d.ts @@ -13,8 +13,8 @@ declare module "highlight.js" ignore_illegals?: boolean, continuation?: boolean) : IHighlightResult export function highlightAuto( - value: string, - languageSubset?: string[]) : IAutoHighlightResult + value: string, + languageSubset?: string[]) : IAutoHighlightResult export function fixMarkup(value: string) : string; From f2a4d8eed4364a95efc3faa2976979447e805ed5 Mon Sep 17 00:00:00 2001 From: Jeremy Hull Date: Sun, 7 Sep 2014 21:35:14 -0700 Subject: [PATCH 07/14] Add missing semicolons in definition --- highlightjs/highlightjs.d.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/highlightjs/highlightjs.d.ts b/highlightjs/highlightjs.d.ts index 90a364d5b..f200d6e99 100644 --- a/highlightjs/highlightjs.d.ts +++ b/highlightjs/highlightjs.d.ts @@ -11,10 +11,10 @@ declare module "highlight.js" name: string, value: string, ignore_illegals?: boolean, - continuation?: boolean) : IHighlightResult + continuation?: boolean) : IHighlightResult; export function highlightAuto( value: string, - languageSubset?: string[]) : IAutoHighlightResult + languageSubset?: string[]) : IAutoHighlightResult; export function fixMarkup(value: string) : string; From 40c1185fd2c93824c3fc70b91dcf46d981579f89 Mon Sep 17 00:00:00 2001 From: Jeremy Hull Date: Thu, 11 Sep 2014 12:33:11 -0700 Subject: [PATCH 08/14] Remove private RegExp vars --- highlightjs/highlightjs.d.ts | 4 ---- 1 file changed, 4 deletions(-) diff --git a/highlightjs/highlightjs.d.ts b/highlightjs/highlightjs.d.ts index f200d6e99..e832d8273 100644 --- a/highlightjs/highlightjs.d.ts +++ b/highlightjs/highlightjs.d.ts @@ -105,10 +105,6 @@ declare module "highlight.js" compiled: boolean; contains?: ICompiledMode[]; keywords?: Object[]; - beginRe: RegExp; - endRe?: RegExp; - lexemesRe?: RegExp; - illegalRe?: RegExp; terminators: RegExp; terminator_end?: string; } From 86e0dfb68f1bf5a3280d46ffebc5502a01a7534c Mon Sep 17 00:00:00 2001 From: Jeremy Hull Date: Thu, 11 Sep 2014 12:34:36 -0700 Subject: [PATCH 09/14] Change ICompiledMode keyword to Object --- highlightjs/highlightjs.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/highlightjs/highlightjs.d.ts b/highlightjs/highlightjs.d.ts index e832d8273..58ea7688b 100644 --- a/highlightjs/highlightjs.d.ts +++ b/highlightjs/highlightjs.d.ts @@ -104,7 +104,7 @@ declare module "highlight.js" { compiled: boolean; contains?: ICompiledMode[]; - keywords?: Object[]; + keywords?: Object; terminators: RegExp; terminator_end?: string; } From 327079de90a24ac11747cf1dd921bef44d6fa651 Mon Sep 17 00:00:00 2001 From: Jeremy Hull Date: Thu, 11 Sep 2014 13:22:50 -0700 Subject: [PATCH 10/14] Change keywords in IMode to any The keywords key can be represented by either a string or an object, see: http://highlightjs.readthedocs.org/en/latest/language-guide.html#keywords --- highlightjs/highlightjs.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/highlightjs/highlightjs.d.ts b/highlightjs/highlightjs.d.ts index 58ea7688b..97db22d7c 100644 --- a/highlightjs/highlightjs.d.ts +++ b/highlightjs/highlightjs.d.ts @@ -96,7 +96,7 @@ declare module "highlight.js" export interface IMode extends IModeBase { - keywords?: string; + keywords?: any; contains?: IMode[]; } From 4acd5163e84777da848c8dace3cbe121b6244c8c Mon Sep 17 00:00:00 2001 From: Jeremy Hull Date: Thu, 11 Sep 2014 13:24:09 -0700 Subject: [PATCH 11/14] Add HLJSStatic for registerLanguage use --- highlightjs/highlightjs.d.ts | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/highlightjs/highlightjs.d.ts b/highlightjs/highlightjs.d.ts index 97db22d7c..c782f7bc7 100644 --- a/highlightjs/highlightjs.d.ts +++ b/highlightjs/highlightjs.d.ts @@ -70,6 +70,35 @@ declare module "highlight.js" second_best?: IAutoHighlightResult; } + export interface HLJSStatic + { + inherit(parent: Object, obj: Object): Object; + + // Common regexps + IDENT_RE: string; + UNDERSCORE_IDENT_RE: string; + NUMBER_RE: string; + C_NUMBER_RE: string; + BINARY_NUMBER_RE: string; + RE_STARTERS_RE: string; + + // Common modes + BACKSLASH_ESCAPE : IMode; + APOS_STRING_MODE : IMode; + QUOTE_STRING_MODE : IMode; + PHRASAL_WORDS_MODE : IMode; + C_LINE_COMMENT_MODE : IMode; + C_BLOCK_COMMENT_MODE : IMode; + HASH_COMMENT_MODE : IMode; + NUMBER_MODE : IMode; + C_NUMBER_MODE : IMode; + BINARY_NUMBER_MODE : IMode; + CSS_NUMBER_MODE : IMode; + REGEX_MODE : IMode; + TITLE_MODE : IMode; + UNDERSCORE_TITLE_MODE : IMode; + } + // Reference: // https://github.com/isagalaev/highlight.js/blob/master/docs/reference.rst export interface IModeBase From e70ce374bad09523508b5b3f2bc4cace033a9745 Mon Sep 17 00:00:00 2001 From: Jeremy Hull Date: Thu, 11 Sep 2014 13:24:50 -0700 Subject: [PATCH 12/14] Change registerLanguage definition to a function --- highlightjs/highlightjs.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/highlightjs/highlightjs.d.ts b/highlightjs/highlightjs.d.ts index c782f7bc7..b34d69508 100644 --- a/highlightjs/highlightjs.d.ts +++ b/highlightjs/highlightjs.d.ts @@ -27,7 +27,7 @@ declare module "highlight.js" export function registerLanguage( name: string, - language: IModeBase): void; + language: (hljs?: HLJSStatic) => IModeBase): void; export function listLanguages(): string[]; export function getLanguage(name: string): IMode; From 619bb1e40b86583443d947d93863b264a13dd00f Mon Sep 17 00:00:00 2001 From: Jeremy Hull Date: Thu, 11 Sep 2014 13:26:28 -0700 Subject: [PATCH 13/14] No longer require begin This is so registerLanguage parameter can return the IModeBase type, with is essentually the language definition. --- highlightjs/highlightjs.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/highlightjs/highlightjs.d.ts b/highlightjs/highlightjs.d.ts index b34d69508..91675cfa6 100644 --- a/highlightjs/highlightjs.d.ts +++ b/highlightjs/highlightjs.d.ts @@ -105,7 +105,7 @@ declare module "highlight.js" { className?: string; aliases?: string[]; - begin: string; + begin?: string; end?: string; case_insensitive?: boolean; beginKeyword?: string; From 8d9ab7d6b3af2773319a7ac867fdf6e729b22293 Mon Sep 17 00:00:00 2001 From: Jeremy Hull Date: Fri, 19 Sep 2014 00:12:44 -0700 Subject: [PATCH 14/14] Take out top from IAutoHighlightResult --- highlightjs/highlightjs.d.ts | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/highlightjs/highlightjs.d.ts b/highlightjs/highlightjs.d.ts index 91675cfa6..dc7606d88 100644 --- a/highlightjs/highlightjs.d.ts +++ b/highlightjs/highlightjs.d.ts @@ -57,19 +57,23 @@ declare module "highlight.js" export var TITLE_MODE : IMode; export var UNDERSCORE_TITLE_MODE : IMode; - export interface IHighlightResult + export interface IHighlightResultBase { relevance: number; language: string; - top: ICompiledMode; value: string; } - export interface IAutoHighlightResult extends IHighlightResult + export interface IAutoHighlightResult extends IHighlightResultBase { second_best?: IAutoHighlightResult; } + export interface IHighlightResult extends IHighlightResultBase + { + top: ICompiledMode; + } + export interface HLJSStatic { inherit(parent: Object, obj: Object): Object;