diff --git a/doc/modules/clojure.md b/doc/modules/clojure.md new file mode 100644 index 0000000..21c22e0 --- /dev/null +++ b/doc/modules/clojure.md @@ -0,0 +1,28 @@ +# Prelude Clojure + +!!! Note + + This module builds on top of the shared [Lisp Base](lisp.md) module. + +## Clojure Mode + +This module bundles `clojure-mode`, a major mode for programming in Clojure, +and some sensible defaults for it. + +## CIDER + +This module also bundles [CIDER](https://docs.cider.mx), a popular interactive +programming environment for Clojure. + +Intentionally, Prelude doesn't install by default popular CIDER plugins like +`clj-refactor`, `sayid`, etc, as those can be overwhelming to newcomers and +are easy to setup if you need them. + +## CIDER Alternatives + +Depending on your preferences you might want to use `inf-clojure` or `clojure-lsp` +alongside/instead of CIDER, but you'll have to set them up yourselves. + +## Fun trivia + +I'm the author of CIDER and `inf-clojure` and the primary maintainer of `clojure-mode`. I'm also a co-maintainer of `clj-refactor`. I guess I love Clojure! :-) diff --git a/doc/modules/common_lisp.md b/doc/modules/common_lisp.md new file mode 100644 index 0000000..058e841 --- /dev/null +++ b/doc/modules/common_lisp.md @@ -0,0 +1,20 @@ +# Prelude Common Lisp + +!!! Note + + This module builds on top of the shared [Lisp Base](lisp.md) module. + +## lisp-mode + +Not much to say here, as `lisp-mode` is configured in the "Lisp Base" module. + +## SLIME + +This module bundles [SLIME](https://docs.cider.mx), a popular interactive +programming environment for SLIME, and enables many of its essential features. + +The default config assumes the usage of [Clozure CL](https://github.com/Clozure/ccl) on macOS and +of [SBCL](http://www.sbcl.org/) everywhere else. That's something you can easily +tweak via `slime-default-lisp`. + +You can fire SLIME with `M-x slime`. diff --git a/doc/modules/emacs_lisp.md b/doc/modules/emacs_lisp.md new file mode 100644 index 0000000..f8237d4 --- /dev/null +++ b/doc/modules/emacs_lisp.md @@ -0,0 +1,33 @@ +# Prelude Emacs Lisp + +!!! Note + + This module builds on top of the shared [Lisp Base](lisp.md) module. + +## Elisp-mode + +The module establishes some sensible defaults for `elisp-mode` and +shortens its modeline name to "EL". + +It establishes a few extra keybidings (inspired by SLIME): + +* `C-c C-z` (`prelude-visit-ielm`) +* `C-c C-c` (`eval-defun`) +* `C-c C-b` (`eval-buffer`) + +The module also enables auto-recompilation of Elisp files on save. + +## IELM + +IELM is an Elisp REPL bundled with Emacs. Prelude tweaks a bit it's default +configuration to align it with the `elisp-mode` configuration. + +## elisp-slime-nav + +The module bundles [elisp-slime-nav](https://github.com/purcell/elisp-slime-nav), +which allows you to jump to definitions with `C-.` (use `C-,` to jump back) and describe a symbol with +`C-c C-d (C-)d`. + +## Minibuffer evaluation + +`smartparens-mode` is conditionally enabled for `eval-expression` (`M-:`) command. diff --git a/doc/modules/index.md b/doc/modules/index.md index 2feb6e6..37c0b12 100644 --- a/doc/modules/index.md +++ b/doc/modules/index.md @@ -52,26 +52,25 @@ To use a module you simple have to require it. No new concepts. No magic. The following programming languages have enhanced support in Prelude: - C/C++ -- Clojure +- [Clojure](clojure.md) - CoffeeScript -- Common Lisp +- [Common Lisp](common_lisp.md) - CSS - [Dart](dart.md) -- Emacs Lisp +- [Emacs Lisp](emacs_lisp.md) - Erlang - Elixir - Go - Haskell - JavaScript - LaTeX -- Lisp Base (common foundation for Lisp modules) +- [Lisp Base](lisp.md) (common foundation for Lisp modules) - Markdown - OCaml -- Org Mode - Perl - [Python](python.md) - [Programming Base](programming.md) (common foundation for programming modules) -- Ruby +- [Ruby](ruby.md) - Rust - Scala - Scheme @@ -91,3 +90,4 @@ The following programming languages have enhanced support in Prelude: - ido - ivy - key-chord +- Org Mode diff --git a/doc/modules/lisp.md b/doc/modules/lisp.md new file mode 100644 index 0000000..90216fb --- /dev/null +++ b/doc/modules/lisp.md @@ -0,0 +1,7 @@ +# Prelude Lisp + +Basic shared configuration for Lisp-like programming languages. Currently +it does only two things: + +* Enables `smartparens-strict-mode` in Lisp major modes and REPL buffers +* Enables `rainbow-delimiters` in Lisp major modes and REPL buffers diff --git a/doc/modules/ruby.md b/doc/modules/ruby.md new file mode 100644 index 0000000..a98c78c --- /dev/null +++ b/doc/modules/ruby.md @@ -0,0 +1,25 @@ +# Prelude Ruby + +!!! Note + + This module builds on top of the shared [Programming](programming.md) module. + +## Ruby Mode + +Emacs comes with Ruby programming support through the built-in +`ruby-mode`. Whenever you are editing Ruby code run `C-h m` to +look at the Python mode key bindings. Alternatively look at the +menu bar entries under Ruby. To toggle the menu bar press `F12`. + +Prelude enables `CamelCase` aware editing in Ruby code (via `subword-mode`). + +## inf-ruby + +The module bundles the [inf-ruby](https://github.com/nonsequitur/inf-ruby) package which allows you to run a Ruby +REPL (e.g. `irb` or `pry`) in an Emacs buffer and interact with it from +Ruby source buffers. + +## yari + +The module bundles the [yari](https://github.com/hron/yari.el) package which allows you to search in Ruby's RI +documentation. Use `C-h R` to invoke it. diff --git a/modules/prelude-clojure.el b/modules/prelude-clojure.el index ce65e6f..1721ba0 100644 --- a/modules/prelude-clojure.el +++ b/modules/prelude-clojure.el @@ -9,7 +9,8 @@ ;;; Commentary: -;; Some basic configuration for clojure-mode. +;; A basic setup for Clojure programming based on clojure-mode +;; and CIDER. ;;; License: