changeset 3801:2505bb1a0d34

Avoid repeatedly loading config
author Bla? Hrastnik <blaz@mxxn.io>
date Sat, 19 Nov 2022 15:41:03 +0900
parents 1af705747bfd
children 773c3caa8725
files helix-term/src/ui/editor.rs helix-term/src/ui/statusline.rs
diffstat 2 files changed, 13 insertions(+), 17 deletions(-) [+]
line wrap: on
line diff
--- a/helix-term/src/ui/editor.rs	Fri Nov 18 22:14:36 2022 -0600
+++ b/helix-term/src/ui/editor.rs	Sat Nov 19 15:41:03 2022 +0900
@@ -82,6 +82,7 @@
         let inner = view.inner_area(doc);
         let area = view.area;
         let theme = &editor.theme;
+        let config = editor.config();
 
         // DAP: Highlight current stack frame position
         let stack_frame = editor.debugger.as_ref().and_then(|debugger| {
@@ -117,10 +118,10 @@
             }
         }
 
-        if is_focused && editor.config().cursorline {
+        if is_focused && config.cursorline {
             Self::highlight_cursorline(doc, view, surface, theme);
         }
-        if is_focused && editor.config().cursorcolumn {
+        if is_focused && config.cursorcolumn {
             Self::highlight_cursorcolumn(doc, view, surface, theme);
         }
 
@@ -141,22 +142,14 @@
                     doc,
                     view,
                     theme,
-                    &editor.config().cursor_shape,
+                    &config.cursor_shape,
                 ),
             ))
         } else {
             Box::new(highlights)
         };
 
-        Self::render_text_highlights(
-            doc,
-            view.offset,
-            inner,
-            surface,
-            theme,
-            highlights,
-            &editor.config(),
-        );
+        Self::render_text_highlights(doc, view.offset, inner, surface, theme, highlights, &config);
         Self::render_gutter(editor, doc, view, view.area, surface, theme, is_focused);
         Self::render_rulers(editor, doc, view, inner, surface, theme);
 
--- a/helix-term/src/ui/statusline.rs	Fri Nov 18 22:14:36 2022 -0600
+++ b/helix-term/src/ui/statusline.rs	Sat Nov 19 15:41:03 2022 +0900
@@ -69,7 +69,9 @@
 
     // Left side of the status line.
 
-    let element_ids = &context.editor.config().statusline.left;
+    let config = context.editor.config();
+
+    let element_ids = &config.statusline.left;
     element_ids
         .iter()
         .map(|element_id| get_render_function(*element_id))
@@ -84,7 +86,7 @@
 
     // Right side of the status line.
 
-    let element_ids = &context.editor.config().statusline.right;
+    let element_ids = &config.statusline.right;
     element_ids
         .iter()
         .map(|element_id| get_render_function(*element_id))
@@ -102,7 +104,7 @@
 
     // Center of the status line.
 
-    let element_ids = &context.editor.config().statusline.center;
+    let element_ids = &config.statusline.center;
     element_ids
         .iter()
         .map(|element_id| get_render_function(*element_id))
@@ -160,7 +162,8 @@
     F: Fn(&mut RenderContext, String, Option<Style>) + Copy,
 {
     let visible = context.focused;
-    let modenames = &context.editor.config().statusline.mode;
+    let config = context.editor.config();
+    let modenames = &config.statusline.mode;
     write(
         context,
         format!(
@@ -176,7 +179,7 @@
                 "   "
             }
         ),
-        if visible && context.editor.config().color_modes {
+        if visible && config.color_modes {
             match context.editor.mode() {
                 Mode::Insert => Some(context.editor.theme.get("ui.statusline.insert")),
                 Mode::Select => Some(context.editor.theme.get("ui.statusline.select")),