From 368fea3c682643cf8cb806dd46fb491d5a51406b Mon Sep 17 00:00:00 2001 From: Hydro Date: Thu, 26 Sep 2019 08:54:19 -0400 Subject: [PATCH 1/2] Add grammar for React fragment shorthand --- grammars/JavaScript (JSX).cson | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) 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': [ From 9cb4c303b78f5a348f13f8f4494be7a4db964901 Mon Sep 17 00:00:00 2001 From: Hydro Date: Thu, 26 Sep 2019 10:35:48 -0400 Subject: [PATCH 2/2] Support autocomplete of fragment shorthand --- lib/atom-react.coffee | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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)\\{ [^}"\']* $|\\( [^)"\']* $'