@@ -5,12 +5,9 @@ local MarkupHighlighter = nil
55local valid_bufnrs = {}
66
77--- @param bufnr number
8- --- @param first_line number
9- --- @param last_line number
10- local function apply_highlights (bufnr , first_line , last_line , tick_changed )
11- local changed_lines = vim .api .nvim_buf_get_lines (bufnr , first_line , last_line , false )
12- HideLeadingStars .apply (namespace , bufnr , changed_lines , first_line , last_line )
13- MarkupHighlighter .apply (namespace , bufnr , changed_lines , first_line , last_line , tick_changed )
8+ local function apply_highlights (bufnr , line )
9+ HideLeadingStars .apply (namespace , bufnr , line )
10+ MarkupHighlighter .apply (namespace , bufnr , line )
1411end
1512
1613local function setup ()
@@ -25,18 +22,19 @@ local function setup()
2522 MarkupHighlighter .setup ()
2623
2724 vim .api .nvim_set_decoration_provider (namespace , {
28- on_win = function (_ , _ , bufnr , topline , botline )
29- local changedtick = vim .api .nvim_buf_get_var (bufnr , ' changedtick' )
30- local tick_changed = not valid_bufnrs [bufnr ] or valid_bufnrs [bufnr ] ~= changedtick
31- if valid_bufnrs [bufnr ] then
32- valid_bufnrs [bufnr ] = changedtick
33- return apply_highlights (bufnr , topline , botline , tick_changed )
34- end
35- local ft = vim .api .nvim_buf_get_option (bufnr , ' filetype' )
36- if ft == ' org' then
37- valid_bufnrs [bufnr ] = changedtick
38- return apply_highlights (bufnr , topline , botline , tick_changed )
25+ on_start = function (_ , tick )
26+ local bufnr = vim .api .nvim_get_current_buf ()
27+ if valid_bufnrs [bufnr ] == tick or vim .bo [bufnr ].filetype ~= ' org' then
28+ return false
3929 end
30+ valid_bufnrs [bufnr ] = tick
31+ return true
32+ end ,
33+ on_win = function (_ , _ , bufnr )
34+ return valid_bufnrs [bufnr ] ~= nil and vim .bo [bufnr ].filetype == ' org'
35+ end ,
36+ on_line = function (_ , _ , bufnr , line )
37+ return apply_highlights (bufnr , line )
4038 end ,
4139 })
4240end
0 commit comments