UltiSnips regex macthing

Oct 16 2020

Quero a possibilidade de transformar uma equação embutida em látex em uma equação de exibição.

Então eu quero $something$me tornar

$$ something $$

Minha tentativa foi esta:

snippet "$(.+)$" "whatever" r
$$ \1 $$
$1
endsnippet

Meu entendimento é que (.+)corresponderia a qualquer personagem 1 ou mais vezes (capturado em um grupo) e \1imprimiria a correspondência no grupo.

Eu também tentei usar a interpolação python !p snip.rv = match.group(1)sem sucesso.

Ambas as tentativas apenas levam a uma guia inserida. Alguma ideia?

Respostas

1 RicardoKullock Oct 18 2020 at 01:40

Por causa do comentário de Jake Grossman, eu finalmente percebi que o $gatilho regex deveria ser escapado: (Também tive que usar interpolação python)

snippet "\$(.+)\$" "whatever" r $$
`!p snip.rv = match.group(1)`
$$ $0
endsnippet

O gatilho logo após snippetirá corresponder a qualquer coisa entre $e capturá-lo em um grupo (com o ())

Na interpolação python, snip.rvsignifica "valor de retorno" e match.group(1)imprime o primeiro grupo na regex (o único neste caso)