- Vladislav Artiukhov
- Dmitrii Artiukhov
Full-fledged IDE developed in Kotlin with support of syntax highlighting, file renaming/creation/deletion, and search functionalities | Semester project, 3rd year at Constructor University, 2023.
- Caret movement via keyboard arrows and mouse clicks.
- Text typing and keyboard special characters support:
BACKSPACE
,DELETE
,CTRL+ARROW
. - Optimized render via drawing only the text visible in the viewport.
- Vertical and Horizontal canvas scrolling.
- Text searching inside opened file and navigation to prev/next search result entry.
- Ability to open multiple files using tabs.
- VFS integration: opening project directory from OS (use Ctrl + O), saving files on disk, file renaming, file deletion, file creation.
- Implementation of Lexer for a fictional programming language.
- Syntax highlighting.
- Navigation without mouse use (using tabs only).
- Selection via mouse drags and keyboard arrows movement.
- Copy/paste/cut functionality of selected text.
- Editor text resizing.
- Theme changing.
- Array of strings is used as text management data structure; interface allows seamless integration of other structures.
- Syntax highlighting is implemented via tokens generated by Lexer.
- Support for an arbitrary number of VFS commands via Command pattern and execution pipeline using queue of commands and additional worker thread.
CTRL + C
-- copy selected text.CTRL + V
-- insert text from clipboard.CTRL + X
-- copy and cut selected text.CTRL + O
-- open a folder from OS file system.CTRL + SHIFT + -
-- make editor text smaller.CTRL + SHIFT + +
-- make editor text bigger.CTRL + F
-- open serach bar.CTRL + SHIFT + T
-- change current editor theme.CTRL + S
-- save edited VFS file into actual file in OS file system.TAB / CTRL + TAB
-- focus on the next UI element.SHIFT + TAB / CTRL + SHIFT + TAB
-- focus on the previous UI element.
The demonstrated file contains ~10K lines of code.
Pretty straight-forward: clone the project repo and build the project via Intellij IDE.