Commit graph

1470 commits

Author SHA1 Message Date
William Carroll
b01ce5059d Debug defensive call to (server-start)
I was previously relying on the variable `server-process` being set, but this
only resulted in false-negatives and broken initializations. This should make my
Emacs initialization more stable.
2020-09-07 16:30:54 +01:00
William Carroll
2afc753651 Add direnv to Emacs dependencies
direnv.el needs direnv available on $PATH.
2020-09-07 16:20:41 +01:00
William Carroll
3a87f3485f Conditionally load-theme
When the `window-system` is set, use `solarized-light`. When it's not,
use `wombat`.
2020-09-07 16:14:42 +01:00
William Carroll
bdd9d963be Conditionally start Emacs server
Only attempt to start the Emacs server if there isn't already one
running.
2020-09-07 16:14:42 +01:00
William Carroll
0f2a13a32a Vertically align search results conditionally
Only when `window-system` is set.
2020-09-07 16:14:42 +01:00
William Carroll
3dc10f167b Install keybindings for bookmark.el
I would like to restore these KBDs.
2020-09-07 16:14:42 +01:00
William Carroll
a366f352e6 Suppress cl deprecation warnings during initialization
See the URL I linked to for more information.
2020-09-07 15:47:47 +01:00
William Carroll
cc1a91078a Drop support for building emacs.glinux
I'm defining a fork of this function in my work configuration, so I longer want
this here.
2020-09-07 15:47:17 +01:00
William Carroll
12b5a10b05 Debug project-find-file for briefcase
As the name suggests, `f-parent-of?` only returns true when A is a *parent* of
B. What I want instead if `f-ancestor-of?`.
2020-09-07 15:41:54 +01:00
William Carroll
9773bc32ee Expose withEmacsPath on emacs attribute
I need this for Nix code that exists outside of this repository.
2020-09-07 10:52:54 +01:00
William Carroll
43fc1d93fb Prefer 'vc as the project-find-file type when at briefcase's root
See the explanatory comment that I left in the code.
2020-09-06 18:20:19 +01:00
William Carroll
5cf6a0b23d Add defgroup vterm-mgt for vterm-mgt
In the past I used `defconst` in many of my Elisp libraries where I should've
used something like:

```elisp
;; some/path/to/some-lib.el

(defgroup some-lib nil)

(defcustom some-lib-setting nil
  :group 'some-lib)
```

When I encounter code that I should've structured this way, I'm cleaning it up
to prefer this more idiomatic pattern.
2020-09-06 13:49:53 +01:00
William Carroll
b89d1f0a1f Call make-process instead of call-process in scrot.el
While attempting to debug why pressing `C-s-s` from an X-window screenshots my
entire screen, I switched from `call-process` to `make-process`, which is
async.

