Lite XL

EN

English Deutsch

About

FAQ Features Screenshots Contributors

Documentation

Usage Build Default Keymap MacOS Keymap

Tutorials

Simple Plugin Syntax Highlighting API Overview System Fonts

Plugins

Downloads

Search

Features

Currently, Lite XL offers a lot of features out of the box.

Cross-Platform

We currently support Windows, Linux and MacOS (with Retina display support).

Lightweight

We are currently around 3MB in size and takes about 10MB in RAM (can be lower). No Electron / WebView involved. The whole thing is just Lua running on a rendering engine.

Extensible

While the editor is minimal by default, it is very extensible using Lua. In fact, a lot of features are provided by plugins. For example, VSC-like intellisense

Better font rendering

The editor looks good in screen of any sizes. Some other options are also configurable, such as hinting and antialiasing.

Multi-cursor editing

You can now place multiple cursors by ctrl + lclick on lines or ctrl + shift + up or ctrl + shift + down.


Here are some features that aren't implemented with the rationales behind it. Some of these may be implemented via plugins. We encourage you to give it a shot.

Hardware accelerated rendering

tl;dr - franko stated that he isn't considering using OpenGL due to the skills and work involved.

Hardware acceleration was brought up in this discussion. Takase had made 2 attempts at this - at first using NanoVG and then forcing SDL to use GPU rendering. In both attempts, the performance gains at best is negligible, while at worst its completely unusable. Right now, we decided to focus on optimizing the software renderer and various part of Lua code.

System fonts

This is painful because various systems has their own mechanism of managing fonts. For now, users can use the fontconfig plugin. Fontconfig is widely available on Linux and installable on MacOS, while Windows builds are available. In the future, we might consider adding API to read font metadata, allowing us to write a fontconfig alternative in Lua. (no promises here)

Opening UNC paths on Windows (network drives, accessing WSL2 files from Windows)

Our path handling code can only handle POSIX and Windows paths. We also aren't sure how Lite XL will behave in these scenarios.

Inter-window communication (dragging tabs between windows and other magic)

This is by far the hardest to achieve. Lite XL has no intention to link to any widget toolkits (Qt and GTK) which are required for these features. An alternative approach is to create our own IPC mechanism, but that's reinventing the wheel.

Integrated terminal

A terminal is complex to implement. There are projects that can be ported to Lua, such as xterm.js. If someone is interested, they can do so.

Get Involved

Github Discord Matrix

Status