Lifecycle
Initialization
- See Init View
Receiving Messages
-
goes into detail about initialization actions in the webview
-
this sends a MESSAGE_DISPATCHER_READY signal
-
- this tells the panel to send refresh message to the webview
case MESSAGE_DISPATCHER_READY {
note = getActiveNote
if note PreviewPanelFactory.sendRefreshMessage
}
From Note Preview
Go to text ā
Start anchor send-refresh-message not found
onDidChangeActiveTextEditor
Whenever the active text editor changes
VSCode Logic
triggerNotePreviewUpdate(document) {
maybeNote = tryGetNoteFromDocument(document)
if (maybeNote) showPreviewAndUpdate(maybeNote)
}
showPreviewAndUpdate {
...
sendRefreshMessage(note)
}
From Lifecycle
Go to text ā
// tell webview to update with the new note
sendRefreshMessage(note) {
@panel.postMessage(
ON_DID_CHANGE_ACTIVE_TEXT_EDITOR,
note,
syncChangedNote: true
)
}
This leads the view to execute Change Active Editor hook
View Logic
App receives the Change Active Editor event
The Note Preview renders contents based on the active editor
useRenderedNoteBody(id) {
engineSlice.renderNote(id)
}
renderNote(id) {
api.noteRender(id)
}
hide
hide {
dispose
}
dispose {
if _panel {
this._panel.dispose();
}
}
Common
Send Refresh Message
// tell webview to update with the new note
sendRefreshMessage(note) {
@panel.postMessage(
ON_DID_CHANGE_ACTIVE_TEXT_EDITOR,
note,
syncChangedNote: true
)
}
This leads the view to execute Change Active Editor hook
Children
Backlinks