1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-03-26 16:51:46 -07:00
emacs/lisp
João Távora f1675df3d0 Fido-mode: never shadow 'external' completion style
As explained in the manual (20.7.2 Fast minibuffer selection)
'fido-mode' and 'fido-vertical-mode' give priority the "flex"
completion style.

In fact, bug#62015 was recently fixed in commit because that priority
was not taking place correctly and some completions were missed.

However, an exception must be made for the 'external' completion
style.

That style, made available by the lisp/external-completion.el library,
is specifically designed to work with backends that provide only a
partial view of all completions.  If we allow 'flex' to step in front
of 'external' it could mean that 'flex' matches something and
'external' isn't triggered as it probably should.

To reproduce have the rust-mode ELPA package and the rust-analyzer LSP
server handy.  Then:

  emacs -Q -f package-initialize main.rs

Where main.rs is this content:

  fn foo1()    {} fn foo2()    {} fn foo3() {}
  fn foobar1() {} fn foobar2() {} fn foobar3() {}

The rust-analyzer server can be quickly configured to return only 3
workspace symbols max, so evaluate:

  (setq-default eglot-workspace-configuration
                '(:rust-analyzer
                    (:workspace (:symbol (:search (:limit 3))))))

Now start M-x eglot and M-x fido-vertical-mode and type C-u M-. to
find an arbitrary symbol in this one-file project.

Type 'f'.  You will see the three foo's are listed, correctly.

Now type '3'.   You will only see "foo3".

But that's wrong because "foobar3" was available, if only the server
had been asked for it.  This commit fixes the situation and no
completions are lost.

As an unfortunate side-effect of this commit, the fontification of
completions-common-part on the matches is lost, but that is not worse
than missing out on completions and there are better ways to recover
the fontification anyway (in external-completion.el).

See also:
https://github.com/joaotavora/eglot/discussions/1219#discussioncomment-5818336

* lisp/icomplete.el (icomplete--fido-ccd): Do not touch entries
with 'external in them.

Do not merge to master.
Backport:

