nem sei se tem jeito de fazer o que eu quero, mas é o seguinte: começamos um projeto usando uma notação para nomes de atributos de classes e variáveis que separava palavras por ‘_’, como “exec_thread” ou “algorithm_name”.
Estamos com vontade de, agora, usar a convenção de código da Sun para Java (http://java.sun.com/docs/codeconv/), transformando os nomes acima em “execThread” e “algorithmName”, por exemplo.
Usando as expressões regulares no Find/Replace do Eclipse, é possível pegar, por exemplo, o primeiro caractere que vem depois de um underscore e substituir pelo mesmo caractere em upper case?
Alterar mais de 100 classes na mão, mesmo usando o replace normal, vai ser um pé no saco… :?
acho que num rola não
não tem com dizer para colocar em uppercase uma das letras da string.
o search seria mais ou menos o seguinte:
(.)_(.?)(.)
ai tu poderia utilizar no resultado:
$1 - a primeira palavra
$2 - a primeira letra da segunda palavra
$3 - o resto da segunda palavra
mas não tem como fazer o $2 em uppercase no resultado
isto é uma limitação da regexp
mas é quase certeza, não sou nenhum mestre de ER, então pode ser que eu tenha faltado neste dia de aula
mas pelo menos a busca ja ta prontinha ai
se tu tem um linux, com o sed da para fazer isto legal, ele usa um superset se ER para fazer as substituições
ahh, a falta do que fazer agora, me compeliu a abrir o jEdit que tem a opção de busca por ER e replace por resultado de uma expressão beanshel, que resolve o teu problema, e ele ainda tem a opção de executar o mesmo relpace em todos os buffers abertos, o que faz com que tu resolva teu problema, com um pouquinho de fé, literalmente, ao apertar de um botão
testa ai,
instala o jedit, abre 2 ou 3 arquivos destes que tu vai trabalhar, para teste
aperta CTRL+F
marca a opção de expressões regulares
marca a checkbox “return value of a beanshell …”
coloca na caixa de procura:
(.)_(.?)(.)
e na caixa de replace
_1 + _2.toUpperCase() + _3
marca “All Buffers”
e depois de rezar um pai nosso e tres ave marias
clica em replace all