Skip to content

Commit

Permalink
add conditional noop render back
Browse files Browse the repository at this point in the history
It makes it much slower without stubbing this out
  • Loading branch information
dead10ck committed Oct 19, 2022
1 parent 69c9e44 commit b8a07f7
Show file tree
Hide file tree
Showing 4 changed files with 9 additions and 27 deletions.
1 change: 0 additions & 1 deletion helix-core/src/auto_pairs.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ use std::collections::HashMap;
use smallvec::SmallVec;

// Heavily based on https://github.com/codemirror/closebrackets/

pub const DEFAULT_PAIRS: &[(char, char)] = &[
('(', ')'),
('{', '}'),
Expand Down
4 changes: 4 additions & 0 deletions helix-term/src/application.rs
Original file line number Diff line number Diff line change
Expand Up @@ -253,6 +253,10 @@ impl Application {
Ok(app)
}

#[cfg(feature = "integration")]
fn render(&mut self) {}

#[cfg(not(feature = "integration"))]
fn render(&mut self) {
let compositor = &mut self.compositor;

Expand Down
14 changes: 2 additions & 12 deletions helix-term/src/commands.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2504,13 +2504,6 @@ fn insert_at_line_end(cx: &mut Context) {
doc.set_selection(view.id, selection);
}

/// Sometimes when applying formatting changes we want to mark the buffer as unmodified, for
/// example because we just applied the same changes while saving.
enum Modified {
SetUnmodified,
LeaveModified,
}

// Creates an LspCallback that waits for formatting changes to be computed. When they're done,
// it applies them, but only if the doc hasn't changed.
//
Expand All @@ -2519,7 +2512,6 @@ enum Modified {
async fn make_format_callback(
doc_id: DocumentId,
doc_version: i32,
modified: Modified,
format: impl Future<Output = Result<Transaction, FormatterError>> + Send + 'static,
) -> anyhow::Result<job::Callback> {
let format = format.await?;
Expand All @@ -2536,17 +2528,15 @@ async fn make_format_callback(
doc.append_changes_to_history(view.id);
doc.detect_indent_and_line_ending();
view.ensure_cursor_in_view(doc, scrolloff);
if let Modified::SetUnmodified = modified {
doc.reset_modified();
}
} else {
log::info!("discarded formatting changes because the document changed");
}
});

Ok(call)
}

#[derive(PartialEq)]
#[derive(PartialEq, Eq)]
pub enum Open {
Below,
Above,
Expand Down
17 changes: 3 additions & 14 deletions helix-term/src/commands/typed.rs
Original file line number Diff line number Diff line change
Expand Up @@ -273,12 +273,7 @@ fn write_impl(
let fmt = if auto_format {
doc.auto_format().map(|fmt| {
let shared = fmt.shared();
let callback = make_format_callback(
doc.id(),
doc.version(),
Modified::SetUnmodified,
shared.clone(),
);
let callback = make_format_callback(doc.id(), doc.version(), shared.clone());
jobs.callback(callback);
shared
})
Expand Down Expand Up @@ -346,8 +341,7 @@ fn format(

let doc = doc!(cx.editor);
if let Some(format) = doc.format() {
let callback =
make_format_callback(doc.id(), doc.version(), Modified::LeaveModified, format);
let callback = make_format_callback(doc.id(), doc.version(), format);
cx.jobs.callback(callback);
}

Expand Down Expand Up @@ -593,12 +587,7 @@ fn write_all_impl(
let fmt = if auto_format {
doc.auto_format().map(|fmt| {
let shared = fmt.shared();
let callback = make_format_callback(
doc.id(),
doc.version(),
Modified::SetUnmodified,
shared.clone(),
);
let callback = make_format_callback(doc.id(), doc.version(), shared.clone());
jobs.callback(callback);
shared
})
Expand Down

0 comments on commit b8a07f7

Please sign in to comment.