mirror of https://github.com/logseq/logseq
Merge pull request #985 from logseq/fix/preserve-edn-order
fix: preserve config.file order when updatingpull/989/head
commit
ccf85e2e37
2
deps.edn
2
deps.edn
|
@ -12,6 +12,8 @@
|
|||
datascript-transit/datascript-transit
|
||||
{:mvn/version "0.3.0"
|
||||
:exclusions [datascript]}
|
||||
borkdude/rewrite-edn {:git/url "https://github.com/borkdude/rewrite-edn"
|
||||
:sha "edd87dc7f045f28d7afcbfc44bc0f0a2683dde62"}
|
||||
funcool/promesa {:mvn/version "4.0.2"}
|
||||
medley/medley {:mvn/version "1.2.0"}
|
||||
metosin/reitit-frontend {:mvn/version "0.3.10"}
|
||||
|
|
|
@ -183,7 +183,7 @@
|
|||
(ui/toggle enable-timetracking?
|
||||
(fn []
|
||||
(let [value (not enable-timetracking?)]
|
||||
(repo-handler/set-config! :feature/enable-timetracking? value))))]]]
|
||||
(config-handler/set-config! :feature/enable-timetracking? value))))]]]
|
||||
|
||||
[:hr]
|
||||
|
||||
|
|
|
@ -1,7 +1,27 @@
|
|||
(ns frontend.handler.config
|
||||
(:require [frontend.state :as state]
|
||||
[frontend.handler.repo :as repo-handler]))
|
||||
[frontend.handler.repo :as repo-handler]
|
||||
[borkdude.rewrite-edn :as rewrite]
|
||||
[frontend.config :as config]
|
||||
[frontend.db :as db]))
|
||||
|
||||
(defn set-config!
|
||||
[k v]
|
||||
(when-let [repo (state/get-current-repo)]
|
||||
(let [path (str config/app-name "/" config/config-file)]
|
||||
(when-let [config (db/get-file-no-sub path)]
|
||||
(let [config (try
|
||||
(rewrite/parse-string config)
|
||||
(catch js/Error e
|
||||
(println "Parsing config file failed: ")
|
||||
(js/console.dir e)
|
||||
{}))
|
||||
ks (if (vector? k) k [k])
|
||||
new-config (rewrite/assoc-in config ks v)]
|
||||
(state/set-config! repo new-config)
|
||||
(let [new-content (str new-config)]
|
||||
(repo-handler/set-config-content! repo path new-content)))))))
|
||||
|
||||
(defn toggle-ui-show-brackets! []
|
||||
(let [show-brackets? (state/show-brackets?)]
|
||||
(repo-handler/set-config! :ui/show-brackets? (not show-brackets?))))
|
||||
(set-config! :ui/show-brackets? (not show-brackets?))))
|
||||
|
|
|
@ -21,7 +21,6 @@
|
|||
[frontend.handler.common :as common-handler]
|
||||
[frontend.handler.extract :as extract-handler]
|
||||
[frontend.ui :as ui]
|
||||
[cljs.reader :as reader]
|
||||
[clojure.string :as string]
|
||||
[frontend.dicts :as dicts]
|
||||
[frontend.spec :as spec]))
|
||||
|
@ -493,26 +492,9 @@
|
|||
(show-install-error! repo-url (util/format "Failed to clone %s." repo-url)))))))
|
||||
|
||||
(defn set-config-content!
|
||||
[repo path new-config]
|
||||
(let [new-content (util/pp-str new-config)]
|
||||
(file-handler/alter-file repo path new-content {:reset? false
|
||||
:re-render-root? false})))
|
||||
|
||||
(defn set-config!
|
||||
[k v]
|
||||
(when-let [repo (state/get-current-repo)]
|
||||
(let [path (str config/app-name "/" config/config-file)]
|
||||
(when-let [config (db/get-file-no-sub path)]
|
||||
(let [config (try
|
||||
(reader/read-string config)
|
||||
(catch js/Error e
|
||||
(println "Parsing config file failed: ")
|
||||
(js/console.dir e)
|
||||
{}))
|
||||
ks (if (vector? k) k [k])
|
||||
new-config (assoc-in config ks v)]
|
||||
(state/set-config! repo new-config)
|
||||
(set-config-content! repo path new-config))))))
|
||||
[repo path new-content]
|
||||
(file-handler/alter-file repo path new-content {:reset? false
|
||||
:re-render-root? false}))
|
||||
|
||||
(defn remove-repo!
|
||||
[{:keys [id url] :as repo}]
|
||||
|
|
Loading…
Reference in New Issue