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.
Visual Assist no | no |
Versões com suporte do Visual Studio | 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 | Sem suporte | |
Visual Studio 2005 | Sem suporte | |
Visual Studio .NET 2003 | Sem suporte | |
Visual Studio .NET 2002 | Sem suporte | |
Visual C++ 6.0 | Sem suporte | |
Especificações C/C++ com suporte | C/C++ | C/C++ |
C++/CLI | C++/CLI | |
Detecção de problemas de código | Realce de símbolos incorretamente digitados | Realce de símbolos não resolvidos |
Navegação entre issues de código (janela de ferramentas, editor) | Navegação entre issues de código (janela de ferramentas, editor, comandos dedicados) | |
21 inspeções do Clang-Tidy | 264 verificações integradas do Clang-Tidy | |
Nenhuma funcionalidade correspondente | 652 diagnósticos integrados do Clang-Tidy | |
Nenhuma funcionalidade correspondente | 87 verificações integradas do Clang Static Analyzer | |
Verificação ortográfica | Verificação ortográfica | |
Realce delimitadores incompatíveis | Nenhuma funcionalidade correspondente | |
Nenhuma funcionalidade correspondente | Nomenclatura inconsistente | |
A constante zero pode ser substituída por nullptr | A constante zero pode ser substituída por nullptr | |
Função de substituição sem o especificador "override" | Função de substituição sem o especificador "override" | |
O construtor shared_pointer/unique_pointer pode ser substituído por make_shared/make_unique | Construtor de ponteiro inteligente usado em vez de sua função make | |
Nenhuma funcionalidade correspondente | Mais de 180 inspeções de código patenteadas | |
Nenhuma funcionalidade correspondente | Inspeções de código para a maioria dos erros do compilador e alguns avisos | |
Nenhuma funcionalidade correspondente | Pesquisa assíncrona de problemas de código em qualquer escopo | |
Nenhuma funcionalidade correspondente | Execução de inspeção de código na linha de comando | |
Correções rápidas para issues de código | Criar a partir do uso | Criar a partir do uso |
Adicionar #include | Importar variável globais, tipos, definições de tipo, funções, macros | |
Criar declarações | Criar declarações | |
Reparar a formatação de maiúsculas e minúsculas | Nenhuma funcionalidade correspondente | |
Mais de 10 correções rápidas para inspeções configuráveis | Mais de 120 correções rápidas para inspeções configuráveis | |
Assistência para codificação | Realçar delimitadores correspondentes | Realçar itens em pares (incluindo macros e argumentos de formato em printf e boost::format ) |
Realçar a linha atual | Realçar a linha atual | |
Acrônimos / Shorthand | CamelHumps | |
Listas de sugestões / Sugestões inteligentes | Preenchimento de código com sugestões inteligentes | |
Converter ponto em -> | Converter ponto em -> e -> em ponto | |
Seleção inteligente | Estender/recolher seleção + Selecionar declaração de inclusão | |
Várias pranchetas | Histórico de pranchetas com visualização de itens | |
Informações de parâmetros | Informações de parâmetros | |
Nenhuma funcionalidade correspondente | Dicas de editor | |
Enhanced syntax coloring (6 different identifier kinds) / Símbolos estáveis em itálico / Símbolos locais em negrito | Realce de sintaxe (20 tipos diferentes de identificadores) | |
Realçar referências ao símbolo sob o cursor | Realçar usos no arquivo | |
Seleção circundante | Circundar com / Comentar com linha ou comentário de bloco | |
Inserir tokens de fechamento automaticamente | Inserir automaticamente delimitador e formato correspondentes | |
Informações rápidas com documentação | Dicas de ferramentas realçadas em sintaxe com documentação | |
Estender comentários de várias linhas automaticamente com Enter | Estender comentários de várias linhas /**/ e /// automaticamente com Enter | |
Inserir sublinhado após m e Shift | Nenhuma funcionalidade correspondente | |
Caixas de listagem aprimoradas | Nenhuma funcionalidade correspondente | |
Realce de palavras correspondentes (código e comentários) | Nenhuma funcionalidade correspondente | |
Indicador de coluna (margem direita) | Nenhuma funcionalidade correspondente | |
Classificar linhas | Nenhuma funcionalidade correspondente | |
Inserir caminho | Nenhuma funcionalidade correspondente | |
Visualizar arquivos de comentários | Nenhuma funcionalidade correspondente | |
Redefinir o zoom do editor | Nenhuma funcionalidade correspondente | |
Nenhuma funcionalidade correspondente | Duplicar a linha ou seleção atual | |
Nenhuma funcionalidade correspondente | Preenchimento Postfix | |
Nenhuma funcionalidade correspondente | Modelos Postfix | |
Nenhuma funcionalidade correspondente | Documentação rápida | |
Nenhuma funcionalidade correspondente | 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++) |
Nenhuma funcionalidade correspondente | Aprenda regras de formatação a partir do código existente | |
Nenhuma funcionalidade correspondente | Suporte para EditorConfig | |
Nenhuma funcionalidade correspondente | Suporte ao formato Clang | |
Nenhuma funcionalidade correspondente | Aplique estilos de código e remova redundâncias de código em qualquer escopo com limpeza de código | |
Nenhuma funcionalidade correspondente | Estilo de cabeçalho de arquivo configurável | |
Nenhuma funcionalidade correspondente | Estilo de nomeação configurável com esquemas predefinidos (STL, Google, LLVM, CamelCase, Microsoft) | |
Nenhuma funcionalidade correspondente | Estilo configurável para const e modificadores voláteis no código gerado | |
Nenhuma funcionalidade correspondente | Estilo configurável para a diretiva include no código gerado | |
Nenhuma funcionalidade correspondente | Estilo configurável para inicializadores de ponteiro padrão (0 |nullptr |NULL ) no código gerado | |
Refatorações e transformações de código | Acesso a comandos de refatoração | Refactor This |
Renomear | Renomear | |
Alterar assinatura | Alterar assinatura | |
Introduzir variável | Introduzir variável | |
Encapsular campo | Encapsular campo (com a ação Generate getters and setters) | |
Extrair método | Extrair método | |
Adicionar/remover chaves | Adicionar/remover chaves | |
Renomear arquivos | Renomear arquivo | |
Mover implementação para arquivo de origem | Mover implementação fora do escopo da classe | |
Mover implementação para declaração de arquivo/classe de cabeçalho | Nenhuma funcionalidade correspondente | |
Mover seleção para novo arquivo | Nenhuma funcionalidade correspondente | |
Snippets para refatorações (editáveis) | Nenhuma funcionalidade correspondente | |
Converter instância em ponteiro e vice-versa | Nenhuma funcionalidade correspondente | |
Simplificar declaração de instância | Nenhuma funcionalidade correspondente | |
Nenhuma funcionalidade correspondente | Introduzir campo | |
Nenhuma funcionalidade correspondente | Variável inline | |
Nenhuma funcionalidade correspondente | Introduzir alias de namespace | |
Nenhuma funcionalidade correspondente | Introduzir/Definição de tipo inline | |
Nenhuma funcionalidade correspondente | Adicionar o especificador = default , = delete , pure ou virtual a uma função | |
Nenhuma funcionalidade correspondente | Converter ?: em if , e vice-versa | |
Nenhuma funcionalidade correspondente | Converter a diretiva #include de colchete angular no formato entre aspas, e vice-versa | |
Nenhuma funcionalidade correspondente | Converter declaração de definição de tipo em declaração de alias, e vice-versa | |
Nenhuma funcionalidade correspondente | Converter em definição de namespace aninhada | |
Nenhuma funcionalidade correspondente | Converter tipo de retorno regular em tipo de retorno à direita, e vice-versa | |
Nenhuma funcionalidade correspondente | Criar tipo derivado: classe, interface, estrutura, classe de interface, estrutura de interface, classe de referência, estrutura de referência | |
Nenhuma funcionalidade correspondente | Inverter operador relacional | |
Nenhuma funcionalidade correspondente | Inverter argumentos do operador | |
Nenhuma funcionalidade correspondente | Inicializar campo a partir de parâmetro construtor | |
Nenhuma funcionalidade correspondente | Inverter instrução if | |
Nenhuma funcionalidade correspondente | Mesclar instruções if aninhadas | |
Nenhuma funcionalidade correspondente | Negar expressão lógica | |
Nenhuma funcionalidade correspondente | Remover chaves | |
Nenhuma funcionalidade correspondente | Substituir "auto" por declaração de tipo explícita | |
Nenhuma funcionalidade correspondente | Substituir "decltype" pelo tipo subjacente | |
Nenhuma funcionalidade correspondente | Substituir "decltype(auto)" por declaração de tipo explícita | |
Nenhuma funcionalidade correspondente | Dividir ou juntar declaração com várias declarações | |
Nenhuma funcionalidade correspondente | Substituir chamada de macro | |
Nenhuma funcionalidade correspondente | Substituir alias de tipo de modelo | |
Nenhuma funcionalidade correspondente | Especificar argumentos de modelo explicitamente | |
Nenhuma funcionalidade correspondente | Substituir definição de tipo (e, opcionalmente, todas as definições de tipo aninhadas) | |
Geração de código | Implementar interface/métodos virtuais | Gerar membros ausentes/substituintes |
Criar implementação | Gerar implementação + Gerar implementação inline | |
Criar implementações de métodos | Gerar definições | |
Adicionar instruções de formatação de maiúsculas/minúsculas ausentes | Gerar instruções de formatação de maiúsculas/minúsculas ausentes para enumeração | |
Documentar método | Documentar símbolo | |
Adicionar declaração progressiva | Adicionar declaração progressiva | |
Adicionar membro | Nenhuma funcionalidade correspondente | |
Adicionar membro semelhante | Nenhuma funcionalidade correspondente | |
Nenhuma funcionalidade correspondente | Gerar construtores | |
Nenhuma funcionalidade correspondente | Gerar operadores de cópia e movimentação | |
Nenhuma funcionalidade correspondente | Gerar getters e setters | |
Nenhuma funcionalidade correspondente | Gerar operadores de igualdade | |
Nenhuma funcionalidade correspondente | Gerar operadores relacionais | |
Nenhuma funcionalidade correspondente | Gerar operações de fluxo (incluindo funções Boost.Serialization ) | |
Nenhuma funcionalidade correspondente | Gerar função de hash | |
Nenhuma funcionalidade correspondente | Gerar função de permuta | |
Nenhuma funcionalidade correspondente | Gerar métodos do Google Mock | |
Nenhuma funcionalidade correspondente | Gerar função que converte enumeração em string (configurável) | |
Nenhuma funcionalidade correspondente | Criar tipo derivado | |
Snippets/modelos de código | Snippets do VA | 30 modelos dinâmicos incorporados + modelos dinâmicos personalizados |
Snippets "Surround with" | 19 modelos circundantes incorporados + modelos circundantes personalizados | |
Criar arquivo (precisa ser chamado duas vezes para cabeçalho e cpp) | Modelos de arquivo incorporados para classe e estrutura (criam o cabeçalho e o cpp de uma só vez) + modelos de arquivo personalizados | |
Strings reservadas /espaços reservados de ambiente em snippets | Macros em modelos de código | |
Editor de snippets | Editor de modelos | |
Criar snippet a partir da seleção | Criar modelo dinâmico a partir da seleção | |
Nenhuma funcionalidade correspondente | Modelos de vários arquivos | |
Navegação e pesquisa | Ir para a declaração (com Goto) | Ir para a declaração (com reconhecimento de uso) |
Ir para a implementação (com Goto) | Ir para a implementação | |
Esboço do VA | Estrutura do arquivo | |
Arquivos recentes (exibição do VA) | Ir para arquivos recentes | |
Abrir arquivo na solução | Ir para o arquivo | |
Localizar símbolo na solução | Ir para o símbolo | |
Ir para relacionado | Ir para arquivos relacionados | |
Ir para membro | Ir para membro do arquivo | |
Mover escopo | Ir para membro seguinte/anterior | |
Encontrar referências | Encontrar usos | |
Localizar por contexto | Ir para o realce seguinte/anterior / Janela Find Results | |
Abrir arquivo correspondente | Alternar entre cabeçalho e origem | |
Navegar para frente e para trás | Percorrer o histórico de navegação | |
Hashtags do VA | Marcadores | |
Links de origem | Itens de tarefas pendentes com padrões de URL externos | |
Listar métodos no arquivo | Nenhuma funcionalidade correspondente | |
Barra de navegação do VA | Nenhuma funcionalidade correspondente | |
Navegador de classe de focalização | Nenhuma funcionalidade correspondente | |
Realçar arquivos de projeto na janela Output | Nenhuma funcionalidade correspondente | |
Realçar resultados de localização | Nenhuma funcionalidade correspondente | |
Nenhuma funcionalidade correspondente | Busca geral | |
Nenhuma funcionalidade correspondente | Ir para o texto | |
Nenhuma funcionalidade correspondente | Ir para edições recentes | |
Nenhuma funcionalidade correspondente | Ir para a edição anterior | |
Nenhuma funcionalidade correspondente | Navegação até o destino | |
Nenhuma funcionalidade correspondente | Ir para os símbolos base | |
Nenhuma funcionalidade correspondente | Ir para símbolos derivados | |
Nenhuma funcionalidade correspondente | Ir para o tipo de símbolo | |
Nenhuma funcionalidade correspondente | Ir para o arquivo nas proximidades | |
Nenhuma funcionalidade correspondente | Type Hierarchy | |
Nenhuma funcionalidade correspondente | Hierarquia de inclusões | |
Nenhuma funcionalidade correspondente | Ir para o modelo primário/especializações | |
Nenhuma funcionalidade correspondente | Localizar o arquivo atual no Solution Explorer | |
Nenhuma funcionalidade correspondente | Encontrar ações e configurações | |
Nenhuma funcionalidade correspondente | Navegação por pontos de interrupção e janela de ferramentas | |
Nenhuma funcionalidade correspondente | Inclui analisador | |
Depuração | Filtros de etapa | Filtros de etapa |
Desabilitar temporariamente todos os pontos de interrupção habilitados | Nenhuma funcionalidade correspondente | |
Associar temporariamente todos os pontos de interrupção ao thread atual | Nenhuma funcionalidade correspondente | |
Nenhuma funcionalidade correspondente | Inspeções inline | |
Nenhuma funcionalidade correspondente | Dicas de dados pesquisáveis | |
Unreal Engine | Suporte para projetos UE4 | Suporte para projetos UE4 |
Sugestões inteligentes para especificadores de reflexão UE4 | Preenchimento de código para especificadores de reflexão UE4 | |
Nenhuma funcionalidade correspondente | Documentação rápida para especificadores de reflexão UE4 | |
Suporte para chamadas de procedimento remoto UE4 | Suporte para chamadas de procedimento remoto UE4 | |
Nenhuma funcionalidade correspondente | Renomear e alterar refatorações de assinatura para funções RPC UE4 | |
Excluir origem de mecanismo da navegação | Nenhuma funcionalidade correspondente | |
Nenhuma funcionalidade correspondente | Indexação adiada do código do mecanismo | |
Nenhuma funcionalidade correspondente | Suporte para convenções de nomenclatura UE4 | |
Nenhuma funcionalidade correspondente | Inspeções de código específicas do UE4 | |
Testes de unidade | Nenhuma funcionalidade correspondente | Assistência para testes de unidade para as estruturas Google Test, Catch 2.5, Boost.Test e doctest |
Gerenciamento de configurações | Configurações de importação/exportação | Sincronização automática de várias camadas de configurações e modelos personalizados |