Skip to content

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

Notifications You must be signed in to change notification settings

Giga-Chad-LLC/Devscribe

Repository files navigation

Devscribe


Contributors:

  1. Vladislav Artiukhov
  2. Dmitrii Artiukhov

Description:

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.

Supported functionality:

  • 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.

Implementation details:

  • 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.

Available shortcuts:

  • 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.

Demos:

Theme switching:

Theme switching

Text resizing:

Text resizing

Manipulation of a huge file (performance demonstration):

The demonstrated file contains ~10K lines of code.

Manipulation of a huge file (performance demonstration)

Text writing:

Text writing

Selection & Deletion:

Selection & Deletion

Folder selection from file system:

Folder selection from file system

How to build and run the project:

Pretty straight-forward: clone the project repo and build the project via Intellij IDE.

About

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

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages