From 137a845bef51f00917efe3e626f26c4e0a105f4e Mon Sep 17 00:00:00 2001 From: mitchell <70453897+667e-11@users.noreply.github.com> Date: Sat, 7 Apr 2018 15:50:49 -0400 Subject: Fixed stale styles on split view. --- init.lua | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/init.lua b/init.lua index 63263ee7..b5f46760 100644 --- a/init.lua +++ b/init.lua @@ -310,5 +310,18 @@ events.connect(events.VIEW_NEW, function() end -- Since BUFFER_NEW loads themes and settings on startup, only load them for -- subsequent views. - if #_VIEWS > 1 then load_settings() end + if #_VIEWS > 1 then + load_settings() + -- Refresh styles since the user may have altered style settings. + -- When load_settings() calls `buffer.property['style.default'] = ...`, the + -- LPeg lexer resets all styles to that default. However, load_settings() + -- may later call a user's `buffer.property['fontsize'] = ...`, which + -- 'style.default' references. Styles are now stale and need refreshing. + -- This is not an issue in BUFFER_NEW since a lexer is set immediately + -- afterwards, which refreshes styles. + -- Note: for some reason, calling SETDOCPOINTER before SETLEXERLANGUAGE is + -- not needed in this case. + local SETLEXERLANGUAGE = _SCINTILLA.properties.lexer_language[2] + buffer:private_lexer_call(SETLEXERLANGUAGE, buffer._lexer) + end end, 1) -- cgit v1.2.3