(cherry picked from commit 0e8d8a7228)
2023-05-09 09:42:10 +01:00
..
calc * lisp/calc/calc.el (calc-mode): Improve docstring. 2023-02-17 15:26:38 +01:00
calendar Fix rcirc messages printing in the wrong place 2023-05-04 10:06:32 +02:00
cedet
emacs-lisp define-minor-mode: sanitize mode function messages 2023-05-07 16:37:24 +03:00
emulation
erc Explain ERC 5.5 regressions in new version 5.5.0.29.1 2023-04-26 06:21:29 -07:00
eshell Fix using background commands in 'eshell-command' 2023-03-31 13:07:36 -07:00
gnus Improve 'message-server-alist' docstring 2023-04-19 12:33:18 +02:00
image Fix handling of sliced images 2023-04-08 12:43:34 +03:00
international ; Improve font selection for Traditional Mongolian 2023-04-23 19:11:49 +03:00
language Followup to addition of TUTORIAL.fa 2023-04-25 12:26:20 +03:00
leim/quail ; * lisp/leim/quail/persian.el: Fix a typo in last commit. 2023-05-09 08:34:43 +03:00
mail Slightly improve hashcash documentation 2023-02-18 13:02:13 +01:00
mh-e
net Fix outgoing mime type regression (Bug#62815) 2023-05-08 08:28:52 +08:00
nxml (rng-complete-tag): Add the (ignored) argument to the :company-kind function 2023-05-03 23:58:27 +03:00
obsolete
org Update to Org 9.6.5-3-g2993f4 2023-04-30 19:36:21 -04:00
play
progmodes Fix indent for enums in csharp-mode 2023-05-06 21:15:21 +02:00
term
textmodes Improve documentation related to 'ispell-complete-word' 2023-04-11 16:24:13 +03:00
url ; Fix 'make-obsolete-variable' forms 2023-03-18 09:12:12 +02:00
use-package
vc ; vc-checkout: Wrap var lookup in 'bound-and-true-p' 2023-04-12 02:03:14 +03:00
abbrev.el Reset abbrevs-changed after saving abbrevs (bug#62208) 2023-03-17 16:34:30 +03:00
align.el
allout-widgets.el
allout.el
ansi-color.el
ansi-osc.el
apropos.el
arc-mode.el ; * lisp/arc-mode.el (w32-get-console-codepage): Declare. 2023-03-11 14:54:22 +02:00
array.el
auth-source-pass.el
auth-source.el
autoinsert.el
autorevert.el
avoid.el
battery.el
bindings.el
bookmark.el
bs.el
buff-menu.el
button.el
calculator.el
case-table.el
cdl.el
ChangeLog.1
ChangeLog.2
ChangeLog.3
ChangeLog.4
ChangeLog.5
ChangeLog.6
ChangeLog.7
ChangeLog.8
ChangeLog.9
ChangeLog.10
ChangeLog.11
ChangeLog.12
ChangeLog.13
ChangeLog.14
ChangeLog.15
ChangeLog.16
ChangeLog.17
char-fold.el
chistory.el
cmuscheme.el
color.el
comint.el
completion.el
composite.el
COPYING
cus-dep.el
cus-edit.el
cus-face.el
cus-start.el
cus-theme.el Rename the newly added -ref- faces to -use- 2023-02-28 04:08:55 +02:00
custom.el Improve documentation of 'defcustom's :set keyword 2023-03-30 09:09:43 +03:00
dabbrev.el
delim-col.el
delsel.el
descr-text.el
desktop.el
dframe.el
dired-aux.el Improve documentation of VC commands, including in Dired 2023-02-23 14:26:06 +02:00
dired-x.el
dired.el Minor change in 'dired--find-possibly-alternative-file' 2023-02-28 16:11:24 +02:00
dirtrack.el
disp-table.el
display-fill-column-indicator.el Explain effect of variable-pitch fonts on fill-column 2023-02-22 15:16:25 +02:00
display-line-numbers.el ; Fix typos 2023-02-03 18:03:18 +01:00
dnd.el Improve dnd-direct-save-remote-files docstring 2023-02-21 16:55:21 +01:00
doc-view.el
dom.el
dos-fns.el
dos-vars.el
dos-w32.el
double.el
dynamic-setting.el
ebuff-menu.el
echistory.el
ecomplete.el
edmacro.el Repair mistake in a previous edmacro-sanitize-string change 2023-02-21 10:31:41 +01:00
ehelp.el
elec-pair.el
electric.el
elide-head.el
emacs-lock.el
env.el
epa-dired.el
epa-file.el
epa-hook.el
epa-ks.el Fix import of keys in buffer created by epa-search-keys 2023-03-13 20:37:53 +03:00
epa-mail.el
epa.el
epg-config.el
epg.el
expand.el
external-completion.el
ezimage.el
face-remap.el
facemenu.el
faces.el Fix regression due to change in face sort order by 'face-list' 2023-02-18 09:37:34 +02:00
ffap.el
filecache.el
fileloop.el
filenotify.el
files-x.el Fix connection-local variables settings 2023-03-13 18:02:36 +01:00
files.el ; * lisp/files.el (hack-local-variables): Fix typo in the doc string. 2023-03-04 22:03:14 +02:00
filesets.el
find-cmd.el
find-dired.el Fix 'find-ls-option-default-ls' for BSD/MacOS (bug#62096) 2023-03-18 08:26:51 +02:00
find-file.el Fix ff-quiet-mode doc 2023-04-10 13:49:32 +01:00
find-lisp.el
finder.el
flow-ctrl.el
foldout.el
follow.el
font-core.el
font-lock.el Rename the newly added -ref- faces to -use- 2023-02-28 04:08:55 +02:00
format-spec.el
format.el
forms.el
frame.el Don't create GUI frames in batch sessions 2023-03-03 09:25:22 -08:00
frameset.el
fringe.el
generic-x.el
help-at-pt.el
help-fns.el Fix display of menu-bar bindings of commands in *Help* buffers 2023-04-19 20:46:40 +03:00
help-macro.el
help-mode.el
help.el Fix indentation regression in 'C-h l' 2023-03-29 14:56:20 +03:00
hex-util.el
hexl.el
hfy-cmap.el
hi-lock.el Fix some uses of 'use-dialog-box' 2023-02-18 10:58:00 +02:00
hilit-chg.el
hippie-exp.el
hl-line.el
htmlfontify.el Fix quoting of font-family in 'hfy-family' 2023-03-16 09:41:56 +02:00
ibuf-ext.el
ibuf-macs.el
ibuffer.el
icomplete.el Fido-mode: never shadow 'external' completion style 2023-05-09 09:42:10 +01:00
ido.el
ielm.el
iimage.el * lisp/iimage.el (iimage-mode-buffer): Handle multiple regexps. 2023-02-08 20:56:48 +02:00
image-file.el
image-mode.el
image.el Fix detection of WebP images by their signature 2023-04-12 20:04:26 +03:00
imenu.el
indent.el
info-look.el
info-xref.el
info.el
informat.el
isearch.el ; Fix whitespace of last change 2023-02-05 18:52:59 +02:00
isearchb.el
jit-lock.el
jka-cmpr-hook.el
jka-compr.el
json.el
jsonrpc.el Jsonrpc: don't bind inhibit-read-only to t so early 2023-04-07 19:33:12 +01:00
kermit.el
keymap.el Improve defvar-keymap docstring. 2023-03-20 09:47:32 +01:00
kmacro.el Fix insertion of keyboard macro containing named keys 2023-02-24 11:43:08 +01:00
ldefs-boot.el ; Fix ldefs-boot.el. 2023-04-10 01:54:17 -04:00
loadhist.el
loadup.el Comp fix calls to redefined primtives with op-bytecode (bug#61917) 2023-03-29 22:25:04 +02:00
locate.el
lpr.el
ls-lisp.el
macros.el
Makefile.in
man.el
master.el
mb-depth.el
md4.el
menu-bar.el
midnight.el
minibuf-eldef.el
minibuffer.el Handle point not at EOB in minibuffer-choose-completion 2023-05-02 20:54:25 +03:00
misc.el
misearch.el
mouse-copy.el
mouse-drag.el
mouse.el Fix 'C-h k' for "Paste from Kill Menu" in context menus 2023-04-08 20:10:49 +03:00
mpc.el * lisp/mpc.el (mpc-format): Fix oversight in commit 48b6cec61c 2023-03-19 16:02:52 -04:00
msb.el
mwheel.el
newcomment.el
notifications.el
novice.el ; * lisp/novice.el (disabled-command-function): Add note in a comment. 2023-03-12 22:22:41 +02:00
obarray.el
outline.el Improve outline-default-state docstring 2023-04-26 12:31:00 +02:00
paren.el Make sure 'M-x show-paren-local-mode' turns on right away 2023-02-05 21:08:45 +02:00
password-cache.el
pcmpl-cvs.el
pcmpl-git.el
pcmpl-gnu.el
pcmpl-linux.el
pcmpl-rpm.el
pcmpl-unix.el
pcmpl-x.el
pcomplete.el
pgtk-dnd.el
pixel-scroll.el
plstore.el
printing.el
proced.el
profiler.el
ps-bdf.el
ps-mule.el
ps-print.el
ps-samp.el
README
recentf.el
rect.el
register.el
registry.el
repeat.el * lisp/repeat.el: Rename internal function and variable (bug#60980) 2023-02-13 19:46:22 +02:00
replace.el
reposition.el
reveal.el
rfn-eshadow.el
rot13.el
rtree.el
ruler-mode.el
savehist.el * lisp/savehist.el (savehist-save): Preserve shared structure 2023-03-25 15:12:30 +03:00
saveplace.el
scroll-all.el
scroll-bar.el
scroll-lock.el
select.el Fix inserting selection data into Mozilla programs 2023-05-03 20:02:01 +08:00
server.el
ses.el
shadowfile.el
shell.el
simple.el Fix doc strings of 'mark-sexp' and 'mark-word' 2023-05-06 11:47:31 +03:00
skeleton.el
so-long.el
sort.el
soundex.el
speedbar.el
sqlite-mode.el
sqlite.el
startup.el Rename native-comp-deferred-compilation into native-comp-jit-compilation 2023-02-13 17:04:22 +01:00
strokes.el
subr.el Fix arguments of xml.c functions as displayed in Help buffers 2023-05-05 10:08:59 +03:00
svg.el
t-mouse.el
tab-bar.el tab-bar-new-tab: inhibit side-window checks 2023-04-24 14:47:14 +03:00
tab-line.el
tabify.el
talk.el
tar-mode.el
tempo.el
term.el Fix primary selection modification during `term-mouse-paste' (bug#58608) 2023-03-27 01:17:22 +13:00
thingatpt.el
thread.el
time-stamp.el
time.el
timezone.el
tmm.el
tool-bar.el
tooltip.el
transient.el Update to Transient v0.3.7-219-g3ded15b 2023-05-03 15:02:31 +02:00
tree-widget.el
treesit.el Fix beginning/end-of-defun with tree-sitter 2023-05-07 09:13:10 +03:00
tutorial.el Fix exiting Emacs after saving a tutorial 2023-04-22 13:35:36 +03:00
type-break.el
uniquify.el
userlock.el
vcursor.el
version.el
view.el
w32-fns.el
w32-vars.el
wdired.el Restore invisibility of symlink target on exiting wdired-mode 2023-02-24 16:43:35 +01:00
whitespace.el
wid-browse.el
wid-edit.el
widget.el
windmove.el
window.el ; Fix incompatibility in 'display-buffer-assq-regexp' 2023-03-28 14:08:29 +03:00
winner.el
woman.el
x-dnd.el * lisp/x-dnd.el (x-dnd-after-move-frame): Skip dead frames. (Bug#63312) 2023-05-06 14:16:36 +03:00
xdg.el
xml.el
xt-mouse.el
xwidget.el Improvements to xwidget on macOS (bug#60703) 2023-03-02 12:53:35 +02:00
yank-media.el

This directory contains source code for the parts of Emacs that are
written in Emacs Lisp.  *.el files are Emacs Lisp source, and the
corresponding *.elc files are byte-compiled versions.  Byte-compiled
files are architecture-independent.

The term subdirectory contains Lisp files that customize Emacs for
certain terminal types.  When Emacs starts, it checks the TERM
environment variable to get the terminal type and loads
'term/${TERM}.el' if it exists.

The other subdirectories hold Lisp packages grouped by their general
purpose.