Commit Graph

422 Commits

Author SHA1 Message Date
e6ff06ea2c feat(lang): Add terraform-doc package 2020-05-30 16:50:41 +01:00
bf4c49dd1f fix(lang): terraform-mode now formats buffers on save correctly 2020-05-30 16:49:57 +01:00
41d80de4fb chore(lang): Various minor improvements for ruby-mode 2020-05-30 16:48:36 +01:00
88ceeaa7c7 fix(themes): Handle highlight-indent-guides when switching themes 2020-05-30 16:46:36 +01:00
a3a8c575dc chore(lang): Disable solargraph's multi-root feature
This means that each project gets a separate solargraph server, rather
than one server handles all projects. This does mean more memory is
consumed, but it overall it makes lsp-mode perform much faster, and be
more stable.
2020-05-26 23:49:46 +01:00
aee6af6128 fix(lang): Switch back to formatting Ruby with rubocop-daemon
Using `lsp-format-buffer` is a little bit unreliable, and for some
reason it also skips some cops.
2020-05-24 00:23:18 +01:00
0f13518f91 feat(lang): Add support for Haskell via haskell-mode 2020-05-24 00:22:54 +01:00
3c8fe70d8e feat(persp-mode): Enable switching to most recent persp
Keep a list of most recently visited persps whenever you switch, and
enable switching back and forth between the current and most recently
visited persp.

Also when killing current persp, switch to the most recently visited
persp, instead of back to the default/nil persp.

Minor bug remaining is that the when killing current persp, the echo
area shows all persps like usual when switching, but it includes the
persp that was just killed, despite it already being killed.
2020-05-24 00:18:30 +01:00
c220e65a99 feat(lang): Format shell scripts with shfmt on save 2020-05-24 00:16:53 +01:00
e4c864319a feat(lang): Add module for terraform-mode package
And enable formatting terraform files with `terraform fmt` through the
use of reformatter.
2020-05-24 00:15:32 +01:00
be39020c64 feat(text-editing): Add reformatter package
And override `reformatter-replace-buffer-contents-from-file` with a less
intrusive variant based on how go-mode's `gofmt` command updates buffer
with formatted content.
2020-05-24 00:13:17 +01:00
8814bf1303 feat(performance): Add explain-pause-mode
This might come in handy with debugging what causing slowdowns in emacs.
2020-05-19 21:47:34 +01:00
a71fc70e66 feat(lang): Format ruby files with lsp-format-buffer 2020-05-19 21:45:31 +01:00
764c4dae74 feat(lsp): Improve lsp-mode setup with a prefix key and company tweaks 2020-05-19 21:44:26 +01:00
4276104ca6 chore(projects): Add missing require for siren-projectile 2020-05-19 21:43:26 +01:00
25441f47d3 feat(lang): Use rubocop-daemon to format ruby files on save
On my 2016 MacBook Pro correction times are around 200ms with the
daemon, compared to around 3-4 seconds without.

There might be some issues if bundler depends heavily on gems included
in the project, but we'll see how that goes.
2020-05-19 11:10:19 +01:00
ce174c73e3 chore(navigation): Switch back to mainline helm-ag package
All the PR's I cared about for helm-ag are now merged, so I no longer
need to custom fork.
2020-05-19 11:08:55 +01:00
ac0bf9b42e feat(lang): Enable use of markdown-edit-code-block
This allows editing code blocks within markdown files in a separate
buffer with the proper language major-mode applied.

Also integrate it with recursive-narrow, so it can be triggered with via
narrowing commands.
2020-05-12 17:18:09 +01:00
91df806ec8 chore(projects): Tweak treemacs config
- Remove old defunct settings which no longer do anything.
- Set treemacs to not be reachable via other-window, meaning you need to
  use keybindings to focus on it, like `C-x p`.
2020-05-10 22:52:56 +01:00
8868e975e2 fix(navigation): Ensure imenu config was is set correctly 2020-05-10 22:50:30 +01:00
a6a84524bd fix(lsp): Add helm-lsp-workspace-symbol keybinding for terminal use
Make `C-c '` run `helm-lsp-workspace-symbol` just like `C-c C-'` already
did. This is required as `C-'` cannot be used within terminals.
2020-05-10 21:26:29 +01:00
620b78368c chore(documentation): Move siren-helpful module to documentation dir 2020-05-10 21:26:29 +01:00
cc8a76c617 fix(projects): Improve helm-projectile keybindings in terminal
As `C-;` cannot be used in terminals, make `C-x C-;` and `C-x ;` both
trigger the command I use the most, `help-projectile-find-file`. It's
still easy to trigger `helm-projectile` via `C-c p h`, wherein `C-c p`
is the projectile prefix.
2020-05-10 21:26:24 +01:00
cdacf31ca0 feat(editor): Replace browse-kill-ring with helm-show-kill-ring 2020-05-10 21:26:24 +01:00
c69dec37bc fix(navigation): Improve helm-apropos usage
- Assign `helm-apropos` to `<helm-prefix> d` instead of the default
  `<helm-prefix> a`, as that is now taken up by `helm-do-ag`.
- Use the `helpful` package to describe functions and variables.
2020-05-10 21:26:12 +01:00
decc1c58c1 fix(navigation): Improve helm-ag keybindings
Have both `C-c C-'` and `C-c '` bound to `helm-do-ag-project-root`, so
it can be triggered from a terminal. As `C-'` cannot be sent to emacs
due to limitations of terminal emulators.

