• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

docs/H21-Aug-2021-446325

lib/H03-May-2022-29,96218,528

share/H03-May-2022-2723

src/H03-May-2022-44,47340,410

tests/H03-May-2022-8,4377,794

.appveyor.ymlH A D21-Aug-2021672 1914

.clang-formatH A D21-Aug-2021222 109

.gitignoreH A D21-Aug-2021118 1612

.gitlab-ci.ymlH A D21-Aug-20212.3 KiB8474

.gitmodulesH A D21-Aug-2021222 76

.prettierrcH A D21-Aug-202172 65

LICENSEH A D21-Aug-20211.1 KiB2317

README.mdH A D21-Aug-20214.2 KiB10891

README.md

1<img alt="juCi++" src="share/juci.png" />
2
3## About
4
5In 2015, juCi++ was one of the first IDEs to utilize libclang for improved C/C++ tooling. The
6integrated C/C++ support has since then improved steadily, and support for other languages has been
7made possible through the language server protocol (see
8[setup of tested language servers](docs/language_servers.md)). The main goals of juCi++ is effective
9resource usage, stability, and ease of use. Instead of relying on 3rd party addons, features
10expected in an IDE is instead integrated directly into juCi++.
11
12For effective development, juCi++ is primarily written for Unix/Linux systems. However, Windows
13users can use juCi++ through POSIX compatibility layers such as MSYS2.
14
15## Installation
16
17See [installation guide](docs/install.md).
18
19## Features
20
21- Platform independent
22- Fast, responsive and stable (written extensively using C++11/14 features)
23- Syntax highlighting for more than 100 different file types
24- Warnings and errors on the fly
25- Fix-its, as well as C/C++ standard header include suggestions
26- Integrated Clang-Tidy checks can be enabled in preferences
27- Debug integration, both local and remote, through lldb
28- Supports the following C/C++ build systems directly (other build systems need manually generated
29  compilation databases):
30  - CMake
31  - Meson
32- Fast autocompletion
33- Tooltips showing type information and documentation
34- Rename refactoring across files
35- Highlighting of similar types
36- Automated documentation search for C/C++ identifiers
37- Go to declaration, implementation, methods and usages
38- OpenCL and CUDA files are supported and parsed as C++
39- Non-C/C++ files are supported through the Language Server Protocol, which is enabled if an
40  `[language identifier]-language-server` executable is found. This executable can be a symbolic
41  link to one of your installed language server binaries.
42  - For additional instructions, see [setup of tested language servers](docs/language_servers.md)
43- Non-C/C++ projects are also supported, such as JavaScript, Python, Rust, and Go projects
44- Git support through libgit2
45- Find symbol through Ctags ([Universal Ctags](https://github.com/universal-ctags/ctags) is
46  recommended)
47- Spell checking depending on file context
48- Run shell commands within juCi++
49- ANSI colors are supported. Enable for instance by setting the environment variables
50  `CLICOLOR=1 CLICOLOR_FORCE=1` before starting juCi++. Colored diagnostics from clang is enabled
51  through the flag `-fcolor-diagnostics`, and gcc uses the flag `-fdiagnostics-color`.
52- Regex search and replace
53- Smart paste, keys and indentation
54- Extend/shrink selection
55- Multiple cursors
56- Snippets can be added in ~/.juci/snippets.json using the
57  [TextMate snippet syntax](https://macromates.com/manual/en/snippets). The language ids used in the
58  regexes can be found here:
59  https://gitlab.gnome.org/GNOME/gtksourceview/tree/master/data/language-specs.
60- Auto-indentation through [clang-format](http://clang.llvm.org/docs/ClangFormat.html) or
61  [Prettier](https://github.com/prettier/prettier) if installed
62- Source minimap
63- Split view
64- Zen mode
65- Full UTF-8 support
66- Wayland supported with GTK+ 3.20 or newer
67
68See
69[enhancements](https://gitlab.com/cppit/jucipp/issues?scope=all&state=opened&label_name[]=enhancement)
70for planned features.
71
72## Screenshots
73
74<table border="0">
75<tr>
76<td><img src="docs/images/screenshot1c.png" width="380"/></td>
77<td><img src="docs/images/screenshot2c.png" width="380"/></td>
78</tr><tr>
79<td><img src="docs/images/screenshot3c.png" width="380"/></td>
80<td><img src="docs/images/screenshot4b.png" width="380"/></td>
81</tr>
82</table>
83
84## Custom styling
85
86See [custom styling](docs/custom_styling.md).
87
88## Dependencies
89
90- boost-filesystem
91- boost-serialization
92- gtkmm-3.0
93- gtksourceviewmm-3.0
94- aspell
95- libclang
96- lldb
97- libgit2
98- [libclangmm](http://gitlab.com/cppit/libclangmm/) (downloaded directly with git --recursive, no
99  need to install)
100- [tiny-process-library](http://gitlab.com/eidheim/tiny-process-library/) (downloaded directly with
101  git --recursive, no need to install)
102- [JSON for Modern C++](https://github.com/nlohmann/json) (included in repository, no need to
103  install)
104
105## Documentation
106
107See [how to build the API doc](docs/api.md).
108