Warning
This repository may be outdated. The information stored here will eventually be moved to the new website
Documentation for a set of plugins and configuration files that aims to turn Lite XL into a proper IDE.
(This project is still WIP.)
This repository no longer contains an install script to setup Lite XL IDE.
Instead, I am working on adding IDE bundle metapackages to Adam's repo.
This way, if I wanted to install an IDE setup for Java or Python, I could just run one simple command in the terminal, like lpm install ide_java
or lpm install ide_python
.
With such a command, lpm
(Lite XL's own package manager') would take care of installing executable files for LSP servers, linters, formatters and IDE-related plugins.
One thing to keep in mind though, is that at the moment the ideal distribution to use a Lite XL IDE manual setup on is Arch Linux (or a derivative), because all the lsp servers, linters and formatters have a correspondent arch package, either in the official repo or in the AUR.
lpm install meta_colors meta_languages
lpm add https://github.com/PerilousBooklet/lite-xl-devicons.git
lpm install devicons
lpm install ide
or a language-specific ide metapackage: e.g. lpm install ide_c
for C/C++ development.
lpm install "exec" markers extend_selection_line sort titleize
The LSP servers names can be found in here.
Enable automatic linting upon opening and saving a file by adding the following code inside of USERDIR/init.lua
:
local lintplus = require "plugins.lintplus"
lintplus.setup.lint_on_doc_load() -- enable automatic linting upon opening a file
lintplus.setup.lint_on_doc_save() -- enable automatic linting upon saving a file
Add code snippets by downloading the JSON files from this repo's snippets
folder into a USERDIR/plugins/snippets/json
folder and then writing the following code inside of USERDIR/init.lua
:
local lsp_snippets = require "plugins.lsp_snippets"
lsp_snippets.add_paths {'plugins/snippets/json'}
Allow format-on-save
by adding the following code to the init.lua
:
config.format_on_save = true
- Syntax highlighting for 100+ languages
- Intellisense support for 50+ languages (WIP)
- Custom project treeview devicons
- VSCode-like minimap
- Project-wide text string search
- Project-wide filename search
- Multi-cursor editing
- Single/multi-line commenting with shortcuts
- Go to line n command
- Todo treeview
- Code block definition preview on hover (like for TailwindCSS in VSCode)
- Integrated terminal
- Git integration (WIP)
- Builder integration (WIP)
- Debugger integration (WIP)
- Markdown support via ghmarkdown or mdpreview
- Foldable code blocks
- Horizontal scrolling for project treeview
- Ligatures support
- Github Copilot integration
- Custom Canvas API to allow an external renderer to draw on a surface that Lite XL will render on screen
- Document symbols treeview
- Support goto-definition/implementation for external libraries (es. java, minecraft mods)
- External libraries item in project treeview
- Simultaneous tag rename
- Project-wide refactoring
- Project template manager
Language | Syntax High. | LSP support | Linting | Snippets | Formatter | Builder | Debugger |
---|---|---|---|---|---|---|---|
Arduino | ✅ | ||||||
Bash | ✅ | ✅ | ✅ ex | ✅ | ✅ | ||
C# | ✅ | ✅ | ✅ | ✅ | |||
C/C++ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Clojure | ✅ | ✅ | ✅ | ✅ | |||
Cobol | |||||||
Crystal | ✅ | ✅ * | ✅ | ||||
CSS | ✅ | ✅ | ✅ | ✅ | |||
D | ✅ | ✅ | ✅ | ✅ | |||
Dart | ✅ | ✅ | ✅ | ✅ | |||
Elixir | ✅ | ✅ | ✅ | ✅ | |||
Elm | ✅ | ✅ | ✅ | ✅ | |||
Erlang | WIP | ✅ | ✅ * | ✅ | |||
F# | WIP | ||||||
Fortran | ✅ | ✅ | |||||
GDScript | ✅ | ✅ | |||||
Go | ✅ | ✅ | ✅ | ✅ | |||
Groovy | ✅ | ✅ * | ✅ | ||||
Haskell | ✅ | ✅ | ✅ | ✅ | |||
HTML | ✅ | ✅ | ✅ | ✅ | |||
Java | ✅ | ✅ | ✅ | ✅ | ✅ | ||
Javascript | ✅ | ✅ | ✅ | ✅ | ✅ | ||
JSON | ✅ | ✅ | ✅ | ❌ | |||
Julia | ✅ | ✅ * | ✅ | ✅ | |||
Kotlin | ✅ | ✅ | ✅ | ✅ | |||
Lisp | |||||||
Lua | ✅ | ✅ | ✅ ex | ✅ | ✅ | ||
Nim | ✅ | ✅ * | ✅ * | ||||
Nix | ✅ | ✅ | |||||
Ocaml | WIP | ✅ | ✅ | ||||
Odin | ✅ | ✅ | ✅ | ||||
OpenSCAD | ✅ | ||||||
Perl | ✅ | ✅ | ✅ | ||||
PHP | ✅ | ✅ | ✅ ex | ✅ | |||
Python | ✅ | ✅ | ✅ | ✅ | ✅ | ||
R | ✅ | ✅ | ✅ | ✅ | |||
Ruby | ✅ | ✅ | ✅ | ✅ | |||
Rust | ✅ | ✅ | ✅ | ✅ | ✅ | ||
Scala | ✅ | ✅ | ✅ | ✅ | |||
SQL | ✅ | ✅ | ✅ | ✅ | ✅ | ||
System Verilog | |||||||
TeX | ✅ | ✅ | ✅ | ✅ | |||
TOML | ✅ | ✅ | ✅ | ❌ | ✅ | ||
Typescript | ✅ | ✅ | |||||
Typst | ✅ | ✅ * | ✅ | ||||
V | ✅ | ✅ | ✅ | ||||
Vala | WIP | ✅ * | ✅ | ||||
Zig | ✅ | ✅ | ✅ ex | ✅ | |||
XML | ✅ | ✅ | ✅ | ❌ | |||
YAML | ✅ | ✅ | ✅ | ❌ | ✅ |
*
: there are still some problems to solve
ex
: external linter
Language | LSP Bundle | LSP Bundle Package | IDE Package |
---|---|---|---|
Arduino | |||
Bash | |||
C# | |||
C/C++ | ✅ | lsp_c |
ide_c |
Clojure | |||
Crystal | |||
CSS | |||
Dart | |||
Elixir | |||
ELM | |||
Erlang | |||
Go | |||
Groovy | |||
Haskell | |||
HTML | |||
Java | ✅ | lsp_java |
ide_java |
Javascript | ✅ | lsp_typescript |
ide_javascript |
JSON | ✅ | lsp_json |
|
Julia | |||
Kotlin | |||
Lisp | |||
Lua | ✅ | lsp_lua |
ide_lua |
Nim | |||
Nix | |||
Ocaml | |||
Odin | |||
OpenSCAD | |||
Perl | |||
PHP | |||
Python | ✅ | lsp_python |
ide_python |
R | |||
Ruby | |||
Rust | ✅ | lsp_rust |
ide_rust |
Scala | |||
SQL | |||
TeX | ✅ | lsp_tex |
ide_tex |
Typescript | ✅ | lsp_typescript |
|
Typst | |||
XML | |||
YAML | ✅ | lsp_yaml |
|
Zig | ✅ | lsp_zig |
ide_zig |
- https://github.com/lite-xl/lite-xl-colors
- https://github.com/lite-xl/lite-xl-plugins
- https://github.com/lite-xl/lite-xl-lsp
- https://github.com/vincens2005/lite-formatters
- https://github.com/liquidev/lintplus
- https://github.com/vqns/lite-xl-snippets
- https://github.com/lite-xl/lite-xl-scm
- https://github.com/adamharrison/lite-xl-ide
- https://github.com/adamharrison/lite-xl-terminal
- https://github.com/drmargarido/TodoTreeView
- https://github.com/jgmdev/lite-xl-threads
- And many more...