aristed is a project born out of my frustration with C++ IDEs.
my ideal C++ editor
- has a high degree of semanticity (highlighting, completion and diagnostics)
- is completely keyboard navigable
- is fast and lightweight
- allows writing code immediately on launching, without setting up a project
- has git integration
although this project is much more modest than the following, I am inspired by certain features of Eclipse CDT, XCode, vim, Notepad++, TextWrangler and aoeui
this project aims to stay small, adding functionality in a modular manner through the extensive use of external libraries. it should be easily hackable/extensible, features can be added as they are needed. run-time configurability is a low priority but code should be structured in a way to make this simple
planned development angles:
- extend semanticity. Clang is already used but there is much more to be gained
- navigation keybindings, aoeui style modification bindings
- git integration via libgit2
screenshot:
- Qt >= 5
- Arch Linux (qt5-base)
- search packages.ubuntu.com
- clang >= 3.1
- Arch Linux (clang)
- search packages.ubuntu.com
git clone https://github.com/ohwgiles/aristed.git aristed
mkdir aristed/build
cd aristed/build
cmake ../
make
these are ideas, some have been implemented, the rest are todos
all navigation bindings can also use shift, to extend the current selection
- alt-jkhl for movement ✔
- alt-b back a word ✔
- alt-w forward a word ✔
- ctl-a start of line ✔
- ctl-e end of line ✔
- ctl-t <char> will advance until <char> if it appears in that line ✔
- ctrl-r will invoke Eclipse-style reverse-incremental filename search dialog
- f9 will show/hide file system browser ✔
- ctrl-d deletes selection
- ctrl-w deletes last word
- ctrl-u delete until start of line
- ctrl-k delete until end of line
- ctrl-/ shows and focuses search panel ✔
- all matches are highlighted as you type ✔
- highlights will only be visible while panel is visible ✔
- enter will move the cursor to the first match after the cursor and focus the editor ✔
- esc will close the panel without moving the cursor (and disable the highlights) ✔
- alt-n will move to next result ✔
- alt-p will move to previous result ✔
- as with the navigation bindings, adding shift will select from cursor position until next match ✔
- searches are single-line regex, case insensitive by default ✔
- alt-i will toggle case sensitivity
alt-r will toggle regex search
the same as search panel, with the following changes
- ctrl-shift-/ shows and focuses panel
- enter will perform the replacement and move to the next match
- ctrl-enter will replace all in document
- line indicator is red when modified + unsaved
- line indicator is yellow when saved but unstaged
- line indicator is blue when staged but uncommitted
- ctrl-g will stage selected (or current) lines
- ctrl-shift-g will unstage selected (or current) lines
- f2 will show git status and allow committing