/jaledit

just a little editor

Primary LanguageC++GNU Affero General Public License v3.0AGPL-3.0

CS163 Project: jaledit - just a little editor

jaledit screenshot

Author: 22125113 - Nguyen Quang Truong

This is a source code text editor that focuses on performance. With the help of different data structures and algorithms, this editor offers superior performance over popular existing editors (Vim, Nano, Visual Studio Code, Sublime Text...), as it enables efficient editing operations and manages huge files (that would otherwise crash or stall other editors).

It is written in C++. There is also an incomplete port (95%) to C (branch c-rereimpl).

Features

It currently supports the following features:

  • Fast editing operations (insertion and deletion, copy and paste, find and replace…);
  • Autocompletion;
  • Extensible syntax highlight;
  • Vim-like navigation;
  • Buffer management.

Demonstration

Repository

Here is the repository of the project on GitHub.

License

This project (the source code, the logo, and the released binary) is licensed under the GNU Affero General Public License v3.0.

Releases

Please check out the Release section of the repository.

Since the editor invokes system calls from the Linux kernel, this editor can only be run on Linux-based OS. However, ports for other kernels are coming very soon!

Dependencies

Building

  • Install the correct dependencies
  • Clone this repository
  • git submodule update --init --recursive
  • cmake -S. -Bbuild
  • make -Cbuild [-j <number of threads>]
  • The executable jaledit in the directory build/ will appear.

Usage

jaledit is greatly inspired by Vim, one of my favorite text editors. Most features in jaledit are copied from Vim, including the keybindings and the functionalities, but with my own twists.

Please refer to the instruction here for usage.

Internal Implementation

Please refer to the project report for more details.