diff --git a/crates/ruff_python_index/src/indexer.rs b/crates/ruff_python_index/src/indexer.rs index 11273f8131..00add310b6 100644 --- a/crates/ruff_python_index/src/indexer.rs +++ b/crates/ruff_python_index/src/indexer.rs @@ -17,10 +17,6 @@ pub struct Indexer { /// Stores the start offset of continuation lines. continuation_lines: Vec, - /// The range of all triple quoted strings in the source document. The ranges are sorted by their - /// [`TextRange::start`] position in increasing order. No two ranges are overlapping. - triple_quoted_string_ranges: Vec, - /// The range of all f-string in the source document. The ranges are sorted by their /// [`TextRange::start`] position in increasing order. No two ranges are overlapping. f_string_ranges: Vec, @@ -32,7 +28,6 @@ impl Indexer { let mut comment_ranges_builder = CommentRangesBuilder::default(); let mut continuation_lines = Vec::new(); - let mut triple_quoted_string_ranges = Vec::new(); let mut f_string_ranges = Vec::new(); // Token, end let mut prev_end = TextSize::default(); @@ -69,12 +64,6 @@ impl Indexer { Tok::Newline | Tok::NonLogicalNewline => { line_start = range.end(); } - Tok::String { - triple_quoted: true, - .. - } => { - triple_quoted_string_ranges.push(*range); - } Tok::String { kind: StringKind::FString | StringKind::RawFString, .. @@ -90,7 +79,6 @@ impl Indexer { Self { comment_ranges: comment_ranges_builder.finish(), continuation_lines, - triple_quoted_string_ranges, f_string_ranges, } } @@ -111,22 +99,6 @@ impl Indexer { self.continuation_lines.binary_search(&line_start).is_ok() } - /// Return the [`TextRange`] of the triple-quoted-string containing a given offset. - pub fn triple_quoted_string_range(&self, offset: TextSize) -> Option { - let Ok(string_range_index) = self.triple_quoted_string_ranges.binary_search_by(|range| { - if offset < range.start() { - std::cmp::Ordering::Greater - } else if range.contains(offset) { - std::cmp::Ordering::Equal - } else { - std::cmp::Ordering::Less - } - }) else { - return None; - }; - Some(self.triple_quoted_string_ranges[string_range_index]) - } - /// Return the [`TextRange`] of the f-string containing a given offset. pub fn f_string_range(&self, offset: TextSize) -> Option { let Ok(string_range_index) = self.f_string_ranges.binary_search_by(|range| { @@ -278,7 +250,7 @@ mod tests { use ruff_python_parser::lexer::LexResult; use ruff_python_parser::{lexer, Mode}; use ruff_source_file::Locator; - use ruff_text_size::{TextRange, TextSize}; + use ruff_text_size::TextSize; use crate::Indexer; @@ -362,56 +334,4 @@ import os ] ); } - - #[test] - fn string_ranges() { - let contents = r#""this is a single-quoted string""#; - let lxr: Vec = lexer::lex(contents, Mode::Module).collect(); - let indexer = Indexer::from_tokens(lxr.as_slice(), &Locator::new(contents)); - assert_eq!(indexer.triple_quoted_string_ranges, []); - - let contents = r#" - """ - this is a multiline string - """ - "#; - let lxr: Vec = lexer::lex(contents, Mode::Module).collect(); - let indexer = Indexer::from_tokens(lxr.as_slice(), &Locator::new(contents)); - assert_eq!( - indexer.triple_quoted_string_ranges, - [TextRange::new(TextSize::from(13), TextSize::from(71))] - ); - - let contents = r#" - """ - '''this is a multiline string with multiple delimiter types''' - """ - "#; - let lxr: Vec = lexer::lex(contents, Mode::Module).collect(); - let indexer = Indexer::from_tokens(lxr.as_slice(), &Locator::new(contents)); - assert_eq!( - indexer.triple_quoted_string_ranges, - [TextRange::new(TextSize::from(13), TextSize::from(107))] - ); - - let contents = r#" - """ - this is one - multiline string - """ - """ - and this is - another - """ - "#; - let lxr: Vec = lexer::lex(contents, Mode::Module).collect(); - let indexer = Indexer::from_tokens(lxr.as_slice(), &Locator::new(contents)); - assert_eq!( - indexer.triple_quoted_string_ranges, - &[ - TextRange::new(TextSize::from(13), TextSize::from(85)), - TextRange::new(TextSize::from(98), TextSize::from(161)) - ] - ); - } }