Watch
1
0
Fork
You've already forked jucipp
0
mirror of https://gitlab.com/cppit/jucipp.git synced 2026-11-10 14:33:14 +01:00
No description
  • C++ 99.4%
  • CMake 0.5%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-09-04 10:38:08 +02:00
docs Updated cmake and docs since homebrew now has separate lldb package 2026-09-04 10:38:08 +02:00
lib Update libclangmm module 2026-09-01 14:49:53 +02:00
share Fixed setting icon on MacOS 2022-09-14 11:08:18 +02:00
src Language client: added support for textDocument/diagnostic 2026-08-17 10:08:59 +02:00
tests Fixed tooltip indentation after list items 2026-03-25 20:35:05 +01:00
.appveyor.yml Temporary fix for appveyor 2020-08-03 10:14:45 +02:00
.clang-format Formatted code with custom clang-format 2018-07-08 21:24:27 +02:00
.gitignore Fixes #251: Go to Usage and Rename now includes unopened files. Also includes various other cleanups related to this work. 2017-08-19 08:38:35 +02:00
.gitlab-ci.yml Temporarily disable warnings as errors due to GCC bug: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105329 2022-05-31 15:23:20 +02:00
.gitmodules Use full submodule urls to make sure potential mirrors/forks outside of gitlab work as expected 2018-06-15 11:42:45 +00:00
.prettierrc Added .prettierrc and applied style format on markdown files 2021-03-31 15:27:32 +02:00
CMakeLists.txt Updated cmake and docs since homebrew now has separate lldb package 2026-09-04 10:38:08 +02:00
jucipp.yaml Flatpak, use host system headers and run external programs outside of sandbox 2022-09-12 17:14:17 +02:00
LICENSE Updated LICENSE 2024-03-18 11:58:03 +01:00
README.md Added additional link to docs/language_servers.md in README 2021-08-02 12:08:14 +02:00

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.