VSCode outline fails in Rmarkdown document if there is pseudo chunk text inside the chunks
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
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
---
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:
---
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
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de REditorSupport/languageserver
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
REditorSupport/languageserver#776 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 3-5 días Aptitud para principiantes 55/100
REditorSupport/languageserver#735 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
REditorSupport/languageserver#731 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 3-5 días Aptitud para principiantes 52/100
REditorSupport/languageserver#730 ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 3/5 1-2 días Aptitud para principiantes 65/100
REditorSupport/languageserver#771 · 3 comentarios ·
Los mantenedores suelen responder en 1 día
Todos los issues de REditorSupport/languageserver
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
-
bug
Dificultad 1/5 Menos de una hora Aptitud para principiantes 95/100
tidymodels/textrecipes#332 ·
-
benchmark bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 Medio día Aptitud para principiantes 78/100
ThinkR-open/datadiff#59 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
Los mantenedores suelen responder en 1 día