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
10pub use zed_actions::preview::markdown::{OpenPreview, OpenPreviewToTheSide};
11
12actions!(
13    markdown,
14    [
15        /// Scrolls up by one page in the markdown preview.
16        #[action(deprecated_aliases = ["markdown::MovePageUp"])]
17        ScrollPageUp,
18        /// Scrolls down by one page in the markdown preview.
19        #[action(deprecated_aliases = ["markdown::MovePageDown"])]
20        ScrollPageDown,
21        /// Scrolls up by approximately one visual line.
22        ScrollUp,
23        /// Scrolls down by approximately one visual line.
24        ScrollDown,
25        /// Scrolls up by one markdown element in the markdown preview
26        ScrollUpByItem,
27        /// Scrolls down by one markdown element in the markdown preview
28        ScrollDownByItem,
29        /// Opens a following markdown preview that syncs with the editor.
30        OpenFollowingPreview
31    ]
32);
33
34pub fn init(cx: &mut App) {
35    cx.observe_new(|workspace: &mut Workspace, window, cx| {
36        let Some(window) = window else {
37            return;
38        };
39        markdown_preview_view::MarkdownPreviewView::register(workspace, window, cx);
40    })
41    .detach();
42}