From f6d0c7a995c76b0937880dfe6aa1741faff283f0 Mon Sep 17 00:00:00 2001 From: Blaž Hrastnik Date: Tue, 11 May 2021 18:50:09 +0900 Subject: Update README. --- README.md | 48 +++++++++++++++++++++++++++++++++++++++++------- doc/architecture.md | 9 +++++++++ 2 files changed, 50 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index b3ca9107..677a5852 100644 --- a/README.md +++ b/README.md @@ -1,19 +1,53 @@ # Helix -| Crate | Description | -| ----------- | ----------- | -| helix-core | Core editing primitives, functional. | -| helix-syntax | Tree-sitter grammars | -| helix-view | UI abstractions for use in backends, imperative shell. | -| helix-term | Terminal UI | +A kakoune / neovim inspired editor, written in Rust. + +The editing model is very heavily based on kakoune; during development I found +myself agreeing with most of kakoune's design decisions. + +# Features + +- Vim-like modal editing +- Multiple selections +- Built-in language server support +- Smart, incremental syntax highlighting and code editing via tree-sitter + +It's a terminal-based editor first, but I'd like to explore a custom renderer +(similar to emacs) in wgpu or skulpin. # Installation +We provide packaging for various distributions, but here's a quick method to +build from source. + ``` -git clone --depth 1 --recurse-submodules -j8 https://github.com/helix-editor/helix +git clone --recurse-submodules --shallow-submodules -j8 https://github.com/helix-editor/helix cd helix cargo install --path helix-term ``` This will install the `hx` binary to `$HOME/.cargo/bin`. +Now copy the `runtime/` directory somewhere. Helix will by default look for the +runtime inside the same folder as the executable, but that can be overriden via +the `HELIX_RUNTIME` environment variable. + +# Contributing + +Contributors are very welcome! **No contribution is too small and all contributions are valued.** + +Some suggestions to get started: + +- You can look at the [good first issue](https://github.com/helix-editor/helix/labels/good%20first%20issue) label on the issue tracker. +- Help with packaging on various distributions needed! +- If your preffered language is missing, integrating a tree-sitter grammar for + it and defining syntax highlight queries for it is straight forward and + doesn't require much knowledge of the internals. + +We provide an [architecture.md](./docs/architecture.md) that should give you +a good overview of the internals. + +# Getting help + +Discuss the project on the community [Matrix channel](https://matrix.to/#/#helix-editor:example.com). + diff --git a/doc/architecture.md b/doc/architecture.md index 743e9a75..13cdab5e 100644 --- a/doc/architecture.md +++ b/doc/architecture.md @@ -1,4 +1,13 @@ +| Crate | Description | +| ----------- | ----------- | +| helix-core | Core editing primitives, functional. | +| helix-syntax | Tree-sitter grammars | +| helix-lsp | Language server client | +| helix-view | UI abstractions for use in backends, imperative shell. | +| helix-term | Terminal UI | +| helix-tui | TUI primitives, forked from tui-rs, inspired by Cursive | + # Notes - server-client architecture via gRPC, UI separate from core -- cgit v1.2.3-70-g09d2