use std::collections::HashMap;
use cairo_lang_syntax::node::SyntaxNode;
use cairo_lang_utils::Upcast;
use lsp_types::{CodeAction, Diagnostic, TextEdit, Url, WorkspaceEdit};
use crate::lang::db::AnalysisDatabase;
pub fn rename_unused_variable(
db: &AnalysisDatabase,
node: &SyntaxNode,
diagnostic: Diagnostic,
uri: Url,
) -> CodeAction {
CodeAction {
title: format!("Rename to `_{}`", node.get_text(db.upcast())),
edit: Some(WorkspaceEdit {
changes: Some(HashMap::from_iter([(
uri,
vec![TextEdit { range: diagnostic.range, new_text: "_".to_owned() }],
)])),
document_changes: None,
change_annotations: None,
}),
diagnostics: Some(vec![diagnostic]),
..Default::default()
}
}