Mesclagem com reconhecimento de contexto?
Existe alguma ferramenta diff / mesclagem para linguagens de programação que funcione com reconhecimento de sintaxe (como a XML Diff Tool), fazendo mais do que comparar linha por linha (e opcionalmente ignorando o espaço em branco).
Estou interessado em um programa que segue a sintaxe e os delimitadores da linguagem, sugerindo alterações sem interromper a correção sintática ou agrupar instruções separadas em várias linhas. O comportamento de exemplo seria:
* ao encontrar umif(){
que introduz um nível extra de aninhamento agrupa automaticamente a chave de fechamento}
várias linhas abaixo com ele.)
* mantenha os elementos de sintaxe correspondentes juntos, evite bobagens, como remover um bloco tende a criar:
int function_A()
{
int ret;
ret = something;
ret += something_else;
return ret;
}
int function_B()
{
if(valid)
{
int ret;
ret = something;
ret += something_else;
return ret;
}
else return -1;
}
Pessoalmente, eu adoraria encontrar um software capaz de lidar com a sintaxe C ++, mas conhecer soluções para outras linguagens também seria interessante.