Skip to content

Commit c3cc563

Browse files
committed
Add HOOKs
1 parent a625c60 commit c3cc563

File tree

3 files changed

+27
-0
lines changed

3 files changed

+27
-0
lines changed

autoload/fern/helper/async.vim

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ function! s:async_redraw() abort dict
2323
\ )
2424
\})
2525
\.then({ v -> fern#internal#buffer#replace(helper.bufnr, v) })
26+
\.then({ -> fern#hook#emit('viewer:redraw', helper) })
2627
\.finally({ -> Profile() })
2728
endfunction
2829
let s:async.redraw = funcref('s:async_redraw')

autoload/fern/internal/viewer.vim

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,7 @@ endfunction
105105
function! s:BufReadCmd() abort
106106
let helper = fern#helper#new()
107107
call helper.fern.renderer.syntax()
108+
call fern#hook#emit('renderer:syntax', helper)
108109
let root = helper.sync.get_root_node()
109110
let cursor = get(b:, 'fern_cursor', getcurpos())
110111
call s:Promise.resolve()
@@ -119,4 +120,5 @@ endfunction
119120
function! s:ColorScheme() abort
120121
let helper = fern#helper#new()
121122
call helper.fern.renderer.highlight()
123+
call fern#hook#emit('renderer:highlight', helper)
122124
endfunction

doc/fern-develop.txt

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ RENDERER |fern-develop-renderer|
1515
SCHEME |fern-develop-scheme|
1616
PROVIDER |fern-develop-scheme-provider|
1717
MAPPING |fern-develop-scheme-provider|
18+
HOOK |fern-develop-hook|
1819
HELPER |fern-develop-helper|
1920
LOGGER |fern-develop-logger|
2021
UTILITY |fern-develop-utility|
@@ -500,6 +501,29 @@ Following methods are executed asynchronously and return a promise.
500501
It is used to collapse modified nodes to solve issue #103.
501502

502503

504+
=============================================================================
505+
HOOK *fern-develop-hook*
506+
507+
Following hook will be emitted by |fern#hook#emit()| from fern itself.
508+
509+
"renderer:syntax" ({helper})
510+
Called when fern renderer has register its syntax.
511+
The {helper} is a helper instance described in |fern-develop-helper|.
512+
513+
"renderer:highlight" ({helper})
514+
Called when fern renderer has register its highlight.
515+
The {helper} is a helper instance described in |fern-develop-helper|.
516+
517+
"viewer:redraw" ({helper})
518+
Called when fern viewer has redrawed.
519+
The {helper} is a helper instance described in |fern-develop-helper|.
520+
521+
"viewer:ready" ({helper})
522+
Called when fern viewer has ready, mean that the buffer has opened and
523+
all content has rendererd.
524+
The {helper} is a helper instance described in |fern-develop-helper|.
525+
526+
503527
=============================================================================
504528
LOGGER *fern-develop-logger*
505529

0 commit comments

Comments
 (0)