Advertisement
Guest User

Untitled

a guest
Jul 2nd, 2015
243
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.76 KB | None | 0 0
  1. (ns codemirror.core
  2. (:require
  3. [cljsjs.codemirror]
  4. [cljsjs.codemirror.mode.clojure]))
  5.  
  6. (defmethod do! ::config
  7. [elem _ config-map]
  8. (let [doc (aget elem "codeMirror")]
  9. (doseq [[k v] (seq config-map)]
  10. (pr :configure-codemirror :set (name k) v)
  11. (.setOption doc (name k) v))))
  12.  
  13. (defelem editor
  14. [{:keys [state] :as attr} _]
  15. (let [attr (dissoc attr :state)]
  16. (with-let [text (textarea attr)]
  17. (with-init!
  18. (let [doc (.fromTextArea js/CodeMirror text)]
  19. (aset text "codeMirror" doc)
  20. (add-watch
  21. state (gensym)
  22. #(when (not= %4 (.getValue doc))
  23. (.setValue doc %4)))
  24. (doto doc
  25. (.setValue @state)
  26. (.on "change" #(reset! state (.getValue %)))))))))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement