1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-11 05:51:21 -08:00
emacs/lisp
João Távora 0e8d8a7228 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.
2023-05-05 19:46:50 +01:00
..
calc * lisp/calc/calc.el (calcDigit-backspace): Hush warning. 2023-02-27 12:29:35 +01:00
calendar Make also 'diary-lunar-phases' report eclipses 2023-02-25 11:05:54 +01:00
cedet Remove useless unwind-protect forms, or make them useful as intended 2023-04-07 19:08:33 +02:00
emacs-lisp * lisp/emacs-lisp/package.el (package-buffer-info): Fix thinko 2023-05-03 13:18:08 -04:00
emulation Use t for non-nil default values in boolean defcustom declarations 2023-04-28 15:03:47 +02:00
erc Compare case-folded nicks with erc-fill-wrap-merge 2023-04-30 18:28:54 -07:00
eshell Use connection-aware functions when getting the UID/GID in Eshell 2023-05-02 21:28:34 -07:00
gnus Merge from origin/emacs-29 2023-04-21 07:29:14 -04:00
image Merge from origin/emacs-29 2023-04-15 12:43:37 -04:00
international Merge from origin/emacs-29 2023-04-25 09:57:23 -04:00
language Followup to addition of TUTORIAL.fa 2023-04-25 12:26:20 +03:00
leim/quail Improve greek-ibycus4 input method 2023-04-27 10:25:20 +03:00
mail Use t for non-nil default values in boolean defcustom declarations 2023-04-28 15:03:47 +02:00
mh-e Remove useless unwind-protect forms, or make them useful as intended 2023-04-07 19:08:33 +02:00
net Improve ange-ftp-file-remote-p 2023-05-05 19:39:22 +02:00
nxml ; * lisp/nxml/xmltok.el (xmltok-scan-attributes): Fix last change 2023-03-18 16:05:31 +01:00
obsolete
org Merge from origin/emacs-29 2023-05-02 08:50:09 -04:00
play
progmodes Fontify "extern foo ();" correctly inside a function 2023-05-03 10:01:14 +00:00
term
textmodes Merge from origin/emacs-29 2023-04-15 13:02:04 -04:00
url Don't use mapconcat for effect 2023-04-10 15:20:27 +02:00
use-package
vc Make vc-hg-annotate-command async 2023-05-05 02:42:49 +03:00
abbrev.el Merge from origin/emacs-29 2023-03-20 06:30:32 +01:00
align.el
allout-widgets.el
allout.el allout.el: fix subtree expose numbering bug 2023-04-11 11:50:17 +02:00
ansi-color.el
ansi-osc.el
apropos.el
arc-mode.el Handle modifications in extensionless zip files (bug#61326) 2023-04-20 12:26:05 +03:00
array.el
auth-source-pass.el
auth-source.el
autoinsert.el
autorevert.el
avoid.el
battery.el
bindings.el
bookmark.el
bs.el Use delete-char instead of backward-delete-char 2023-02-22 12:55:45 +01:00
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 Add new user option password-colon-equivalents 2023-02-13 15:51:48 +01:00
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 Merge from origin/emacs-29 2023-04-03 00:33:03 +01:00
dabbrev.el
delim-col.el
delsel.el
descr-text.el
desktop.el
dframe.el
dired-aux.el Merge from origin/emacs-29 2023-02-24 06:30:11 +01:00
dired-x.el
dired.el Fix dired and tramp where ls does not have the -N option 2023-05-05 19:19:51 +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 Use a face for DocView SVG 2023-03-09 12:04:52 +02:00
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 Eglot: rework eglot-imenu 2023-04-07 12:57:59 +01:00
elide-head.el
emacs-lock.el
env.el ; Fix previous change 2023-02-17 16:20:45 +01:00
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 Make mode-line behavior better with grayscale visuals 2023-04-28 14:43:31 +08:00
ffap.el
filecache.el Use t for non-nil default values in boolean defcustom declarations 2023-04-28 15:03:47 +02:00
fileloop.el
filenotify.el
files-x.el Fix connection-local variables settings 2023-03-13 18:02:36 +01:00
files.el Display unlock-file warning only when file locks are enabled 2023-04-04 09:43:09 +02:00
filesets.el
find-cmd.el
find-dired.el ; * lisp/find-dired.el (find-gnu-find-p): Doc fix. 2023-03-18 08:32:20 +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 * lisp/frame.el (handle-move-frame): Fix corner case error 2023-03-19 14:51:27 -04:00
frameset.el
fringe.el
generic-x.el
help-at-pt.el
help-fns.el Merge from origin/emacs-29 2023-04-21 07:29:14 -04:00
help-macro.el
help-mode.el
help.el ; * lisp/help.el (describe-bindings-outline-rules): Fix :type tags. 2023-04-26 19:25:23 +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 Improve ibuffer-diff-with-file 2023-04-08 11:51:43 +01:00
ibuf-macs.el
ibuffer.el
icomplete.el Fido-mode: never shadow 'external' completion style 2023-05-05 19:46:50 +01:00
ido.el Describe the effect of 'guess' for 'ido-use-filename-at-point' 2023-02-15 16:24:19 +01:00
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 Merge from origin/emacs-29 2023-04-15 13:02:04 -04:00
imenu.el Remove useless unwind-protect forms, or make them useful as intended 2023-04-07 19:08:33 +02:00
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 Merge from origin/emacs-29 2023-04-15 12:43:37 -04:00
kermit.el
keymap.el Improve defvar-keymap docstring. 2023-03-20 09:47:32 +01:00
kmacro.el kmacro: Simplify register code and recent change 2023-02-24 14:18:24 -05:00
ldefs-boot.el ; Auto-commit of loaddefs files. 2023-04-25 10:08:34 -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 Use t for non-nil default values in boolean defcustom declarations 2023-04-28 15:03:47 +02:00
ls-lisp.el Use t for non-nil default values in boolean defcustom declarations 2023-04-28 15:03:47 +02:00
macros.el kmacro: Simplify register code and recent change 2023-02-24 14:18:24 -05:00
Makefile.in Fix build when Org's version changes 2023-04-24 14:16:05 +03:00
man.el Fix bootstrap failure 2023-03-02 20:45:02 +08:00
master.el
mb-depth.el
md4.el
menu-bar.el
midnight.el
minibuf-eldef.el
minibuffer.el Merge from origin/emacs-29 2023-04-06 14:38:13 -04:00
misc.el
misearch.el
mouse-copy.el
mouse-drag.el
mouse.el Merge from origin/emacs-29 2023-04-15 12:43:37 -04: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 Remove useless unwind-protect forms, or make them useful as intended 2023-04-07 19:08:33 +02:00
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 Fix Pcompletion of "tar" when using unrecognized arguments 2023-03-08 13:36:09 -08:00
pcmpl-linux.el
pcmpl-rpm.el
pcmpl-unix.el
pcmpl-x.el
pcomplete.el Add support for completing quoted variables in Eshell like $'FOO' 2023-02-23 14:09:36 -08:00
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 Restore positions reliably for abbreviated file names in saveplace.el 2023-04-06 13:25:54 +03:00
scroll-all.el
scroll-bar.el
scroll-lock.el
select.el
server.el * lisp/server.el (server-eval-at): Improve docstring 2023-03-14 09:04:14 +01:00
ses.el
shadowfile.el
shell.el Allow old input to include continuation lines in shell-mode 2023-03-31 15:08:22 +02:00
simple.el ; * lisp/simple.el (blink-matching-open): retain props in bootstrap 2023-05-03 11:09:37 +02:00
skeleton.el
so-long.el
sort.el
soundex.el
speedbar.el Remove useless unwind-protect forms, or make them useful as intended 2023-04-07 19:08:33 +02:00
sqlite-mode.el
sqlite.el
startup.el Merge from origin/emacs-29 2023-02-18 10:45:46 +01:00
strokes.el Remove useless unwind-protect forms, or make them useful as intended 2023-04-07 19:08:33 +02:00
subr.el Add the function declaration and property important-return-value 2023-05-01 17:11:50 +02:00
svg.el
t-mouse.el
tab-bar.el Merge from origin/emacs-29 2023-04-25 09:57:23 -04:00
tab-line.el
tabify.el
talk.el
tar-mode.el
tempo.el
term.el * lisp/term.el (term-mouse-paste) Do not treat as a yank command (bug#58608) 2023-03-27 01:19:19 +13:00
thingatpt.el Improve thing-at-point email detection 2023-03-10 11:22:54 +01:00
thread.el
time-stamp.el
time.el Rename 'display-time-time-and-date-indicator' to 'display-time-date-and-time' (bug#61567) 2023-02-18 09:36:18 +02:00
timezone.el
tmm.el
tool-bar.el
tooltip.el
transient.el Update to Transient v0.3.7-218-g3dbb22a 2023-03-26 23:53:03 +02:00
tree-widget.el
treesit.el Merge from origin/emacs-29 2023-04-28 11:51:01 +08: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 Display unlock-file warning only when file locks are enabled 2023-04-04 09:43:09 +02:00
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 Require custom values of boolean type to be nil or t 2023-04-24 16:03:47 +02:00
widget.el
windmove.el
window.el Merge from origin/emacs-29 2023-03-29 06:30:09 +02:00
winner.el
woman.el Use delete-char instead of backward-delete-char 2023-02-22 12:55:45 +01:00
x-dnd.el Improve the documentation of the XDS support 2023-04-08 18:36:23 +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.