Emacs config utilizing prelude as a base
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

102 lines
2.3 KiB

  1. # Modules
  2. !!! Note
  3. Most modules are not currently documented. Helping out with their
  4. documentation is a great way to contribute to the project!
  5. Prelude provides extra functionality through modules. Some modules may
  6. require extra steps to enable all functionality. These steps and the
  7. functionality provided by these modules are documented on the
  8. following links.
  9. ## What's a module?
  10. Prelude modules are plain old Elisp libraries - there's absolutely
  11. nothing magical about them. Most of them simply install a few Emacs
  12. packages and provide some sensible baseline configuration for them.
  13. Here's a real example.
  14. ``` emacs-lisp
  15. ;;; prelude-ruby.el --- Emacs Prelude: A nice setup for Ruby (and Rails) devs.
  16. ;;
  17. ;;; Code:
  18. (require 'prelude-programming)
  19. (prelude-require-packages '(inf-ruby yari))
  20. ;; We never want to edit Rubinius bytecode
  21. (add-to-list 'completion-ignored-extensions ".rbc")
  22. ;; Map yari to C-h R
  23. (define-key 'help-command (kbd "R") 'yari)
  24. (with-eval-after-load 'ruby-mode
  25. (defun prelude-ruby-mode-defaults ()
  26. ;; Don't auto-insert encoding comments
  27. ;; Those are almost never needed in Ruby 2+
  28. (setq ruby-insert-encoding-magic-comment nil)
  29. (inf-ruby-minor-mode +1)
  30. ;; CamelCase aware editing operations
  31. (subword-mode +1))
  32. (setq prelude-ruby-mode-hook 'prelude-ruby-mode-defaults)
  33. (add-hook 'ruby-mode-hook (lambda ()
  34. (run-hooks 'prelude-ruby-mode-hook))))
  35. (provide 'prelude-ruby)
  36. ;;; prelude-ruby.el ends here
  37. ```
  38. To use a module you simple have to require it. No new concepts. No magic.
  39. ## Programming Language Modules
  40. The following programming languages have enhanced support in Prelude:
  41. - C/C++
  42. - [Clojure](clojure.md)
  43. - CoffeeScript
  44. - [Common Lisp](common_lisp.md)
  45. - CSS
  46. - [Dart](dart.md)
  47. - Elixir
  48. - [Emacs Lisp](emacs_lisp.md)
  49. - Erlang
  50. - Go
  51. - Haskell
  52. - JavaScript
  53. - LaTeX
  54. - [Lisp Base](lisp.md) (common foundation for Lisp modules)
  55. - LSP (common foundation for all modules relying on `lsp-mode`)
  56. - Lua
  57. - Markdown
  58. - OCaml
  59. - Perl
  60. - [Programming Base](programming.md) (common foundation for programming modules)
  61. - [Python](python.md)
  62. - Racket
  63. - [Ruby](ruby.md)
  64. - Rust
  65. - Scala
  66. - [Scheme](scheme.md)
  67. - SCSS
  68. - Shell
  69. - TypeScript
  70. - Web
  71. - XML
  72. - YAML
  73. ## Other Modules
  74. - [Company](company.md)
  75. - [ERC](erc.md)
  76. - evil
  77. - helm
  78. - ido
  79. - ivy
  80. - key-chord
  81. - Org Mode
  82. - selectrum