A simple CPU rendered GUI IDE experience.
Diffstat (limited to 'src/text.rs')
-rw-r--r--src/text.rs65
1 files changed, 6 insertions, 59 deletions
diff --git a/src/text.rs b/src/text.rs
index 2f4d30a..00a2e65 100644
--- a/src/text.rs
+++ b/src/text.rs
@@ -478,50 +478,19 @@ impl TextArea {
}
Ok(())
}
- pub fn apply_snippet_tedit_raw(
- SnippetTextEdit { range,new_text, insert_text_format, .. }: &SnippetTextEdit,
- text: &'_ mut Rope,
- ) -> Option<()> {
- match insert_text_format {
- Some(lsp_types::InsertTextFormat::SNIPPET) => {
- let begin = text.l_position(range.start)?;
- let end = text.l_position(range.end)?;
- text.try_remove(begin..end).ok()?;
- let (_, tex) =
- crate::sni::Snippet::parse(&new_text, begin)?;
- text.try_insert(begin, &tex).ok()?;
- }
- _ => {
- let begin = text.l_position(range.start)?;
- let end = text.l_position(range.end)?;
- text.try_remove(begin..end).ok()?;
- text.try_insert(begin, &new_text).ok()?;
- }
- }
- Some(())
- }
pub fn apply_snippet_tedit(
&mut self,
- SnippetTextEdit { range,new_text, insert_text_format, .. }: &SnippetTextEdit,
+ SnippetTextEdit { text_edit, insert_text_format, .. }: &SnippetTextEdit,
) -> anyhow::Result<()> {
match insert_text_format {
- Some(lsp_types::InsertTextFormat::SNIPPET) => self
- .apply_snippet(&TextEdit {
- range: range.clone(),
- new_text: new_text.clone(),
- })
- .unwrap(),
+ Some(lsp_types::InsertTextFormat::SNIPPET) =>
+ self.apply_snippet(&text_edit).unwrap(),
_ => {
- self.apply_adjusting(&TextEdit {
- range: range.clone(),
- new_text: new_text.clone(),
- })
- .unwrap();
+ self.apply_adjusting(text_edit).unwrap();
}
}
Ok(())
}
-
pub fn apply_snippet(&mut self, x: &TextEdit) -> anyhow::Result<()> {
let begin = self
.l_position(x.range.start)
@@ -948,7 +917,7 @@ impl TextArea {
// arc_swap::Guard<Arc<Box<[SemanticToken]>>>,
// &SemanticTokensLegend,
// )>;
- if leg.is_none() || self.tokens.is_empty() {
+ if leg.is_none() {
self.tree_sit(path, &mut cells);
}
if let Some(tabstops) = &self.tabstops {
@@ -1110,28 +1079,6 @@ impl TextArea {
}
best
}
-
- pub(crate) fn apply_tedits_adjusting(
- &mut self,
- teds: &mut [TextEdit],
- ) -> Result<(), ()> {
- teds.sort_tedits();
- for ted in teds {
- self.apply_adjusting(ted)?;
- }
- Ok(())
- }
-
- pub(crate) fn apply_tedits(
- &mut self,
- teds: &mut [TextEdit],
- ) -> Result<(), ()> {
- teds.sort_tedits();
- for ted in teds {
- self.apply(ted)?;
- }
- Ok(())
- }
}
pub fn is_word(r: char) -> bool {
@@ -1730,7 +1677,7 @@ impl SortTedits for [TextEdit] {
}
impl SortTedits for [SnippetTextEdit] {
fn sort_tedits(&mut self) {
- self.as_mut().sort_by_key(|t| Reverse(t.range.start));
+ self.as_mut().sort_by_key(|t| Reverse(t.text_edit.range.start));
}
}