typst_preview/args.rs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
// enum Preview Mode
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
#[cfg_attr(feature = "clap", derive(clap::ValueEnum))]
pub enum PreviewMode {
/// Preview mode for regular document
#[cfg_attr(feature = "clap", clap(name = "document"))]
Document,
/// Preview mode for slide
#[cfg_attr(feature = "clap", clap(name = "slide"))]
Slide,
}
// Refresh Style
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
#[cfg_attr(feature = "clap", derive(clap::ValueEnum))]
pub enum RefreshStyle {
/// Refresh preview on save
#[cfg_attr(feature = "clap", clap(name = "onSave"))]
OnSave,
/// Refresh preview on type
#[cfg_attr(feature = "clap", clap(name = "onType"))]
#[default]
OnType,
}
#[derive(Debug, Clone)]
#[cfg_attr(feature = "clap", derive(clap::Parser))]
pub struct PreviewArgs {
/// Only render visible part of the document. This can improve performance
/// but still being experimental.
#[cfg_attr(feature = "clap", clap(long = "partial-rendering"))]
pub enable_partial_rendering: bool,
/// Invert colors of the preview (useful for dark themes without cost).
/// Please note you could see the origin colors when you hover elements in
/// the preview.
///
/// It is also possible to specify strategy to each element kind by an
/// object map in JSON format.
///
/// Possible element kinds:
/// - `image`: Images in the preview.
/// - `rest`: Rest elements in the preview.
///
/// ## Example
///
/// By string:
///
/// ```shell
/// --invert-colors=auto
/// ```
///
/// By element:
///
/// ```shell
/// --invert-colors='{"rest": "always", "image": "never"}'
/// ```
#[cfg_attr(feature = "clap", clap(long, default_value = "never"))]
pub invert_colors: String,
/// Used by lsp for identifying the task.
#[cfg_attr(
feature = "clap",
clap(
long = "task-id",
default_value = "default_preview",
value_name = "TASK_ID",
hide(true)
)
)]
pub task_id: String,
/// Used by lsp for controlling the preview refresh style.
#[cfg_attr(feature = "clap", clap(long, default_value = "onType", hide(true)))]
pub refresh_style: RefreshStyle,
}