Skip to content

Latest commit

 

History

History
248 lines (206 loc) · 11.9 KB

README.md

File metadata and controls

248 lines (206 loc) · 11.9 KB

Lite XL IDE Setup

Warning

This repository is out-dated. The information stored here will eventually be moved to the new website

Introduction

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.

Table of Contents

  1. Installation
  2. Features
  3. Development Boards
  4. Language Support Status
  5. LSP Bundle Support Status
  6. Credits

Installation

Install colors and languages

lpm install meta_colors meta_languages

Install my custom devicons plugin

lpm add https://github.com/PerilousBooklet/lite-xl-devicons.git
lpm install devicons

Install the basic IDE plugins

lpm install ide

or a language-specific ide metapackage: e.g. lpm install ide_c for C/C++ development.

Install some more plugins

lpm install "exec" markers extend_selection_line sort titleize

Install an LSP server

Installation Guide

The LSP servers names can be found in here.

Some other IDE setup steps

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

Features

  • 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

WIP

  • 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

TODO

  • 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

Development Boards

Language support status

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

LSP bundle support status

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

Credits