I still haven't debugged the original issue, but I think this is an improvement
regardless.
2020-09-04 21:06:18 +01:00
William Carroll
4763c7ca45 Restore KBDs for changing my font size
When I removed the KBD logic from fonts.el, I should have moved it here, but I
did not.
2020-09-04 21:04:56 +01:00
William Carroll
73af825389 Debug broken pulse-audio KBDs
Looks like when I linted my Emacs I forgot to change the prefix from
`pulse-audio/` to `pulse-audio-`.
2020-09-04 21:04:10 +01:00
William Carroll
aae5b4c88c Enable font ligatures for Emacs 27!
Now that Emacs is capable a rendering font ligatures, I defined a function to
enable them in fonts.el. Everything works, and it's beautiful.
2020-09-04 21:03:16 +01:00
William Carroll
97c2706821 Prevent warning during Emacs initialization
Now that my `script.el` is behaving as expected (wahoo!), start linting away
anything that shows up in the `*Warnings*` and `*Errors*` buffers.
2020-09-02 15:24:30 +01:00
William Carroll
f089f3c550 Linting Elisp
TL;DR:
- Prefer cl-lib
- Prefer spaces to tabs
- Resolve various checkdoc complaints
2020-09-02 15:23:46 +01:00
William Carroll
ea274f924a Remove KBD installations from more Elisp modules
I originally liked this pattern, but now I'd prefer to put everything in
keybindings.el.
2020-09-02 15:03:04 +01:00
William Carroll
d1ee517461 Require general.el for packages that depend on it
Since I'm calling `(require 'general)` in `wpc-package.el`, which gets called at
the beginning of my `init.el` file, all sub-modules have `general`. I originally
wanted this, but I'm beginning to rethink that preference.

After `script.el` broke my CI because of a missing `general` dependency, I'm
fixing it for `buffer.el` and all other modules that consume `general`.
2020-09-02 15:01:43 +01:00
William Carroll
f9be81b23e Add missing ts.el dependency to buffer.el
Since script.el depends on buffer.el now, buffer.el fails to evaluate because of
a missing dependency on ts.el.

Blindspots like this make me want to eventually support testing individual loads
of each of the libraries in my .emacs.d/wpc directory.
2020-09-02 14:52:17 +01:00
William Carroll
924c7fa419 Debug undefined add-hook-before-save
`use-package` complains that `add-hook-before-save` doesn't exist. This is
because it's now named `macros-add-hook-before-save`.

This fixes that.
2020-09-02 14:49:10 +01:00
William Carroll
71e57700d6 Debug false-negative reports for init-emacs CI step
Problem: `(bufferp "*Warnings*")` always returns `nil` because it expects a
buffer object. Thankfully I wrote a function called `buffer-exists?`, which is a
more DWIM alternative of `bufferp`.

Hopefully now CI should fail!
2020-09-02 14:47:34 +01:00
William Carroll
2200daeea4 Add missing Elisp dependencies
TL;DR:
- Require cl-macs.el for modules using CL-style macros like `cl-defun`
- Require struct.el for call to `struct-set!`
2020-09-02 14:39:41 +01:00
William Carroll
fd16fec666 Delete unused slack-snippets module
I haven't used Slack in awhile -- let alone Slack from Emacs.
2020-09-02 14:38:42 +01:00
William Carroll
8806604d40 Increase assertiveness of init-emacs script.el
TL;DR:
- Assert that the path to the init.el exists
- Check *Errors* buffer in case an error is uncaught but logged
- Log a message when Emacs successfully initializes
2020-09-02 14:18:50 +01:00
William Carroll
4a69371065 General Elisp linting
TL;DR:
- Remove `require` statements from init.el
- Remove unused, auto-install KBDs for bookmark.el
- Remove unused `require` statements from clipboard
- Remove unused, commented-out code

I would like for an Elisp linting stage to test for unused `require` statements,
but I'm unsure how practical that is to support.
2020-09-02 14:09:15 +01:00
William Carroll
dffb224023 Remove circular Elisp dependency
maybe.el -> prelude.el -> maybe.el

I should test for circular-dependencies in CI...
2020-09-02 14:08:14 +01:00
William Carroll
9c71c78abc Pull Emacs 27 from @tazjin's depot
Here's what happened:

My `emacs.glinux` derivation relies on gLinux `/usr/bin/emacs`, and Google
recently published version 27, so all corporate machines (i.e. this laptop)
switched from Emacs 26 to Emacs 27 overnight.

However, my Nix derivation was building all of the packages for Emacs 26, so
some packages were compatible while others weren't.

The Elisp package, `emr`, doesn't build for version 27, so I dropped it
altogether.
2020-09-02 14:07:39 +01:00
William Carroll
c17796a60d Rename alist.el to al.el
After switching my namespace separator from "/" to "-" the function,
`alist-get`, clashed (surprise!) with the pre-existing function, `alist-get`. As
I was struggling to debug my broken Emacs (it broke bc Emacs 27 rolled out), and
I changed the module name, "alist", to "al" attempting to defuse the issue.
2020-09-02 14:00:43 +01:00
William Carroll
1fe5d0373e Delete unused org-clubhouse
Sorry, @grfn! I haven't used Clubhouse is awhile...
2020-09-02 13:58:34 +01:00
William Carroll
6961948da5 Allow Elisp linting to run concurrently with Emacs init
No reason for init-emacs to block lint-elisp.
2020-09-01 16:50:12 +01:00
William Carroll
baf08416cf Apply checkdoc fixes to set.el
While I don't agree with what checkdoc is advising here, I'd rather not fight
it.
2020-09-01 16:27:42 +01:00
William Carroll
75a9a156a0 Redefine >> macro as >-> in >.el
I created a strangely named Elisp module, >.el, just to appease the CI gods. My
gut tells me that this is a desperate idea and fails the smell test. I'm pretty
eager to pass the linting phase of my Elisp CI, however, and I can always revert
this.
2020-09-01 16:26:39 +01:00
William Carroll
718899c629 More Elisp linting
In order for this to scale, I need to solve two things:
1. Ad-hoc ignore fill-column rules for URLs and other exceptions.
2. Run Elisp flychecker without evaluating my Elisp code and firing its
   side-effects.
2020-09-01 14:00:42 +01:00
William Carroll
3b2fffe954 Consume utils.builder in home.nix
Consuming my newly defined Nix utilities.
2020-09-01 12:17:44 +01:00
William Carroll
3fb9324c82 Delete comment monzo_ynab deployment
I haven't used this since I wrote it months ago...
2020-09-01 12:17:16 +01:00
William Carroll
a076027945 Define {builder,fs}.nix for utils.nix
Re-export everything from utils.nix.
2020-09-01 12:16:34 +01:00
William Carroll
fb5ec068dd More Elisp linting
This should cover most of the remaining linting errors. After this, I expect
fewer than ten linting errors.
2020-09-01 10:17:43 +01:00
William Carroll
a638e15c0d Lint string, macros.el
More of the same type of linting... basically preferring `namespace-` instead of
`namespace/`.
2020-08-31 23:33:25 +01:00
William Carroll
158f810981 Delete bills.el
Another cold, stale Elisp module.
2020-08-31 23:28:22 +01:00
William Carroll
644e01eb21 Fix fill-column errors
- removing stale comments
- dropping stale KBDs
2020-08-31 17:20:04 +01:00
William Carroll
ff8277625f Lint prelude.el
This was a doozey because I use it everywhere. Is there a better way to globally
rename things? Aye aye aye... computers, man!
2020-08-31 17:08:56 +01:00
William Carroll
5d3bb0b7ea Additional linting
Running `M-x checkdoc` on some of the modules that passed the package-lint but
failed additional lints.
2020-08-31 16:07:11 +01:00
William Carroll
2a51698672 Lint more Elisp files, delete others
I may regret this, but I delete Ocaml and ReasonML modules; I can alway restore
them thanks to Git.

Added more ceremony to other modules to appease the linting gods.
2020-08-31 15:57:34 +01:00
William Carroll
1e253a756b Delete entr.el
As I strive to lean down my Emacs configuration modules like this must go.
2020-08-31 15:49:27 +01:00
William Carroll
b475f7166e Delete unused .nix expressions
These were never more than scratch buffers that I used when I was feeling around
in the dark trying to learn Nix.
2020-08-31 15:48:25 +01:00
William Carroll
d6cf2fe462 Remove (require 'kaomoji) from init.el
I should've done this when I deleted kaomoji.el because this broke my
"Initialize Emacs" step.
2020-08-31 15:47:41 +01:00
William Carroll
69a14dd37f Delete unused Elisp modules
It is striking how much Elisp I wrote after switching to EXWM... I think I'm
finally coming down from that high.
2020-08-31 15:06:49 +01:00
William Carroll
a35f723d92 Lint maybe.el
This change had rippling implications.
2020-08-31 14:59:48 +01:00