2019-01-16 14:31:52 +02:00
|
|
|
# Modules
|
2013-10-10 17:25:19 +03:00
|
|
|
|
2019-01-16 15:27:04 +02:00
|
|
|
!!! Note
|
|
|
|
|
|
|
|
Most modules are not currently documented. Helping out with their
|
|
|
|
documentation is a great way to contribute to the project!
|
|
|
|
|
2013-10-10 17:25:19 +03:00
|
|
|
Prelude provides extra functionality through modules. Some modules may
|
|
|
|
require extra steps to enable all functionality. These steps and the
|
|
|
|
functionality provided by these modules are documented on the
|
|
|
|
following links.
|
|
|
|
|
2019-01-16 15:30:23 +02:00
|
|
|
## What's a module?
|
|
|
|
|
|
|
|
Prelude modules are plain old Elisp libraries - there's absolutely nothing magical about them.
|
|
|
|
Most of them simply install a few package and provide some sensible baseline configuration for them.
|
|
|
|
Here's a real example.
|
|
|
|
|
|
|
|
``` emacs-lisp
|
|
|
|
;;; prelude-ruby.el --- Emacs Prelude: A nice setup for Ruby (and Rails) devs.
|
|
|
|
;;
|
|
|
|
;;; Code:
|
|
|
|
|
|
|
|
(require 'prelude-programming)
|
|
|
|
|
|
|
|
(prelude-require-packages '(inf-ruby yari))
|
|
|
|
|
|
|
|
;; We never want to edit Rubinius bytecode
|
|
|
|
(add-to-list 'completion-ignored-extensions ".rbc")
|
|
|
|
|
|
|
|
(define-key 'help-command (kbd "R") 'yari)
|
|
|
|
|
|
|
|
(with-eval-after-load 'ruby-mode
|
|
|
|
(defun prelude-ruby-mode-defaults ()
|
|
|
|
(inf-ruby-minor-mode +1)
|
|
|
|
;; CamelCase aware editing operations
|
|
|
|
(subword-mode +1))
|
|
|
|
|
|
|
|
(setq prelude-ruby-mode-hook 'prelude-ruby-mode-defaults)
|
|
|
|
|
|
|
|
(add-hook 'ruby-mode-hook (lambda ()
|
|
|
|
(run-hooks 'prelude-ruby-mode-hook))))
|
|
|
|
|
|
|
|
(provide 'prelude-ruby)
|
|
|
|
;;; prelude-ruby.el ends here
|
|
|
|
```
|
|
|
|
|
|
|
|
To use a module you simple have to require it. No new concepts. No magic.
|
|
|
|
|
|
|
|
## List of Modules
|
|
|
|
|
2019-01-16 15:27:04 +02:00
|
|
|
- C/C++
|
|
|
|
- Clojure
|
|
|
|
- CoffeeScript
|
|
|
|
- Common Lisp
|
|
|
|
- CSS
|
|
|
|
- Emacs-Lisp
|
|
|
|
- [ERC](erc.md)
|
|
|
|
- Erlang
|
|
|
|
- Elixir
|
|
|
|
- Haskell
|
|
|
|
- JavaScript
|
|
|
|
- LaTeX
|
|
|
|
- Lisp Base
|
|
|
|
- Markdown
|
|
|
|
- Org Mode
|
|
|
|
- Perl
|
|
|
|
- [Python](python.md)
|
|
|
|
- Ruby
|
|
|
|
- Rust
|
|
|
|
- Scala
|
|
|
|
- Scheme
|
|
|
|
- SCSS
|
|
|
|
- Web
|