this commit adds a default keybinding for the vc-gutter hydra (leader-g
.) if both vc-gutter and hydra are enabled. It ensures that the various
vc-*-log-view-modes open up in emacs state, and it adds hg, svn and bzr
to the list of vc backends handled by git-gutter
* switch the company-backend used by lsp-mode from company-lsp to
company-capf (said to provide better performance and allows us to remove
the dependency on company-lsp)
* when available (on recent builds of Emacs 27+), lsp-mode buffers will
now use a larger than default value of `read-process-output-max`.
According to the lsp-mode performance guide, this can also significantly
improve lsp-mode performance
* flycheck support recently moved into lsp proper; with this commit,
the lsp module follows suit and prefers lsp-flycheck over
lsp-ui-flycheck
* if the new module flag `+no-peek` is set, doom-emacs will now use the xref
backend for reference and definition lookup instead of the lsp-ui-peek-*
backend offered by lsp-ui-mode
Caused by over-zealous doom-switch-window-hook.
For my own sanity (and if you're curious), I'll break it down here:
1. Doom has a `doom-switch-window-hook` hook. It triggers when window
focus is changed.
2. We use `buffer-list-update-hook` to trigger
`doom-switch-window-hook`. (That may sound weird, but this hook is
reliably executed when window focus is changed -- there are
safeguards to prevent this from triggering too often)
3. `buffer-list-update-hook` triggers whenever a buffer is created, but
`doom-switch-window-hook` only triggers if the created buffer is in
a new window.
4. The use of `with-temp-buffer` in `centaur-tabs-line-format` counts as
"buffer creation" in a "new window".
5. `+vc-gutter-update-h` is in `doom-switch-window-hook`. This refreshes
git-gutter, which initiates a redraw of Emacs.
6. When Emacs redraws, it recalculates its mode and header lines. which
triggers `doom-switch-window-hook` once, which triggers
`+vc-gutter-update-h`, which redraws the screen, then Emacs recalculates
the header line, running `centaur-tabs-line-format`...
Infinite loop ensues
Hopefully fixes:
- hlissner/doom-emacs#2436
- ema2159/centaur-tabs#18
- ema2159/centaur-tabs#88
I think it's pretty common for people (myself included) to name their capture file `capture.org` file, and currently this rule matches it, so if you open capture.org, your end up with it opened in a popup (I believe it wasn't intended?). My fix makes it so it matches only capture buffers (they've got name like `CAPTURE-filename.org`). I believe there shouldn't be any unanticipated consequences of the change?
As far as I understand, the problem is that in elisp, regexes are case insensitive by default, and the sensitivity is controlled by a [variable](http://ergoemacs.org/emacs/emacs_regex.html), so I struggle to see what's the proper way to control it (especially considering the window manipulation happens in `window.el`). If you know of a way to deal with this, happy to implement and update my pull request!
A common bug report is that straight cannot see treemacs-persp in MELPA.
Perhaps the MELPA repo isn't being updated properly -- I have no idea,
but since this package isn't doing anything at the moment, I will simply
remove the package until I have time to look into it further.
When a file template rule is evaluated against a particular buffer it is
supposed to call the :when function if it is defined. Currently, the
function is ignored if the PRED of the template rule is a mode. This
fixes this issue.