You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
eidheim 3be4752a64 Fixed space drawing 1 year ago
docs Cleanup of clang language server commits 1 year ago
lib Updated libclangmm 1 year ago
share Fixed setting icon on MacOS 3 years ago
src Fixed space drawing 1 year ago
tests Can now use control/command click to run source files directly from the directory view 1 year ago
.appveyor.yml Temporary fix for appveyor 5 years ago
.clang-format Formatted code with custom clang-format 8 years ago
.gitignore Fixes #251: Go to Usage and Rename now includes unopened files. Also includes various other cleanups related to this work. 8 years ago
.gitlab-ci.yml Temporarily disable warnings as errors due to GCC bug: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105329 4 years ago
.gitmodules Use full submodule urls to make sure potential mirrors/forks outside of gitlab work as expected 8 years ago
.prettierrc Added .prettierrc and applied style format on markdown files 5 years ago
CMakeLists.txt Added cmake check for gtksourceviewmm-4 1 year ago
LICENSE Updated LICENSE 2 years ago
README.md Added additional link to docs/language_servers.md in README 4 years ago
jucipp.yaml Flatpak, use host system headers and run external programs outside of sandbox 3 years ago

README.md

juCi++

About

In 2015, juCi++ was one of the first IDEs to utilize libclang for improved C/C++ tooling. The integrated C/C++ support has since then improved steadily, and support for other languages has been made possible through the language server protocol (see setup of tested language servers). The main goals of juCi++ is effective resource usage, stability, and ease of use. Instead of relying on 3rd party addons, features expected in an IDE is instead integrated directly into juCi++.

For effective development, juCi++ is primarily written for Unix/Linux systems. However, Windows users can use juCi++ through POSIX compatibility layers such as MSYS2.

Installation

See installation guide.

Features

  • Platform independent
  • Fast, responsive and stable (written extensively using C++11/14 features)
  • Syntax highlighting for more than 100 different file types
  • Warnings and errors on the fly
  • Fix-its, as well as C/C++ standard header include suggestions
  • Integrated Clang-Tidy checks can be enabled in preferences
  • Debug integration, both local and remote, through lldb
  • Supports the following C/C++ build systems directly (other build systems need manually generated compilation databases):
    • CMake
    • Meson
  • Fast autocompletion
  • Tooltips showing type information and documentation
  • Rename refactoring across files
  • Highlighting of similar types
  • Automated documentation search for C/C++ identifiers
  • Go to declaration, implementation, methods and usages
  • OpenCL and CUDA files are supported and parsed as C++
  • Non-C/C++ files are supported through the Language Server Protocol, which is enabled if an [language identifier]-language-server executable is found. This executable can be a symbolic link to one of your installed language server binaries.
  • Non-C/C++ projects are also supported, such as JavaScript, Python, Rust, and Go projects
  • Git support through libgit2
  • Find symbol through Ctags (Universal Ctags is recommended)
  • Spell checking depending on file context
  • Run shell commands within juCi++
  • ANSI colors are supported. Enable for instance by setting the environment variables CLICOLOR=1 CLICOLOR_FORCE=1 before starting juCi++. Colored diagnostics from clang is enabled through the flag -fcolor-diagnostics, and gcc uses the flag -fdiagnostics-color.
  • Regex search and replace
  • Smart paste, keys and indentation
  • Extend/shrink selection
  • Multiple cursors
  • Snippets can be added in ~/.juci/snippets.json using the TextMate snippet syntax. The language ids used in the regexes can be found here: https://gitlab.gnome.org/GNOME/gtksourceview/tree/master/data/language-specs.
  • Auto-indentation through clang-format or Prettier if installed
  • Source minimap
  • Split view
  • Zen mode
  • Full UTF-8 support
  • Wayland supported with GTK+ 3.20 or newer

See enhancements for planned features.

Screenshots

Custom styling

See custom styling.

Dependencies

  • boost-filesystem
  • boost-serialization
  • gtkmm-3.0
  • gtksourceviewmm-3.0
  • aspell
  • libclang
  • lldb
  • libgit2
  • libclangmm (downloaded directly with git --recursive, no need to install)
  • tiny-process-library (downloaded directly with git --recursive, no need to install)
  • JSON for Modern C++ (included in repository, no need to install)

Documentation

See how to build the API doc.