File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -7,6 +7,7 @@ New styles:
77 none.
88
99Improvements:
10+ - enh(parser): add better error when a language requirement is missing () [ Josh Goebel] [ ]
1011- fix(sql): backslash is not used to escape in strings in standard SQL (#1748 ) [ Mike Schall] [ ]
1112- enh(ebnf) add backticks as additional string variant (#2290 ) [ Chris Marchesi] [ ]
1213- fix(themes): fix inconsistencies between some themes padding/spacing (#2300 ) [ Josh Goebel] [ ]
Original file line number Diff line number Diff line change @@ -126,6 +126,18 @@ Looks up a language by name or alias.
126126Returns the language object if found, ``undefined `` otherwise.
127127
128128
129+ ``requireLanguage(name) ``
130+ ---------------------
131+
132+ Looks up a language by name or alias.
133+
134+ This should be used when one language definition depends on another.
135+ Using this function (vs ``getLanguage ``) will provide better error messaging
136+ when a required language is missing.
137+
138+ Returns the language object if found, raises a hard error otherwise.
139+
140+
129141``debugMode() ``
130142---------------
131143
Original file line number Diff line number Diff line change @@ -958,6 +958,20 @@ https://highlightjs.org/
958958 return objectKeys ( languages ) ;
959959 }
960960
961+ /*
962+ intended usage: When one language truly requires another
963+
964+ Unlike `getLanguage`, this will throw when the requested language
965+ is not available.
966+ */
967+ function requireLanguage ( name ) {
968+ var lang = getLanguage ( name ) ;
969+ if ( lang ) { return lang ; }
970+
971+ var err = new Error ( 'The \'{}\' language is required, but not loaded.' . replace ( '{}' , name ) ) ;
972+ throw err ;
973+ }
974+
961975 function getLanguage ( name ) {
962976 name = ( name || '' ) . toLowerCase ( ) ;
963977 return languages [ name ] || languages [ aliases [ name ] ] ;
@@ -980,6 +994,7 @@ https://highlightjs.org/
980994 hljs . registerLanguage = registerLanguage ;
981995 hljs . listLanguages = listLanguages ;
982996 hljs . getLanguage = getLanguage ;
997+ hljs . requireLanguage = requireLanguage ;
983998 hljs . autoDetection = autoDetection ;
984999 hljs . inherit = inherit ;
9851000 hljs . debugMode = function ( ) { SAFE_MODE = false ; }
Original file line number Diff line number Diff line change @@ -94,7 +94,7 @@ function(hljs) {
9494 'DEFAULT OUTPUT INPUT HIGH LOW'
9595 } ;
9696
97- var ARDUINO = hljs . getLanguage ( 'cpp' ) . rawDefinition ( ) ;
97+ var ARDUINO = hljs . requireLanguage ( 'cpp' ) . rawDefinition ( ) ;
9898
9999 var kws = ARDUINO . keywords ;
100100
You can’t perform that action at this time.
0 commit comments