radian
emacs-config
radian | emacs-config | |
---|---|---|
4 | 20 | |
484 | 81 | |
1.0% | - | |
6.7 | 9.2 | |
2 months ago | 7 days ago | |
Emacs Lisp | Emacs Lisp | |
MIT License | GNU General Public License v3.0 only |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
radian
- Whose user init have you found helpful?
-
Help with nested macros needed
(defvar test--var1 nil) ;; From https://github.com/raxod502/radian/blob/cb1dda7c8a697b2d6e3b2683805df6a085aed1c7/emacs/radian.el#L194 (defmacro my-when-compiletime (cond &rest body) "Like `when', but COND is evaluated at compile time. BODY is only compiled if COND evaluates to non-nil." (declare (indent 1)) (when (eval cond) (macroexp-progn body))) (defmacro my-log (s &rest args) "Log to *Messages*." `(when t (message (concat (propertize "the value is: " 'face 'font-lock-comment-face) (when (bound-and-true-p test--var1) (propertize (format "[%s/%s] " (substring (symbol-name (car test--var1)) 1) (cdr test--var1)) 'face 'warning)) ,s) ,@args))) ;; input should be an unquoted list containing like (:a b c) and c can be and ;; often is nil. The variable f take is included here for completeness but does ;; not do anything. (defmacro my-macro (input &rest body) (let ((c (car input)) (m (car (cdr input))) (f (cdr (cdr input)))) `(my-when-compiletime t (let ((test--var1 `(,,c . ,',m))) (message "test--var1 is %s" test--var1) (my-log "We are in my-macro") ,@body)))) ;; This works as expected (my-macro (:a b) (my-log "%s" test--var1)) ;; => test--var1 is (:a . b) ;; => the value is: [a/b] We are in my-macro ;; => the value is: [a/b] (:a . b) ;; => #("the value is: [a/b] (:a . b)" 0 14 (face font-lock-comment-face) 14 20 (face warning)) ;; This not (my-macro (:a b) (defun test-fun1 () (my-log "hey")) (run-with-timer 0.1 nil #'test-fun1)) ;; => test--var1 is (:a . b) ;; => the value is: [a/b] We are in my-macro ;; => [nil 24719 64999 224627 nil test-fun1 nil nil 964000] ;; => the value is: hey
- radian: 🍉 Dotfiles that marry elegance and practicality.
-
This is the Way
You might also want to check out Radian if you haven't seen that one yet. I haven't used it, but have read most of the code. It strikes me as a very Emacs-y "starter kit".
emacs-config
-
Emacs Advent Calendar 7: ordeless, embark 1.0 and some bric-a-brac
block-undo. Have keyboard macros undo in a single step (something vi gets right!).
- embark-kmacro.el: Embark support for Hyperbole key series
-
Stripped-down Embark?
Installing that Embark key series implementation I mentioned above, to get extra actions for key series such binding them to a key or turning them into named keyboard macros.
-
How do guys 'namespace' calls to functions in the same 'namespace'?
Generally I recommend to maintain all personal code in the form of tiny but proper Elisp libraries. The config just glues everything together using use-package/setup/your-self-baked-macro. See also /u/oantolin's config which uses this style: https://github.com/oantolin/emacs-config. I cannot recommend this enough!
-
How many lines are in your .emacs file?
I have 3720 lines in my configuration. I try to write as much of it as tiny packages that I configure with use-package, just like I do for external packages. (I highly recommend this form of organization) Many of these are only useful to me, but some would be very reasonable to steal, like:
-
[ANN] unpackaged/imenu-eww-headings: Offer HTML headings in EWW buffers with Imenu
I have a slightly different take on this in my configuration, file shr-heading.el. In addition to imenu support I wanted next and previous heading navigation commands. It turns out you then get imenu support for free, since one way you can specify imenu entries is by providing a "goto previous imenu entry" function.
- Whose user init have you found helpful?
-
Dragging the region
I wrote a small drag-region package once. You mark a region, turn on drag-region-mode and then your normal motion commands will drag the region along until you turn the minor mode off again. I never tested it with evil.
-
ecomplete: the Emacs contact manager you were looking for
I'm very happy with ecomplete now, I mostly just need the completion and automatic storing of addresses I write to, as configured in your post. But occasionally I want to remove an address or manually add one, so I wrote a couple of commands to do that which I bind in embark-email-map to + (for adding) and \ (for removing). I don't think I've used these commands directly, always as Embark actions. When I want to add an email to ecomplete I usually have it written in some buffer already. And the command to remove an email I've only ever used from the ecomplete completion interface or from a message buffer after mistakenly having inserted it and realized that's an old address I'll never use again.
-
Need help integrating a package into consult
I keep some packages in a subdirectory my personal configuration and don't create a separate repo for them. (Also, not every file there is really a package that could be released: some don't follow proper naming conventions, or depend on details of my configuration).
What are some alternatives?
.emacs.d - M-EMACS, a full-featured GNU Emacs configuration distribution
embark - Emacs Mini-Buffer Actions Rooted in Keymaps
dotfiles - My personal dotfiles (emacs, zsh, vim, i3)
lispy - Short and sweet LISP editing
dotfiles - My dotfiles: macOS, OpenBSD, Linux. Setup: git init; git remote add github https://github.com/rollcat/dotfiles; git pull github master
consult-better-jumper - Integrate better-jumper into consult
magit-todos - Show source files' TODOs (and FIXMEs, etc) in Magit status buffer
prism.el - Disperse Lisp forms (and other languages) into a spectrum of colors by depth
Dotfiles - There's no place like ~/
consult - :mag: consult.el - Consulting completing-read
help - HELP Enables Literate Programming
modalka - Modal editing your way