Estou tentando escrever um yasnippet para inserir pedaços de código em um arquivo R Markdown. Eu uso o polimodo para ter vários modos principais (remarcação, ESS [S]) em um único arquivo. Este é o meu trecho:
# -*- mode: snippet -*-
# name: chunk
# key: chunk
# --
\`\`\`{r $1}
$0
\`\`\`
Quando tento inserir o trecho em um arquivo .Rmd no modo de remarcação, recebo este erro:
Error in post-command-hook (yas--post-command-handler): (error "Marker points into wrong buffer" #<marker at 7 in test.Rmd>)
O trecho aparece e meu cursor está no local correto (logo antes da segunda chave):
```{r }
```
Quando clico na guia, obtenho o seguinte:
yas-next-field: Wrong type argument: overlayp, nil
Suponho que estou tendo uma interação com o polimodo: estou no modo de marcação quando insiro o trecho, mas o polimodo converte o conteúdo do bloco de código no modo ESS [S]. Parece que, eventualmente, haverá um comando para inserir um novo pedaço no polimodo, mas, enquanto isso, existe alguma maneira de fazer esse snippet funcionar?
M-x tws-insert-r-chunk
. Provavelmente, você desejará vincular esse comando a um atalho de teclado - há muitas perguntas aqui sobre como definir combinações de teclas.