diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 000000000..8e83240f8 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,87 @@ +# 0.3.0 + +Another big release. + +Highlights: + +- Indentation is now automatically detected from file heuristics. ([#245](https://github.com/helix-editor/helix/pull/245)) +- Support for other line endings (CRLF). Significantly improved Windows support. ([#224](https://github.com/helix-editor/helix/pull/224)) +- Encodings other than UTF-8 are now supported! ([#228](https://github.com/helix-editor/helix/pull/228)) +- Key bindings can now be configured via a `config.toml` file ([#268](https://github.com/helix-editor/helix/pull/268)) +- 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)) +- System clipboard yank/paste is now supported! ([#310](https://github.com/helix-editor/helix/pull/310)) +- Surround commands were implemented ([#320](https://github.com/helix-editor/helix/pull/320)) + +Features: + +- File picker can now be repeatedly filtered ([#232](https://github.com/helix-editor/helix/pull/232)) +- LSP progress is now received and rendered as a spinner ([#234](https://github.com/helix-editor/helix/pull/234)) +- Current line number can now be themed ([#260](https://github.com/helix-editor/helix/pull/260)) +- Arrow keys & home/end now work in insert mode ([#305](https://github.com/helix-editor/helix/pull/305)) +- Cursors and selections can now be themed ([#325](https://github.com/helix-editor/helix/pull/325)) +- Language servers are now gracefully shut down before `hx` exits ([#287](https://github.com/helix-editor/helix/pull/287)) +- `:show-directory`/`:change-directory` ([#335](https://github.com/helix-editor/helix/pull/335)) +- File picker is now sorted by access time (before filtering) ([#336](https://github.com/helix-editor/helix/pull/336)) +- Code is being migrated from helix-term to helix-view (prerequisite for + alternative frontends) ([#366](https://github.com/helix-editor/helix/pull/366)) +- `x` and `X` merged + ([f41688d9](https://github.com/helix-editor/helix/commit/f41688d960ef89c29c4a51c872b8406fb8f81a85)) + +Fixes: + +- The IME popup is now correctly positioned ([#273](https://github.com/helix-editor/helix/pull/273)) +- A bunch of bugs regarding `o`/`O` behavior ([#281](https://github.com/helix-editor/helix/pull/281)) +- `~` expansion now works in file completion ([#284](https://github.com/helix-editor/helix/pull/284)) +- Several UI related overflow crashes ([#318](https://github.com/helix-editor/helix/pull/318)) +- Fix a test failure occuring only on `test --release` ([4f108ab1](https://github.com/helix-editor/helix/commit/4f108ab1b2197809506bd7305ad903a3525eabfa)) +- Prompts now support unicode input ([#295](https://github.com/helix-editor/helix/pull/295)) +- Completion documentation no longer overlaps the popup ([#322](https://github.com/helix-editor/helix/pull/322)) +- Fix a crash when trying to select `^` ([9c534614](https://github.com/helix-editor/helix/commit/9c53461429a3e72e3b1fb87d7ca490e168d7dee2)) +- Prompt completions are now paginated ([39dc09e6](https://github.com/helix-editor/helix/commit/39dc09e6c4172299bc79de4c1c52288d3f624bd7)) +- Goto did not work on Windows ([503ca112](https://github.com/helix-editor/helix/commit/503ca112ae57ebdf3ea323baf8940346204b46d2)) + +# 0.2.1 + +Includes a fix where wq/wqa could exit before file saving completed. + +# 0.2.0 + +Enough has changed to bump the version. We're skipping 0.1.x because +previously the CLI would always report version as 0.1.0, and we'd like +to distinguish it in bug reports.. + +- The `runtime/` directory is now properly detected on binary releases and + on cargo run. `~/.config/helix/runtime` can also be used. +- Registers can now be selected via " (for example `"ay`) +- Support for Nix files was added +- Movement is now fully tested and matches kakoune implementation +- A per-file LSP symbol picker was added to space+s +- Selection can be replaced with yanked text via R + +- `1g` now correctly goes to line 1 +- `ctrl-i` now correctly jumps backwards in history +- A small memory leak was fixed, where we tried to reuse tree-sitter + query cursors, but always allocated a new one +- Auto-formatting is now only on for certain languages +- The root directory is now provided in LSP initialization, fixing + certain language servers (typescript) +- LSP failing to start no longer panics +- Elixir language queries were fixed + +# 0.0.10 + +Keymaps: +- Add mappings to jump to diagnostics +- Add gt/gm/gb mappings to jump to top/middle/bottom of screen +- ^ and $ are now gh, gl + +- The runtime/ can now optionally be embedded in the binary +- Haskell syntax added +- Window mode (ctrl-w) added +- Show matching bracket (vim's matchbrackets) +- Themes now support style modifiers +- First user contributed theme +- Create a document if it doesn't exist yet on save +- Detect language on a new file on save + +- Panic fixes, lots of them diff --git a/Cargo.lock b/Cargo.lock index a1e29d2e1..ae00c69c4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -290,7 +290,7 @@ dependencies = [ [[package]] name = "helix-core" -version = "0.2.0" +version = "0.3.0" dependencies = [ "arc-swap", "etcetera", @@ -311,7 +311,7 @@ dependencies = [ [[package]] name = "helix-lsp" -version = "0.2.0" +version = "0.3.0" dependencies = [ "anyhow", "futures-executor", @@ -329,7 +329,7 @@ dependencies = [ [[package]] name = "helix-syntax" -version = "0.2.0" +version = "0.3.0" dependencies = [ "cc", "serde", @@ -339,7 +339,7 @@ dependencies = [ [[package]] name = "helix-term" -version = "0.2.0" +version = "0.3.0" dependencies = [ "anyhow", "chrono", @@ -365,7 +365,7 @@ dependencies = [ [[package]] name = "helix-tui" -version = "0.2.0" +version = "0.3.0" dependencies = [ "bitflags", "cassowary", @@ -379,7 +379,7 @@ dependencies = [ [[package]] name = "helix-view" -version = "0.2.0" +version = "0.3.0" dependencies = [ "anyhow", "bitflags", diff --git a/helix-core/Cargo.toml b/helix-core/Cargo.toml index bab062e13..726e90ccc 100644 --- a/helix-core/Cargo.toml +++ b/helix-core/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "helix-core" -version = "0.2.0" +version = "0.3.0" authors = ["Blaž Hrastnik "] edition = "2018" license = "MPL-2.0" @@ -14,7 +14,7 @@ include = ["src/**/*", "README.md"] embed_runtime = ["rust-embed"] [dependencies] -helix-syntax = { version = "0.2", path = "../helix-syntax" } +helix-syntax = { version = "0.3", path = "../helix-syntax" } ropey = "1.3" smallvec = "1.4" diff --git a/helix-core/src/syntax.rs b/helix-core/src/syntax.rs index 63ca424e1..42c275d3a 100644 --- a/helix-core/src/syntax.rs +++ b/helix-core/src/syntax.rs @@ -194,7 +194,7 @@ impl LanguageConfiguration { let language = get_language_name(self.language_id).to_ascii_lowercase(); let toml = load_runtime_file(&language, "indents.toml").ok()?; - toml::from_slice(&toml.as_bytes()).ok() + toml::from_slice(toml.as_bytes()).ok() }) .as_ref() } diff --git a/helix-lsp/Cargo.toml b/helix-lsp/Cargo.toml index 800256980..8d43af694 100644 --- a/helix-lsp/Cargo.toml +++ b/helix-lsp/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "helix-lsp" -version = "0.2.0" +version = "0.3.0" authors = ["Blaž Hrastnik "] edition = "2018" license = "MPL-2.0" @@ -12,7 +12,7 @@ homepage = "https://helix-editor.com" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -helix-core = { version = "0.2", path = "../helix-core" } +helix-core = { version = "0.3", path = "../helix-core" } anyhow = "1.0" futures-executor = "0.3" diff --git a/helix-syntax/Cargo.toml b/helix-syntax/Cargo.toml index 3c71fc34f..140e3d24c 100644 --- a/helix-syntax/Cargo.toml +++ b/helix-syntax/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "helix-syntax" -version = "0.2.0" +version = "0.3.0" authors = ["Blaž Hrastnik "] edition = "2018" license = "MPL-2.0" diff --git a/helix-term/Cargo.toml b/helix-term/Cargo.toml index 2334c34af..8ae25ad0d 100644 --- a/helix-term/Cargo.toml +++ b/helix-term/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "helix-term" -version = "0.2.0" +version = "0.3.0" description = "A post-modern text editor." authors = ["Blaž Hrastnik "] edition = "2018" @@ -22,9 +22,9 @@ name = "hx" path = "src/main.rs" [dependencies] -helix-core = { version = "0.2", path = "../helix-core" } -helix-view = { version = "0.2", path = "../helix-view" } -helix-lsp = { version = "0.2", path = "../helix-lsp" } +helix-core = { version = "0.3", path = "../helix-core" } +helix-view = { version = "0.3", path = "../helix-view" } +helix-lsp = { version = "0.3", path = "../helix-lsp" } anyhow = "1" once_cell = "1.8" diff --git a/helix-tui/Cargo.toml b/helix-tui/Cargo.toml index bd0c26976..dde2eafe3 100644 --- a/helix-tui/Cargo.toml +++ b/helix-tui/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "helix-tui" -version = "0.2.0" +version = "0.3.0" authors = ["Blaž Hrastnik "] description = """ A library to build rich terminal user interfaces or dashboards @@ -22,5 +22,5 @@ unicode-segmentation = "1.2" unicode-width = "0.1" crossterm = { version = "0.20", optional = true } serde = { version = "1", "optional" = true, features = ["derive"]} -helix-view = { path = "../helix-view", features = ["term"] } -helix-core = { version = "0.2", path = "../helix-core" } +helix-view = { version = "0.3", path = "../helix-view", features = ["term"] } +helix-core = { version = "0.3", path = "../helix-core" } diff --git a/helix-view/Cargo.toml b/helix-view/Cargo.toml index 9c3c23ff4..b43799527 100644 --- a/helix-view/Cargo.toml +++ b/helix-view/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "helix-view" -version = "0.2.0" +version = "0.3.0" authors = ["Blaž Hrastnik "] edition = "2018" license = "MPL-2.0" @@ -16,8 +16,8 @@ term = ["crossterm"] [dependencies] bitflags = "1.0" anyhow = "1" -helix-core = { version = "0.2", path = "../helix-core" } -helix-lsp = { version = "0.2", path = "../helix-lsp"} +helix-core = { version = "0.3", path = "../helix-core" } +helix-lsp = { version = "0.3", path = "../helix-lsp"} crossterm = { version = "0.20", optional = true } # Conversion traits