![1cb51aa45e6c46f8e5d2bfaea8add5c2.png](https://i-blog.csdnimg.cn/blog_migrate/8c4f850fefe943601e2d48bac1cf69bb.jpeg)
vscode的scheme/racket语言插件大多没有解决一个很重要的问题:vscode的缩进系统和scheme/racket语言的一般缩进约定严重不兼容。
例如说下面的情况:
![1f401e43ebc2b452842032706b9a04d6.gif](https://i-blog.csdnimg.cn/blog_migrate/10ff07e0d639ef4e4547689c6c4ceffd.gif)
显然,if
的第二个表达式语句应该和第一个对齐,但是vscode的racket语言插件却不能做到这一点。 我们需要手动按下数个空格来保证缩进的正确性。
在这种情况下写代码,体验是非常不好的。为了改善在vscode中写racket代码的体验,我用假期时间写了一个非常精简的vscode插件 -- AyaSEditor.
这个插件可以自动地在换行时缩进:
![f79e0b61e5575c5f7bca9b5c5610388c.gif](https://i-blog.csdnimg.cn/blog_migrate/e51353ea845b0e4e044e9dd771be7702.gif)
按Tab可以调整缩进:
![dbb1e3cb2c87e86aa0151db73e023057.gif](https://i-blog.csdnimg.cn/blog_migrate/feca0d67f400522ce80987ac1335c7b7.gif)
不过,我们还要手动解决vscode会自动进行括号匹配的问题:
![1d15b444fb226255b5b15a99ba9ee253.png](https://i-blog.csdnimg.cn/blog_migrate/46cb205cbe3d1dfba8c9e31d88287ad3.png)
在json配置里加上这么两行:
"[racket]": {
"editor.autoClosingBrackets": "never"
},
"[scheme]": {
"editor.autoClosingBrackets": "never"
}
就大功告成了。
现在,我们可以在vscode里舒服地写scheme/racket系的语言了!