use crate::syntax::{HighlightKind, Language};
pub static DIFF: Language = Language {
name: "diff",
extensions: &["diff", "patch", "rej"],
filenames: &[],
keywords: &[],
types: &[],
constants: &[],
line_comment: None,
block_comment: None,
nested_block_comments: false,
macro_suffix: false,
capitalised_types: false,
extra_rules: &[
(r"^(?:---|\+\+\+)(?:\s.*)?$", HighlightKind::DiffMeta),
(r"^diff .*", HighlightKind::DiffMeta),
(
r"^(?:index|old mode|new mode|new file mode|deleted file mode|similarity index|dissimilarity index|copy from|copy to|rename from|rename to|Binary files|GIT binary patch) .*",
HighlightKind::DiffMeta,
),
(
r"^(?:From|Date|Subject)(?::| [0-9a-f]{7,}).*",
HighlightKind::DiffMeta,
),
(r"^@{2,3} .*", HighlightKind::DiffHunk),
(r"^\+.*", HighlightKind::DiffAdded),
(r"^-.*", HighlightKind::DiffRemoved),
(r"^\d+(?:,\d+)?[acd]\d+(?:,\d+)?$", HighlightKind::DiffHunk),
(r"^>.*", HighlightKind::DiffAdded),
(r"^<.*", HighlightKind::DiffRemoved),
(r"^\\ .*", HighlightKind::Comment),
],
prose: true,
};