Fix codemirror too slow for clojure mode

pull/645/head
Tienson Qin 2020-10-12 17:34:43 +08:00
parent cef4c3b0bc
commit cbca9602fa
4 changed files with 25 additions and 13 deletions

View File

@ -125,7 +125,7 @@
(when-let [file-content (db/get-file path)]
(let [content (string/trim file-content)
mode (util/get-file-ext path)
mode (if (= mode "edn") "clojure" mode)]
mode (if (contains? #{"edn" "clj" "cljc" "cljs" "clojure"} mode) "text/x-clojure" mode)]
(lazy-editor/editor {:file? true
:file-path path} path {:data-lang mode} content nil)))

View File

@ -1470,10 +1470,11 @@
(highlight/html-export attr code)
:else
[:div
(lazy-editor/editor config (str (dc/squuid)) attr code pos_meta)
(when (and (= language "clojure") (contains? (set options) ":results"))
(sci/eval-result code))]))
(let [language (if (contains? #{"edn" "clj" "cljc" "cljs" "clojure"} language) "text/x-clojure" language)]
[:div
(lazy-editor/editor config (str (dc/squuid)) attr code pos_meta)
(when (and (= language "clojure") (contains? (set options) ":results"))
(sci/eval-result code))])))
["Quote" l]
(->elem
:blockquote

View File

@ -38,7 +38,8 @@
["codemirror/mode/sql/sql"]
["codemirror/mode/swift/swift"]
["codemirror/mode/xml/xml"]
["parinfer-codemirror" :as par-cm]))
;; ["parinfer-codemirror" :as par-cm]
))
;; codemirror
@ -86,9 +87,10 @@
(let [[config id attr code pos_meta] (:rum/args state)
original-mode (get attr :data-lang)
mode (or original-mode "javascript")
clojure? (contains? #{"clojure" "clj"} mode)
clojure? (contains? #{"clojure" "clj" "text/x-clojure" "cljs" "cljc"} mode)
mode (if clojure? "clojure" mode)
lisp? (contains? #{"clojure" "scheme" "racket" "lisp"} mode)
lisp? (or clojure?
(contains? #{"scheme" "racket" "lisp"} mode))
textarea (gdom/getElement id)
editor (from-textarea textarea
#js {:mode mode
@ -114,8 +116,8 @@
(util/stop e)))
(.save editor)
(.refresh editor)
(when clojure?
(par-cm/init editor))
;; (when clojure?
;; (par-cm/init editor))
editor))
(defn- load-and-render!
@ -139,6 +141,9 @@
[:div.absolute.top-0.right-0.p-1.text-sm.text-gray-500
{:style {:z-index 2
:background "white"}}
(get attr :data-lang "javascript")]
(let [mode (get attr :data-lang "javascript")]
(if (= mode "text/x-clojure")
"clojure"
mode))]
[:textarea (merge {:id id
:default-value code} attr)]])

View File

@ -402,8 +402,14 @@
(db/cloned? repo-url)
(not (state/get-edit-input-id)))
(-> (p/let [files (js/window.workerThread.getChangedFiles (util/get-repo-dir (state/get-current-repo)))]
(when (or (seq files) fallback? diff-push?)
;; auto commit if there are any un-committed changes
(when (or
;; FIXME:
(and
(seq (state/get-changed-files repo-url))
(seq files))
fallback?
diff-push?)
;; auto commit if there are any un-committed changes
(let [commit-message (if (string/blank? commit-message)
"Logseq auto save"
commit-message)]