Lightning-fast and Powerful Code Editor written in Rust
Go to file
Vasili Novikov (replace "vvv" with "v" in email) 8994d1cc06
Add rust-toolchain file
Without this change, some OS'es such as ArchLinux
will fail to build this project by default.

You would first need to run a specific rustup command
to set your default toolchain,
that you as a Rust developer should know,
and only then the project would build using your
downloaded default toolchain.

Specifying the channel explicitly as done in this commit
allows for Lapce to be build-able on a completely fresh
(or isolated for security reasons) home directory,
for those Operating Systems.
2022-09-20 21:42:23 +02:00
.devcontainer feat: add missing rust components to devcontainer 2022-07-19 15:39:55 +00:00
.github Auto Assign C-feature or C-bug when new issues are created (#1197) 2022-09-16 09:38:06 +02:00
defaults feat: improved multicursor selection (#1238) 2022-09-18 11:54:33 +01:00
docs git: add gitattributes & renormalize files 2022-08-31 19:00:36 +02:00
extra fix: remove non-existent argument 2022-09-11 20:00:43 +02:00
icons Rename 2022-08-31 19:25:06 +01:00
lapce-core Remove unused code 2022-09-18 21:36:59 +02:00
lapce-data feat: improved multicursor selection (#1238) 2022-09-18 11:54:33 +01:00
lapce-proxy Fix save-delay: Call callback of handle_server_request even though no plugins exist (#1265) 2022-09-18 21:04:19 +01:00
lapce-rpc bump version 2022-09-02 22:18:07 +01:00
lapce-ui fix view tab drag-drop (#1253) 2022-09-18 13:56:51 +01:00
.gitattributes git: add gitattributes & renormalize files 2022-08-31 19:00:36 +02:00
.gitignore Prettier plugin panel (#1244) 2022-09-18 11:47:31 +01:00
.rustfmt.toml lsp plugin change 2020-10-16 16:40:55 +01:00
CONTRIBUTING.md wgpu -> opengl readme 2022-06-02 10:19:09 +01:00
Cargo.lock switch to document_selector for lsp 2022-09-14 21:34:49 +01:00
Cargo.toml Minor changes of root `Cargo.toml`. 2022-09-16 21:41:53 +03:00
LICENSE Create LICENSE 2021-10-06 17:13:56 +01:00
Makefile update window origin in real time 2022-05-04 10:09:13 +01:00
README.md Fixed extra spacing after `here` 2022-09-09 07:37:46 +05:30
lapce.spec bump version 2022-09-02 22:18:07 +01:00
rust-toolchain.toml Add rust-toolchain file 2022-09-20 21:42:23 +02:00

README.md


Lapce

Lightning-fast And Powerful Code Editor


Lapce (IPA: /læps/) is written in pure Rust with a UI in Druid (which is also written in Rust). It is designed with Rope Science from the Xi-Editor which makes for lightning-fast computation, and leverages OpenGL for rendering. More information about the features of Lapce can be found on the main website and user documentation can be found on GitBook.

Features

  • Built-in LSP (Language Server Protocol) support to give you intelligent code features such as: completion, diagnostics and code actions
  • Modal editing support as first class citizen (Vim-like, and toggleable)
  • Built-in remote development support inspired by VSCode Remote Development. Enjoy the benefits of a "local" experience, and seamlessly gain the full power of a remote system.
  • Plugins can be written in programming languages that can compile to the WASI format (C, Rust, AssemblyScript)
  • Built-in terminal, so you can execute commands in your workspace, without leaving Lapce.

Contributing

Guidelines for contributing to Lapce can be found in CONTRIBUTING.md.

Installation

Arch Linux

There is an community package that can be installed with pacman:

sudo pacman -Syu lapce

Fedora

sudo dnf copr enable titaniumtown/lapce
sudo dnf install lapce

Flatpak

Lapce is available as a flatpak here

flatpak install flathub dev.lapce.lapce

Homebrew

brew install lapce

Scoop

scoop install lapce

winget

You can find the packages here:

winget install lapce

Building from source

It is easy to build Lapce from source on a GNU/Linux distribution. Cargo handles the build process, all you need to do, is ensure the correct dependencies are installed.

  1. Install the Rust compiler and Cargo using rustup.rs. If you already have the toolchain, ensure you are using version 1.62 or higher.

  2. Install dependencies for your operating system:

Ubuntu

sudo apt install cmake pkg-config libfontconfig-dev libgtk-3-dev

Fedora

sudo dnf install gcc-c++ perl-FindBin perl-File-Compare gtk3-devel
  1. Clone this repository (this command will clone to your home directory):
git clone https://github.com/lapce/lapce.git ~/lapce
  1. cd into the repository, and run the build command with the release flag
cd ~/lapce
cargo build --release

If you use a different distribution, and are having trouble finding appropriate dependencies, let us know in an issue!

Once Lapce is compiled, the executable will be available in target/release/lapce.

Feedback & Contact

The most popular place for Lapce developers and users is on the Discord server.

Or, join the discussion on Reddit where we are just getting started.

There is also a Matrix Space, which is linked to the content from the Discord server.

License

Lapce is released under the Apache License Version 2, which is an open source license. You may contribute to this project, or use the code as you please as long as you adhere to its conditions. You can find a copy of the license text here: LICENSE.