Step 145: add Org-mode rendering and source blocks

This commit is contained in:
Bill
2026-02-09 18:26:28 -07:00
parent abd41217d3
commit 7ae51ebd2e
9 changed files with 554 additions and 109 deletions

View File

@@ -47,6 +47,7 @@ enum class EditorModeType {
Java,
Rust,
Go,
Org,
PlainText
};
@@ -66,6 +67,7 @@ public:
else if (language == "java") loadJava();
else if (language == "rust") loadRust();
else if (language == "go") loadGo();
else if (language == "org") loadOrg();
else loadPlainText();
}
@@ -162,6 +164,7 @@ public:
case EditorModeType::Java: return "Java";
case EditorModeType::Rust: return "Rust";
case EditorModeType::Go: return "Go";
case EditorModeType::Org: return "Org";
case EditorModeType::PlainText: return "Plain Text";
}
return "Unknown";
@@ -176,6 +179,7 @@ public:
if (lang == "java") return EditorModeType::Java;
if (lang == "rust") return EditorModeType::Rust;
if (lang == "go") return EditorModeType::Go;
if (lang == "org") return EditorModeType::Org;
return EditorModeType::PlainText;
}
@@ -308,6 +312,17 @@ private:
};
}
void loadOrg() {
type_ = EditorModeType::Org;
indent_ = {"", "", 2, false};
comment_ = {"#", "", ""};
brackets_ = {{'(', ')'}, {'[', ']'}, {'{', '}'}, {'\"', '\"'}};
snippets_ = {
{"src", "#+begin_src $1\\n$0\\n#+end_src", "Source block"},
{"hdr", "* $1\\n$0", "Heading"},
};
}
std::string language_;
EditorModeType type_;
IndentRule indent_;