From 042479b59e8ff30bdae8a3fac673f6a490c7ba0c Mon Sep 17 00:00:00 2001 From: Josh Goebel Date: Sat, 14 Dec 2019 18:14:25 -0500 Subject: [PATCH] simply rules, more markup tests --- src/languages/javascript.js | 18 +++++++----------- test/markup/javascript/jsx.expect.txt | 20 ++++++++++++++++++++ test/markup/javascript/jsx.txt | 20 ++++++++++++++++++++ 3 files changed, 47 insertions(+), 11 deletions(-) diff --git a/src/languages/javascript.js b/src/languages/javascript.js index 1375f885d9..701a5b1167 100644 --- a/src/languages/javascript.js +++ b/src/languages/javascript.js @@ -6,7 +6,8 @@ Website: https://developer.mozilla.org/en-US/docs/Web/JavaScript */ function(hljs) { - var SELF_CLOSING_TAG = /<[A-Za-z0-9\\._:-]+\s*\/>/; + var TAG_START = /<[A-Za-z0-9\\._:-]+/; + var TAG_FINISH = /\/[A-Za-z0-9\\._:-]+>|\/>/; var IDENT_RE = '[A-Za-z$_][0-9A-Za-z$_]*'; var KEYWORDS = { keyword: @@ -188,19 +189,14 @@ function(hljs) { end: /\s*/, skip: true, }, - { // E4X / JSX - className: 'jsx', - begin: /<[A-Za-z0-9\\._:-]+/, - end: /\/[A-Za-z0-9\\._:-]+>|\/>/, + { // JSX + begin: TAG_START, end: TAG_FINISH, subLanguage: 'xml', contains: [ { - begin: /<[A-Za-z0-9\\._:-]+/, end: /(\/[A-Za-z0-9\\._:-]+)>/, skip: true, - contains: [ - { begin: /<[A-Za-z0-9\\._:-]+\s*/, end: /\/>/, skip: true }, - 'self' - ] - }, + begin: TAG_START, end: TAG_FINISH, skip: true, + contains: ['self'] + } ] } ], diff --git a/test/markup/javascript/jsx.expect.txt b/test/markup/javascript/jsx.expect.txt index 2a2fb84e23..a000fe75a7 100644 --- a/test/markup/javascript/jsx.expect.txt +++ b/test/markup/javascript/jsx.expect.txt @@ -3,5 +3,25 @@ var jsx = <node>...<child>...</child></node>; var jsx = <div><span><br /></span></div>; var jsx = <pre-node><child /></pre-node>; + var x = 5; + return (<node attr="value"></node>); + +const n = () => <X /> +const m = () => <X x="" /> + +class App extends Component { + render() { + return ( + <BrowserRouter> + <div> + <Route path="/about" component={About} /> + <Route path="/contact" component={Contact} /> + </div> + </BrowserRouter> + ); + } +} + +var x = 5; diff --git a/test/markup/javascript/jsx.txt b/test/markup/javascript/jsx.txt index 7d1042c153..a76ef8eecd 100644 --- a/test/markup/javascript/jsx.txt +++ b/test/markup/javascript/jsx.txt @@ -3,5 +3,25 @@ var jsx = ; var jsx = ......; var jsx =

; var jsx = ; + var x = 5; + return (); + +const n = () => +const m = () => + +class App extends Component { + render() { + return ( + +
+ + +
+
+ ); + } +} + +var x = 5;