]> git.lizzy.rs Git - rust.git/commitdiff
Reduce duplication
authorAleksey Kladov <aleksey.kladov@gmail.com>
Sat, 9 Jan 2021 12:12:21 +0000 (15:12 +0300)
committerAleksey Kladov <aleksey.kladov@gmail.com>
Sat, 9 Jan 2021 12:12:21 +0000 (15:12 +0300)
crates/ide/src/syntax_highlighting/injector.rs

index 0513a9fd636a7b1387fada8287ac036e7f022b08..e8f17eb69f6087c8b7938e9fdad6ce12951df9a9 100644 (file)
@@ -17,17 +17,15 @@ impl Injector {
     pub(super) fn add(&mut self, text: &str, source_range: TextRange) {
         let len = TextSize::of(text);
         assert_eq!(len, source_range.len());
-
-        let target_range = TextRange::at(TextSize::of(&self.buf), len);
-        self.ranges
-            .push((target_range, Some(Delta::new(target_range.start(), source_range.start()))));
-        self.buf.push_str(text);
+        self.add_impl(text, Some(source_range.start()));
     }
     pub(super) fn add_unmapped(&mut self, text: &str) {
+        self.add_impl(text, None);
+    }
+    fn add_impl(&mut self, text: &str, source: Option<TextSize>) {
         let len = TextSize::of(text);
-
         let target_range = TextRange::at(TextSize::of(&self.buf), len);
-        self.ranges.push((target_range, None));
+        self.ranges.push((target_range, source.map(|it| Delta::new(target_range.start(), it))));
         self.buf.push_str(text);
     }