Tôi đang cố gắng viết một yasnippet để chèn các đoạn mã vào tệp R Markdown. Tôi sử dụng polymode để có nhiều chế độ chính (markdown, ESS [S]) trong một tệp duy nhất. Đây là đoạn trích của tôi:
# -*- mode: snippet -*-
# name: chunk
# key: chunk
# --
\`\`\`{r $1}
$0
\`\`\`
Khi tôi cố gắng chèn đoạn mã vào tệp .Rmd ở chế độ đánh dấu, tôi gặp lỗi này:
Error in post-command-hook (yas--post-command-handler): (error "Marker points into wrong buffer" #<marker at 7 in test.Rmd>)
Đoạn mã xuất hiện và con trỏ của tôi ở đúng vị trí (ngay trước dấu ngoặc nhọn thứ hai):
```{r }
```
Khi tôi nhấn tab tôi nhận được như sau:
yas-next-field: Wrong type argument: overlayp, nil
Tôi đoán rằng tôi đang chạy vào một tương tác với polymode: Tôi đang ở chế độ đánh dấu khi tôi chèn đoạn mã, nhưng sau đó polymode chuyển đổi nội dung của đoạn mã thành chế độ ESS [S]. Có vẻ như cuối cùng sẽ có một lệnh để chèn một đoạn mới trong polymode, nhưng trong lúc này, có cách nào để đoạn trích này hoạt động không?