Avoid repeatedly loading config

pull/4819/head
Blaž Hrastnik 2 years ago
parent 8be2d1dcbf
commit a640ab6b1f
No known key found for this signature in database
GPG Key ID: 1238B9C4AD889640

@ -82,6 +82,7 @@ impl EditorView {
let inner = view.inner_area(doc); let inner = view.inner_area(doc);
let area = view.area; let area = view.area;
let theme = &editor.theme; let theme = &editor.theme;
let config = editor.config();
// DAP: Highlight current stack frame position // DAP: Highlight current stack frame position
let stack_frame = editor.debugger.as_ref().and_then(|debugger| { let stack_frame = editor.debugger.as_ref().and_then(|debugger| {
@ -117,10 +118,10 @@ impl EditorView {
} }
} }
if is_focused && editor.config().cursorline { if is_focused && config.cursorline {
Self::highlight_cursorline(doc, view, surface, theme); 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); Self::highlight_cursorcolumn(doc, view, surface, theme);
} }
@ -141,22 +142,14 @@ impl EditorView {
doc, doc,
view, view,
theme, theme,
&editor.config().cursor_shape, &config.cursor_shape,
), ),
)) ))
} else { } else {
Box::new(highlights) Box::new(highlights)
}; };
Self::render_text_highlights( Self::render_text_highlights(doc, view.offset, inner, surface, theme, highlights, &config);
doc,
view.offset,
inner,
surface,
theme,
highlights,
&editor.config(),
);
Self::render_gutter(editor, doc, view, view.area, surface, theme, is_focused); Self::render_gutter(editor, doc, view, view.area, surface, theme, is_focused);
Self::render_rulers(editor, doc, view, inner, surface, theme); Self::render_rulers(editor, doc, view, inner, surface, theme);

@ -69,7 +69,9 @@ pub fn render(context: &mut RenderContext, viewport: Rect, surface: &mut Surface
// Left side of the status line. // 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 element_ids
.iter() .iter()
.map(|element_id| get_render_function(*element_id)) .map(|element_id| get_render_function(*element_id))
@ -84,7 +86,7 @@ pub fn render(context: &mut RenderContext, viewport: Rect, surface: &mut Surface
// Right side of the status line. // Right side of the status line.
let element_ids = &context.editor.config().statusline.right; let element_ids = &config.statusline.right;
element_ids element_ids
.iter() .iter()
.map(|element_id| get_render_function(*element_id)) .map(|element_id| get_render_function(*element_id))
@ -102,7 +104,7 @@ pub fn render(context: &mut RenderContext, viewport: Rect, surface: &mut Surface
// Center of the status line. // Center of the status line.
let element_ids = &context.editor.config().statusline.center; let element_ids = &config.statusline.center;
element_ids element_ids
.iter() .iter()
.map(|element_id| get_render_function(*element_id)) .map(|element_id| get_render_function(*element_id))
@ -160,7 +162,8 @@ where
F: Fn(&mut RenderContext, String, Option<Style>) + Copy, F: Fn(&mut RenderContext, String, Option<Style>) + Copy,
{ {
let visible = context.focused; let visible = context.focused;
let modenames = &context.editor.config().statusline.mode; let config = context.editor.config();
let modenames = &config.statusline.mode;
write( write(
context, context,
format!( format!(
@ -176,7 +179,7 @@ where
" " " "
} }
), ),
if visible && context.editor.config().color_modes { if visible && config.color_modes {
match context.editor.mode() { match context.editor.mode() {
Mode::Insert => Some(context.editor.theme.get("ui.statusline.insert")), Mode::Insert => Some(context.editor.theme.get("ui.statusline.insert")),
Mode::Select => Some(context.editor.theme.get("ui.statusline.select")), Mode::Select => Some(context.editor.theme.get("ui.statusline.select")),

Loading…
Cancel
Save