Skip to content
This repository has been archived by the owner on Jan 28, 2022. It is now read-only.
/ gccIDE Public archive

A neovim based GCC/G++ IDE in the docker environment. Based on alpine.

License

Notifications You must be signed in to change notification settings

ericwq/gccIDE

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Deprecated

gccIDE is merged to nvide.

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
  • 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.

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.

About

A neovim based GCC/G++ IDE in the docker environment. Based on alpine.

Resources

License

Stars

Watchers

Forks

Packages

No packages published