Ambos autopair
e smartparens
fornecem funcionalidade para inserir automaticamente pares de delimitadores correspondentes.
Como eles diferem um do outro na prática (se houver)? Quais são alguns casos de uso cobertos por um desses pacotes, mas não pelo outro?
smartparens
balanced-parentheses
itsjeyd
fonte
fonte
Respostas:
smartparens
possui um superconjunto da funcionalidade fornecida porautopair
. Além de fornecer inserção de pares (o que é o queautopair
faz), ele suporta manipular o que chama de "sexps híbridos" ou sexps nos modos não-ciesp. Ele fornece comandos para navegar, marcar, juntar, dividir, absorver e muito mais para sexps, entre outras coisas.Eu pessoalmente uso
smartparens
e descobri que ele fornece algumas funcionalidades sobrepostasyasnippet
- capacidade de acionar a inserção de pares usando uma stringchange-inner
- selecionar expressão dentro do par correspondenteparedit
clarofonte
change-inner
? Com base em sua própria experiência, você diria quesmartparens
poderia ser usado como um substitutochange-inner
?sp-kill-sexp
sou um pouco de uma versão dwim dechange-outer
com uma ligeira diferença em que ponto deve ser colocado.C-u C-u M-x sp-kill-hybrid-sexp
é uma versão dwim dechange-inner
. Eu uso os dois pacotes para o Auctex, que é o meu uso principal do emacs.smartparens
eu diria quechange-inner
pode ser substituído. Maschange-inner
é muito mais conveniente e não sobrecarrega a memória de trabalho (apenas duas funções / teclas para lembrar) tanto quantosmartparens
equivalentes.C-u C-u M-x sp-kill-sexp
parece um substituto decentechange-outer
.sp-kill-hybrid-sexp
melhor quechange inner
? Estou pensando se devo mudar.Uma diferença básica é que
smartparens
pode combinar pares escapados e sinais de não pontuação, comoif
efi
; você também pode personalizar seus pares.smartparens
é realmente grande quando se trabalha regex onde existem muitos pares escaparam como\(...\)
, uma vez que tem o seu próprio destaque para tais pares, fazendo trabalhar comsed
,awk
... muito mais agradável.fonte