From 69759fce2a532994a9465c4c9102341feaf6912a Mon Sep 17 00:00:00 2001 From: jh-min Date: Sun, 8 Dec 2019 23:39:36 +0900 Subject: [PATCH 1/2] Add Stata & R support in fenced code blocks If opening fence is either ```s, ```{s}, ```stata or ```{stata}, fenced code block will highlight Stata syntax and support any key bindings working in source.stata. If opening fence is either ```r or ```{r}, fenced code block will highlight R syntax and support any key bindings working in source.r. Also, syntax highlighting will work when adding code chunk options such as ```{r, eval=FALSE} of R Markdown. --- Note-fenced.sublime-syntax | 18 +++++++++++++++++- Note-fenced.tmLanguage | 32 +++++++++++++++++++++++++++++++- 2 files changed, 48 insertions(+), 2 deletions(-) diff --git a/Note-fenced.sublime-syntax b/Note-fenced.sublime-syntax index 0ae9a84..4af827e 100644 --- a/Note-fenced.sublime-syntax +++ b/Note-fenced.sublime-syntax @@ -33,6 +33,7 @@ contexts: - include: fenced-scss - include: fenced-shell - include: fenced-sql + - include: fenced-stata - include: fenced-tex - include: fenced-xml - include: fenced-yaml @@ -296,12 +297,13 @@ contexts: pop: true - include: scope:source.python fenced-r: - - match: '((?:^|\G)\s*[`~]{3,})\s*(r)\s*$' + - match: '((?:^|\G)\s*[`~]{3,})\s*(r|{r}|{r(\s|\,).*})\s*$' captures: 1: punctuation.definition.raw.block.fenced.markdown 2: meta.definition.language.raw.block.fenced.markdown push: - meta_scope: markup.raw.block.markdown markup.raw.block.fenced.markdown meta.language.r + - meta_content_scope: source.r - match: '^(\1)[ \t]*(\n|$)' captures: 1: punctuation.definition.raw.block.fenced.markdown @@ -399,6 +401,20 @@ contexts: 2: meta.definition.language.raw.block.fenced.markdown pop: true - include: scope:source.sql + fenced-stata: + - match: '((?:^|\G)\s*[`~]{3,})\s*(s|stata|{s}|{s(\s|\,).*}|{stata}|{stata(\s|\,).*})\s*$' + captures: + 1: punctuation.definition.raw.block.fenced.markdown + 2: meta.definition.language.raw.block.fenced.markdown + push: + - meta_scope: markup.raw.block.markdown markup.raw.block.fenced.markdown meta.language.stata + - meta_content_scope: source.stata + - match: '^(\1)[ \t]*(\n|$)' + captures: + 1: punctuation.definition.raw.block.fenced.markdown + 2: meta.definition.language.raw.block.fenced.markdown + pop: true + - include: scope:source.stata fenced-tex: - match: '((?:^|\G)\s*[`~]{3,})\s*(tex)\s*$' captures: diff --git a/Note-fenced.tmLanguage b/Note-fenced.tmLanguage index ba0d014..4e6f9fa 100644 --- a/Note-fenced.tmLanguage +++ b/Note-fenced.tmLanguage @@ -291,6 +291,36 @@ + fenced-stata + + begin + ((?:^|\G)\s*[`~]{3,})\s*(s|stata|{s}|{s(\s|\,).*}|{stata}|{stata(\s|\,).*})\s*$ + end + ^(\1)[ \t]*(\n|$) + name + markup.raw.block.markdown markup.raw.block.fenced.markdown meta.language.stata + captures + + 1 + + name + punctuation.definition.raw.block.fenced.markdown + + 2 + + name + meta.definition.language.raw.block.fenced.markdown + + + patterns + + + include + source.stata + + + + fenced-shell begin @@ -624,7 +654,7 @@ fenced-r begin - ((?:^|\G)\s*[`~]{3,})\s*(r)\s*$ + ((?:^|\G)\s*[`~]{3,})\s*(r|{r}|{r(\s|\,).*})\s*$ end ^(\1)[ \t]*(\n|$) name From 5aa5c3f70659590df6c870cb8202593aa2033d68 Mon Sep 17 00:00:00 2001 From: jh-min Date: Sat, 14 Dec 2019 18:49:27 +0900 Subject: [PATCH 2/2] Fix error in textmate grammar definition --- Note-fenced.tmLanguage | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Note-fenced.tmLanguage b/Note-fenced.tmLanguage index 4e6f9fa..1872f09 100644 --- a/Note-fenced.tmLanguage +++ b/Note-fenced.tmLanguage @@ -1034,6 +1034,10 @@ include #fenced-sql + + include + #fenced-stata + include #fenced-shell