Avoid repeatedly loading config
This commit is contained in:
parent
8be2d1dcbf
commit
a640ab6b1f
2 changed files with 13 additions and 17 deletions
|
@ -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…
Add table
Reference in a new issue