openrat-cms

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

gutters.min.js (1264B)


      1 import { elt, removeChildren } from "../util/dom.js"
      2 import { indexOf } from "../util/misc.js"
      3 
      4 import { updateGutterSpace } from "./update_display.js"
      5 
      6 // Rebuild the gutter elements, ensure the margin to the left of the
      7 // code matches their width.
      8 export function updateGutters(cm) {
      9   let gutters = cm.display.gutters, specs = cm.options.gutters
     10   removeChildren(gutters)
     11   let i = 0
     12   for (; i < specs.length; ++i) {
     13     let gutterClass = specs[i]
     14     let gElt = gutters.appendChild(elt("div", null, "CodeMirror-gutter " + gutterClass))
     15     if (gutterClass == "CodeMirror-linenumbers") {
     16       cm.display.lineGutter = gElt
     17       gElt.style.width = (cm.display.lineNumWidth || 1) + "px"
     18     }
     19   }
     20   gutters.style.display = i ? "" : "none"
     21   updateGutterSpace(cm)
     22 }
     23 
     24 // Make sure the gutters options contains the element
     25 // "CodeMirror-linenumbers" when the lineNumbers option is true.
     26 export function setGuttersForLineNumbers(options) {
     27   let found = indexOf(options.gutters, "CodeMirror-linenumbers")
     28   if (found == -1 && options.lineNumbers) {
     29     options.gutters = options.gutters.concat(["CodeMirror-linenumbers"])
     30   } else if (found > -1 && !options.lineNumbers) {
     31     options.gutters = options.gutters.slice(0)
     32     options.gutters.splice(found, 1)
     33   }
     34 }