fix(clippy): resolve lints for Rust 1.96 (io_other_error, derivable_impls, manual_contains, unnecessary_sort_by, while_let_loop)

This commit is contained in:
gffranco
2026-06-24 01:01:51 +00:00
parent 96970405a0
commit 5a21df335c
13 changed files with 25 additions and 46 deletions
+1 -1
View File
@@ -4,7 +4,7 @@ name: Release
# (e.g. 0.4.0). The `prepare` job stamps that version into every hardcoded
# spot (scripts/set-version.sh), commits "chore(release): X.Y.Z", and pushes
# the vX.Y.Z tag. The build matrix + release job then run off that tag. No
# more hand-editing versions across Cargo.toml/plugin/nuwiki.vim.
# more hand-editing versions across Cargo.toml and individual crate manifests.
on:
workflow_dispatch:
inputs:
Generated
+3 -3
View File
@@ -376,11 +376,11 @@ checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79"
[[package]]
name = "nuwiki-core"
version = "0.3.0"
version = "0.4.1"
[[package]]
name = "nuwiki-ls"
version = "0.3.0"
version = "0.4.1"
dependencies = [
"nuwiki-lsp",
"tokio",
@@ -388,7 +388,7 @@ dependencies = [
[[package]]
name = "nuwiki-lsp"
version = "0.3.0"
version = "0.4.1"
dependencies = [
"async-trait",
"dashmap 6.1.0",
+1 -1
View File
@@ -3,7 +3,7 @@ resolver = "2"
members = ["crates/*"]
[workspace.package]
version = "0.3.0"
version = "0.4.1"
edition = "2021"
rust-version = "1.83"
authors = ["Gabriel Fróes Franco <gffranco@gmail.com>"]
+4 -9
View File
@@ -120,20 +120,15 @@ pub struct DefinitionItemNode {
pub definitions: Vec<Vec<InlineNode>>,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
pub enum TableAlign {
#[default]
Default,
Left,
Right,
Center,
}
impl Default for TableAlign {
fn default() -> Self {
Self::Default
}
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct TableNode {
pub span: Span,
@@ -170,9 +165,9 @@ pub struct CommentNode {
///
/// - `File` — line 0 or 1 of the document; tags the entire page.
/// - `Heading(i)` — within two lines below the i-th `HeadingNode` in the
/// document's `children`; tags that heading.
/// document's `children`; tags that heading.
/// - `Standalone` — anywhere else; the tag is its own anchor on the source
/// line.
/// line.
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub enum TagScope {
File,
+2 -7
View File
@@ -9,8 +9,9 @@ use std::collections::HashMap;
use super::inline::InlineNode;
use super::span::Span;
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Default)]
pub enum LinkKind {
#[default]
Wiki,
Interwiki,
Diary,
@@ -31,12 +32,6 @@ pub struct LinkTarget {
pub is_directory: bool,
}
impl Default for LinkKind {
fn default() -> Self {
Self::Wiki
}
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct WikiLinkNode {
pub span: Span,
+1 -1
View File
@@ -39,7 +39,7 @@ impl SyntaxRegistry {
pub fn detect_from_extension(&self, ext: &str) -> Option<&dyn SyntaxPlugin> {
self.plugins
.iter()
.find(|p| p.file_extensions().iter().any(|e| *e == ext))
.find(|p| p.file_extensions().contains(&ext))
.map(|p| p.as_ref())
}
@@ -547,8 +547,7 @@ impl<'a> ParseState<'a> {
// Text). We accept either as a continuation when the implied
// indent is `> level`.
let continuation_threshold = level + 1;
loop {
let Some(first) = self.peek() else { break };
while let Some(first) = self.peek() {
let mut consume_first = false;
let is_continuation = match &first.kind {
K::Text(s) => leading_ws_count(s) >= continuation_threshold,
@@ -561,7 +560,7 @@ impl<'a> ParseState<'a> {
consume_first = true;
true
} else {
false
break;
}
}
_ => false,
+1 -1
View File
@@ -17,5 +17,5 @@ name = "nuwiki-ls"
path = "src/main.rs"
[dependencies]
nuwiki-lsp = { path = "../nuwiki-lsp", version = "0.3.0" }
nuwiki-lsp = { path = "../nuwiki-lsp", version = "0.4.1" }
tokio = { version = "1", features = ["macros", "rt-multi-thread", "io-std"] }
+1 -1
View File
@@ -13,7 +13,7 @@ homepage.workspace = true
workspace = true
[dependencies]
nuwiki-core = { path = "../nuwiki-core", version = "0.3.0" }
nuwiki-core = { path = "../nuwiki-core", version = "0.4.1" }
tower-lsp = "0.20"
tokio = { version = "1", features = ["macros", "rt-multi-thread", "io-std", "sync", "fs"] }
dashmap = "6"
+5 -11
View File
@@ -3762,17 +3762,11 @@ pub mod export_ops {
.arg("-c")
.arg(&cmd)
.status()
.map_err(|e| {
std::io::Error::new(
std::io::ErrorKind::Other,
format!("custom_wiki2html spawn failed: {e}"),
)
})?;
.map_err(|e| std::io::Error::other(format!("custom_wiki2html spawn failed: {e}")))?;
if !status.success() {
return Err(std::io::Error::new(
std::io::ErrorKind::Other,
format!("custom_wiki2html exited with {status}"),
));
return Err(std::io::Error::other(format!(
"custom_wiki2html exited with {status}"
)));
}
Ok(PageExport {
page: name.to_string(),
@@ -3821,7 +3815,7 @@ pub mod export_ops {
/// rendered-HTML body per entry.
pub fn write_rss(cfg: &WikiConfig, entries: &[DiaryEntry]) -> std::io::Result<PathBuf> {
let mut sorted: Vec<&DiaryEntry> = entries.iter().collect();
sorted.sort_by(|a, b| b.date.cmp(&a.date));
sorted.sort_by_key(|a| std::cmp::Reverse(a.date));
let cap = if cfg.html.rss_max_items == 0 {
usize::MAX
} else {
+1 -1
View File
@@ -47,7 +47,7 @@ pub fn list_entries(index: &WorkspaceIndex) -> Vec<DiaryEntry> {
})
})
.collect();
out.sort_by(|a, b| a.date.cmp(&b.date));
out.sort_by_key(|a| a.date);
out
}
+1 -1
View File
@@ -406,7 +406,7 @@ impl LanguageServer for Backend {
.general
.as_ref()
.and_then(|g| g.position_encodings.as_ref())
.map(|encs| encs.iter().any(|e| *e == PositionEncodingKind::UTF8))
.map(|encs| encs.contains(&PositionEncodingKind::UTF8))
.unwrap_or(false);
self.use_utf8.store(supports_utf8, Ordering::Relaxed);
+2 -6
View File
@@ -11,8 +11,7 @@
# 1. Cargo.toml — [workspace.package] version
# 2. crates/nuwiki-lsp/Cargo.toml — nuwiki-core path-dep version pin
# 3. crates/nuwiki-ls/Cargo.toml — nuwiki-lsp path-dep version pin
# 4. plugin/nuwiki.vim — g:nuwiki_version (the Lua client reads it too)
# 5. Cargo.lock — the version of our three own crates
# 4. Cargo.lock — the version of our three own crates
#
# Cargo.lock is patched directly (awk) so this needs no cargo/toolchain —
# the only thing that changes for our crates is their version string.
@@ -37,10 +36,7 @@ sed -i -E "s|(nuwiki-core = \{ path = \"\.\./nuwiki-core\", version = )\"[^\"]*\
sed -i -E "s|(nuwiki-lsp = \{ path = \"\.\./nuwiki-lsp\", version = )\"[^\"]*\"|\1\"$ver\"|" \
crates/nuwiki-ls/Cargo.toml
# 4. VimL client version global (the Lua client reads this same g: var).
sed -i -E "s/(let g:nuwiki_version = ')[^']*(')/\1$ver\2/" plugin/nuwiki.vim
# 5. Cargo.lock entries for our own crates. Each [[package]] block lists the
# 4. Cargo.lock entries for our own crates. Each [[package]] block lists the
# name line immediately followed by the version line; rewrite only those.
for crate in nuwiki-core nuwiki-lsp nuwiki-ls; do
awk -v c="$crate" -v v="$ver" '