In the Groovy used with Jenkins it seems quite common for there to be top-level
functions that aren't explicitly in classes (they still are implicitly).
The ‘get-multifile-module-version’ and ‘get-module-version’ functions open up
the given Emacs Lisp file and search for a “Version” header, parses it out, and
then returns the file name of the module as it should look in the package
archive.
I'm working on moving my build setup to my own laminar[1] instance. To do this I
need to be able to package files up. It appears that I couldn't quite get Cask
to work, and Eldev exists in the Guix[2] package repository.
[1]: https://laminar.ryuslash.org/
[2]: https://guix.gnu.org/
I'm having some issues with my ‘consult-buffer’ setup and I'm hoping that
putting this in its own function will help me debug the issue, or at least show
me if this is part of the issue or not.
The various ‘M-<NUMBER>’ keybindings are all also bound to ‘C-<NUMBER>’, no need
to have both, and using ‘M-0’ is a lot easier than using ‘C-x 0’. This also
replaces the old keybindings with a message that tells me to use the new
keybindings instead to help me learn.
Don't load the user init file while building my Emacs packages, make sure to use
a different ‘package-user-dir’ so that bad packages don't interfere and it
doesn't accidentally work because of existing packages. Specify the
‘package-archive-upload-base’ in the Makefile so that there is only one place to
look and modify if this needs to move. Ensure that the
‘package-archive-upload-base’ exists before uploading to it.
This also happens to include changes to the font for Eshell as an experiment and
setting the page delimiter so page navigation commands work on prompts.
Instead of adding a lot of tags and adding a lot of agendas filtering on them
I'm experimenting with using org-edna to make certain contexts a dependency of a
task to filter them out of my todo list.
Current contexts I'm experimenting with are:
- ‘day-of-week?’ to filter out tasks that I can only do on certain days.
- ‘night-time?’ to filter out anything that I can't do in the evening. Usually
having to do with contacting others.
- ‘business-hours?’ to filter out anything that is outside of a certain
timezone's “business hours”, defined by me as anywhere between 9am and 6pm.
‘paredit-mode’ appears to have added keybindings for ‘C-j’ and ‘RET’ that
weren't there before (or did I enable ‘paredit-mode’ in IELM recently?) and that
interfere with executing code.
This way of removing the keybindings works in a buffer-local only way so that in
other buffers the ‘RET’ and ‘C-j’ keybindings remain untouched.
First: the match needs to be any entry that does match the names of the people
whos blogs I already follow.
Second: The search regular expression can't contain spaces. It seems to be the
same as any search query. So when a regular expression contains a space it's
considered two different search terms. This doesn't work when we're searching
for one option with a space in it (“Irreal” or “Sacha Chua” or “Andrea”) since
the syntax for the regular expression gets all messed up. Quickest workaround is
to match any whitespace instead.
Instead specify a width for the column and shrink the table. This way it still
gets truncated, but it can be expanded and the whole text is in the column.
These function help me make sure that I'm properly going through both files. The
command ‘oni-org-run-through-inbox’ will first dump any items in the tickler
file that are relevant for today and then it goes through each item in my inbox
and asks me to take an action on them.
This helps me both go through my inbox more easily, but also helps me keep track
of the items in my tickler file, which has been something I keep forgetting to
look at.
The ‘oni-org-dump-tickler’ command should be idempotent, so calling it multiple
times per day shouldn't mess with the different dates in the file. If it
discovers that the current day isn't the same as today it keeps going through
the tickler file, dumping any tasks it finds into the inbox, until it finds the
right day number. It's not aware of any of the months, so it'll happily move to
the next month if your tickler file is in the wrong state. Also if your tickler
file hasn't been updated in more than a month it also doesn't understand that it
needs to keep going and will keep presenting you with old tasks.
It's a fun idea, but practically it makes things a lot slower in certain
situations and by default it has some weird concepts of what safe or pure
functions are.
When I write a commit message there is always the default comment that lists
which files are to be committed, which files aren't staged for commit, and which
files are just entirely unknown to git at the moment. By default with
‘refill-mode’ turned on (which I have to make it easier to modify paragraphs
after I've written them) this comment usually gets all garbled by the refill
command.
This bit of code prevents the comment from being filled initially.
I frequently want to just open the URL of a package to see the readme and
possibly some screenshots. There doesn't appeart to be a built-in keybinding for
that.
Automatically generated colors for todo keywords and tags using an MD5 hash will
produce a completely random color, frequently not fitting well at all within my
chosen color theme. Using the LCh color space and keeping the L(uminance) and
C(hroma) constant will produce colors that fit together much metter, and the
values have been picked to work well with ‘yoshi-theme’.
This change was inspired by “Arbitrary Beautiful Colors”[1].
[1]: https://khanlou.com/2023/02/arbitrary-beautiful-colors/