gccIDE
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.
Feature
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.
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.
Quick guide
% 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
Copy
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
Copy
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.
Reference
Notes
If you want to use docker to develop kernel module or device driver. Don't do that. Use virtualbox or vmware instead.
Status
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.