diff --git a/grammars/JavaScript (JSX).cson b/grammars/JavaScript (JSX).cson index f7ca2a7..47dc9cf 100644 --- a/grammars/JavaScript (JSX).cson +++ b/grammars/JavaScript (JSX).cson @@ -484,7 +484,23 @@ 'name': 'punctuation.definition.tag.end.js' 'jsx-tag-invalid': 'name': 'invalid.illegal.tag.incomplete.js' - 'match': '<\\s*>' + 'match': '<\\s+>' + 'jsx-tag-fragment-open': + 'match': '(<)(>)' + 'name': 'tag.open.js' + 'captures': + '1': + 'name': 'punctuation.definition.tag.begin.js' + '2': + 'name': 'punctuation.definition.tag.end.js' + 'jsx-tag-fragment-close': + 'match': '()' + 'name': 'tag.closed.js' + 'captures': + '1': + 'name': 'punctuation.definition.tag.begin.js' + '2': + 'name': 'punctuation.definition.tag.end.js' 'jsx': 'name': 'meta.jsx.js' 'patterns': [ @@ -497,6 +513,12 @@ { 'include': '#jsx-tag-invalid' } + { + 'include': '#jsx-tag-fragment-open' + } + { + 'include': '#jsx-tag-fragment-close' + } ] 'docblock': 'patterns': [ diff --git a/lib/atom-react.coffee b/lib/atom-react.coffee index b16f169..73bc806 100644 --- a/lib/atom-react.coffee +++ b/lib/atom-react.coffee @@ -2,8 +2,8 @@ contentCheckRegex = null defaultDetectReactFilePattern = '/((require\\([\'"]react(?:(-native|\\/addons))?[\'"]\\)))|(import\\s+[\\w{},\\s]+\\s+from\\s+[\'"]react(?:(-native|\\/addons))?[\'"])/' -autoCompleteTagStartRegex = /(<)([a-zA-Z0-9\.:$_]+)/g -autoCompleteTagCloseRegex = /(<\/)([^>]+)(>)/g +autoCompleteTagStartRegex = /(<)([a-zA-Z0-9\.:$_]*)/g +autoCompleteTagCloseRegex = /(<\/)([^>]*)(>)/g jsxTagStartPattern = '(?x)((^|=|return)\\s*<([^!/?](?!.+?())))' jsxComplexAttributePattern = '(?x)\\{ [^}"\']* $|\\( [^)"\']* $'