모든 개발 활동은 cxxd 및 cxxd-vim 저장소로 이동되었습니다. 최신 개발 내용을 따라가려면 cxxd-vim 플러그인을 사용하는 것이 좋습니다. 자세한 내용은 FAQ의 첫 번째 섹션을 참조하세요.
내용물
- 변경 사항
- 설치
- 용법
- 스크린샷
- 특징
- 크레딧
- FAQ
변경 사항
- 2018년 7월 13일
- 핵심 기능은 별도의 저장소로 추출되었습니다.
- cxxd, C/C++ 언어 서버 구현
- cxxd-vim,
cxxd
용으로 개발된 Vim 프런트엔드
-
Yavide
이를 종속성으로 포함하고 정상적으로 계속 작동하지만 이제 모든 개발 활동과 초점이 해당 프로젝트로 이동하므로 더 많은 기능과 안정성을 얻으려면 일반 Vim 구성에서 직접 사용을 시작하십시오.
- 2017년 12월 2일
- Clang 기반 인덱서 구현
- Clang 기반 모든 참조 찾기 구현
- Clang 기반 이동 정의 구현
- Clang 기반 go-to-include 구현
- clang-tidy 지원 구현
- JSON 컴파일 데이터베이스에 대한 지원 구현
- 번역 단위 캐싱 메커니즘 구현
- 다양한 버그 수정 및 기타 작은 개선 사항
- 2017년 2월 12일
- 유형추출 서비스를 시행하였습니다.
- 소스 코드 위에 마우스 커서를 올리면 기본 구조(예: 데이터 유형, 함수 서명 등)에 대한 세부 정보가 제공됩니다.
- 2017년 2월 10일
- Clang 기반 수정 및 진단 서비스를 구현했습니다.
- 여러 서비스 내에서 동일한 AST를 공유할 수 있는 메커니즘을 구현했습니다.
- 예를 들어 AST가 구축되면 의미론적 구문 강조 및 Clang 수정 서비스가 동일한 AST를 공유할 수 있습니다.
- 이는 인덱서 및 자동 완성 엔진과 같이 더 무거운 Clang 기반 서비스가 작동하게 될 때 특히 중요합니다.
- 서비스의 핵심 구현에서 편집기별 통합을 분리하기 위해 서버 측 코드를 리팩터링했습니다.
- 2017년 1월 19일
- 구문 강조와 관련된 대략적인 부분을 다듬었습니다.
- 오버로드된 함수 또는 함수 템플릿 집합(CursorKind.OVERLOADED_DECL_REF 표현식) 처리를 위한 지원이 구현되었습니다.
- 종속 유형 처리에 대한 지원 구현(TypeKind.DEPENDENT 표현식)
- 보다 유연한 AST 탐색을 가능하게 하는 clang.cindex에 대한 비침해적 패치를 구현했습니다.
- 2016년 12월 28일
- Clang 기반 소스 코드 구문 강조 서비스 구현(
cd /colors/yaflandia && git pull
실행하여 필요한 색상 구성표 변경 사항 가져오기)
- 2016년 7월 1일
- 모든 종류의 작업을 별도의 비차단 백그라운드 프로세스(소위 서비스)에서 실행하고 완료 결과를 서버('Yavide')에 다시 보고할 수 있는 새로운 일반 클라이언트-서버(비동기) 프레임워크를 구현했습니다.
- 새로운 비동기 프레임워크 위에 4가지 새로운 서비스를 구현했습니다.
- 즉각적인 소스 코드 구문 강조 서비스.
- 즉각적인 소스 코드 인덱싱 서비스.
- Clang 기반의 소스코드 자동 서식 지정 서비스입니다.
- 프로젝트 빌더 서비스.
설치
설치 안내서를 참조하십시오.
용법
사용법을 참조하세요.
스크린샷
실제로 작동하는 GIF를 확인하세요.
자세한 내용은 ...
특징
- C/C++ 개발을 위해 번들로 제공되고 조정됨
- 프로젝트 관리
- 새 프로젝트를 만들거나 기존 코드 베이스를 새 작업 공간으로 가져옵니다.
- 프로젝트 탐색기
- 프로젝트 빌더
- 백그라운드에서 방해 없이 실행되도록 환경 내에서 빌드를 트리거합니다.
- 수업 브라우저
- 현재 유닛(예: 매크로, 구조체, 클래스, 메서드, 네임스페이스 등)에 정의된 기호에 대한 개요를 제공합니다.
- 소스코드 자동완성
- 완전한 정확성을 보장하기 위해 실제 C/C++ 컴파일러 백엔드가 지원됩니다.
- 소스 코드 탐색
- 기호 데이터베이스를 최신 상태로 유지하는 완전 자동화된 태그 생성 시스템을 갖추고 있습니다.
-
libclang
기반으로 소스 코드 구문 강조 표시- 원래
Vim
에서 제공한 것보다 더 풍부한 구문 강조 지원 제공
- 소스 코드 자동 서식 지정
- 소스 코드 정적 분석
- 소스 코드 관리 클라이언트 통합
- 다음과 같은 더 많은 기타 기능:
- 괄호 자동완성
- 상황 인식 일반 텍스트 자동 완성
- 다중 선택 편집 지원
- 코드 조각
- 색 구성표 지원
크레딧
다음은 현재 시스템에서 사용되는 타사 Vim 플러그인의 알파벳순 목록입니다.
- 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)
- 슈퍼탭(https://github.com/ervandew/supertab)
- 태그바(https://github.com/majutsushi/tagbar)
- 울티스닙스(https://github.com/SirVer/ultisnips)
- vim-airline(https://github.com/bling/vim-airline)
- vim-autoclose (https://github.com/Townk/vim-autoclose)
- vim-fugitive (https://github.com/tpope/vim-fugitive)
- vim-gitgutter (https://github.com/airblade/vim-gitgutter)
- vim-다중 커서(https://github.com/terryma/vim-multiple-cursors)
- vim-병원체(https://github.com/tpope/vim-pathogen)
FAQ
개발 초점이 cxxd 및 cxxd-vim으로 옮겨진 이유는 무엇입니까?
TL;DR 하나의 큰 모놀리식 Yavide
저장소를 두 개의 별도 저장소( cxxd
및 cxxd-vim
)로 분리함으로써 우리는 더욱 모듈화되고 재사용 가능하며 테스트 가능하고 유연한 디자인을 얻을 수 있었습니다. 이 접근 방식에는 다른 많은 장점이 있으며 여기에서 간단히 언급하겠지만 중요한 부분은 이제 프런트엔드 로직(예: UI 구현)이 백엔드 구현(C/C++ 언어 서버 기능)과 분리되어 있다는 것입니다. 이제 이 두 가지 개발을 개별적으로 동시에 진행할 수 있습니다. 또한 cxxd-vim
실제 Vim 플러그인처럼 작동하므로 더 이상 해킹된 설치 스크립트를 사용할 필요가 없으며 다른 Vim 플러그인(예: Vundle)과 마찬가지로 일반적인 설치 방법을 사용할 수 있습니다. 기타 자세한 내용은 각 저장소를 참조하세요.
기타 질문
FAQ를 참조하세요.