Moved documentation to the website repository, updated README (#247)
This commit is contained in:
parent
248d70a8ca
commit
8c1a25100c
156
README.md
156
README.md
|
@ -1,126 +1,76 @@
|
||||||
# Lite XL
|
# Lite XL
|
||||||
|
|
||||||
![screenshot-dark](https://user-images.githubusercontent.com/433545/111063905-66943980-84b1-11eb-9040-3876f1133b20.png)
|
[![Discord Badge Image]](https://discord.gg/SR4ArdYr)
|
||||||
|
|
||||||
A lightweight text editor written in Lua, adapted from [lite](https://github.com/rxi/lite)
|
![screenshot-dark]
|
||||||
|
|
||||||
* **[Get Lite XL](https://github.com/franko/lite-xl/releases/latest)** — Download
|
A lightweight text editor written in Lua, adapted from [lite].
|
||||||
for Windows, Linux and Mac OS (notarized app).
|
|
||||||
* **[Get started](doc/usage.md)** — A quick overview on how to get started
|
|
||||||
* **[Get plugins](https://github.com/franko/lite-plugins)** — Add additional
|
|
||||||
functionality, adapted for Lite XL
|
|
||||||
* **[Get color themes](https://github.com/rxi/lite-colors)** — Add additional colors
|
|
||||||
themes
|
|
||||||
|
|
||||||
Lite XL has support for high DPI display on Windows and Linux and, since 1.16.7 release, it supports **retina displays** on Mac OS.
|
* **[Get Lite XL]** — Download for Windows, Linux and Mac OS (notarized app).
|
||||||
|
* **[Get plugins]** — Add additional functionality, adapted for Lite XL.
|
||||||
|
* **[Get color themes]** — Add additional colors themes.
|
||||||
|
|
||||||
|
Please refer to our [website] for the user and developer documentation,
|
||||||
|
including [build] instructions.
|
||||||
|
|
||||||
|
Lite XL has support for high DPI display on Windows and Linux and,
|
||||||
|
since 1.16.7 release, it supports **retina displays** on macOS.
|
||||||
|
|
||||||
Please note that Lite XL is compatible with lite for most plugins and all color themes.
|
Please note that Lite XL is compatible with lite for most plugins and all color themes.
|
||||||
We provide a separate lite-plugins repository for Lite XL, because in some cases some adaptations may be needed to make them work better with Lite XL.
|
We provide a separate lite-plugins repository for Lite XL, because in some cases
|
||||||
The repository with modified plugins is http://github.com/franko/lite-plugins.
|
some adaptations may be needed to make them work better with Lite XL.
|
||||||
|
The repository with modified plugins is https://github.com/franko/lite-plugins.
|
||||||
|
|
||||||
The changes and differences between Lite XL and rxi/lite are listed in the [changelog](https://github.com/franko/lite-xl/blob/master/changelog.md).
|
The changes and differences between Lite XL and rxi/lite are listed in the
|
||||||
|
[changelog].
|
||||||
|
|
||||||
## Overview
|
## Overview
|
||||||
|
|
||||||
Lite XL is derived from lite. It is a lightweight text editor written mostly in Lua — it aims to provide
|
Lite XL is derived from lite.
|
||||||
something practical, pretty, *small* and fast easy to modify and extend, or to use without doing either.
|
It is a lightweight text editor written mostly in Lua — it aims to provide
|
||||||
|
something practical, pretty, *small* and fast easy to modify and extend,
|
||||||
|
or to use without doing either.
|
||||||
|
|
||||||
The aim of Lite XL compared to lite is to be more user friendly, improve the quality of font rendering, and reduce CPU usage.
|
The aim of Lite XL compared to lite is to be more user friendly,
|
||||||
|
improve the quality of font rendering, and reduce CPU usage.
|
||||||
|
|
||||||
## Customization
|
## Customization
|
||||||
Additional functionality can be added through plugins which are available in
|
|
||||||
the [plugins repository](https://github.com/rxi/lite-plugins) or in the [Lite XL-specific plugins repository](https://github.com/franko/lite-plugins).
|
|
||||||
|
|
||||||
Additional color themes can be found in the [colors repository](https://github.com/rxi/lite-colors).
|
Additional functionality can be added through plugins which are available in
|
||||||
|
the [plugins repository] or in the [Lite XL plugins repository].
|
||||||
|
|
||||||
|
Additional color themes can be found in the [colors repository].
|
||||||
These color themes are bundled with all releases of Lite XL by default.
|
These color themes are bundled with all releases of Lite XL by default.
|
||||||
|
|
||||||
The editor can be customized by making changes to the [user module](data/user/init.lua).
|
|
||||||
|
|
||||||
## Building
|
|
||||||
|
|
||||||
You can build Lite XL yourself using Meson.
|
|
||||||
|
|
||||||
In addition, the `build-packages.sh` script can be used to compile Lite XL and create an OS-specific package for Linux, Windows or Mac OS.
|
|
||||||
|
|
||||||
The following libraries are required:
|
|
||||||
|
|
||||||
- freetype2
|
|
||||||
- SDL2
|
|
||||||
|
|
||||||
The following libraries are **optional**:
|
|
||||||
|
|
||||||
- libagg
|
|
||||||
- Lua 5.2
|
|
||||||
|
|
||||||
If they are not found, they will be downloaded and compiled by Meson.
|
|
||||||
Otherwise, if they are present, they will be used to compile Lite XL.
|
|
||||||
|
|
||||||
On Debian-based systems the required libraries and Meson can be installed using the following commands:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
# To install the required libraries:
|
|
||||||
sudo apt install libfreetype6-dev libsdl2-dev
|
|
||||||
|
|
||||||
# To install Meson:
|
|
||||||
sudo apt install meson
|
|
||||||
# or pip3 install --user meson
|
|
||||||
```
|
|
||||||
|
|
||||||
To build Lite XL with Meson the commands below can be used:
|
|
||||||
```sh
|
|
||||||
meson setup --buildtype=release build
|
|
||||||
meson compile -C build
|
|
||||||
meson install -C build
|
|
||||||
```
|
|
||||||
|
|
||||||
If you are using a version of Meson below 0.54 you need to use diffent commands to compile and install:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
meson setup --buildtype=release build
|
|
||||||
ninja -C build
|
|
||||||
ninja -C build install
|
|
||||||
```
|
|
||||||
|
|
||||||
When performing the `meson setup` command you may enable the `-Dportable=true` option to specify whether files should be installed as in a portable application.
|
|
||||||
|
|
||||||
If `portable` is enabled, Lite XL is built to use a `data` directory placed next to the executable.
|
|
||||||
Otherwise, Lite XL will use unix-like directory locations.
|
|
||||||
In this case, the `data` directory will be `$prefix/share/lite-xl` and the executable will be located in `$prefix/bin`.
|
|
||||||
`$prefix` is determined when the application starts as a directory such that `$prefix/bin` corresponds to the location of the executable.
|
|
||||||
|
|
||||||
The `user` directory does not depend on the `portable` option and will always be `$HOME/.config/lite-xl`.
|
|
||||||
`$HOME` is determined from the corresponding environment variable.
|
|
||||||
As a special case on Windows the variable `$USERPROFILE` will be used instead.
|
|
||||||
|
|
||||||
If you compile Lite XL yourself, it is recommended to use the script `build-packages.sh`:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
bash build-packages.sh <arch>
|
|
||||||
```
|
|
||||||
|
|
||||||
The script will run Meson and create a zip file with the application or, for linux, a tar compressed archive.
|
|
||||||
Lite XL can be easily installed by unpacking the archive in any directory of your choice.
|
|
||||||
|
|
||||||
On Windows two packages will be created, one called "portable" using the "data" folder next to the executable and
|
|
||||||
the other one using a unix-like file layout. Both packages works correctly. The one with unix-like file layout
|
|
||||||
is meant for people using a unix-like shell and the command line.
|
|
||||||
|
|
||||||
Please note that there aren't any hard-coded directories in the executable, so that the
|
|
||||||
package can be extracted and used in any directory.
|
|
||||||
|
|
||||||
Mac OS X is fully supported and a notarized app disk image is provided in the [release page](https://github.com/franko/lite-xl/releases).
|
|
||||||
In addition the application can be compiled using the generic instructions given above.
|
|
||||||
|
|
||||||
## Contributing
|
## Contributing
|
||||||
Any additional functionality that can be added through a plugin should be done
|
|
||||||
as a plugin, after which a pull request to the
|
|
||||||
[plugins repository](https://github.com/rxi/lite-plugins) can be made.
|
|
||||||
|
|
||||||
If the plugin uses any Lite XL-specific functionality, please open a pull request to the
|
Any additional functionality that can be added through a plugin should be done
|
||||||
[Lite XL plugins repository](https://github.com/franko/lite-plugins).
|
as a plugin, after which a pull request to the [plugins repository] can be made.
|
||||||
|
|
||||||
|
If the plugin uses any Lite XL-specific functionality,
|
||||||
|
please open a pull request to the [Lite XL plugins repository].
|
||||||
|
|
||||||
Pull requests to improve or modify the editor itself are welcome.
|
Pull requests to improve or modify the editor itself are welcome.
|
||||||
|
|
||||||
## License
|
## Licenses
|
||||||
|
|
||||||
This project is free software; you can redistribute it and/or modify it under
|
This project is free software; you can redistribute it and/or modify it under
|
||||||
the terms of the MIT license. See [LICENSE](LICENSE) for details.
|
the terms of the MIT license. See [LICENSE] for details.
|
||||||
|
|
||||||
|
See the [licenses] file for details on licenses used by the required dependencies.
|
||||||
|
|
||||||
|
|
||||||
|
[Discord Badge Image]: https://img.shields.io/discord/847122429742809208?label=discord&logo=discord
|
||||||
|
[screenshot-dark]: https://user-images.githubusercontent.com/433545/111063905-66943980-84b1-11eb-9040-3876f1133b20.png
|
||||||
|
[lite]: https://github.com/rxi/lite
|
||||||
|
[website]: https://lite-xl.github.io
|
||||||
|
[build]: https://lite-xl.github.io/en/build
|
||||||
|
[Get Lite XL]: https://github.com/franko/lite-xl/releases/latest
|
||||||
|
[Get plugins]: https://github.com/franko/lite-plugins
|
||||||
|
[Get color themes]: https://github.com/rxi/lite-colors
|
||||||
|
[changelog]: https://github.com/franko/lite-xl/blob/master/changelog.md
|
||||||
|
[Lite XL plugins repository]: https://github.com/franko/lite-plugins
|
||||||
|
[plugins repository]: https://github.com/rxi/lite-plugins
|
||||||
|
[colors repository]: https://github.com/rxi/lite-colors
|
||||||
|
[LICENSE]: LICENSE
|
||||||
|
[licenses]: licenses/licenses.md
|
||||||
|
|
|
@ -1,43 +0,0 @@
|
||||||
## rxi
|
|
||||||
|
|
||||||
Original development of lite editor.
|
|
||||||
|
|
||||||
## Francesco Abbate (franko)
|
|
||||||
|
|
||||||
Creator of lite-xl fork from rxi/lite.
|
|
||||||
|
|
||||||
## Takase (takase1121)
|
|
||||||
|
|
||||||
NagView and X Window database resource query for Xft.dpi setting.
|
|
||||||
|
|
||||||
## Nils Kvist (budRich)
|
|
||||||
|
|
||||||
Popup window replacement with CommandView dialog.
|
|
||||||
|
|
||||||
## liquidev
|
|
||||||
|
|
||||||
Tab style and animations improvements.
|
|
||||||
|
|
||||||
## adamharrison
|
|
||||||
|
|
||||||
Multi-language syntax highlighting and many other improvements.
|
|
||||||
|
|
||||||
## vincens2005
|
|
||||||
|
|
||||||
Syntax highlighting improvements.
|
|
||||||
|
|
||||||
## Janis-Leuenberger
|
|
||||||
|
|
||||||
Add keymap bindings help file and macOS testing.
|
|
||||||
|
|
||||||
## Mat Mariani (mathewmariani)
|
|
||||||
|
|
||||||
Help for Mac OS port. Some resources taken from mathewmariani/lite-macos.
|
|
||||||
|
|
||||||
## daubaris
|
|
||||||
|
|
||||||
Initial implementation of Xft.dpi query using xrdb command.
|
|
||||||
|
|
||||||
## Robert Štojs (netrobert)
|
|
||||||
|
|
||||||
Continuos integration configuration
|
|
|
@ -1,113 +0,0 @@
|
||||||
# Default keymap
|
|
||||||
|
|
||||||
*Note: When using macOS `ctrl` refers to the command key.*
|
|
||||||
|
|
||||||
| Key combination | Actions |
|
|
||||||
| --------------------- | ----------------------------------- |
|
|
||||||
| ctrl+shift+p | core:find-command |
|
|
||||||
| ctrl+p | core:find-file |
|
|
||||||
| ctrl+o | core:open-file |
|
|
||||||
| ctrl+n | core:new-doc |
|
|
||||||
| ctrl+shift+c | core:change-project-folder |
|
|
||||||
| ctrl+shift+o | core:open-project-folder |
|
|
||||||
| alt+return | core:toggle-fullscreen |
|
|
||||||
| alt+shift+j | root:split-left |
|
|
||||||
| alt+shift+l | root:split-right |
|
|
||||||
| alt+shift+i | root:split-up |
|
|
||||||
| alt+shift+k | root:split-down |
|
|
||||||
| alt+j | root:switch-to-left |
|
|
||||||
| alt+l | root:switch-to-right |
|
|
||||||
| alt+i | root:switch-to-up |
|
|
||||||
| alt+k | root:switch-to-down |
|
|
||||||
| ctrl+w | root:close |
|
|
||||||
| ctrl+tab | root:switch-to-next-tab |
|
|
||||||
| ctrl+shift+tab | root:switch-to-previous-tab |
|
|
||||||
| ctrl+pageup | root:move-tab-left |
|
|
||||||
| ctrl+pagedown | root:move-tab-right |
|
|
||||||
| alt+1 | root:switch-to-tab-1 |
|
|
||||||
| alt+2 | root:switch-to-tab-2 |
|
|
||||||
| alt+3 | root:switch-to-tab-3 |
|
|
||||||
| alt+4 | root:switch-to-tab-4 |
|
|
||||||
| alt+5 | root:switch-to-tab-5 |
|
|
||||||
| alt+6 | root:switch-to-tab-6 |
|
|
||||||
| alt+7 | root:switch-to-tab-7 |
|
|
||||||
| alt+8 | root:switch-to-tab-8 |
|
|
||||||
| alt+9 | root:switch-to-tab-9 |
|
|
||||||
| ctrl+f | find-replace:find |
|
|
||||||
| ctrl+r | find-replace:replace |
|
|
||||||
| f3 | find-replace:repeat-find |
|
|
||||||
| shift+f3 | find-replace:previous-find |
|
|
||||||
| ctrl+g | doc:go-to-line |
|
|
||||||
| ctrl+s | doc:save |
|
|
||||||
| ctrl+shift+s | doc:save-as |
|
|
||||||
| ctrl+z | doc:undo |
|
|
||||||
| ctrl+y | doc:redo |
|
|
||||||
| ctrl+x | doc:cut |
|
|
||||||
| ctrl+c | doc:copy |
|
|
||||||
| ctrl+v | doc:paste |
|
|
||||||
| ctrl+insert | doc:copy |
|
|
||||||
| shift+insert | doc:paste |
|
|
||||||
| escape | command:escape |
|
|
||||||
| escape | doc:select-none |
|
|
||||||
| escape | dialog:select-no |
|
|
||||||
| tab | command:complete |
|
|
||||||
| tab | doc:indent |
|
|
||||||
| shift+tab | doc:unindent |
|
|
||||||
| backspace | doc:backspace |
|
|
||||||
| shift+backspace | doc:backspace |
|
|
||||||
| ctrl+backspace | doc:delete-to-previous-word-start |
|
|
||||||
| ctrl+shift+backspace | doc:delete-to-previous-word-start |
|
|
||||||
| delete | doc:delete |
|
|
||||||
| shift+delete | doc:delete |
|
|
||||||
| ctrl+delete | doc:delete-to-next-word-end |
|
|
||||||
| ctrl+shift+delete | doc:delete-to-next-word-end |
|
|
||||||
| return | command:submit |
|
|
||||||
| return | doc:newline |
|
|
||||||
| return | dialog:select |
|
|
||||||
| keypad enter | command:submit |
|
|
||||||
| keypad enter | doc:newline |
|
|
||||||
| keypad enter | dialog:select |
|
|
||||||
| ctrl+return | doc:newline-below |
|
|
||||||
| ctrl+shift+return | doc:newline-above |
|
|
||||||
| ctrl+j | doc:join-lines |
|
|
||||||
| ctrl+a | doc:select-all |
|
|
||||||
| ctrl+d | find-replace:select-next |
|
|
||||||
| ctrl+d | doc:select-word |
|
|
||||||
| ctrl+l | doc:select-lines |
|
|
||||||
| ctrl+/ | doc:toggle-line-comments |
|
|
||||||
| ctrl+up | doc:move-lines-up |
|
|
||||||
| ctrl+down | doc:move-lines-down |
|
|
||||||
| ctrl+shift+d | doc:duplicate-lines |
|
|
||||||
| ctrl+shift+k | doc:delete-lines |
|
|
||||||
| left | doc:move-to-previous-char |
|
|
||||||
| left | dialog:previous-entry |
|
|
||||||
| right | doc:move-to-next-char |
|
|
||||||
| right | dialog:next-entry |
|
|
||||||
| up | command:select-previous |
|
|
||||||
| up | doc:move-to-previous-line |
|
|
||||||
| down | command:select-next |
|
|
||||||
| down | doc:move-to-next-line |
|
|
||||||
| ctrl+left | doc:move-to-previous-word-start |
|
|
||||||
| ctrl+right | doc:move-to-next-word-end |
|
|
||||||
| ctrl+[ | doc:move-to-previous-block-start |
|
|
||||||
| ctrl+] | doc:move-to-next-block-end |
|
|
||||||
| home | doc:move-to-start-of-line |
|
|
||||||
| end | doc:move-to-end-of-line |
|
|
||||||
| ctrl+home | doc:move-to-start-of-doc |
|
|
||||||
| ctrl+end | doc:move-to-end-of-doc |
|
|
||||||
| pageup | doc:move-to-previous-page |
|
|
||||||
| pagedown | doc:move-to-next-page |
|
|
||||||
| shift+left | doc:select-to-previous-char |
|
|
||||||
| shift+right | doc:select-to-next-char |
|
|
||||||
| shift+up | doc:select-to-previous-line |
|
|
||||||
| shift+down | doc:select-to-next-line |
|
|
||||||
| ctrl+shift+left | doc:select-to-previous-word-start |
|
|
||||||
| ctrl+shift+right | doc:select-to-next-word-end |
|
|
||||||
| ctrl+shift+[ | doc:select-to-previous-block-start |
|
|
||||||
| ctrl+shift+] | doc:select-to-next-block-end |
|
|
||||||
| shift+home | doc:select-to-start-of-line |
|
|
||||||
| shift+end | doc:select-to-end-of-line |
|
|
||||||
| ctrl+shift+home | doc:select-to-start-of-doc |
|
|
||||||
| ctrl+shift+end | doc:select-to-end-of-doc |
|
|
||||||
| shift+pageup | doc:select-to-previous-page |
|
|
||||||
| shift+pagedown | doc:select-to-next-page |
|
|
209
doc/usage.md
209
doc/usage.md
|
@ -1,209 +0,0 @@
|
||||||
# lite
|
|
||||||
|
|
||||||
![screenshot](https://user-images.githubusercontent.com/3920290/81471642-6c165880-91ea-11ea-8cd1-fae7ae8f0bc4.png)
|
|
||||||
|
|
||||||
## Overview
|
|
||||||
Lite is a lightweight text editor written mostly in Lua — it aims to provide
|
|
||||||
something practical, pretty, *small* and fast, implemented as simply as
|
|
||||||
possible; easy to modify and extend, or to use without doing either.
|
|
||||||
|
|
||||||
Lite XL is based on the Lite editor itself and provide some enhancements
|
|
||||||
while remaining generally compatible with Lite.
|
|
||||||
|
|
||||||
|
|
||||||
## Getting Started
|
|
||||||
Lite works using a *project directory* — this is the directory where your
|
|
||||||
project's code and other data resides.
|
|
||||||
|
|
||||||
To open lite with a specific project directory the directory name can be passed
|
|
||||||
as a command-line argument *(`.` can be passed to use the current directory)* or
|
|
||||||
the directory can be dragged onto either the lite executable or a running
|
|
||||||
instance of lite.
|
|
||||||
|
|
||||||
Once started the project directory can be changed using the command
|
|
||||||
`core:change-project-folder`. The command will close all the documents
|
|
||||||
currently opened and switch to the new project directory.
|
|
||||||
|
|
||||||
If you want to open a project directory in a new window the command
|
|
||||||
`core:open-project-folder` will open a new editor window with the selected
|
|
||||||
project directory.
|
|
||||||
|
|
||||||
The main way of opening files in lite is through the `core:find-file` command
|
|
||||||
— this provides a fuzzy finder over all of the project's files and can be
|
|
||||||
opened using the **`ctrl+p`** shortcut by default.
|
|
||||||
|
|
||||||
Commands can be run using keyboard shortcuts, or by using the `core:find-command`
|
|
||||||
command bound to **`ctrl+shift+p`** by default. For example, pressing
|
|
||||||
`ctrl+shift+p` and typing `newdoc` then pressing `return` would open a new
|
|
||||||
document. The current keyboard shortcut for a command can be seen to the right
|
|
||||||
of the command name on the command finder, thus to find the shortcut for a command
|
|
||||||
`ctrl+shift+p` can be pressed and the command name typed.
|
|
||||||
|
|
||||||
|
|
||||||
## User Module
|
|
||||||
lite can be configured through use of the user module. The user module can be
|
|
||||||
used for changing options in the config module, adding additional key bindings,
|
|
||||||
loading custom color themes, modifying the style or changing any other part of
|
|
||||||
lite to your personal preference.
|
|
||||||
|
|
||||||
The user module is loaded by lite when the application starts, after the plugins
|
|
||||||
have been loaded.
|
|
||||||
|
|
||||||
The user module can be modified by running the `core:open-user-module` command
|
|
||||||
or otherwise directly opening the `$HOME/.config/lite-xl/init.lua` file.
|
|
||||||
|
|
||||||
On Windows, the variable `$USERPROFILE` will be used instead of
|
|
||||||
`$HOME`.
|
|
||||||
|
|
||||||
Please note that Lite XL differs from the standard Lite editor for the location
|
|
||||||
of the user's module.
|
|
||||||
|
|
||||||
## Project Module
|
|
||||||
The project module is an optional module which is loaded from the current
|
|
||||||
project's directory when lite is started. Project modules can be useful for
|
|
||||||
things like adding custom commands for project-specific build systems, or
|
|
||||||
loading project-specific plugins.
|
|
||||||
|
|
||||||
The project module is loaded by lite when the application starts, after both the
|
|
||||||
plugins and user module have been loaded.
|
|
||||||
|
|
||||||
The project module can be edited by running the `core:open-project-module`
|
|
||||||
command — if the module does not exist for the current project when the
|
|
||||||
command is run it will be created.
|
|
||||||
|
|
||||||
## Big directories
|
|
||||||
Often projects contain compiled, bundled or downloaded files which you don't want to edit. These files can be excluded from projects by configuring `config.ignore_files`. Such a configuration might look like `config.ignore_files = { "^%.", "node_modules" }`. This will exclude the `node_modules` folder and any file starting with `.`. You can add this to a user or project module.
|
|
||||||
|
|
||||||
If a project has more files than the maximum (configured with `config.max_project_files`) lite-xl will switch to a different mode where files are lazily loaded.
|
|
||||||
|
|
||||||
_Note: Because of lazy loading `core:find-file` will open `core:open-file` instead._
|
|
||||||
|
|
||||||
## Add directories to a project
|
|
||||||
|
|
||||||
In addition to the project directories it is possible to add other directories
|
|
||||||
using the command `core:add-directory`.
|
|
||||||
Once added a directory it will be shown in the tree-view on the left side and
|
|
||||||
the additional files will be reachable using the `ctrl+p` command (find file).
|
|
||||||
The additonal files will be also visible when searching across the project.
|
|
||||||
|
|
||||||
The additional directories can be removed using the command `core:remove-directory`.
|
|
||||||
|
|
||||||
When you will open again Lite XL on the same project folder the application will
|
|
||||||
remember your workspace including the additonal project directories.
|
|
||||||
|
|
||||||
Since version 1.15 Lite XL does not need a workspace plugin as it is now
|
|
||||||
bundled with the editor.
|
|
||||||
|
|
||||||
|
|
||||||
## Create new empty directory
|
|
||||||
|
|
||||||
Using the command `files:create-directory` or control-click in a directory in the
|
|
||||||
tree-view to create a new empty subdirectory.
|
|
||||||
|
|
||||||
|
|
||||||
## Commands
|
|
||||||
Commands in lite are used both through the command finder (`ctrl+shift+p`) and
|
|
||||||
by lite's keyboard shortcut system. Commands consist of 3 components:
|
|
||||||
* **Name** — The command name in the form of `namespace:action-name`, for
|
|
||||||
example: `doc:select-all`
|
|
||||||
* **Predicate** — A function that returns true if the command can be ran, for
|
|
||||||
example, for any document commands the predicate checks whether the active
|
|
||||||
view is a document
|
|
||||||
* **Function** — The function which performs the command itself
|
|
||||||
|
|
||||||
Commands can be added using the `command.add` function provided by the
|
|
||||||
`core.command` module:
|
|
||||||
```lua
|
|
||||||
local core = require "core"
|
|
||||||
local command = require "core.command"
|
|
||||||
|
|
||||||
command.add("core.docview", {
|
|
||||||
["doc:save"] = function()
|
|
||||||
core.active_view.doc:save()
|
|
||||||
core.log("Saved '%s', core.active_view.doc.filename)
|
|
||||||
end
|
|
||||||
})
|
|
||||||
```
|
|
||||||
|
|
||||||
Commands can be performed programatically (eg. from another command or by your
|
|
||||||
user module) by calling the `command.perform` function after requiring the
|
|
||||||
`command` module:
|
|
||||||
```lua
|
|
||||||
local command = require "core.command"
|
|
||||||
command.perform "core:quit"
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
## Keymap
|
|
||||||
All keyboard shortcuts in lite are handled by the `core.keymap` module. A key
|
|
||||||
binding in lite maps a "stroke" (eg. `ctrl+q`) to one or more commands (eg.
|
|
||||||
`core:quit`). When the shortcut is pressed lite will iterate each command
|
|
||||||
assigned to that key and run the *predicate function* for that command — if the
|
|
||||||
predicate passes it stops iterating and runs the command.
|
|
||||||
|
|
||||||
An example of where this used is the default binding of the `tab` key:
|
|
||||||
``` lua
|
|
||||||
["tab"] = { "command:complete", "doc:indent" },
|
|
||||||
```
|
|
||||||
When tab is pressed the `command:complete` command is attempted which will only
|
|
||||||
succeed if the command-input at the bottom of the window is active. Otherwise
|
|
||||||
the `doc:indent` command is attempted which will only succeed if we have a
|
|
||||||
document as our active view.
|
|
||||||
|
|
||||||
A new mapping can be added by your user module as follows:
|
|
||||||
```lua
|
|
||||||
local keymap = require "core.keymap"
|
|
||||||
keymap.add { ["ctrl+q"] = "core:quit" }
|
|
||||||
```
|
|
||||||
|
|
||||||
A list of default mappings can be viewed [here](./default-keymap.md).
|
|
||||||
|
|
||||||
|
|
||||||
## Plugins
|
|
||||||
Plugins in lite are normal lua modules and are treated as such — no
|
|
||||||
complicated plugin manager is provided, and, once a plugin is loaded, it is never
|
|
||||||
expected be to have to unload itself.
|
|
||||||
|
|
||||||
To install a plugin simply drop it in the `plugins` directory in the user
|
|
||||||
module directory.
|
|
||||||
When Lite XL starts it will first load the plugins included in the data directory
|
|
||||||
and will then loads the plugins located in the user module directory.
|
|
||||||
|
|
||||||
To uninstall a plugin the
|
|
||||||
plugin file can be deleted — any plugin (including those included with lite's
|
|
||||||
default installation) can be deleted to remove its functionality.
|
|
||||||
|
|
||||||
If you want to load a plugin only under a certain circumstance (for example,
|
|
||||||
only on a given project) the plugin can be placed somewhere other than the
|
|
||||||
`plugins` directory so that it is not automatically loaded. The plugin can
|
|
||||||
then be loaded manually as needed by using the `require` function.
|
|
||||||
|
|
||||||
Plugins can be downloaded from the [plugins repository](https://github.com/rxi/lite-plugins).
|
|
||||||
|
|
||||||
|
|
||||||
## Restarting the editor
|
|
||||||
|
|
||||||
If you modifies the user configuration file or some of the Lua implementation files you may
|
|
||||||
restart the editor using the command `core:restart`.
|
|
||||||
All the application will be restarting by keeping the window that is already in use.
|
|
||||||
|
|
||||||
|
|
||||||
## Color Themes
|
|
||||||
Colors themes in lite are lua modules which overwrite the color fields of lite's
|
|
||||||
`core.style` module.
|
|
||||||
Pre-defined color methods are located in the `colors` folder in the data directory.
|
|
||||||
Additional color themes can be installed in the user's directory in a folder named
|
|
||||||
`colors`.
|
|
||||||
|
|
||||||
A color theme can be set by requiring it in your user module:
|
|
||||||
```lua
|
|
||||||
core.reload_module "colors.winter"
|
|
||||||
```
|
|
||||||
|
|
||||||
In the Lite editor the function `require` is used instead of `core.reload_module`.
|
|
||||||
In Lite XL `core.reload_module` should be used to ensure that the color module
|
|
||||||
is actually reloaded when saving the user's configuration file.
|
|
||||||
|
|
||||||
Color themes can be downloaded from the [color themes repository](https://github.com/rxi/lite-colors).
|
|
||||||
They are included with Lite XL release packages.
|
|
||||||
|
|
Loading…
Reference in New Issue