With +extra enabled, this module would activate `prettify-symbols-mode`
in any buffer where `prettify-symbols-alist` is non-nil, whether or not
`+ligatures-extra-alist` has an entry for the current major mode (or a
parent thereof). This behavior is poor UX, since the user may be
expecting that a empty entry for some `X-mode` in
`+ligatures-extra-alist` should mean *no` prettify-symbols-mode` at all
in `X-mode`.
With this, `+ligatures-extra-alist` is now the authority. An empty entry
for `X-mode` will result in `prettify-symbols-mode` *not* being
activated there. If that entry *isn't* empty, it will be combined only
with the global default value of `prettify-symbols-alist`, not any
pre-existing buffer-local value, to make the end result deterministic,
because some modes have their own defaults for it (like
`lisp-prettify-symbols-alist`, `js--prettify-symbols-alist`, and
`rust-prettify-symbols-alist`).
Fix: #7440
"\\'" will match the true end-of-string, whereas "$" will also match
just before a newline character. Not that there's much risk that
there'll be newlines in a filepath, but I'd rather be consistent. It
also makes these entries easier for users to remove from
auto-mode-alist.
The caching of rust-analyzer (RA) is too aggressive and leads to bad
results.
RA does not give a protocol-compliant way to extract 1 line information
from the hover response, so `lsp-mode` displays the first line of the
result, which currently is the byte alignment of the data
Fix: #6951Close: #7754
Co-authored-by: gagbo <gagbo@users.noreply.github.com>
Co-authored-by: scturtle <scturtle@users.noreply.github.com>
When invoking `rustic-cargo-run` a buffer called `*cargo-run*` is
opened. This adds a rule such that this buffer opens in a popup window
that is the same as the popup windows for other rustic cargo commands.
Ref: #2623
BREAKING CHANGE: Racer is no longer developed and its project page
recommends using rust-analyzer instead. Moreover, users have reported
issues trying to build/install it on recent versions of rust, so I've
removed support for Racer from Doom, and now default solely to LSP for
IDE features.
Users that want these features will need to activate the module's +lsp
flag (along with the :tools lsp module) and install rust-analyzer. See
the module's README for instructions.
Close: #6705
Co-authored-by: c1ttim <c1ttim@users.noreply.github.com>
featurep! will be renamed modulep! in the future, so it's been
deprecated. They have identical interfaces, and can be replaced without
issue.
featurep! was never quite the right name for this macro. It implied that
it had some connection to featurep, which it doesn't (only that it was
similar in purpose; still, Doom modules are not features). To undo such
implications and be consistent with its namespace (and since we're
heading into a storm of breaking changes with the v3 release anyway),
now was the best opportunity to begin the transition.
Moved add-hook calls (for tree-sitter initialization) into their
respective modes' config blocks, or nearby, to be consistent with how
other, similar tools (like lsp!) are initialized, and does so at
runtime, rather than at expansion/compile time, which eval-when! caused.
BREAKING CHANGE: break the global nature of the tree sitter
module by adding a +tree-sitter flag to every applicable module
In the background this hooks turn-on-tree-sitter-mode
to the major-mode-hook of the language.
This may also solve the eager loading of tree sitter
`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".
- Update README
- Add eglot-specifics to cc, rs, py, hs
removing unused lsp-mode packages when eglot is active
- Add eglot-specific bindings
- Add doctor warnings for debugger +lsp and +peek
- Add eglot-backed lookup-handlers
- Add flycheck checker using eglot for :checkers
syntax users (using flycheck/flycheck#1676 and
flycheck/flycheck#1592 discussion).
This implementation is based on @marsam code, and uses recent
Flycheck development in order to make the code smaller and
easier to maintain.
From brotzeit/rustic@da3820d
Due to changes upstream, users can no longer use lsp-rust-server to
switch to rust-analyzer with rustic-mode. Use rustic-lsp-server instead.