@@ -59,7 +59,10 @@ function hljsDefineSolidity(hljs) {
5959 var ufixedTypes = sizePrecisionPairs . map ( function ( pair ) { return 'ufixed' + pair } ) ;
6060 var ufixedTypesString = ufixedTypes . join ( ' ' ) + ' ' ;
6161
62+ var SOL_LEXEMES_RE = / [ A - Z a - z _ $ ] [ A - Z a - z _ $ 0 - 9 ] * / ;
63+
6264 var SOL_KEYWORDS = {
65+ $pattern : SOL_LEXEMES_RE ,
6366 keyword :
6467 'var bool string ' +
6568 'int uint ' + intTypesString + uintTypesString +
@@ -106,14 +109,11 @@ function hljsDefineSolidity(hljs) {
106109 begin : / [ + \- ! ~ * \/ % < > & ^ | = ] / //excluding ?: because having : as operator causes problems
107110 } ;
108111
109- var SOL_LEXEMES_RE = / [ A - Z a - z _ $ ] [ A - Z a - z _ $ 0 - 9 ] * / ;
110-
111112 var SOL_FUNC_PARAMS = {
112113 className : 'params' ,
113114 begin : / \( / , end : / \) / ,
114115 excludeBegin : true ,
115116 excludeEnd : true ,
116- lexemes : SOL_LEXEMES_RE ,
117117 keywords : SOL_KEYWORDS ,
118118 contains : [
119119 hljs . C_LINE_COMMENT_MODE ,
@@ -143,7 +143,6 @@ function hljsDefineSolidity(hljs) {
143143 var SOL_TITLE_MODE =
144144 hljs . inherit ( hljs . TITLE_MODE , {
145145 begin : / [ A - Z a - z $ _ ] [ 0 - 9 A - Z a - z $ _ ] * / ,
146- lexemes : SOL_LEXEMES_RE ,
147146 keywords : SOL_KEYWORDS
148147 } ) ;
149148
@@ -161,7 +160,6 @@ function hljsDefineSolidity(hljs) {
161160 end : / [ ^ A - Z a - z 0 - 9 $ _ \. ] / ,
162161 excludeBegin : false ,
163162 excludeEnd : true ,
164- lexemes : SOL_LEXEMES_RE ,
165163 keywords : {
166164 built_in : obj + ' ' + props ,
167165 } ,
@@ -209,10 +207,7 @@ function hljsDefineSolidity(hljs) {
209207
210208 return {
211209 aliases : [ 'sol' ] ,
212- keywords : {
213- ...SOL_KEYWORDS ,
214- $pattern : SOL_LEXEMES_RE
215- } ,
210+ keywords : SOL_KEYWORDS ,
216211 contains : [
217212 // basic literal definitions
218213 SOL_APOS_STRING_MODE ,
@@ -226,7 +221,6 @@ function hljsDefineSolidity(hljs) {
226221 SOL_OPERATORS ,
227222 { // functions
228223 className : 'function' ,
229- lexemes : SOL_LEXEMES_RE ,
230224 beginKeywords : 'function modifier event constructor fallback receive error' , end : / [ { ; ] / , excludeEnd : true ,
231225 contains : [
232226 SOL_TITLE_MODE ,
@@ -247,11 +241,10 @@ function hljsDefineSolidity(hljs) {
247241 SOL_RESERVED_MEMBERS ,
248242 { // contracts & libraries & interfaces
249243 className : 'class' ,
250- lexemes : SOL_LEXEMES_RE ,
251244 beginKeywords : 'contract interface library' , end : '{' , excludeEnd : true ,
252245 illegal : / [: " \[ \] ] / ,
253246 contains : [
254- { beginKeywords : 'is' , lexemes : SOL_LEXEMES_RE } ,
247+ { beginKeywords : 'is' } ,
255248 SOL_TITLE_MODE ,
256249 SOL_FUNC_PARAMS ,
257250 SOL_SPECIAL_PARAMETERS ,
@@ -260,7 +253,6 @@ function hljsDefineSolidity(hljs) {
260253 ]
261254 } ,
262255 { // structs & enums
263- lexemes : SOL_LEXEMES_RE ,
264256 beginKeywords : 'struct enum' , end : '{' , excludeEnd : true ,
265257 illegal : / [: " \[ \] ] / ,
266258 contains : [
@@ -271,7 +263,6 @@ function hljsDefineSolidity(hljs) {
271263 } ,
272264 { // imports
273265 beginKeywords : 'import' , end : ';' ,
274- lexemes : SOL_LEXEMES_RE ,
275266 keywords : 'import from as' ,
276267 contains : [
277268 SOL_TITLE_MODE ,
@@ -286,7 +277,6 @@ function hljsDefineSolidity(hljs) {
286277 } ,
287278 { // using
288279 beginKeywords : 'using' , end : ';' ,
289- lexemes : SOL_LEXEMES_RE ,
290280 keywords : 'using for global' ,
291281 contains : [
292282 SOL_TITLE_MODE ,
@@ -298,8 +288,8 @@ function hljsDefineSolidity(hljs) {
298288 { // pragmas
299289 className : 'meta' ,
300290 beginKeywords : 'pragma' , end : ';' ,
301- lexemes : SOL_LEXEMES_RE ,
302291 keywords : {
292+ $pattern : SOL_LEXEMES_RE ,
303293 keyword : 'pragma solidity experimental abicoder' ,
304294 built_in : 'ABIEncoderV2 SMTChecker v1 v2'
305295 } ,
0 commit comments