- Create an app following the official Shadow-CLJS Quick Start instructions.
- Modify
shadow-cljs.edn
;; shadow-cljs configuration
{:source-paths
["src/dev"
"src/main"
"src/test"]
;; ADD - CIDER middleware for nREPL (required by fireplace.vim)| (do | |
| (defn schedule-jobs-in-sequence | |
| "Schedules async `jobs` in sequence by using a JavaScript Promise chain." | |
| [jobs] | |
| (js/Promise. | |
| (fn [resolve reject] | |
| (let [init 42 | |
| results (atom [])] | |
| (loop [promise (.resolve js/Promise init) | |
| [job & more] jobs] |
| <code_scheme name="TW" version="173"> | |
| <ClojureCodeStyleSettings>{ | |
| :cljs.core/as-> :only-indent | |
| :cljs.core/assoc 0 | |
| :cljs.core/cond-> :only-indent | |
| :cljs.core/cond->> :only-indent | |
| :cljs.core/defonce :only-indent | |
| :cljs.core/with-meta :only-indent | |
| :cljs.core.async/go :only-indent | |
| :cljs.core.async/go-loop :only-indent |
| <?xml version="1.0" encoding="UTF-8"?> | |
| <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> | |
| <plist version="1.0"> | |
| <!-- | |
| ABOUT: | |
| Clojure language module based on the newlisp package by | |
| Seth Dillingham <[email protected]> | |
| and Pete B. Anonymous. |
| (def lines ["inside every large program" | |
| "is a small program" | |
| "struggling to get out"]) | |
| ;; a stateful transducer that calculates running total | |
| (defn xf-running-total | |
| [] | |
| (fn [rf] | |
| (let [state (volatile! {})] | |
| (fn |
shadow-cljs.edn;; shadow-cljs configuration
{:source-paths
["src/dev"
"src/main"
"src/test"]
;; ADD - CIDER middleware for nREPL (required by fireplace.vim)If you have a lazy-seq with side-effects, you almost certainly don't want to let it out of your sight. You're likely to get very strange behavior unless you're exceedingly careful. Most likely, if you've got a lazy-seq with side-effects you should force it with dorun or doall immediately. Use doall if you care about the values in the produced lazy-seq, otherwise use dorun.
This means that dorun should almost always show up right next to the form producing the lazy-seq, which means doseq is very likely a better choice, as it is more efficient and usually more succinct than dorun combined with a lazy-seq producer.
run! is a convenience function that can take place of (dorun (map ,,,)).
for is in rather a different category, since unlike the others it produces a lazy-seq rather than forcing anything. Use for when it's a more convenient way to express the lazy-seq you want than the equivalent combination of map, filter, take-while, etc.
source: https://groups.goo
Problem: OpenJDK 1.8 builds don't include JavaFX libraries.
Workaround: (Assuming the platform is GNU/Linux.)
Copy the JavaFX runtime JAR and other related files included in a ZuluFX build (https://www.azul.com/downloads/zulu/zulufx/) to the following locations in the home directory of the OpenJDK 1.8 build:
cp $ZULUFX_HOME/lib/javafx.properties $OPENJDK_HOME/lib/
| [ | |
| { | |
| "installDate": 1526348348774, | |
| "enabled": true, | |
| "updateUrl": null, | |
| "md5Url": null, | |
| "url": null, | |
| "originalMd5": null, | |
| "name": "clojuredocs.org", | |
| "sections": [ |
| <keymap version="1" name="gnome_shell" parent="Default for GNOME"> | |
| <action id="$Copy"> | |
| <keyboard-shortcut first-keystroke="ctrl c" /> | |
| </action> | |
| <action id="$Cut"> | |
| <keyboard-shortcut first-keystroke="ctrl x" /> | |
| </action> | |
| <action id="$Paste"> | |
| <keyboard-shortcut first-keystroke="ctrl v" /> | |
| </action> |
| <keymap version="1" name="macOS" parent="Mac OS X 10.5+"> | |
| <action id="$Cut"> | |
| <keyboard-shortcut first-keystroke="meta x" /> | |
| </action> | |
| <action id="$Redo"> | |
| <keyboard-shortcut first-keystroke="shift meta z" /> | |
| </action> | |
| <action id="ActivateVersionControlToolWindow"> | |
| <keyboard-shortcut first-keystroke="meta 9" /> | |
| </action> |