ReSharper C++ vs. Visual Assist

Este documento descreve como o ReSharper C++ difere do Visual Assist da Whole Tomato.

Como os dois produtos são desenvolvidos ativamente, e sua funcionalidade muda regularmente, consideramos essa comparação válida para versões específicas indicadas no cabeçalho da tabela de comparação.

Se você encontrar itens imprecisos nessa tabela, poste um comentário abaixo para nos informar, e atualizaremos a tabela o mais rápido possível.

no Visual Studio 2019 + Visual Assist Build 2024.8 (2537)

no Visual Studio 2022 + ReSharper C++ 2024.3

Versões com suporte do Visual Studio
Visual Studio 2022
Visual Studio 2022
Visual Studio 2019
Visual Studio 2019
Visual Studio 2017
Visual Studio 2017
Visual Studio 2015
Visual Studio 2015
Visual Studio 2013
Visual Studio 2013
Visual Studio 2012
Visual Studio 2012
Visual Studio 2010
Visual Studio 2010
Visual Studio 2008
Visual Studio 2005
Especificações C/C++ com suporte
C/C++
C/C++
C++/CLI
Arquivos de origem CUDA
Detecção de problemas de código
Realce de símbolos não resolvidos
Supressão de inspeções de código com comentários
Supressão de inspeções de código com comentários
Marcas de medianiz para chamadas recursivas
Correções rápidas para issues de código
Assistência para codificação
Realçar itens em pares (incluindo macros e argumentos de formato em printf e boost::format)
Realce de sintaxe (20 tipos diferentes de identificadores)
Extensão automática e criação de stubs de documentação em comentários /**/ e /// de várias linhas ao pressionar Enter
Geração de comentário do Doxygen ao digitar ///
Realce de palavras correspondentes (código e comentários)
Realce automático de saídas de função
Assistência para estilo de código
Formatar depois de colar (as regras de formatação são herdadas do Visual Studio)
Aplicar regras de formatação em qualquer escopo (com o extenso conjunto de regras de formatação do ReSharper C++)
Aplique estilos de código e remova redundâncias de código em qualquer escopo com limpeza de código
Estilo configurável para modificadores const e volatile no código gerado
Estilo configurável para diretivas #include no código gerado
Estilo configurável para inicializadores de ponteiro padrão (0|nullptr|NULL) no código gerado
Refatorações e transformações de código
Encapsular o campo (com a ação Generate getters and setters)
Adição/remoção de chaves
Negar expressão lógica
Movimentação de definições de função
Movimentação de classe
Converter instância em ponteiro e vice-versa
Simplificar declaração de instância
Classificação de métodos no código-fonte
Promoção do Lambda para Método
Adicionar o especificador = default, = delete, pure ou virtual a uma função
Organização de qualificadores cv
Converter ?: em if, e vice-versa
Converter a diretiva #include de colchete angular no formato entre aspas, e vice-versa
Conversão de chamada em pipe, e vice-versa
Conversão de cláusula em restrição de parâmetro
Converter declaração de definição de tipo em declaração de alias, e vice-versa
Converter em definição de namespace aninhada
Converter tipo de retorno regular em tipo de retorno à direita, e vice-versa
Criar tipo derivado: classe, interface, estrutura, classe de interface, estrutura de interface, classe de referência, estrutura de referência
Inverter operador relacional
Inverter argumentos do operador
Inicializar campo a partir de parâmetro construtor
Inversão da instrução if, inversão da condição ?:
Substituir "auto" por declaração de tipo explícita
Substituir "decltype" pelo tipo subjacente
Substituir "decltype(auto)" por declaração de tipo explícita
Dividir ou juntar declaração com várias declarações
Substituir chamada de macro
Substituir alias de tipo de modelo
Especificar argumentos de modelo explicitamente
Substituir definição de tipo (e, opcionalmente, todas as definições de tipo aninhadas)
Substituição de UNREFERENCED_PARAMETER por [[maybe_unused]]
Conversão de string em string bruta C++11, e vice-versa
Movimentação de restrição de parâmetro de modelo para a cláusula requires
Geração de código
Criar tipo derivado
Snippets/modelos de código
Criar arquivo (precisa ser chamado duas vezes para cabeçalho e cpp)
Navegação e pesquisa
Ir para a declaração (com Goto)
Ir para a implementação (com Goto)
Depuração
Desabilitar temporariamente todos os pontos de interrupção habilitados
Associar temporariamente todos os pontos de interrupção ao thread atual
Unreal Engine
Excluir origem de mecanismo da navegação
Exclusão da origem do mecanismo da indexação
Suporte para chamadas de procedimento remoto UE4
Testes de unidade
Assistência para testes de unidade para as estruturas Google Test, Catch 2.5, Boost.Test e doctest
Gerenciamento de configurações
Diversos
GUI localizada (chinês, japonês, coreano)