+ Rather than waiting for the first "interactive" major mode to be
visited to activate yas-minor-mode, we wait until the first time the
user invokes a snippet command to activate yas-global-mode.
+ yas-reload-all is one of the bottlenecks when loading a file for the
first time. Deferring it further should help with this.
+ yas-global-mode reaches more major modes than our former list of
hooks (fixes#5140).
Closes#5140
This happened because LSP hooks on kill-buffer-hook (and possibly
others) caused our temporary formatting buffer to talk to LSP as if it
were the original buffer. When the temp buffer was cleaned up, LSP
assumed the original buffer had been closed. No more!
In fact, to avoid similar issues, let's avoid any complex functionality
in hooks in this temp buffer.
This isn't the apheleia rewrite, just a redesign to fix the module's
current issues with its +onsave feature.
+ Rethinks how the formatter dispatches to lsp/eglot's formatter.
+ Stops format-all from being too imposing with its warnings.
+ Relies more on format-all-mode to control formatting-on-save.
+ Sidestep +format-buffer-a hackery when using lsp/eglot formatters.
Fixes#5121Fixes#5128Fixes#5133
Tab should only be changed for evil users in insert mode, since they
have fold cycling functionality available in normal mode and vanilla
users do not.
`cargo doc --open` (the previous binding of `SPC m b d`) always opens a
new browser tab. For "doc-driven development" this isn't so nice, since
we'd like to stay in the same tab and just refresh its contents after
editing. That's what `cargo doc` (without `--open`) does, which is
called by `#'rustic-carg-build-doc`.
This commit introduces a binding for the latter behaviour, but asigns it
to the old `SPC m b d`, with the "open" variant as `SPC m b D`. This
matches Spacemacs and follows the usual pattern of "the capital letter
variant is the one you use less often".
The :editor format module uses either the formatter available through an
LSP server or a formatter that the format-all package supports. With
:editor (format +onsave), this formatter is triggered when a file is
saved. However, if no format-all formatter is available, this on-save
behavior is disabled, even if an LSP formatter is available. This fixes
that.
+ Use rjsx-mode for all javascript files. It degrades gracefully and is
less maintenance.
+ Rethink flycheck + JS integration. You should get eslint and tslint
support in web-mode, typescript-mode, and typescript-tsx-mode now (as
well as rjsx-mode, of course).
`lispyville-end-of-defun' doesn't go to the next defun when point is
already at the end of a defun, whereas `lispyville-beginning-of-defun'
does. This commit fixes this inconsistency by matching
`lispyville-end-of-defun''s behaviour with `lispyville-beginning-of-defun'.
`line-end-position' isn't enough because it never returns `t' in normal
mode (in normal mode the point can't reach the true end of a line).