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}