Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (ns codemirror.core
- (:require
- [cljsjs.codemirror]
- [cljsjs.codemirror.mode.clojure]))
- (defmethod do! ::config
- [elem _ config-map]
- (let [doc (aget elem "codeMirror")]
- (doseq [[k v] (seq config-map)]
- (pr :configure-codemirror :set (name k) v)
- (.setOption doc (name k) v))))
- (defelem editor
- [{:keys [state] :as attr} _]
- (let [attr (dissoc attr :state)]
- (with-let [text (textarea attr)]
- (with-init!
- (let [doc (.fromTextArea js/CodeMirror text)]
- (aset text "codeMirror" doc)
- (add-watch
- state (gensym)
- #(when (not= %4 (.getValue doc))
- (.setValue doc %4)))
- (doto doc
- (.setValue @state)
- (.on "change" #(reset! state (.getValue %)))))))))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement