Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

VSCode outline fails in Rmarkdown document if there is pseudo chunk text inside the chunks

Abierto
#641 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
45/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
r, vscode
Área
tooling

Línea de trabajo

Reproduce el ejemplo de R Markdown en VSCode e inspecciona el análisis de chunks utilizado para el esquema del documento. Compara su manejo de los backticks incrustados con los patrones de knitr mostrados para chunk.begin y chunk.end; se considera terminado cuando el esquema sigue estando disponible cuando aparece texto de pseudo-chunk dentro de un chunk de R.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

I know this is a specific case.
I am building functions inside a Rmarkdown document, which builds chunks.
I remarked that, as soon as there is 3 backticks in my code, the VSCode document outline is not displayed.

Here is a reprex.
With this code, there is no outline available in VSCode, near the Rmd name
image

---
title: "test vscode"
output: html_document
author: statnmap
---

```{r development, include=FALSE}
library(testthat)
```

# combine_tbl_to_file

```{r function}
#' Create R code chunk content
#' @return A character string of R code chunk content
#' @noRd
create_r_chunk <- function() {
  paste(
    "```{r}",
    "```",
    sep = "\n"
  )
}

cat(create_r_chunk())
```

As soon as I remove the paste with backticks, the outline is correct:
image

---
title: "test vscode"
output: html_document
author: statnmap
---

```{r development, include=FALSE}
library(testthat)
```

# combine_tbl_to_file

```{r function}
#' Create R code chunk content
#' @return A character string of R code chunk content
#' @noRd
create_r_chunk <- function() {
  paste(
    "",
    sep = "\n"
  )
}

cat(create_r_chunk())
```

Maybe the parsing you use to detect chunks can be a little more restrictive, and only considering chunks when there is nothing or spaces before the backticks ?

You could maybe use patterns used by {knitr}:

r$> knitr:::all_patterns$md
$chunk.begin
[1] "^[\t >]*```+\\s*\\{([a-zA-Z0-9_]+( *[ ,].*)?)\\}\\s*$"

$chunk.end
[1] "^[\t >]*```+\\s*$"

$ref.chunk
[1] "^\\s*<<(.+)>>\\s*$"

$inline.code
[1] "(?<!(^``))(?<!(\n``))`r[ #]([^`]+)\\s*`"
Lenguaje dominante
R
Estrellas
675
Forks
118
Merge medio
1 d 11 h
PR fusionados (30 d)
11

Preparar el entorno

Aún no hemos revisado los archivos de configuración de este proyecto. Empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de REditorSupport/languageserver

Todos los issues de REditorSupport/languageserver

Issues similares

Más issues de R

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.