Todas as atividades de desenvolvimento foram movidas para os repositórios cxxd e cxxd-vim. Para acompanhar os desenvolvimentos mais recentes, é recomendável usar o plugin cxxd-vim. Consulte a primeira seção do FAQ para obter mais detalhes.
Conteúdo
- Mudanças
- Instalação
- Uso
- Capturas de tela
- Características
- Créditos
- Perguntas frequentes
Mudanças
- 13 de julho de 2018
- A funcionalidade principal foi extraída para repositórios separados:
- cxxd, uma implementação de servidor de linguagem C/C++
- cxxd-vim, um frontend Vim desenvolvido para
cxxd
-
Yavide
irá incluí-los como dependências e continuará a funcionar normalmente, mas todas as atividades de desenvolvimento e foco agora são movidos para esses projetos , portanto, para obter mais recursos e estabilidade, comece a usá-los diretamente de sua configuração normal do Vim.
- 2 de dezembro de 2017
- Indexador baseado em Clang implementado
- Implementadas referências de localização de todas as baseadas em Clang
- Implementação de definição baseada em Clang
- Go-to-include baseado em Clang implementado
- Suporte implementado para clang-tidy
- Suporte implementado para bancos de dados de compilação JSON
- Mecanismos de cache de unidade de tradução implementados
- Várias correções de bugs e outras melhorias menores
- 12 de fevereiro de 2017
- Serviço de dedução de tipo implementado.
- Passar o cursor do mouse sobre o código-fonte fornecerá detalhes sobre as construções subjacentes (ou seja, tipos de dados, assinaturas de funções, etc.).
- 10 de fevereiro de 2017
- Implementado serviço de correção e diagnóstico baseado em Clang.
- Mecanismo implementado que permite compartilhar o mesmo AST em vários serviços:
- Por exemplo, uma vez construído o AST, o realce de sintaxe semântica e os serviços Clang fixits poderão compartilhar o mesmo AST.
- Isso será especialmente importante quando serviços mais pesados baseados em Clang entrarem em ação, como indexador e mecanismo de preenchimento automático.
- Código refatorado do lado do servidor para dissociar integrações específicas do editor da implementação principal dos serviços.
- 19 de janeiro de 2017
- Polimos algumas arestas em torno do realce de sintaxe:
- Suporte implementado para lidar com um conjunto de funções sobrecarregadas ou modelos de função (expressões CursorKind.OVERLOADED_DECL_REF)
- Suporte implementado para manipulação de tipos dependentes (expressões TypeKind.DEPENDENT)
- Implementado patch não intrusivo para clang.cindex, permitindo uma travessia AST mais flexível
- 28 de dezembro de 2016
- Implementado serviço de realce de sintaxe de código-fonte baseado em Clang (execute
cd /colors/yaflandia && git pull
para obter as alterações necessárias no esquema de cores)
- 1º de julho de 2016
- Implementada uma nova estrutura genérica cliente-servidor (assíncrona) que permite despachar qualquer tipo de operação para ser executada em processos separados e sem bloqueio em segundo plano (os chamados serviços) e após cuja conclusão os resultados podem ser reportados ao servidor ('Yavide').
- Implementou 4 novos serviços além da nova estrutura assíncrona:
- Serviço de realce de sintaxe de código-fonte em tempo real.
- Serviço de indexação de código-fonte em tempo real.
- Serviço de formatação automática de código-fonte baseado em Clang.
- Serviço de construtor de projetos.
Instalação
Consulte o guia de instalação.
Uso
Consulte Uso.
Capturas de tela
Veja alguns GIFs em ação.
Mais detalhes ...
Características
- Empacotado e ajustado para desenvolvimento C/C++
- Gerenciamento de projetos
- Crie novos projetos ou importe a base de código existente para o novo espaço de trabalho
- Explorador de projetos
- Explore o projeto usando um widget de visualização em árvore
- Construtor de projeto
- Acione suas compilações no ambiente para serem executadas de forma não intrusiva em segundo plano
- Navegador de classe
- Apresentando uma visão geral dos símbolos definidos na unidade atual (ou seja, macro, estrutura, classe, método, namespace, etc.)
- Preenchimento automático do código-fonte
- Apoiado pelo back-end do compilador C/C++ real para garantir total correção
- Navegação do código-fonte
- Apresentando um sistema de geração de tags totalmente automatizado que mantém o banco de dados de símbolos atualizado
- Destaque de sintaxe do código-fonte baseado em
libclang
- Fornecendo suporte de realce de sintaxe mais rico do que aquele fornecido originalmente pelo
Vim
- Formatação automática do código-fonte
- Análise estática do código-fonte
- Integração do cliente de gerenciamento de código-fonte
- Apresentando integração do cliente
Git
- Muitos outros recursos diversos, como:
- Preenchimento automático de parênteses
- Preenchimento automático de texto comum com reconhecimento de contexto
- Suporte para edição de seleção múltipla
- Trechos de código
- Suporte a esquemas de cores
Créditos
Esta é uma lista ordenada em ordem alfabética de plug-ins Vim de terceiros atualmente utilizados no sistema:
- A (https://github.com/vim-scripts/a.vim)
- Clang_complete (https://github.com/Rip-Rip/clang_complete)
- NERDCommenter (https://github.com/scrooloose/nerdcommenter)
- NERDTree (https://github.com/scrooloose/nerdtree)
- SuperTab (https://github.com/ervandew/supertab)
- Barra de tags (https://github.com/majutsushi/tagbar)
- UltiSnips (https://github.com/SirVer/ultisnips)
- vim-airline (https://github.com/bling/vim-airline)
- vim-autoclose (https://github.com/Townk/vim-autoclose)
- vim-fugitivo (https://github.com/tpope/vim-fugitive)
- vim-gitgutter (https://github.com/airblade/vim-gitgutter)
- vim-multiple-cursors (https://github.com/terryma/vim-multiple-cursors)
- vim-pathogen (https://github.com/tpope/vim-pathogen)
Perguntas frequentes
Por que o foco do desenvolvimento foi movido para cxxd e cxxd-vim?
DR Ter separado um grande repositório Yavide
monolítico em dois separados ( cxxd
& cxxd-vim
) nos trouxe um design mais modular, reutilizável, testável e flexível. Existem muitas outras vantagens nesta abordagem, todas elas a serem anotadas aqui brevemente, mas a parte importante agora é que a lógica do frontend (por exemplo, implementação da UI) agora está separada da implementação do backend (recursos do servidor de linguagem C/C++). Ambos os desenvolvimentos podem agora ser conduzidos separadamente e em paralelo. Além disso, cxxd-vim
se comporta como um plugin Vim real, então você não precisará mais usar scripts de instalação hacky, mas uma forma regular de instalação, como qualquer outro plugin Vim existente (por exemplo, Vundle). Para muitos outros detalhes, dê uma olhada nos respectivos repositórios.
Outras perguntas
Consulte Perguntas frequentes.