Pull requests welcome!
Currently, Cursive for IntelliJ is the editor we use to keep code formatting consistent. (TBD: make this editor-agnostic.)
Editor > Code Style > Clojure > General
- Align reader conditionals - turned on
- Align map values - turned on
- Everything else - turned off
- Comment alignment column: -1
- Docstring fill width: 80
Editor > Code Style > Clojure > Tabs and Indents
- Use tab character: turned off
- Tab size: 2
- Tab indent: 2
Editor > Code Style > Clojure > Forms and Parameters The default indentation/spacing values for form names (ex: fns and macros) are stored. Pre-existing defaults are all fine. For Meander macros, we need to define indentations manually for each of them. They can be configured this way:
- Right click on a usage in code (ex:
m/rewrite
) - In the context menu, choose "Show Context Actions"
- "Configure identation for meander.epsilon/rewrite"
- Choose "Indent"
- Build systems used at the command line:
- Make (simple commands to run transpile+compile examples)
- Gradle (compile Java transpiled code in examples)
- Rustup (preferred installer for the Rust compiler, Cargo, etc.)
- MacOS:
brew uninstall rust
brew install rustup
rustup-init
and start a new terminal session - Note: Installing from the Rustup website is recommended over the OS package installer system
- MacOS:
- Java JDK (OpenJDK seems fine, no version constraint known yet)
- For compiling/running Java via gradle, set
JAVA_HOME
environment variable to your default Java version path (how to find Java version on macOS) clojure
command-line tool (from the official Clojure distribution, ex:brew install clojure/tools/clojure
on macOS), minimum version 1.10.3.933 (version can be found usingclojure -v
)
At the top level, run make
. This compiles and runs tests for the Kalai implementation code, and then it
does transpilation for the examples
dir and sql_builder
dir.