on master help sign in
Release 0.3.0
44566eaBlaž Hrastnik
CHANGELOG.mdnew file+87
@@ -0,0 +1,87 @@
1+# 0.3.0
2+
3+Another big release.
4+
5+Highlights:
6+
7+- Indentation is now automatically detected from file heuristics. ([#245](https://github.com/helix-editor/helix/pull/245))
8+- Support for other line endings (CRLF). Significantly improved Windows support. ([#224](https://github.com/helix-editor/helix/pull/224))
9+- Encodings other than UTF-8 are now supported! ([#228](https://github.com/helix-editor/helix/pull/228))
10+- Key bindings can now be configured via a `config.toml` file ([#268](https://github.com/helix-editor/helix/pull/268))
11+- Theme can now be configured and changed at runtime ([please feel free to contribute more themes!](https://github.com/helix-editor/helix/tree/master/runtime/themes)) ([#267](https://github.com/helix-editor/helix/pull/267))
12+- System clipboard yank/paste is now supported! ([#310](https://github.com/helix-editor/helix/pull/310))
13+- Surround commands were implemented ([#320](https://github.com/helix-editor/helix/pull/320))
14+
15+Features:
16+
17+- File picker can now be repeatedly filtered ([#232](https://github.com/helix-editor/helix/pull/232))
18+- LSP progress is now received and rendered as a spinner ([#234](https://github.com/helix-editor/helix/pull/234))
19+- Current line number can now be themed ([#260](https://github.com/helix-editor/helix/pull/260))
20+- Arrow keys & home/end now work in insert mode ([#305](https://github.com/helix-editor/helix/pull/305))
21+- Cursors and selections can now be themed ([#325](https://github.com/helix-editor/helix/pull/325))
22+- Language servers are now gracefully shut down before `hx` exits ([#287](https://github.com/helix-editor/helix/pull/287))
23+- `:show-directory`/`:change-directory` ([#335](https://github.com/helix-editor/helix/pull/335))
24+- File picker is now sorted by access time (before filtering) ([#336](https://github.com/helix-editor/helix/pull/336))
25+- Code is being migrated from helix-term to helix-view (prerequisite for
26+ alternative frontends) ([#366](https://github.com/helix-editor/helix/pull/366))
27+- `x` and `X` merged
28+ ([f41688d9](https://github.com/helix-editor/helix/commit/f41688d960ef89c29c4a51c872b8406fb8f81a85))
29+
30+Fixes:
31+
32+- The IME popup is now correctly positioned ([#273](https://github.com/helix-editor/helix/pull/273))
33+- A bunch of bugs regarding `o`/`O` behavior ([#281](https://github.com/helix-editor/helix/pull/281))
34+- `~` expansion now works in file completion ([#284](https://github.com/helix-editor/helix/pull/284))
35+- Several UI related overflow crashes ([#318](https://github.com/helix-editor/helix/pull/318))
36+- Fix a test failure occuring only on `test --release` ([4f108ab1](https://github.com/helix-editor/helix/commit/4f108ab1b2197809506bd7305ad903a3525eabfa))
37+- Prompts now support unicode input ([#295](https://github.com/helix-editor/helix/pull/295))
38+- Completion documentation no longer overlaps the popup ([#322](https://github.com/helix-editor/helix/pull/322))
39+- Fix a crash when trying to select `^` ([9c534614](https://github.com/helix-editor/helix/commit/9c53461429a3e72e3b1fb87d7ca490e168d7dee2))
40+- Prompt completions are now paginated ([39dc09e6](https://github.com/helix-editor/helix/commit/39dc09e6c4172299bc79de4c1c52288d3f624bd7))
41+- Goto did not work on Windows ([503ca112](https://github.com/helix-editor/helix/commit/503ca112ae57ebdf3ea323baf8940346204b46d2))
42+
43+# 0.2.1
44+
45+Includes a fix where wq/wqa could exit before file saving completed.
46+
47+# 0.2.0
48+
49+Enough has changed to bump the version. We're skipping 0.1.x because
50+previously the CLI would always report version as 0.1.0, and we'd like
51+to distinguish it in bug reports..
52+
53+- The `runtime/` directory is now properly detected on binary releases and
54+ on cargo run. `~/.config/helix/runtime` can also be used.
55+- Registers can now be selected via " (for example `"ay`)
56+- Support for Nix files was added
57+- Movement is now fully tested and matches kakoune implementation
58+- A per-file LSP symbol picker was added to space+s
59+- Selection can be replaced with yanked text via R
60+
61+- `1g` now correctly goes to line 1
62+- `ctrl-i` now correctly jumps backwards in history
63+- A small memory leak was fixed, where we tried to reuse tree-sitter
64+ query cursors, but always allocated a new one
65+- Auto-formatting is now only on for certain languages
66+- The root directory is now provided in LSP initialization, fixing
67+ certain language servers (typescript)
68+- LSP failing to start no longer panics
69+- Elixir language queries were fixed
70+
71+# 0.0.10
72+
73+Keymaps:
74+- Add mappings to jump to diagnostics
75+- Add gt/gm/gb mappings to jump to top/middle/bottom of screen
76+- ^ and $ are now gh, gl
77+
78+- The runtime/ can now optionally be embedded in the binary
79+- Haskell syntax added
80+- Window mode (ctrl-w) added
81+- Show matching bracket (vim's matchbrackets)
82+- Themes now support style modifiers
83+- First user contributed theme
84+- Create a document if it doesn't exist yet on save
85+- Detect language on a new file on save
86+
87+- Panic fixes, lots of them
Cargo.lock+6−6
@@ -290,7 +290,7 @@ dependencies = [
290
290
291[[package]]
291[[package]]
292name = "helix-core"
292name = "helix-core"
293−version = "0.2.0"
293+version = "0.3.0"
294dependencies = [
294dependencies = [
295 "arc-swap",
295 "arc-swap",
296 "etcetera",
296 "etcetera",
@@ -311,7 +311,7 @@ dependencies = [
311
311
312[[package]]
312[[package]]
313name = "helix-lsp"
313name = "helix-lsp"
314−version = "0.2.0"
314+version = "0.3.0"
315dependencies = [
315dependencies = [
316 "anyhow",
316 "anyhow",
317 "futures-executor",
317 "futures-executor",
@@ -329,7 +329,7 @@ dependencies = [
329
329
330[[package]]
330[[package]]
331name = "helix-syntax"
331name = "helix-syntax"
332−version = "0.2.0"
332+version = "0.3.0"
333dependencies = [
333dependencies = [
334 "cc",
334 "cc",
335 "serde",
335 "serde",
@@ -339,7 +339,7 @@ dependencies = [
339
339
340[[package]]
340[[package]]
341name = "helix-term"
341name = "helix-term"
342−version = "0.2.0"
342+version = "0.3.0"
343dependencies = [
343dependencies = [
344 "anyhow",
344 "anyhow",
345 "chrono",
345 "chrono",
@@ -365,7 +365,7 @@ dependencies = [
365
365
366[[package]]
366[[package]]
367name = "helix-tui"
367name = "helix-tui"
368−version = "0.2.0"
368+version = "0.3.0"
369dependencies = [
369dependencies = [
370 "bitflags",
370 "bitflags",
371 "cassowary",
371 "cassowary",
@@ -379,7 +379,7 @@ dependencies = [
379
379
380[[package]]
380[[package]]
381name = "helix-view"
381name = "helix-view"
382−version = "0.2.0"
382+version = "0.3.0"
383dependencies = [
383dependencies = [
384 "anyhow",
384 "anyhow",
385 "bitflags",
385 "bitflags",
helix-core/Cargo.toml+2−2
@@ -1,6 +1,6 @@
1[package]
1[package]
2name = "helix-core"
2name = "helix-core"
3−version = "0.2.0"
3+version = "0.3.0"
4authors = ["Blaž Hrastnik <blaz@mxxn.io>"]
4authors = ["Blaž Hrastnik <blaz@mxxn.io>"]
5edition = "2018"
5edition = "2018"
6license = "MPL-2.0"
6license = "MPL-2.0"
@@ -14,7 +14,7 @@ include = ["src/**/*", "README.md"]
14embed_runtime = ["rust-embed"]
14embed_runtime = ["rust-embed"]
15
15
16[dependencies]
16[dependencies]
17−helix-syntax = { version = "0.2", path = "../helix-syntax" }
17+helix-syntax = { version = "0.3", path = "../helix-syntax" }
18
18
19ropey = "1.3"
19ropey = "1.3"
20smallvec = "1.4"
20smallvec = "1.4"
helix-core/src/syntax.rs+1−1
@@ -194,7 +194,7 @@ impl LanguageConfiguration {
194 let language = get_language_name(self.language_id).to_ascii_lowercase();
194 let language = get_language_name(self.language_id).to_ascii_lowercase();
195
195
196 let toml = load_runtime_file(&language, "indents.toml").ok()?;
196 let toml = load_runtime_file(&language, "indents.toml").ok()?;
197− toml::from_slice(&toml.as_bytes()).ok()
197+ toml::from_slice(toml.as_bytes()).ok()
198 })
198 })
199 .as_ref()
199 .as_ref()
200 }
200 }
helix-lsp/Cargo.toml+2−2
@@ -1,6 +1,6 @@
1[package]
1[package]
2name = "helix-lsp"
2name = "helix-lsp"
3−version = "0.2.0"
3+version = "0.3.0"
4authors = ["Blaž Hrastnik <blaz@mxxn.io>"]
4authors = ["Blaž Hrastnik <blaz@mxxn.io>"]
5edition = "2018"
5edition = "2018"
6license = "MPL-2.0"
6license = "MPL-2.0"
@@ -12,7 +12,7 @@ homepage = "https://helix-editor.com"
12# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
12# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
13
13
14[dependencies]
14[dependencies]
15−helix-core = { version = "0.2", path = "../helix-core" }
15+helix-core = { version = "0.3", path = "../helix-core" }
16
16
17anyhow = "1.0"
17anyhow = "1.0"
18futures-executor = "0.3"
18futures-executor = "0.3"
helix-syntax/Cargo.toml+1−1
@@ -1,6 +1,6 @@
1[package]
1[package]
2name = "helix-syntax"
2name = "helix-syntax"
3−version = "0.2.0"
3+version = "0.3.0"
4authors = ["Blaž Hrastnik <blaz@mxxn.io>"]
4authors = ["Blaž Hrastnik <blaz@mxxn.io>"]
5edition = "2018"
5edition = "2018"
6license = "MPL-2.0"
6license = "MPL-2.0"
helix-term/Cargo.toml+4−4
@@ -1,6 +1,6 @@
1[package]
1[package]
2name = "helix-term"
2name = "helix-term"
3−version = "0.2.0"
3+version = "0.3.0"
4description = "A post-modern text editor."
4description = "A post-modern text editor."
5authors = ["Blaž Hrastnik <blaz@mxxn.io>"]
5authors = ["Blaž Hrastnik <blaz@mxxn.io>"]
6edition = "2018"
6edition = "2018"
@@ -22,9 +22,9 @@ name = "hx"
22path = "src/main.rs"
22path = "src/main.rs"
23
23
24[dependencies]
24[dependencies]
25−helix-core = { version = "0.2", path = "../helix-core" }
25+helix-core = { version = "0.3", path = "../helix-core" }
26−helix-view = { version = "0.2", path = "../helix-view" }
26+helix-view = { version = "0.3", path = "../helix-view" }
27−helix-lsp = { version = "0.2", path = "../helix-lsp" }
27+helix-lsp = { version = "0.3", path = "../helix-lsp" }
28
28
29anyhow = "1"
29anyhow = "1"
30once_cell = "1.8"
30once_cell = "1.8"
helix-tui/Cargo.toml+3−3
@@ -1,6 +1,6 @@
1[package]
1[package]
2name = "helix-tui"
2name = "helix-tui"
3−version = "0.2.0"
3+version = "0.3.0"
4authors = ["Blaž Hrastnik <blaz@mxxn.io>"]
4authors = ["Blaž Hrastnik <blaz@mxxn.io>"]
5description = """
5description = """
6A library to build rich terminal user interfaces or dashboards
6A library to build rich terminal user interfaces or dashboards
@@ -22,5 +22,5 @@ unicode-segmentation = "1.2"
22unicode-width = "0.1"
22unicode-width = "0.1"
23crossterm = { version = "0.20", optional = true }
23crossterm = { version = "0.20", optional = true }
24serde = { version = "1", "optional" = true, features = ["derive"]}
24serde = { version = "1", "optional" = true, features = ["derive"]}
25−helix-view = { path = "../helix-view", features = ["term"] }
25+helix-view = { version = "0.3", path = "../helix-view", features = ["term"] }
26−helix-core = { version = "0.2", path = "../helix-core" }
26+helix-core = { version = "0.3", path = "../helix-core" }
helix-view/Cargo.toml+3−3
@@ -1,6 +1,6 @@
1[package]
1[package]
2name = "helix-view"
2name = "helix-view"
3−version = "0.2.0"
3+version = "0.3.0"
4authors = ["Blaž Hrastnik <blaz@mxxn.io>"]
4authors = ["Blaž Hrastnik <blaz@mxxn.io>"]
5edition = "2018"
5edition = "2018"
6license = "MPL-2.0"
6license = "MPL-2.0"
@@ -16,8 +16,8 @@ term = ["crossterm"]
16[dependencies]
16[dependencies]
17bitflags = "1.0"
17bitflags = "1.0"
18anyhow = "1"
18anyhow = "1"
19−helix-core = { version = "0.2", path = "../helix-core" }
19+helix-core = { version = "0.3", path = "../helix-core" }
20−helix-lsp = { version = "0.2", path = "../helix-lsp"}
20+helix-lsp = { version = "0.3", path = "../helix-lsp"}
21crossterm = { version = "0.20", optional = true }
21crossterm = { version = "0.20", optional = true }
22
22
23# Conversion traits
23# Conversion traits