Commit graph

40 commits

Author SHA1 Message Date
William Carroll
7bf8997830 Support nix/sly-from-universe
This function builds a version of SBCL using `nix.buildLisp` and points `sly` to
the built executable. The result is a REPL with access to your project's
dependencies, which is quite useful. One drawback at the moment is that if new
dependencies are added to the project, I think I need to rebuild SBCL using nix
and restart sly.
2020-01-23 22:02:13 +00:00
William Carroll
7edd5d81f5 Explicitly set that yasnippet directory
I'd like to limit the available snippets to those snippets that I have
explicitly defined. I ran into this problem when defining the `defpackage`
snippet for `lisp-mode`; it appeared that another snippet for `defpackage`
existed somewhere on my machine.
2020-01-23 14:52:18 +00:00
William Carroll
37f8ca04f2 Update dired-mode-map KBDs
- Ensure `"<SPC>"` is available for my "leader" KBDs
- Define `"o"` as `#'dired-find-file-other-window`
2020-01-23 13:50:18 +00:00
William Carroll
5a66f175e5 Support magit-popup
One of my Google Emacs libraries depends on the `magit-popup` library. I believe
it's `fig-status` and I'm unsure why that library didn't ship with
`magit-popup`... tune in next week for more packaging woes.
2020-01-22 21:13:10 +00:00
William Carroll
b3e24a1783 Support Emacs restclient
An excellent HTTP and REST client built into Emacs! Consider reaching for this
instead of reaching for `httpie`, `curl`.
2020-01-22 21:13:06 +00:00
William Carroll
0caca5985e Track work to support individual modules for each LISP dialect
Instead of one, big wpc-lisp.el, I think it might be better if each LISP dialect
that I supported had its own module.
2020-01-22 21:13:06 +00:00
William Carroll
1943c2a643 Lint wpc-lisp.el
Remove dead TODOs that are TODOne along with a few other strange text
artifacts.
2020-01-22 21:13:06 +00:00
William Carroll
397174ebd2 Support Common Lisp
After a bedazzling demonstration of Emacs + Common Lisp, I needed to download
Sly and `sbcl` and give it a try.
2020-01-22 21:13:06 +00:00
William Carroll
92f5773421 Consolidate Racket KBDs
Instead of three separate `general-define-key` statements consolidate all
three. I'm not sure I was aware of this feature of general when I originally
defined all three keybindings.
2020-01-22 21:13:06 +00:00
William Carroll
b843e0f8f6 Remove opam-install variable and assertion
The `prelude/assert` for the existence of the `opam-install` directory was
failing.

I believe this assertion would have been failing sooner, but a bug in my
initialization was preventing Emacs from evaluating `wpc-ocaml.el`. It seems
that I removed whatever was jamming the initialization and as such, I uncovered
some more bugs.

Let this serve as a reminder that just because it hasn't bitten you yet, doesn't
mean that your software doesn't have a bug.
2020-01-22 21:13:06 +00:00
William Carroll
b4a6551dd5 Drop support for evil-leader
Preferring to use the `general` package for defining leader-prefixed keybindings
than `evil-leader`.

This TODO has existed for quite awhile, so I'm pleased to finish it!

During the cleanup, I deleted some keybindings that I no longer used.
2020-01-22 21:13:05 +00:00
William Carroll
ddd5d3a7a0 Drop support for ORG_DIRECTORY in envrc
When Emacs starts it's called from xsessionrc.shared, which is called outside of
direnv's .envrc scope. Because of this variables defined therein, like
ORG_DIRECTORY, are undefined and prevent Emacs from initializing.

I'm hard-coding the `org-directory` variable for now and removing references to
`(getenv "ORG_DIRECTORY")`.
2020-01-22 21:13:05 +00:00
William Carroll
d85df45bab Attempt to tidy Emacs mode line
Removing the major-modes and VCS information from my mode line, since I don't
use this much and I think my mode line is noisy enough as is.
2020-01-22 21:13:05 +00:00
William Carroll
e197dc5aba Re-enable wpc-org with direnv support
After moving some environment variables out of `~/.profile` and into a `.envrc`
file, I broke some of my modules because Emacs, which is started in
`~/.xsessionrc.shared`, is started from outside of the `.envrc` scope.

