From f777881f2f5e98a25f4b590371fd92b02185da5c Mon Sep 17 00:00:00 2001 From: Giannis Nikiteas Date: Fri, 13 Nov 2020 15:49:18 +0000 Subject: [PATCH 1/4] Fixes Modern Fortran 2: inconsistent syntax highlighting #181, for simple case-select. Use https://github.com/dparkins/language-fortran as a guideline --- syntaxes/fortran_free-form.tmLanguage.json | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/syntaxes/fortran_free-form.tmLanguage.json b/syntaxes/fortran_free-form.tmLanguage.json index 36a7f8ca..1e869eb0 100644 --- a/syntaxes/fortran_free-form.tmLanguage.json +++ b/syntaxes/fortran_free-form.tmLanguage.json @@ -1280,18 +1280,16 @@ } ] }, - "select-case-construct":{ + "select-case-construct": { "comment": "Select case construct. Introduced in the Fortran 1990 standard.", - "begin": "(?i)\\b(select)\\s*(case)\\b", + "name": "meta.block.select.case.fortran", + "begin": "(?i)\\b(select\\s*case)\\b", "beginCaptures": { "1": { - "name": "keyword.control.select.fortran" - }, - "2": { - "name": "keyword.control.case.fortran" + "name": "keyword.control.selectcase.fortran" } }, - "end": "(?i)(?=\\b(end\\s*select)\\b)", + "end": "(?i)\\b(end\\s*select)\\b", "endCaptures": { "1": { "name": "keyword.control.endselect.fortran" From d8a2d376647498b9c8cac4fe06badfc41f6c96ba Mon Sep 17 00:00:00 2001 From: Giannis Nikiteas Date: Fri, 13 Nov 2020 15:53:13 +0000 Subject: [PATCH 2/4] Fixes Modern Fortran 2: inconsistent syntax highlighting #181, for type-select constructs. --- syntaxes/fortran_free-form.tmLanguage.json | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/syntaxes/fortran_free-form.tmLanguage.json b/syntaxes/fortran_free-form.tmLanguage.json index 1e869eb0..1493629f 100644 --- a/syntaxes/fortran_free-form.tmLanguage.json +++ b/syntaxes/fortran_free-form.tmLanguage.json @@ -1329,18 +1329,16 @@ } ] }, - "select-type-construct":{ + "select-type-construct": { "comment": "Select type construct. Introduced in the Fortran 2003 standard.", - "begin": "(?i)\\b(select)\\s*(type)\\b", + "name": "meta.block.select.type.fortran", + "begin": "(?i)\\b(select\\s*type)\\b", "beginCaptures": { "1": { - "name": "keyword.control.select.fortran" - }, - "2": { - "name": "keyword.control.type.fortran" + "name": "keyword.control.selecttype.fortran" } }, - "end": "(?i)(?=\\b(end\\s*select)\\b)", + "end": "(?i)\\b(end\\s*select)\\b", "endCaptures": { "1": { "name": "keyword.control.endselect.fortran" @@ -1351,7 +1349,7 @@ "include": "#parentheses" }, { - "begin": "(?i)\\b(?:(class)|(type))", + "begin": "(?i)\\b(?:(class)|(type))\\b", "beginCaptures": { "1": { "name": "keyword.control.class.fortran" @@ -1371,7 +1369,7 @@ } }, { - "match": "(?i)\\G\\s*(is)\\b", + "match": "(?i)\\G\\s*\\b(is)\\b", "captures": { "1": { "name": "keyword.control.is.fortran" From aa39bef52b9da298f691701f5a734e4af844d3c2 Mon Sep 17 00:00:00 2001 From: Giannis Nikiteas Date: Fri, 13 Nov 2020 16:08:31 +0000 Subject: [PATCH 3/4] Fixes Modern Fortran 2: inconsistent syntax highlighting #181, for rank-select constructs. --- syntaxes/fortran_free-form.tmLanguage.json | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/syntaxes/fortran_free-form.tmLanguage.json b/syntaxes/fortran_free-form.tmLanguage.json index 1493629f..c0b5b768 100644 --- a/syntaxes/fortran_free-form.tmLanguage.json +++ b/syntaxes/fortran_free-form.tmLanguage.json @@ -1389,18 +1389,16 @@ } ] }, - "select-rank-construct":{ + "select-rank-construct": { "comment": "Select rank construct. Introduced in the Fortran 2008 standard.", - "begin": "(?i)\\b(select)\\s*(rank)\\b", + "name": "meta.block.select.rank.fortran", + "begin": "(?i)\\b(select\\s*rank)\\b", "beginCaptures": { "1": { - "name": "keyword.control.select.fortran" - }, - "2": { - "name": "keyword.control.rank.fortran" + "name": "keyword.control.selectrank.fortran" } }, - "end": "(?i)(?=\\b(end\\s*select)\\b)", + "end": "(?i)\\b(end\\s*select)\\b", "endCaptures": { "1": { "name": "keyword.control.endselect.fortran" From ae5bb0c55232253b214ed9e01d6dd6ec97382ca0 Mon Sep 17 00:00:00 2001 From: Giannis Nikiteas Date: Sat, 14 Nov 2020 03:22:33 +0000 Subject: [PATCH 4/4] Updates the control construct block to account for the 3 types of select --- syntaxes/fortran_free-form.tmLanguage.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/syntaxes/fortran_free-form.tmLanguage.json b/syntaxes/fortran_free-form.tmLanguage.json index c0b5b768..9e963d78 100644 --- a/syntaxes/fortran_free-form.tmLanguage.json +++ b/syntaxes/fortran_free-form.tmLanguage.json @@ -959,8 +959,8 @@ "named-control-constructs": { "comment": "Introduced in the Fortran 1990 standard.", "contentName": "meta.named-construct.fortran.modern", - "begin": "(?ix)([a-z]\\w*)\\s*(:)(?=\\s*(?:associate|block(?!\\s*data)|critical|do|forall|if|select|where)\\b)", - "end": "(?i)\\s*(?!\\b(?:associate|block(?!\\s*data)|critical|do|forall|if|select|where)\\b)\\b(?:\\b(\\1)\\b)?(?:\\s*([^\\s;!][^;!\\n]*?))?(?=\\s*[;!\\n])", + "begin": "(?ix)([a-z]\\w*)\\s*(:)(?=\\s*(?:associate|block(?!\\s*data)|critical|do|forall|if|select\\s*case|select\\s*type|select\\s*rank|where)\\b)", + "end": "(?i)\\s*(?!\\b(?:associate|block(?!\\s*data)|critical|do|forall|if|select\\s*case|select\\s*type|select\\s*rank|where)\\b)\\b(?:\\b(\\1)\\b)?(?:\\s*([^\\s;!][^;!\\n]*?))?(?=\\s*[;!\\n])", "endCaptures": { "2": { "name": "invalid.error.fortran.modern"