Calculando parâmetros de 'indent' automaticamente

0

Como analisar automaticamente um arquivo de origem C / C ++ e descobrir quais indent parâmetros se adequam mais (por exemplo, produz um mínimo de alterações quando filtrado por indent )?

    
por Vi. 12.04.2013 / 03:41

1 resposta

0

Não há uma ferramenta comumente distribuída para fazer isso, então você terá que escrever o seu próprio. Gostaria de escrever um script Bash que chame indent com parâmetros diferentes para criar um grande número de versões alternativas do arquivo de origem original e, em seguida, encontre a "melhor" saída diff para cada versão alternativa, onde "melhor" pode ser simplesmente o menor número de linhas alteradas.

Minha experiência é que você pode particionar o problema se souber quem escreveu o código original. Os programadores tendem a adotar hábitos de formatação de longo prazo que diferem de programador para programador.

Você deve esperar que, mesmo nos melhores casos, os diffs que indent introduzir tornarão o svn / git culpado de inútil. Isso provavelmente forçará você a adotar uma específica indent policy para all do código e iniciar um novo repositório com código formatado automaticamente ou simplesmente abandonar o conjunto idéia. Um repositório com várias políticas indent diferentes provavelmente causará mais confusão e agravamento do que benefícios.

Se você estiver trabalhando em um novo código e não apenas fazendo pequenas alterações no código existente, a melhor prática seria exigir que todos os colaboradores usem uma política indent ou astyle específica antes de enviar o código. Você também pode fazer isso automaticamente usando hooks no svn / git commit, mas isso pode causar erros de compilação ou até bugs em casos raros. Se você está trabalhando em uma organização e não está executando um projeto on-line onde você é o gatekeeper, você precisará de um gerente com autoridade suficiente para aplicar a política, já que a maioria dos programadores já sabe, com anos de experiência, que sua própria formatação é a única. maneira correta e todas as outras formatações são inválidas.

    
por 12.04.2013 / 08:50