on master help sign in
Avoid repeatedly loading config
a640ab6Blaž Hrastnik
helix-term/src/ui/editor.rs+5−12
@@ -82,6 +82,7 @@ impl EditorView {
82 let inner = view.inner_area(doc);
82 let inner = view.inner_area(doc);
83 let area = view.area;
83 let area = view.area;
84 let theme = &editor.theme;
84 let theme = &editor.theme;
85+ let config = editor.config();
85
86
86 // DAP: Highlight current stack frame position
87 // DAP: Highlight current stack frame position
87 let stack_frame = editor.debugger.as_ref().and_then(|debugger| {
88 let stack_frame = editor.debugger.as_ref().and_then(|debugger| {
@@ -117,10 +118,10 @@ impl EditorView {
117 }
118 }
118 }
119 }
119
120
120− if is_focused && editor.config().cursorline {
121+ if is_focused && config.cursorline {
121 Self::highlight_cursorline(doc, view, surface, theme);
122 Self::highlight_cursorline(doc, view, surface, theme);
122 }
123 }
123− if is_focused && editor.config().cursorcolumn {
124+ if is_focused && config.cursorcolumn {
124 Self::highlight_cursorcolumn(doc, view, surface, theme);
125 Self::highlight_cursorcolumn(doc, view, surface, theme);
125 }
126 }
126
127
@@ -141,22 +142,14 @@ impl EditorView {
141 doc,
142 doc,
142 view,
143 view,
143 theme,
144 theme,
144− &editor.config().cursor_shape,
145+ &config.cursor_shape,
145 ),
146 ),
146 ))
147 ))
147 } else {
148 } else {
148 Box::new(highlights)
149 Box::new(highlights)
149 };
150 };
150
151
151− Self::render_text_highlights(
152+ Self::render_text_highlights(doc, view.offset, inner, surface, theme, highlights, &config);
152− doc,
153− view.offset,
154− inner,
155− surface,
156− theme,
157− highlights,
158− &editor.config(),
159− );
160 Self::render_gutter(editor, doc, view, view.area, surface, theme, is_focused);
153 Self::render_gutter(editor, doc, view, view.area, surface, theme, is_focused);
161 Self::render_rulers(editor, doc, view, inner, surface, theme);
154 Self::render_rulers(editor, doc, view, inner, surface, theme);
162
155
helix-term/src/ui/statusline.rs+8−5
@@ -69,7 +69,9 @@ pub fn render(context: &mut RenderContext, viewport: Rect, surface: &mut Surface
69
69
70 // Left side of the status line.
70 // Left side of the status line.
71
71
72− let element_ids = &context.editor.config().statusline.left;
72+ let config = context.editor.config();
73+
74+ let element_ids = &config.statusline.left;
73 element_ids
75 element_ids
74 .iter()
76 .iter()
75 .map(|element_id| get_render_function(*element_id))
77 .map(|element_id| get_render_function(*element_id))
@@ -84,7 +86,7 @@ pub fn render(context: &mut RenderContext, viewport: Rect, surface: &mut Surface
84
86
85 // Right side of the status line.
87 // Right side of the status line.
86
88
87− let element_ids = &context.editor.config().statusline.right;
89+ let element_ids = &config.statusline.right;
88 element_ids
90 element_ids
89 .iter()
91 .iter()
90 .map(|element_id| get_render_function(*element_id))
92 .map(|element_id| get_render_function(*element_id))
@@ -102,7 +104,7 @@ pub fn render(context: &mut RenderContext, viewport: Rect, surface: &mut Surface
102
104
103 // Center of the status line.
105 // Center of the status line.
104
106
105− let element_ids = &context.editor.config().statusline.center;
107+ let element_ids = &config.statusline.center;
106 element_ids
108 element_ids
107 .iter()
109 .iter()
108 .map(|element_id| get_render_function(*element_id))
110 .map(|element_id| get_render_function(*element_id))
@@ -160,7 +162,8 @@ where
160 F: Fn(&mut RenderContext, String, Option<Style>) + Copy,
162 F: Fn(&mut RenderContext, String, Option<Style>) + Copy,
161{
163{
162 let visible = context.focused;
164 let visible = context.focused;
163− let modenames = &context.editor.config().statusline.mode;
165+ let config = context.editor.config();
166+ let modenames = &config.statusline.mode;
164 write(
167 write(
165 context,
168 context,
166 format!(
169 format!(
@@ -176,7 +179,7 @@ where
176 " "
179 " "
177 }
180 }
178 ),
181 ),
179− if visible && context.editor.config().color_modes {
182+ if visible && config.color_modes {
180 match context.editor.mode() {
183 match context.editor.mode() {
181 Mode::Insert => Some(context.editor.theme.get("ui.statusline.insert")),
184 Mode::Insert => Some(context.editor.theme.get("ui.statusline.insert")),
182 Mode::Select => Some(context.editor.theme.get("ui.statusline.select")),
185 Mode::Select => Some(context.editor.theme.get("ui.statusline.select")),