From bb64edf8babe617ca6219e53520ce87a2dd00769 Mon Sep 17 00:00:00 2001
From: Aleksey Kladov <aleksey.kladov@gmail.com>
Date: Thu, 6 Sep 2018 00:59:07 +0300
Subject: introduce variable

---
 crates/libanalysis/src/imp.rs | 4 +++-
 crates/libanalysis/src/lib.rs | 4 ++--
 2 files changed, 5 insertions(+), 3 deletions(-)

(limited to 'crates/libanalysis')

diff --git a/crates/libanalysis/src/imp.rs b/crates/libanalysis/src/imp.rs
index e3ccffbf0..47b0d79ff 100644
--- a/crates/libanalysis/src/imp.rs
+++ b/crates/libanalysis/src/imp.rs
@@ -256,12 +256,14 @@ impl AnalysisImpl {
         res
     }
 
-    pub fn assists(&self, file_id: FileId, offset: TextUnit) -> Vec<SourceChange> {
+    pub fn assists(&self, file_id: FileId, range: TextRange) -> Vec<SourceChange> {
         let file = self.file_syntax(file_id);
+        let offset = range.start();
         let actions = vec![
             ("flip comma", libeditor::flip_comma(&file, offset).map(|f| f())),
             ("add `#[derive]`", libeditor::add_derive(&file, offset).map(|f| f())),
             ("add impl", libeditor::add_impl(&file, offset).map(|f| f())),
+            ("introduce variable", libeditor::introduce_variable(&file, range).map(|f| f())),
         ];
         actions.into_iter()
             .filter_map(|(name, local_edit)| {
diff --git a/crates/libanalysis/src/lib.rs b/crates/libanalysis/src/lib.rs
index a8152939b..4e63813f9 100644
--- a/crates/libanalysis/src/lib.rs
+++ b/crates/libanalysis/src/lib.rs
@@ -209,8 +209,8 @@ impl Analysis {
         let file = self.file_syntax(file_id);
         libeditor::scope_completion(&file, offset)
     }
-    pub fn assists(&self, file_id: FileId, offset: TextUnit) -> Vec<SourceChange> {
-        self.imp.assists(file_id, offset)
+    pub fn assists(&self, file_id: FileId, range: TextRange) -> Vec<SourceChange> {
+        self.imp.assists(file_id, range)
     }
     pub fn diagnostics(&self, file_id: FileId) -> Vec<Diagnostic> {
         self.imp.diagnostics(file_id)
-- 
cgit v1.2.3