Estoy tratando de escribir un yasnippet para insertar fragmentos de código en un archivo R Markdown. Utilizo polymode para tener múltiples modos principales (markdown, ESS [S]) en un solo archivo. Este es mi fragmento:
# -*- mode: snippet -*-
# name: chunk
# key: chunk
# --
\`\`\`{r $1}
$0
\`\`\`
Cuando trato de insertar el fragmento en un archivo .Rmd en modo de reducción, obtengo este error:
Error in post-command-hook (yas--post-command-handler): (error "Marker points into wrong buffer" #<marker at 7 in test.Rmd>)
El fragmento aparece y mi cursor está en el lugar correcto (justo antes de la segunda llave):
```{r }
```
Cuando presiono la pestaña, aparece lo siguiente:
yas-next-field: Wrong type argument: overlayp, nil
Supongo que me encuentro con una interacción con polymode: estoy en modo markdown cuando inserto el fragmento, pero luego polymode convierte el contenido del fragmento de código en modo ESS [S]. Parece que eventualmente habrá un comando para insertar un nuevo fragmento en el modo polimérico, pero mientras tanto, ¿hay alguna manera de hacer que este fragmento funcione?
M-x tws-insert-r-chunk
. Probablemente querrá vincular este comando a un atajo de teclado: aquí hay muchas preguntas sobre cómo configurar las combinaciones de teclas.