aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--flake.lock68
-rw-r--r--flake.nix2
-rw-r--r--helix-core/Cargo.toml2
-rw-r--r--helix-lsp/Cargo.toml2
-rw-r--r--helix-syntax/Cargo.toml2
-rw-r--r--helix-term/Cargo.toml2
-rw-r--r--helix-term/src/ui/menu.rs32
-rw-r--r--helix-term/src/ui/picker.rs23
-rw-r--r--helix-tui/Cargo.toml2
-rw-r--r--helix-view/Cargo.toml2
-rw-r--r--helix-view/src/theme.rs1
11 files changed, 82 insertions, 56 deletions
diff --git a/flake.lock b/flake.lock
index 21e44c6e..2029d580 100644
--- a/flake.lock
+++ b/flake.lock
@@ -2,11 +2,11 @@
"nodes": {
"devshell": {
"locked": {
- "lastModified": 1630239564,
- "narHash": "sha256-lv7atkVE1+dFw0llmzONsbSIo5ao85KpNSRoFk4K8vU=",
+ "lastModified": 1632436039,
+ "narHash": "sha256-OtITeVWcKXn1SpVEnImpTGH91FycCskGBPqmlxiykv4=",
"owner": "numtide",
"repo": "devshell",
- "rev": "bd86d3a2bb28ce4d223315e0eca0d59fef8a0a73",
+ "rev": "7a7a7aa0adebe5488e5abaec688fd9ae0f8ea9c6",
"type": "github"
},
"original": {
@@ -15,6 +15,21 @@
"type": "github"
}
},
+ "flake-utils": {
+ "locked": {
+ "lastModified": 1623875721,
+ "narHash": "sha256-A8BU7bjS5GirpAUv4QA+QnJ4CceLHkcXdRp4xITDB0s=",
+ "owner": "numtide",
+ "repo": "flake-utils",
+ "rev": "f7e004a55b120c02ecb6219596820fcd32ca8772",
+ "type": "github"
+ },
+ "original": {
+ "owner": "numtide",
+ "repo": "flake-utils",
+ "type": "github"
+ }
+ },
"flakeCompat": {
"flake": false,
"locked": {
@@ -37,14 +52,16 @@
"nixpkgs": [
"nixpkgs"
],
- "rustOverlay": "rustOverlay"
+ "rustOverlay": [
+ "rust-overlay"
+ ]
},
"locked": {
- "lastModified": 1631254163,
- "narHash": "sha256-8+nOGLH1fXwWnNMTQq/Igk434BzZF5Vld45xLDLiNDQ=",
+ "lastModified": 1634796585,
+ "narHash": "sha256-CW4yx6omk5qCXUIwXHp/sztA7u0SpyLq9NEACPnkiz8=",
"owner": "yusdacra",
"repo": "nix-cargo-integration",
- "rev": "432d8504a32232e8d74710024d5bf5cc31767651",
+ "rev": "a84a2137a396f303978f1d48341e0390b0e16a8b",
"type": "github"
},
"original": {
@@ -55,11 +72,11 @@
},
"nixpkgs": {
"locked": {
- "lastModified": 1631206977,
- "narHash": "sha256-o3Dct9aJ5ht5UaTUBzXrRcK1RZt2eG5/xSlWJuUCVZM=",
+ "lastModified": 1634782485,
+ "narHash": "sha256-psfh4OQSokGXG0lpq3zKFbhOo3QfoeudRcaUnwMRkQo=",
"owner": "nixos",
"repo": "nixpkgs",
- "rev": "4f6d8095fd51954120a1d08ea5896fe42dc3923b",
+ "rev": "34ad3ffe08adfca17fcb4e4a47bb5f3b113687be",
"type": "github"
},
"original": {
@@ -69,21 +86,40 @@
"type": "github"
}
},
+ "nixpkgs_2": {
+ "locked": {
+ "lastModified": 1628186154,
+ "narHash": "sha256-r2d0wvywFnL9z4iptztdFMhaUIAaGzrSs7kSok0PgmE=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "06552b72346632b6943c8032e57e702ea12413bf",
+ "type": "github"
+ },
+ "original": {
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
"root": {
"inputs": {
"flakeCompat": "flakeCompat",
"nixCargoIntegration": "nixCargoIntegration",
- "nixpkgs": "nixpkgs"
+ "nixpkgs": "nixpkgs",
+ "rust-overlay": "rust-overlay"
}
},
- "rustOverlay": {
- "flake": false,
+ "rust-overlay": {
+ "inputs": {
+ "flake-utils": "flake-utils",
+ "nixpkgs": "nixpkgs_2"
+ },
"locked": {
- "lastModified": 1631240108,
- "narHash": "sha256-ffsTkAGyQLxu4E28nVcqwc8xFL/H1UEwrRw2ITI43Aw=",
+ "lastModified": 1634869268,
+ "narHash": "sha256-RVAcEFlFU3877Mm4q/nbXGEYTDg/wQNhzmXGMTV6wBs=",
"owner": "oxalica",
"repo": "rust-overlay",
- "rev": "3a29d5e726b855d9463eb5dfe04f1ec14d413289",
+ "rev": "c02c2d86354327317546501af001886fbb53d374",
"type": "github"
},
"original": {
diff --git a/flake.nix b/flake.nix
index bcc9383e..c1145268 100644
--- a/flake.nix
+++ b/flake.nix
@@ -3,9 +3,11 @@
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
+ rust-overlay.url = "github:oxalica/rust-overlay";
nixCargoIntegration = {
url = "github:yusdacra/nix-cargo-integration";
inputs.nixpkgs.follows = "nixpkgs";
+ inputs.rustOverlay.follows = "rust-overlay";
};
flakeCompat = {
url = "github:edolstra/flake-compat";
diff --git a/helix-core/Cargo.toml b/helix-core/Cargo.toml
index 51096453..93ebb133 100644
--- a/helix-core/Cargo.toml
+++ b/helix-core/Cargo.toml
@@ -2,7 +2,7 @@
name = "helix-core"
version = "0.4.1"
authors = ["Blaž Hrastnik <blaz@mxxn.io>"]
-edition = "2018"
+edition = "2021"
license = "MPL-2.0"
description = "Helix editor core editing primitives"
categories = ["editor"]
diff --git a/helix-lsp/Cargo.toml b/helix-lsp/Cargo.toml
index b4c8c139..455407ad 100644
--- a/helix-lsp/Cargo.toml
+++ b/helix-lsp/Cargo.toml
@@ -2,7 +2,7 @@
name = "helix-lsp"
version = "0.4.1"
authors = ["Blaž Hrastnik <blaz@mxxn.io>"]
-edition = "2018"
+edition = "2021"
license = "MPL-2.0"
description = "LSP client implementation for Helix project"
categories = ["editor"]
diff --git a/helix-syntax/Cargo.toml b/helix-syntax/Cargo.toml
index 9c2b8275..122fa460 100644
--- a/helix-syntax/Cargo.toml
+++ b/helix-syntax/Cargo.toml
@@ -2,7 +2,7 @@
name = "helix-syntax"
version = "0.4.1"
authors = ["Blaž Hrastnik <blaz@mxxn.io>"]
-edition = "2018"
+edition = "2021"
license = "MPL-2.0"
description = "Tree-sitter grammars support"
categories = ["editor"]
diff --git a/helix-term/Cargo.toml b/helix-term/Cargo.toml
index 244d3c13..78afab01 100644
--- a/helix-term/Cargo.toml
+++ b/helix-term/Cargo.toml
@@ -3,7 +3,7 @@ name = "helix-term"
version = "0.4.1"
description = "A post-modern text editor."
authors = ["Blaž Hrastnik <blaz@mxxn.io>"]
-edition = "2018"
+edition = "2021"
license = "MPL-2.0"
categories = ["editor", "command-line-utilities"]
repository = "https://github.com/helix-editor/helix"
diff --git a/helix-term/src/ui/menu.rs b/helix-term/src/ui/menu.rs
index 055593fd..1130089d 100644
--- a/helix-term/src/ui/menu.rs
+++ b/helix-term/src/ui/menu.rs
@@ -64,25 +64,23 @@ impl<T: Item> Menu<T> {
}
pub fn score(&mut self, pattern: &str) {
- // need to borrow via pattern match otherwise it complains about simultaneous borrow
- let Self {
- ref mut matcher,
- ref mut matches,
- ref options,
- ..
- } = *self;
-
// reuse the matches allocation
- matches.clear();
- matches.extend(options.iter().enumerate().filter_map(|(index, option)| {
- let text = option.filter_text();
- // TODO: using fuzzy_indices could give us the char idx for match highlighting
- matcher
- .fuzzy_match(text, pattern)
- .map(|score| (index, score))
- }));
+ self.matches.clear();
+ self.matches.extend(
+ self.options
+ .iter()
+ .enumerate()
+ .filter_map(|(index, option)| {
+ let text = option.filter_text();
+ // TODO: using fuzzy_indices could give us the char idx for match highlighting
+ self.matcher
+ .fuzzy_match(text, pattern)
+ .map(|score| (index, score))
+ }),
+ );
// matches.sort_unstable_by_key(|(_, score)| -score);
- matches.sort_unstable_by_key(|(index, _score)| options[*index].sort_text());
+ self.matches
+ .sort_unstable_by_key(|(index, _score)| self.options[*index].sort_text());
// reset cursor position
self.cursor = None;
diff --git a/helix-term/src/ui/picker.rs b/helix-term/src/ui/picker.rs
index 6f584178..1f08cf13 100644
--- a/helix-term/src/ui/picker.rs
+++ b/helix-term/src/ui/picker.rs
@@ -233,37 +233,28 @@ impl<T> Picker<T> {
}
pub fn score(&mut self) {
- // need to borrow via pattern match otherwise it complains about simultaneous borrow
- let Self {
- ref mut matcher,
- ref mut matches,
- ref filters,
- ref format_fn,
- ..
- } = *self;
-
let pattern = &self.prompt.line;
// reuse the matches allocation
- matches.clear();
- matches.extend(
+ self.matches.clear();
+ self.matches.extend(
self.options
.iter()
.enumerate()
.filter_map(|(index, option)| {
// filter options first before matching
- if !filters.is_empty() {
- filters.binary_search(&index).ok()?;
+ if !self.filters.is_empty() {
+ self.filters.binary_search(&index).ok()?;
}
// TODO: maybe using format_fn isn't the best idea here
- let text = (format_fn)(option);
+ let text = (self.format_fn)(option);
// TODO: using fuzzy_indices could give us the char idx for match highlighting
- matcher
+ self.matcher
.fuzzy_match(&text, pattern)
.map(|score| (index, score))
}),
);
- matches.sort_unstable_by_key(|(_, score)| -score);
+ self.matches.sort_unstable_by_key(|(_, score)| -score);
// reset cursor position
self.cursor = 0;
diff --git a/helix-tui/Cargo.toml b/helix-tui/Cargo.toml
index 2b42d299..f0c0d7e2 100644
--- a/helix-tui/Cargo.toml
+++ b/helix-tui/Cargo.toml
@@ -5,7 +5,7 @@ authors = ["Blaž Hrastnik <blaz@mxxn.io>"]
description = """
A library to build rich terminal user interfaces or dashboards
"""
-edition = "2018"
+edition = "2021"
license = "MPL-2.0"
categories = ["editor"]
repository = "https://github.com/helix-editor/helix"
diff --git a/helix-view/Cargo.toml b/helix-view/Cargo.toml
index fce3fdd1..ef09b964 100644
--- a/helix-view/Cargo.toml
+++ b/helix-view/Cargo.toml
@@ -2,7 +2,7 @@
name = "helix-view"
version = "0.4.1"
authors = ["Blaž Hrastnik <blaz@mxxn.io>"]
-edition = "2018"
+edition = "2021"
license = "MPL-2.0"
description = "UI abstractions for use in backends"
categories = ["editor"]
diff --git a/helix-view/src/theme.rs b/helix-view/src/theme.rs
index 9c33685b..757316bd 100644
--- a/helix-view/src/theme.rs
+++ b/helix-view/src/theme.rs
@@ -1,6 +1,5 @@
use std::{
collections::HashMap,
- convert::TryFrom,
path::{Path, PathBuf},
};