ctags-lang-rmarkdown - Man Page

Random notes about tagging R Markdown source code with Universal Ctags

Synopsis

ctags ...--extras=+{subparser}{guest} --languages=+RMarkdown ...
ctags ...--extras=+{subparser}{guest} --language-force=RMarkdown ...
ctags ...--extras=+{subparser}{guest} --map-RMarkdown=+.rmd ...

Description

RMarkdown parser is an exclusive subparser stacked on top of the Markdown parser. It works when:

The RMarkdown parser extends the way of detecting codeblocks from the Markdown parser. This extension is for running guest parsers on code chunks​.

The Markdown parser expects the following syntax represents codeblocks:

```language-name
        ...
```

For an example

```r
        ...
```

The RMarkdown parser accepts the following syntax for code chunks:

```{language-name chunk-label, ...}
        ...
```

For an example

```{r precalc fig.height=4}
        ...
```

Give --extras=+{guest} for enabling guest to command line if you want to run proper parsers on lines inside code chunks.

The parser extracts chunk labels coming after language-name as chunklabel kind objects. In the example, the RMarkdown parser extracts precalc as a chunklabel kind object. The chunklabel kind is enabled by default.

Examples

"input.rmd"

# Section 1

```{r myblock}
        zero_fun <- function () {
                return 0
        }
```

# Section 2

"output.tags" with "--options=NONE --extras=+{guest} --fields=+KZln -o - input.rmd"

Section 1       input.rmd       /^# Section 1$/;"       chapter line:1  language:Markdown
Section 2       input.rmd       /^# Section 2$/;"       chapter line:9  language:Markdown
myblock input.rmd       /^```{r myblock}$/;"    chunklabel      line:3  language:RMarkdown
zero_fun        input.rmd       /^      zero_fun <- function () {$/;"   function        line:4  language:R

See Also

ctags(1), ctags-client-tools(7), ctags-lang-r(7), R Markdown: The Definitive Guide <https://bookdown.org/yihui/rmarkdown/>

Info

6.2.1 Universal Ctags