Skip to content

Commit

Permalink
Updated: Install guides and Editor overviews
Browse files Browse the repository at this point in the history
Changed the install guide list into a table for each of the common tools (Java,
Leiningen, Git).

Added brief overview of each editor to start students thinking about which
editor they may want to use.
  • Loading branch information
practicalli-johnny committed Oct 15, 2018
1 parent 671943d commit a724a9a
Show file tree
Hide file tree
Showing 3 changed files with 120 additions and 17 deletions.
78 changes: 62 additions & 16 deletions development-environment/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,30 +4,76 @@ Coaches can help you set up development tools on your laptop if you wish to cont

## Common tools required

| Tool | Is it installed? | Install guide |
|-----------------|------------------|-------------------|
| Java 8 or above | `java -version` | Java install |
| Leiningen | `lein version` | Leiningen install |
| Git | `git --version` | Git install |
| Tool | Is it installed? | Install guide |
|-----------------|------------------|-------------------------------------|
| Java 8 or above | `java -version` | [Java install](java.html) |
| Leiningen | `lein version` | [Leiningen install](leiningen.html) |
| Git | `git --version` | https://git-scm.com/ |

Clojure is a hosted language and runs on top of Java or JavaScript (and other platforms). The Java Runtime Enviromment (JRE) is needed to run Clojure.
Clojure is a hosted language and runs on top of Java or JavaScript (and other platforms). The Java Runtime Enviromment (JRE is needed to run Clojure.

Leiningen is a build tool for running Clojure code, creating and managing projects.

Git can be used to version your Clojure code, so you can go back to earlier versions if you make a mistake.


## Clojure aware editors
## Clojure editor choices

Use one of the following editors
**[Install guides](install-guides/index.html)** are provided for all these editors.

* [Atom.io](https://atom.io/) and the [protoREPL](https://atom.io/packages/proto-repl#installation) package - typically used by web & Javascript developers
* [Emacs](https://cider.readthedocs.io/) - for developers that love Emacs
* [Microsoft VS Code](https://code.visualstudio.com/) with [Calva](https://marketplace.visualstudio.com/items?itemName=cospaia.clojure4vscode) extension.
* [Spacemacs](http://spacemacs.org/) - for developers that love Emacs & Vim ([Spacemacs & Clojure book](https://practicalli.github.io/spacemacs/install-spacemacs/) - work in progress)
* [IntelliJ & Cursive](https://cursive-ide.com/userguide/) - typically used by Java developers
* [LightTable](https://github.com/ClojureBridgeLondon/curriculum/blob/gh-pages/outline/setup.md) - great for those new to Clojure (default choice)
<!-- Clojure Editors -->
{% tabs first="Atom", second="VSCode", third="Spacemacs", forth="IntelliJ" %}

<!-- Atom.io and ProtoREPL -->
{% content "first" %}

> #### Hint:: Just saving your code
> If you just wish to save your code, you can use any editor you prefer or paste it into [Github gists](https://gist.github.com/)
[Atom & ProtoREPL install guide](install-guides/atom-protorepl.html)


[Atom.io](https://atom.io/) is flexible and simple to use editor. The [ProtoREPL](https://atom.io/packages/proto-repl) plugin adds support for Clojure and ClojureScript.

![Atom.io and ProtoREPL](/images/atom-protorepl-demo.gif)


### Simplified menu and configuration approach

[Atom & Proton install guide](install-guides/atom-proton.html)

Proton offers a simple mnemonic menu as an alternative to the somewhat cumbersome keybindings in Atom.io. Proton also gives you a simple text configuration to manage all your packages quickly.

![Atom.io proton-mode demo](/images/atom-proton-mode-demo.gif)


<!-- VSCode and Calva -->
{% content "second" %}

[VSCode Calva extension](https://marketplace.visualstudio.com/items?itemName=cospaia.clojure4vscode)

![VSCode Calva demo](https://github.com/BetterThanTomorrow/calva/raw/master/assets/howto/features.gif)

[Microsoft VSCode & Calva install guide](install-guides/vscode-calva.html)

<!-- Spacemacs -->
{% content "third" %}

[Emacs & Spacemacs install guide](install-guides/emacs-spacemacs.html)

[Spacemacs](https://spacemacs.org/) is a community configuration bring [Emacs](https://www.gnu.org/software/emacs/) and [Vim](https://www.vim.org/) together. Spacemacs uses a mnemonic menu system that makes it easy to learn.

[Spacemacs, Practicalli](https://practicalli.github.io/spacemacs) guides you through Clojure development, documenting with org-mode, Git version control with Magit, Vim editing modes and dozens of other features.

<iframe width="780" height="480" src="https://www.youtube.com/embed/Uuwg-069NYE" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>


<!-- IntelliJ and Cursive -->
{% content "forth" %}

[IntelliJ & Cursive install guide](install-guides/intellij-cursive.html)

[Cursive IDE for IntelliJ](https://cursive-ide.com/)

![Cursive IDE](https://cursive-ide.com/images/cursive-screenshot.png)


{% endtabs %}
<!-- End of Clojure editors -->
59 changes: 58 additions & 1 deletion development-environment/install-guides/index.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,60 @@
# Editor Install Guides

To continue working on Clojure after the event, we recommend installing one of the following editors:
All these editors support Clojure development. Use an editor you are familiar with or ask a coach for advice.

| Editor Install Guides |
|------------------------------------------------------------------------------------------------|
| [Atom & ProtoREPL](atom-protorepl.html) or [Atom & Proton](atom-proton.html) |
| [Microsoft VSCode & Calva](vscode-calva.html) |
| [Spacemacs](emacs-spacemacs.html) (TODO) |
| [Emacs & CIDER](emacs-cider.html) (TODO) |
| [IntelliJ & Cursive](intellij-cursive.html) (TODO) |
| [LightTable](https://github.com/ClojureBridgeLondon/curriculum/blob/gh-pages/outline/setup.md) |


## Clojure editor options

**[Install guides](install-guides/index.html)** are provided for all these editors.

<!-- Clojure Editors -->
{% tabs first="Atom", second="VSCode", third="Spacemacs", forth="IntelliJ" %}

<!-- Atom.io and ProtoREPL -->
{% content "first" %}

[Atom.io](https://atom.io/) is flexible and simple to use editor. The [ProtoREPL](https://atom.io/packages/proto-repl) plugin adds support for Clojure and ClojureScript.

![Atom.io and ProtoREPL](/images/atom-protorepl-demo.gif)

### Simplified menu and configuration approach

Proton offers a simple mnemonic menu as an alternative to the somewhat cumbersome keybindings in Atom.io. Proton also gives you a simple text configuration to manage all your packages quickly.

![Atom.io proton-mode demo](/images/atom-proton-mode-demo.gif)


<!-- VSCode and Calva -->
{% content "second" %}

[VSCode Calva extension](https://marketplace.visualstudio.com/items?itemName=cospaia.clojure4vscode)

![VSCode Calva demo](https://github.com/BetterThanTomorrow/calva/raw/master/assets/howto/features.gif)

<!-- Spacemacs -->
{% content "third" %}

Spacemacs is a community configuration bring Emacs and Vim together. Spacemacs uses a mnemonic menu system that makes it easy to learn.

[Spacemacs, Practicalli](https://practicalli.github.io/spacemacs) guides you through Clojure development, documenting with org-mode, Git version control with Magit, Vim editing modes and dozens of other features.

<iframe width="780" height="480" src="https://www.youtube.com/embed/Uuwg-069NYE" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>

<!-- IntelliJ and Cursive -->
{% content "forth" %}

[Cursive IDE for IntelliJ](https://cursive-ide.com/images/cursive-screenshot.png)

![Cursive IDE](https://cursive-ide.com/images/cursive-screenshot.png)

{% endtabs %}
<!-- End of Clojure editors -->
Binary file added images/adoptopenjdk-install.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit a724a9a

Please sign in to comment.