Thankfully someone wrote an excellent Emacs integration with `direnv` so now the
world keeps turning and it is even more beautiful than it was previously.
2020-01-17 10:56:21 +00:00
William Carroll
9108c3fa7d Drop support for prism-mode
Many times when I run `prism-mode` the contrast between the colors isn't strong
enough. This is unfortunate because I really like the idea.

Perhaps one day I can submit a PR to ensure that it uses the highest-contrast
colors available to it.
2020-01-17 10:56:21 +00:00
William Carroll
97fd83272c Prefer fullscreen for magit-status
Magit as a fullscreen buffer helps me focus by removing the noise of additional
buffers.
2020-01-17 10:56:21 +00:00
William Carroll
8c3cd62ae3 Support package-lint
This library exposes a function called `package-lint-current-buffer` that I
needed to call when attempting to publish `ivy-clipmenu` to MELPA.
2020-01-17 10:56:21 +00:00
William Carroll
34c9d74335 Add parsec.el
Ensures parsec.el is installed in Emacs.
2020-01-17 10:56:21 +00:00
William Carroll
dd9db4e318 Prefer direnv to manage ORG_DIRECTORY
Instead of keeping this in my ~/.profile, I'm going to define it in .envrc.

What I still don't know is how functions like `getenv` are supposed to interact
with direnv. I suppose maybe they aren't? Right now, when I call
`(getenv "DOTFILES")` from Emacs, it's `nil`, which I understand. Hopefully the
more I use direnv, the more reasonable expectations I'll have.
2020-01-17 10:56:21 +00:00
William Carroll
6e70cb527c Support missing Emacs dependencies
Since I moved this repository away from Dropbox, my elpa, melpa, quelpa packages
weren't automatically syncing. This crutch, once removed, cause my Emacs
initialization to fall-over.

This commit patches some of those missing dependencies.
2020-01-17 10:56:21 +00:00
William Carroll
75aa59bac1 Support Solarized Light theme
I'm also making this my default theme for now. I'm growing a bit tired of
randomly assigning themes, since my `terminator` theme is not coupled to my
Emacs theme.
2020-01-17 10:56:21 +00:00
William Carroll
5a1b869af3 Ensure isearch and evil-searches center vertically on the screen
I may revert this one day. Checking this in so that one day I can revert it.
2020-01-17 10:56:21 +00:00
William Carroll
5a60ab886e Reset the custom-file path for Emacs
I temporarily set it to /tmp/custom.el while I was in the midst of Nixifying my
Emacs setup. Since I'm not Nixified at the moment, I'm reverting this, so that
Emacs doesn't ask me the same questions about loading themes every day.
2020-01-17 10:56:21 +00:00
William Carroll
ae75a9df9c Configure deadgrep
Configuring deadgrep to do a number of things:
1. Set `deadgrep--context` to see more context "after" in the output.
2. Define `deadgrep/dwim` to use a region if one is present; otherwise just
   behave as `deadgrep`.

Warning: This commit relies on a patch I made to deadgrep: supporting the
`deadgrep--additional-flags`.
2020-01-17 10:56:21 +00:00
William Carroll
271e7f9561 Support functions for navigating buffer caches
I've wanted an MRU/LRU sort of my "source code buffers" in Emacs. This commit
support three ways for working with a cache of source code buffers.

So first, what's a source code buffer? Well it isn't a buffer like *Messages*;
we can call these "Emacs-generated" buffers for convenience. Other problematic
buffers are buffers like `magit-status` and `dired-mode` and `erc` buffers.

I added some predicates for querying buffers for their major modes.

Supporting three KBDs for quickly accessing these functions:
1. <SPC><SPC> Toggle previous buffer
2. <SPC>b     Use ivy to fuzzily search source code buffers
3. C-{f,b}    Cycle {forwards,backwards} through the source code buffer cache.
2020-01-17 10:56:21 +00:00
William Carroll
88f5791fb5 Install ts.el for timestamp functions in Elisp
I've been looking for this! Thank you, @alphapapa.
2020-01-17 10:56:21 +00:00
William Carroll
e8e5ec5f40 Install prism for scope-highlighting > syntax highlighting
I've wanted a library like this ever since I saw Douglas Crockford's JS talk
about scope highlighting as a more useful alternative to syntax highlighting.
2020-01-17 10:56:21 +00:00
William Carroll
069ca63082 WIP: Nixify Emacs setup
The things that I dislike about this setup are:
1. `xref-find-definitions` takes me to `/nix/store`, which is a read-only
version of the source code, so I cannot edit it, which doesn't feel lispy.

