gccIDE
is merged to nvide.
A neovim based GCC/G++ IDE, based on alpine linux, c/c++ language server enabled, syntax highlight IDE. Just pull docker image from hub.docker.com and run it.
For me golangIDE is a good development environment for go language. I still need a c/c++ language development environment.
Both GCC and CLANG is ready for use. The default compiler is GCC. Both clangd and ccls is ready. The default language server is ccls. If you prefers clangd, please refer to switch clangd.
- neovim - Vim-fork focused on extensibility and agility.
- g++ - GNU C++ standard library and compiler.
- gcc - The GNU Compiler Collection.
- clang - A C language family front-end for LLVM.
- make - GNU make utility to maintain groups of programs
- cmake - Cross-platform, open-source make system.
- bear - Bear is a tool that generates a compilation database for clang tooling.
- bash - The GNU Bourne Again shell.
- git - Distributed version control system
- htop - Interactive process viewer.
- ccls - C/C++/ObjC language server supporting cross references, hierarchies, completion and semantic highlighting.
- clangd - clangd is a language server, and provides C++ IDE features to editors.
- cpplint - Static code checker for C++.
- coc.nvim - Nodejs extension host for vim & neovim, load extensions like VSCode and host language servers.
- coc-json - Json language extension for coc.nvim.
- coc-snippets - Snippets solution for coc.nvim.
- coc-pairs - Basic auto pairs extension of coc.nvim.
- coc-markdownlint - markdownlint extension for coc.nvim.
- protoc - protocol buffer compiler
- fzf - A command-line fuzzy finder.
- ripgrep - ripgrep recursively searches directories for a regex pattern while respecting your gitignore.
- crusoexia/vim-monokai - Refined Monokai color scheme for vim, inspired by Sublime Text.
- ekalinin/Dockerfile.vim - Vim syntax file & snippets for Docker's Dockerfile.
- itchyny/lightline.vim - A light and configurable statusline/tabline plugin for Vim.
- preservim/nerdtree- A tree explorer plugin for vim.
- preservim/tagbar - Vim plugin that displays tags in a window, ordered by scope.
- junegunn/fzf - 🌸 A command-line fuzzy finder.
- junegunn/fzf.vim - fzf ❤️ vim.
- jackguo380/vim-lsp-cxx-highlight - Vim plugin for C/C++/ObjC semantic highlighting using cquery, ccls, or clangd.
Please suggest any software which deserved to be integrated into this IDE.
% docker pull ericwq057/gccide:latest
% docker run -it -d -h gccide --env TZ=Asia/Shanghai --name gcc \
--mount source=proj-vol,target=/home/ide/proj \
--mount type=bind,source=YOUR-SHARED-DIRECTORY,target=/home/ide/develop \
gccide:latest
$ docker exec -u ide -it gcc bash
YOUR-SHARED-DIRECTORY
is you local source code directory shared with native OS. E.g. "/Users/qiwang/dev".- You may need to create a docker volume
proj-vol
first:
% docker volume create proj-vol
proj-vol
is also your source code directory, which you don't need to access from native OS. It's faster comparing with shared one.- Check
% ls /usr/share/zoneinfo
to get the TZ value for your location.
- Modern C++ development in (Neo)vim
- Configure coc.nvim for C/C++ Development
- Set up for C++/C Development in Neovim
If you want to use docker to develop kernel module or device driver. Don't do that. Use virtualbox or vmware instead.
- Is it possible to use a kernel module built from within Docker?
- docker linux container doesn't support driver development?
- Containers are not VMs
- Working on detail guide.
- The gccIDE is verified by ccls - A C++ project, by both ccls and clangd. See ccls project for detail.
- The gccIDE is verified by ldd3 - A C project, See ldd3 project for detail.