如何在VSCode中配置仅在引号内生效的Ruby字符串插值代码片段
在VSCode实现Ruby字符串内专属的插值补全
核心解决方案(原生代码片段)
VSCode不支持Atom的insideString直接字段,但可以通过内置上下文变量实现精准触发。打开Ruby的用户代码片段文件(Ctrl+Shift+P → 配置用户代码片段 → 选择ruby.json),粘贴以下配置:
"Ruby String Interpolation": { "prefix": "#", "body": "#{$1:$TM_SELECTED_TEXT}", "description": "快速插入Ruby字符串插值", "when": "editorLangId == 'ruby' && inString" }
配置说明
- 触发条件:
when字段限制仅在Ruby文件、光标位于字符串内时生效,完全匹配需求 - 补全逻辑:输入
#后自动补全为#{};若之前选中了文本,选中内容会直接插入{}中,否则光标自动定位到{}中间 - 精准适配双引号场景:如果需要仅在双引号(Ruby仅双引号支持插值)内触发,把
when条件修改为:"when": "editorLangId == 'ruby' && inString && !inSingleQuotedString"
优化补全优先级
如果输入#后补全提示未优先显示,可在VSCode设置中调整:打开设置(Ctrl+,),搜索editor.snippetSuggestions,设置为top,让代码片段补全优先于其他提示。
内容的提问来源于stack exchange,提问作者Vantalk
相关产品推荐
相关产品推荐

