emacs-prelude/docs/modules/index.md

104 lines
2.3 KiB
Markdown
Raw Permalink Normal View History

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?
2022-02-20 12:52:34 +02:00
Prelude modules are plain old Elisp libraries - there's absolutely
nothing magical about them. Most of them simply install a few Emacs
packages and provide some sensible baseline configuration for them.
2019-01-16 15:30:23 +02:00
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")
2022-02-20 12:52:34 +02:00
;; Map yari to C-h R
2019-01-16 15:30:23 +02:00
(define-key 'help-command (kbd "R") 'yari)
(with-eval-after-load 'ruby-mode
(defun prelude-ruby-mode-defaults ()
2022-02-20 12:52:34 +02:00
;; Don't auto-insert encoding comments
;; Those are almost never needed in Ruby 2+
(setq ruby-insert-encoding-magic-comment nil)
2019-01-16 15:30:23 +02:00
(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.
2020-04-08 10:15:30 +03:00
## Programming Language Modules
The following programming languages have enhanced support in Prelude:
2019-01-16 15:30:23 +02:00
2019-01-16 15:27:04 +02:00
- C/C++
2020-10-09 10:19:29 +03:00
- [Clojure](clojure.md)
2019-01-16 15:27:04 +02:00
- CoffeeScript
2020-10-09 10:19:29 +03:00
- [Common Lisp](common_lisp.md)
2019-01-16 15:27:04 +02:00
- CSS
2020-08-23 08:39:15 +03:00
- [Dart](dart.md)
2022-02-20 12:52:34 +02:00
- Elixir
2020-10-09 10:19:29 +03:00
- [Emacs Lisp](emacs_lisp.md)
2019-01-16 15:27:04 +02:00
- Erlang
- Go
2019-01-16 15:27:04 +02:00
- Haskell
- JavaScript
- LaTeX
2020-10-09 10:19:29 +03:00
- [Lisp Base](lisp.md) (common foundation for Lisp modules)
- LSP (common foundation for all modules relying on `lsp-mode`)
2022-02-20 12:52:34 +02:00
- Lua
2019-01-16 15:27:04 +02:00
- Markdown
2020-04-08 10:15:30 +03:00
- OCaml
2019-01-16 15:27:04 +02:00
- Perl
2020-04-08 10:15:30 +03:00
- [Programming Base](programming.md) (common foundation for programming modules)
2022-02-20 12:52:34 +02:00
- [Python](python.md)
- Racket
2020-10-09 10:19:29 +03:00
- [Ruby](ruby.md)
2019-01-16 15:27:04 +02:00
- Rust
- Scala
2020-10-09 16:29:48 +03:00
- [Scheme](scheme.md)
2019-01-16 15:27:04 +02:00
- SCSS
2020-04-08 10:15:30 +03:00
- Shell
- TypeScript
2019-01-16 15:27:04 +02:00
- Web
2020-04-08 10:15:30 +03:00
- XML
- YAML
## Other Modules
2020-04-08 10:34:55 +03:00
- [Company](company.md)
2020-04-08 10:15:30 +03:00
- [ERC](erc.md)
- evil
- helm
- ido
- ivy
- key-chord
2020-10-09 10:19:29 +03:00
- Org Mode
2022-02-20 12:52:34 +02:00
- selectrum
2023-02-24 09:21:40 +02:00
- vertico