Doom Emacs is an active and ongoing project, maintained mostly by a single person, but includes the efforts of 200 contributors and growing. There is no shortage of things that need doing; bugs that need stomping, features that need implementing, and documentation that needs documenting. If Doom’s been useful to you, convert some caffiene into code; it’d be a huge help!
You are welcome to join us on our Discord server, otherwise read on to learn how to contribute to our fine corner of the interwebs.
You’ve found a problem and you’re ready to fire off that bug report. Hold up! Before you do that, have a look at our Troubleshooting guide. If none of these suggestions pan out, then it is time to file a bug report.
An effective bug report is informative. Please try to provide:
This section will show you how to collect this information.
See ”How to extract a backtrace from an error” in the Getting Started guide.
There’s much to be done around here! We need bugfixes, new features, and documentation. If you’d like to convert some caffeine into Emacs Lisp, here are a few considerations before starting that PR:
Doom conforms to @bbatsov’s emacs-lisp style guide with the following exceptions:
mapc instead of seq-do.DEPRECATED to indicate code that will eventually be removed.Doom has a number of naming conventions that it uses in addition to the standard lisp conventions. Third party packages may use their own conventions as well.
The lisp conventions are simple. Symbols follow NAMESPACE-SYMBOLNAME for
public variables/functions (e.g. bookmark-default-file or
electric-indent-mode) and NAMESPACE--SYMBOLNAME for private ones (e.g.
byte-compile--lexical-environment and yas--tables).
NAMESPACE is usually the name of the containing file or package. E.g. the
company plugin prefixes all its variables/functions with company-.
doom/NAME or +MODULE/NAME
M-x or a keybinding. e.g. doom/info, +popup/other,
+ivy/rg.doom:NAME+evil:align,
+ivy:rg.doom-[-]NAME-h or +MODULE-[-]NAME-h
+cc-fontify-constants-h,
+flycheck-buffer-h.doom-[-]NAME-a or +MODULE-[-]NAME-a
doom-set-jump-a,
doom--fix-broken-smie-modes-a, +org--babel-lazy-load-library-a
doom-[-]NAME-fn or +MODULE-[-]NAME-fn
+lookup-dumb-jump-backend-fn, +magit-display-buffer-fn,
+workspaces-set-project-action-fn
abc!Autodefs usually serve to configure Doom or a module. e.g. after!,
set-company-backends!, set-evil-initial-state!
rewrite-docs for changes to *.org files.master for everything else.develop. It’s EOL.Doom Emacs’ documentation is an ongoing effort. If you have suggestions, improvements, tutorials and/or articles to submit, don’t hesitate to get in contact via our Discord server or email. I appreciate any help I can get!
Doom pins all its packages to reduce the likelihood of upstream breakage leaking into Doom Emacs. However, we may miss when a package releases hotfixes for critical issues. Let us know or PR a bump to our pinned packages.
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。