2. I need to rebuild the derivation when I change something, which also doesn't
feel lispy.

There are ways to circumvent both of these drawbacks, but for now, I'm checking
this in only to later revert it.
2020-01-17 10:56:21 +00:00
William Carroll
8c667af902 Support Wall-E theme
Add Wall-E theme to consume the latest `doom-material` theme.
2020-01-06 15:25:25 +00:00
William Carroll
47d16e2512 Support lispyville KBDs
After deciding to support the `C-s-` prefix for lispyville KBDs, I'm
re-introducing support for:
  - `lispyville-drag-backward`
  - `lispyville-drag-forward`
  - `lispyville-end-of-defun`
  - `lispyville-beginning-of-defun`
2020-01-06 15:25:25 +00:00
William Carroll
d5cd2719e7 Support pasting in read-expression-map
This was something small that has been slightly bothering me for a *very* long
time. Now it's fixed!
2020-01-06 15:25:25 +00:00
William Carroll
7ae17daa98 Drop support for i3
While I first switched to EXWM warily and thinking it would only be temporary,
it seems like this switch is here to stay. It turns out that EXWM was exactly
the integration I've been looking for. How serendipitous it that I found it when
I did.

Thank you, @tazjin.
2020-01-06 15:25:25 +00:00
William Carroll
0cd3b44ce3 Support evil-magit, refine
It took me awhile to install evil-magit because I believed that evil-collection
supported it. My grasp of Emacs bindings was enough to tolerate the strangely
"inconsistent" KBD support of in magit. Eventually though my tolerance waned,
and I verified that evil-collection does *not* support magit, and suggests that
users seek evil-magit. I did that. I do not regret it.

Installing Wilfred's refine.el, which is a lovely package for interactively
editing data structures. Go LISP!
2019-12-24 15:21:34 +00:00
William Carroll
7bd668ee8f Defensively install all-the-icons assets
Wrap installation call with a predicate that checks on the file-system for the
icon assets. Along the way, document other parts of the wpc-ui package.
2019-12-24 15:21:34 +00:00
William Carroll
82717e3f22 Support rainbow-delimiters-mode
Why did I ever remove this? Perhaps git can help me answer that.
2019-12-24 15:21:34 +00:00
William Carroll
998646995f Support Typescript
I had previously only worked with Facebook's Flow. Typescript support in Emacs
is excellent!
2019-12-24 15:21:34 +00:00
William Carroll
8fc68d8edb Update OCaml support
After attempting to run OCaml on a separate machine, I realized that I needed to
update the documentation in my wpc-ocaml package.
2019-12-24 15:21:34 +00:00
William Carroll
7adb776927 Support Prolog
Register the .pl file extension with `prolog-mode'. This is useful because I'm
reading the "Learn Prolog Now!" book at the moment.
2019-12-24 15:21:34 +00:00
William Carroll
f739534203 Support fish shell!
After some back-and-forth, I'm trialing fish shell instead of zsh as my default
shell. For now, I'm porting the aliases.zsh into config.fish -- defining them as
abbreviations instead of aliases; this preference may change. See the commentary
in config.fish for more information.

A spent a lot of time in zsh and built much configuration, so supporting fish
may take considerable time. Here's some work that remains:

TODO:
- Port functions.zsh
- Port variables.zsh
- Port zle.zsh
2019-12-24 15:21:34 +00:00
William Carroll
6b456c1b7a Massive configuration overhaul
Currently paying the price of months of non-diligent git usage.

Here's what has changed.

- Theming support in Gvcci and wpgtk
- Dropping support for i3
- Supporting EXWM
- Many Elisp modules
- Collapsed redundant directories in ./configs
2019-12-24 15:21:34 +00:00