markdown_preview.rs

 1use gpui::{App, actions};
 2use workspace::Workspace;
 3
 4pub mod markdown_elements;
 5mod markdown_minifier;
 6pub mod markdown_parser;
 7pub mod markdown_preview_view;
 8pub mod markdown_renderer;
 9
10actions!(
11    markdown,
12    [
13        /// Scrolls up by one page in the markdown preview.
14        #[action(deprecated_aliases = ["markdown::MovePageUp"])]
15        ScrollPageUp,
16        /// Scrolls down by one page in the markdown preview.
17        #[action(deprecated_aliases = ["markdown::MovePageDown"])]
18        ScrollPageDown,
19        /// Scrolls up by approximately one visual line.
20        ScrollUp,
21        /// Scrolls down by approximately one visual line.
22        ScrollDown,
23        /// Scrolls up by one markdown element in the markdown preview
24        ScrollUpByItem,
25        /// Scrolls down by one markdown element in the markdown preview
26        ScrollDownByItem,
27        /// Opens a markdown preview for the current file.
28        OpenPreview,
29        /// Opens a markdown preview in a split pane.
30        OpenPreviewToTheSide,
31        /// Opens a following markdown preview that syncs with the editor.
32        OpenFollowingPreview
33    ]
34);
35
36pub fn init(cx: &mut App) {
37    cx.observe_new(|workspace: &mut Workspace, window, cx| {
38        let Some(window) = window else {
39            return;
40        };
41        markdown_preview_view::MarkdownPreviewView::register(workspace, window, cx);
42    })
43    .detach();
44}