diff --git a/ts/editor/codable.ts b/ts/editor/codable.ts index 383a0027e..e3d6345c7 100644 --- a/ts/editor/codable.ts +++ b/ts/editor/codable.ts @@ -3,12 +3,19 @@ import * as CodeMirror from "codemirror/lib/codemirror"; import "codemirror/mode/htmlmixed/htmlmixed"; +import "codemirror/addon/fold/foldcode"; +import "codemirror/addon/fold/foldgutter"; +import "codemirror/addon/fold/xml-fold"; +import "codemirror/addon/edit/matchtags.js"; const codeMirrorOptions = { mode: "htmlmixed", theme: "monokai", lineNumbers: true, lineWrapping: true, + foldGutter: true, + gutters: ["CodeMirror-linenumbers", "CodeMirror-foldgutter"], + matchTags: { bothTags: true }, }; const parser = new DOMParser(); diff --git a/ts/editor/editable.scss b/ts/editor/editable.scss index 7eba170b7..a868e10f9 100644 --- a/ts/editor/editable.scss +++ b/ts/editor/editable.scss @@ -2,6 +2,7 @@ @import "ts/sass/codemirror/lib/codemirror"; @import "ts/sass/codemirror/theme/monokai"; +@import "ts/sass/codemirror/addon/fold/foldgutter"; anki-editable { display: block; diff --git a/ts/sass/codemirror/BUILD.bazel b/ts/sass/codemirror/BUILD.bazel index 98eb96cbb..0ef981a1e 100644 --- a/ts/sass/codemirror/BUILD.bazel +++ b/ts/sass/codemirror/BUILD.bazel @@ -7,6 +7,7 @@ vendor_js_lib( include = [ "lib/codemirror.css", "theme", + "addon/fold/foldgutter.css", ], base = "external/npm/node_modules/codemirror/", pkg = pkg_from_name("codemirror"),