Digamos que você tenha muito código parecido com este:
fn(xExp)
...
fn(yExp)
...
fn(zExp)
...
fn(aStmt)
...
fn(bStmt)
Isso quer dizer que você tem muito código com o mesmo padrão (normalmente chamadas de função).
Agora você alterou a definição da função de receber 1 argumento para mais de 1 argumento,
func fn(arg1 int) {} ----> func (arg1 int, arg2 int) {}
E digamos que você tenha muitas fn()
ligações.
O que você pode fazer é usar o suporte regex backref do SublimeText para pesquisar e substituir ( ctrl + H é o padrão).
Basta fazer isso em seu campo de pesquisa :
fn((.+))
E use isso em seu campo de substituição :
fn(1, arg2)
Você deve obter algo assim:
fn(xExp, arg2)
...
fn(yExp, arg2)
...
fn(zExp, arg2)
...
fn(aStmt, arg2)
...
fn(bStmt, arg2)
Eu tentei isso por capricho há menos de 5 minutos e descobri para minha alegria que funciona. Obviamente, (.+)
é uma prática muito, muito ruim, e você deve usar um padrão o mais específico possível. Você também pode fazer backref múltiplo com 1
, 2
etc. Acho que isso ajuda imensamente com refatores maiores
Fiquei agradavelmente surpreso com o que o ST pode fazer (claro, se você quiser fazer uma substituição mais complexa, basta usar o emacs e escrever um script rápido e sujo)