diff --git a/CHANGELOG.md b/CHANGELOG.md index c14a52e9..81898939 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [Unreleased] + +### Fixed + +- Fix regression when renaming commands ([#936](https://github.com/latex-lsp/texlab/issues/936)) + ## [5.10.0] - 2023-09-30 ### Added diff --git a/crates/rename/src/command.rs b/crates/rename/src/command.rs index 7ba0d49f..eacf4117 100644 --- a/crates/rename/src/command.rs +++ b/crates/rename/src/command.rs @@ -1,5 +1,5 @@ use base_db::{semantics::Span, DocumentData}; -use rowan::TextRange; +use rowan::{TextRange, TextSize}; use syntax::latex; use crate::{RenameBuilder, RenameParams}; @@ -11,7 +11,12 @@ pub(super) fn prepare_rename(params: &RenameParams) -> Option { .token_at_offset(params.offset) .find(|token| token.kind() == latex::COMMAND_NAME)?; - Some(Span::from(&token)) + let range = token.text_range(); + let text = token.text()[1..].into(); + Some(Span::new( + text, + TextRange::new(range.start() + TextSize::of('\\'), range.end()), + )) } pub(super) fn rename<'a>(builder: &mut RenameBuilder) -> Option<()> { @@ -24,7 +29,7 @@ pub(super) fn rename<'a>(builder: &mut RenameBuilder) -> Option<()> { let mut edits = Vec::new(); for command in &data.semantics.commands { - if command.text == &name.text[1..] { + if command.text == name.text { let range = TextRange::new(command.range.start(), command.range.end()); edits.push(range); }