Also move `helm-do-ag` from `C-c C-s` to `<helm-prefix> a`, now that the
`helm-command-map` can reliably be used. This effectively means you
trigger `helm-do-ag` with `C-c h a` right now.
2020-05-10 21:26:06 +01:00
cb16ffe993 fix(navigation): Lazy-load helm without breaking keybindings
This involved always loading `helm-config` which sets up
`helm-command-prefix` and `helm-command-map` allowing use-package to set
bindings on the map all without loading anything else until needed.
2020-05-10 21:23:37 +01:00
889da809e0 fix(tools): Ensure helm-make package keybinding works
This is a temporary fix for now, as I prefer lazy-loading packages
whenever possible. However when lazy-loading helm, and then using
use-package to set a keybinding in the helm-command-map before it's
loaded, causes the "m" keybinding to be overridden by the default one
from helm, once helm loads.
2020-05-07 19:51:04 +01:00
1d04474ab0 feat(dired): Add dired-subtree and dired-narrow packages
- dired-subtree allows inline expansion of directories, effectively
  rendering a tree of directories and files.
- dired-narrow enables lives filtering of all entries in a dired buffer,
  making searching for and selecting directories and files much easier
  and intuitive.
2020-05-07 19:21:46 +01:00
c458d8ef2f feat(dired): Customize dired+ faces to match doom-themes
Also ensure dired+ is always loaded, as lazy-loading it seems to cause
the first dired buffer to not use dired+ plus, but all others afterwards
do.
2020-05-07 19:20:21 +01:00
974a2b86ed refactor(text-editing): Improve string-inflection package setup 2020-05-07 19:14:28 +01:00
801d6f133a feat(navigation): Improve narrowing with recursive-narrow package
Additionally allow `recursive-narrow-or-widen-dwin` to also trigger
`org-edit-src-code` within org buffers. This technically does not use
narrowing, but it does "focus" on the source code block for editing, so
it at least in spirit embodies the intent of narrowing.

This behavior was inspired by:
https://endlessparentheses.com/emacs-narrow-or-widen-dwim.html
2020-05-07 19:11:05 +01:00
4d447e723a feat(text-editing): Safer case change keybindings (C-x C-u, C-x C-l)
By default when region is not active, both `downcase-region` (C-x C-l)
and `upcase-region` (C-x C-u) will operate on surrounding text in
different ways depending on major-mode. This has caught me off guard a
few times.

So let's replace them with safer `downcase-region-only` and
`upcase-region-only` functions which ONLY perform changes when the
region is active. And obviously changes are only applied to the text
within the region.
2020-05-07 19:06:14 +01:00
b00b96092b refactor(core): Organize siren util funcs and macros a bit better 2020-05-07 19:02:55 +01:00
34c130ae7e chore(navigation): Use custom fork of helm-ag
There's a few outstanding PRs and issues on helm-ag. I've collected the
changes I care about into my own fork under a branch called
`personal-patches`, and using that for now.
2020-05-06 23:32:28 +01:00
4869796d6f feat(navigation): Use ripgrep instead of the_silver_searcher in helm-ag 2020-05-06 23:08:23 +01:00
950010ec68 chore(writing): Make writeroom view wide enough to fit line numbers 2020-05-04 20:14:23 +01:00
92bc4af0fc fix(lang): Remove stray invalid character causing semi-random issues 2020-05-04 20:14:22 +01:00
121cbfd9ce chore(editor): Don't display persp name in modeline 2020-05-04 09:09:56 +01:00
48ad5c8993 chore(lang): Remove flycheck-golangci-lint package, lsp handles linting 2020-04-26 22:26:43 +01:00
9efa5e54e9 fix(helm): Do not defer helm-make package to ensure keybinding works 2020-04-26 22:26:11 +01:00
54a9f62bbb chore(lang): Mark conf-mode as a built-in package for straight.el 2020-04-19 20:19:54 +01:00
f66d246337 feat(lang): Add nginx-mode and company-nginx packages 2020-04-19 20:18:54 +01:00
98f2dc0763 chore(navigation): Customize dired for GNU-based operating systems 2020-04-16 12:51:38 +01:00
767014dba5 feat(workspaces): Enable easy re-ordering of persp-mode perspectives 2020-04-09 13:56:24 +01:00
38e20c7d62 feat(lang): Add go-gen-test package for generating tabular tests
It uses gotests under the hood.
2020-03-30 22:08:05 +01:00
f0e8bd2388 chore(editor): Use siren-display-indentation exclusively
Instead of directly using the my current favorite indentation
highlighting package in various places, only use the
siren-display-indentation function. This lets me control it from a
single central place.
2020-03-30 21:57:32 +01:00
3e31bf0f2f chore(lang): Tweak company and whitespace options for golang
Setting company-echo-delay to 0.5 instead of 0 will help reduce unneeded
and intrusive code-completion popups while in the middle of typing. It
seemed like a good idea when I first set it, but after some use, no
thanks.

The whitespace-style tweak, effectively removes "indentation" from the
list of items whitespace-cleanup deals with on save. Indentation is
already being fixed by lsp-mode's before-save hooks, and
whitespace-cleanup was not very intelligent about it. It specifically
replaced all instances of four consecutive spaces in raw string
literals with a tab, which caused issues with multi-line raw strings
containing JSON.
2020-03-30 21:24:34 +01:00
5443b3dbc7 chore(lang): Tweaks projectile setup releated to dart and go 2020-03-30 21:24:01 +01:00
c7e507f5ba chore(editor): Switch back to highlight-symbol package
The auto-highlight-symbol package has a nicer interactive editing mode,
but it messes with the visual presentation for selected region and other
things. So let's go back to the less fancy but more reliable
highlight-symbol package.

Also let's properly disable both symbol highlighting packages in golang
and dart, where lsp-mode provides a better and more intelligent symbol
highlighting feature.
2020-03-30 21:21:10 +01:00