awesome-pair.el 更加智能的括号自动补全插件

可否支持一下 js/ts 的模板字符串呢?

没看懂你说的什么意思,最好举个例子

const aa = "test string";
const template = `good ${aa} template
this is another line for template string.
`;

比如上面这段代码,就是ES6和TS都有的模板字符串

在这种字符串中,如果光标在${|aa}这个位置, 那么C-k其实想删除的是aa${aa}删除后的结果应该是${}

如果光标在|this is another...这个位置,那么我想删除的其实是当前行,就是默认kill-line的效果

如果光标在|template这个位置,C-k要删除的其实就是template这个单词

这个功能可能需要新加语法树吧

edit: 试了下smartparen,这个插件里面对模板字符串支持好像挺好的,希望能把这个效果弄过来

上面的描述,也是smartparen实现的效果

最近在玩 TabNine, 但是 TabNine 有一个小问题,就是容易补全一半的括号,需要手动补全括号。

今天写了一个补丁让 awesome-pair.el 可以自动修复一半括号的代码。

3 个赞

我挖个坟,懒猫大佬能不能给awesome-pair-mode加上autoload啊,我在我电脑下面安装awesome-pair找不到awesome-pair-mode的定义

欢迎发补丁哈

awesome-pair-mode是空的,不需要打开就能用其他命令。autoload是package作者加了最好,没加用use-package加一下也很容易:

(use-package awesome-pair
  :ensure nil
  :commands (awesome-pair-kill
             awesome-pair-backward-delete awesome-pair-forward-delete
             awesome-pair-equal awesome-pair-double-quote awesome-pair-space
             awesome-pair-open-round awesome-pair-open-bracket awesome-pair-open-curly
             awesome-pair-close-round awesome-pair-close-bracket awesome-pair-close-curly
             awesome-pair-wrap-round-pair)
  :init
  (general-define-key
   ...))
1 个赞