An issue when using corfu in the minibuffer was the need for pressing
RET twice, since the first only inserts the completion. This commit
aliviates that by providing C-RET to ignore completion and conclude the
minibuffer immediatelly and S-RET to insert completion then conclude.
Bindings were moved to the `:config default` module and some keys were
adjusted to match Company/other modules. Small formatting issues and
some apparently inintended nestings were corrected as well.
This removes the old `&` separator for Vertico (does anyone use that
instead of just space?) in favor of escapable space and unifies
orderless config with Corfu. Also implements smart separator
insert/escape/reset on `C-SPC`
Co-authored-by: Liam Hupfer <liam@hpfr.net>
Add various CAPFs from cape:
- `cape-dabbrev`;
- `cape-emoji`;
- `cape-dict`;
Fixed some CAPFs via cape:
- Make non-exclusive, purified and silent `pcomplete-completions-at-point`;
- Make non-exclusive and non-interruptable `lsp-completion-at-point`;
- Make non-exclusive `eglot-completion-at-point`;
- Make non-exclusive `comint-completion-at-point`;
Fix and improve keybindings:
- Smart `DEL`/`backspace` for `+tng`;
- Smart `RET`;
Add depth to CAPFs, allowing ordering to be adjustable.
Enable in minibuffer.
Yasnippet is now properly integrated! A previosly-unset default has now
been given to `corfu-on-exact-match`. With snippets, it causes immediate
expansion upon single match by default, so we set it to nil and
recommend against changing it in the README.
This commit's primary goal is allowing use of
[minad/corfu](https://github.com/minad/corfu) as an alternative to
[company](https://github.com/company-mode/company-mode). It introduces a
module under :completion for this purpose, plus some conditionals on
other relevant modules to toggle functionality like lsp back-ends and
[minad/cape](https://github.com/minad/cape) capfs for certain modes.
Other optional or miscellaneous features include:
- Support for displaying the completion's documentation on a secondary
popup;
- Support for terminal display if :os tty;
- Support for icons if +icons;
- Support for tab-and-go completion if +tng;
`org-link-set-parameters` accepts `:face` for a function returning a face
or a symbol naming a face. Use a lambda returning `org-priority` to
avoid it being called directly as a function.
And move setter out of condition (it will no-op if :tools lsp +eglot
isn't enabled). Plus, it should be configured even when +lsp isn't
enabled for :lang swift.
Amend: #7567Close: #7577
Co-authored-by: ncihnegn <ncihnegn@users.noreply.github.com>
Package autoloads should be assembled in the order they're
installed/built, so that dependencies between them (such as the case
where geiser-* packages call geiser-activate-implementation, which is
defined in geiser.el's autoloads file -- see #7472) don't throw errors.
Fix: #7472
Amend: 87f6f7ab91
This fixes a bug introduced in bb3431a (#7509). This shows up for
example in `org-capture`, which uses multiple org buffers and the
initial one (with name `*Capture*`) will be dead already by the time the
timer runs.
Amend: #7509
Current LaTeX module uses `TeX-command-run-all` for compilation, which
by default opens the compiled document in a viewer. This behavior causes
a loss of focus from the Emacs window. We address this by adding a
custom compilation function.
The `use-package!` declaration for lsp-sourcekit in `config.el` did not
match the `package!` declaration in `packages.el`: this resulted in
`lsp-sourcekit` being loaded but never installed. The removal of this
package also resulted in there no longer being a proper LSP client with
eglot--this has also been fixed.
`+format-on-save-disabled-modes` documentation was referencing behaviour
that no longer exists, as well as documenting behaviour that was not
implemented.
The flycheck-plantuml is by default configured to always run plantuml
via "java". This only works with a downloaded plantuml. However, I would
prefer to have plantuml installed via my package manager (fedora/dnf).
A locally installed PlantUML executable is already detected by default
for normal use (export/preview), we can also use it for flycheck.
If plantuml is downloaded using plantuml-download-jar, this jar is still
used by default (see setq plantuml-exec-mode), so this should not affect
previous setups.
Suffix ssh-deploy-root-local's path with a trailing slash (to be
consistent with upstream documentation and the example value for
ssh-deploy-root-remote right below it).
Co-authored-by: visika <visika@users.noreply.github.com>
Ref: #7513
According to upstream package emacs-ssh-deploy, the value 0 should
disable the auto-save behavior. As the ssh-deploy-on-explicit-save is
considered true if its value is 0, it triggers the after-save-hook
anyway. This commit fixes the hook so it conforms to upstream
definition:
ssh-deploy-on-explicit-save Enabled automatic uploads on save (integer)
Co-authored-by: visika <visika@users.noreply.github.com>
Close: #7513Fix: #7512
The `eglot-events-buffer-size` setting disables the `eglot-events-buffer`
when 0, enabling more consistent performance on long running emacs
instance.
Default is 2000000 lines. After each new event the events buffer
is pretty printed as a whole, which causes steady performance decrease
over time.
Quite a bit of CPU is spent on pretty priting and Emacs GC is put under
high pressure.