Skip to content

StefanChristians/emacside

Repository files navigation

Emacs IDE for C++

A ready-to-use Emacs IDE for C++ that provides:

  • Project scaffolding and boilerplate code generation
  • Code navigation, completion, and syntax highlighting
  • Integrated CMake support and build system
  • Unit test integration
  • Version control and Git support
  • Debugging

screenshots/treemacs.png[Screenshot of project tree]

Quick Start

  1. Backup your current Emacs config:
    mv ~/.emacs.d ~/.emacs.d.bak
        
  2. Clone this repository:
    git clone https://github.com/StefanChristians/emacsedi.git ~/.emacs.d
        
  3. Start Emacs. Required packages will be automatically installed.
  4. Create a new C++ project:
    • Right-click in the Treemacs frame → ProjectsCreate New C++ Project
    • Choose project type: Simple, Standard, Library, or Large

screenshots/project_types.png[Sample project types]

Project Types

  • Simple: All source files in a single directory for quick proof-of-concept projects
  • Standard: Separate `app` and `core`, includes documentation and localization
  • Library: Stand-alone, shareable libraries with headers in `include`
  • Large: Multiple independent modules, each with their own sources, headers, and tests

Features

Some highlighted user-facing functionality:

  • Code navigation & completion: LSP support with lsp-ui and company-mode
  • Syntax highlighting: Modern C++ highlighting (modern-cpp-font-lock)
  • Project management: Tree view of files, quick open, workspace handling (treemacs)
  • Version control: Git integration (magit), view changes inline (diff-hl)
  • Convenience: Auto-insert boilerplate code, snippet templates (yasnippet), cursor beacon, code folding, code completion
  • Debugging: Debugging with GDB or LLDB

screenshots/debug.png[Debugging]

Configuration (Advanced)

  • Packages are loaded and configured via use-package in init.el
  • C++ project defaults are defined in ide-cpp.el and can be overridden in the (use-package ide-cpp.el) call at the end of init.el
  • Auto-text blocks are defined as `yasnippet` templates in the snippets/ directory

About

Emacs C++ IDE Configuration

Resources

License

Stars

Watchers

Forks

Packages

No packages published