style: Apply cargo fmt and clippy fixes across codebase
Automated formatting and lint corrections from parallel agent work: - cargo fmt: import reordering (alphabetical), line wrapping to respect max width, trailing comma normalization, destructuring alignment, function signature reformatting, match arm formatting - clippy (pedantic): Range::contains() instead of manual comparisons, i64::from() instead of `as i64` casts, .clamp() instead of .max().min() chains, let-chain refactors (if-let with &&), #[allow(clippy::too_many_arguments)] and #[allow(clippy::field_reassign_with_default)] where warranted - Removed trailing blank lines and extra whitespace No behavioral changes. All existing tests pass unmodified. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -3,6 +3,7 @@
|
||||
use console::style;
|
||||
use serde::Serialize;
|
||||
|
||||
use crate::Config;
|
||||
use crate::core::db::create_connection;
|
||||
use crate::core::error::{LoreError, Result};
|
||||
use crate::core::paths::get_db_path;
|
||||
@@ -10,10 +11,9 @@ use crate::core::project::resolve_project;
|
||||
use crate::core::time::{ms_to_iso, parse_since};
|
||||
use crate::documents::SourceType;
|
||||
use crate::search::{
|
||||
apply_filters, get_result_snippet, rank_rrf, search_fts, FtsQueryMode, PathFilter,
|
||||
SearchFilters,
|
||||
FtsQueryMode, PathFilter, SearchFilters, apply_filters, get_result_snippet, rank_rrf,
|
||||
search_fts,
|
||||
};
|
||||
use crate::Config;
|
||||
|
||||
/// Display-ready search result with all fields hydrated.
|
||||
#[derive(Debug, Serialize)]
|
||||
@@ -86,9 +86,7 @@ pub fn run_search(
|
||||
mode: "lexical".to_string(),
|
||||
total_results: 0,
|
||||
results: vec![],
|
||||
warnings: vec![
|
||||
"No documents indexed. Run 'lore generate-docs' first.".to_string()
|
||||
],
|
||||
warnings: vec!["No documents indexed. Run 'lore generate-docs' first.".to_string()],
|
||||
});
|
||||
}
|
||||
|
||||
@@ -151,9 +149,9 @@ pub fn run_search(
|
||||
// Adaptive recall: wider initial fetch when filters applied
|
||||
let requested = filters.clamp_limit();
|
||||
let top_k = if filters.has_any_filter() {
|
||||
(requested * 50).max(200).min(1500)
|
||||
(requested * 50).clamp(200, 1500)
|
||||
} else {
|
||||
(requested * 10).max(50).min(1500)
|
||||
(requested * 10).clamp(50, 1500)
|
||||
};
|
||||
|
||||
// FTS search
|
||||
@@ -190,10 +188,8 @@ pub fn run_search(
|
||||
let hydrated = hydrate_results(&conn, &filtered_ids)?;
|
||||
|
||||
// Build display results preserving filter order
|
||||
let rrf_map: std::collections::HashMap<i64, &crate::search::RrfResult> = ranked
|
||||
.iter()
|
||||
.map(|r| (r.document_id, r))
|
||||
.collect();
|
||||
let rrf_map: std::collections::HashMap<i64, &crate::search::RrfResult> =
|
||||
ranked.iter().map(|r| (r.document_id, r)).collect();
|
||||
|
||||
let mut results: Vec<SearchResultDisplay> = Vec::with_capacity(hydrated.len());
|
||||
for row in &hydrated {
|
||||
@@ -256,16 +252,13 @@ struct HydratedRow {
|
||||
///
|
||||
/// Uses json_each() to pass ranked IDs and preserve ordering via ORDER BY j.key.
|
||||
/// Labels and paths fetched via correlated json_group_array subqueries.
|
||||
fn hydrate_results(
|
||||
conn: &rusqlite::Connection,
|
||||
document_ids: &[i64],
|
||||
) -> Result<Vec<HydratedRow>> {
|
||||
fn hydrate_results(conn: &rusqlite::Connection, document_ids: &[i64]) -> Result<Vec<HydratedRow>> {
|
||||
if document_ids.is_empty() {
|
||||
return Ok(Vec::new());
|
||||
}
|
||||
|
||||
let ids_json = serde_json::to_string(document_ids)
|
||||
.map_err(|e| LoreError::Other(e.to_string()))?;
|
||||
let ids_json =
|
||||
serde_json::to_string(document_ids).map_err(|e| LoreError::Other(e.to_string()))?;
|
||||
|
||||
let sql = r#"
|
||||
SELECT d.id, d.source_type, d.title, d.url, d.author_username,
|
||||
@@ -325,10 +318,7 @@ pub fn print_search_results(response: &SearchResponse) {
|
||||
}
|
||||
|
||||
if response.results.is_empty() {
|
||||
println!(
|
||||
"No results found for '{}'",
|
||||
style(&response.query).bold()
|
||||
);
|
||||
println!("No results found for '{}'", style(&response.query).bold());
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -371,17 +361,11 @@ pub fn print_search_results(response: &SearchResponse) {
|
||||
);
|
||||
|
||||
if !result.labels.is_empty() {
|
||||
println!(
|
||||
" Labels: {}",
|
||||
result.labels.join(", ")
|
||||
);
|
||||
println!(" Labels: {}", result.labels.join(", "));
|
||||
}
|
||||
|
||||
// Strip HTML tags from snippet for terminal display
|
||||
let clean_snippet = result
|
||||
.snippet
|
||||
.replace("<mark>", "")
|
||||
.replace("</mark>", "");
|
||||
let clean_snippet = result.snippet.replace("<mark>", "").replace("</mark>", "");
|
||||
println!(" {}", style(clean_snippet).dim());
|
||||
|
||||
if let Some(ref explain) = result.explain {
|
||||
|
||||
Reference in New Issue
Block a user