aboutsummaryrefslogtreecommitdiffstats
path: root/lisp/icomplete.el (follow)
Commit message (Collapse)AuthorAgeFilesLines
* icomplete-ret: Ignore icomplete-show-matches-on-no-inputSean Whitton2026-02-111-11/+19
| | | | | | | | * lisp/icomplete.el (icomplete-ret): No longer conditionalize on icomplete-show-matches-on-no-input. Suggested by Juri Linkov <juri@linkov.net> in bug#62108. (icomplete-show-matches-on-no-input, icomplete-ret): * etc/NEWS: Improve documentation.
* Don't remap RET to 'icomplete-ret' in 'icomplete-mode' (bug#62108)Juri Linkov2026-02-111-6/+9
| | | | | | | * lisp/icomplete.el (icomplete-show-matches-on-no-input): Fix docstring. (icomplete-minibuffer-map): Don't remap 'minibuffer-complete-and-exit' (RET) to 'icomplete-ret'. (icomplete-ret): Improve docstring.
* Revert "New key 'M-j' for 'icomplete-mode' (bug#62108)"Juri Linkov2026-02-111-3/+0
| | | | | This reverts commit 3584a762b8cbfb6e13011827ec5934f039344d0f. Another fix follows shortly after this commit.
* New key 'M-j' for 'icomplete-mode' (bug#62108)Juri Linkov2026-01-301-0/+3
| | | | | | | | * lisp/icomplete.el (icomplete-exit): New alias for 'icomplete-fido-exit'. (icomplete-minibuffer-map): Bind it to "M-j" . * lisp/replace.el (multi-occur--prompt): Show "M-j" bound to 'icomplete-exit' in 'icomplete-mode'.
* * lisp/icomplete.el (icomplete--render-vertical): Avoid trailing whitespaceJonas Bernoulli2026-01-131-1/+3
| | | | | | | | | When a completion candidate has no suffix, then there is no need to add whitespace "between" the candidate and suffix, since there is no need to align suffixes if there are none. In this case the trailing whitespace only serves to needlessly make all candidates the same length, with the result that if one candidate does not fit one a single line, then all other candidates are made to not fit either.
* ; Add 2026 to copyright years.Sean Whitton2026-01-011-1/+1
|
* Icomplete: rename some internal helper functions (bug#77546)João Távora2025-04-061-7/+7
| | | | | | | | | | | | | | | | | | The naming convention for internal functions is <package-name>--foo not <package-name-subfunctionality>--foo * lisp/icomplete.el (icomplete--adjust-lines-for-column): Rename from icomplete-vertical--adjust-lines-for-column. (icomplete--ensure-visible-lines-inside-buffer): Rename from icomplete-vertical--ensure-visible-lines-inside-buffer. (icomplete--add-indicator-to-selected): Rename from icomplete-vertical--add-indicator-to-selected. (icomplete--render-vertical): Use new internal function names.
* Icomplete: check flag before rendering vertical indicatorsJoão Távora2025-04-061-5/+7
| | | | | | | Fixes: bug#77546 * lisp/icomplete.el (icomplete-vertical--add-indicator-to-selected): Rework. (icomplete--render-vertical): Fix bug.
* Enhance 'icomplete-vertical-mode' customization options.Rahul Martim Juliato2025-03-291-3/+120
| | | | | | | | | | | | | | | | | | * lisp/icomplete.el (icomplete-vertical-in-buffer-adjust-list): Align in-buffer completion to the original cursor column. (icomplete-vertical-render-prefix-indicator): Add a prefix indicator to completion candidates when enabled. (icomplete-vertical-selected-prefix-indicator): Specify the prefix string for the selected candidate. (icomplete-vertical-unselected-prefix-indicator): Specify the prefix string for unselected candidates. (icomplete-vertical-selected-prefix-indicator-face): Control the appearance of the selected candidate prefix. (icomplete-vertical-unselected-prefix-indicator-face): Control the appearance of unselected candidate prefixes. (Bug#75794) * etc/NEWS: Document the new user options and faces.
* Prefer decf to cl-decfStefan Kangas2025-02-231-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/auth-source-pass.el (auth-source-pass--find-match-many): * lisp/calendar/time-date.el (decoded-time-add) (decoded-time--alter-month, decoded-time--alter-day): * lisp/dired.el (dired--move-to-next-line): * lisp/dom.el (dom-pp): * lisp/emacs-lisp/cl-macs.el (cl--transform-lambda): * lisp/emacs-lisp/cl-print.el (cl-print-to-string-with-limit): * lisp/emacs-lisp/cl-seq.el (cl-fill, cl-replace, cl-substitute): * lisp/emacs-lisp/comp-cstr.el (comp--range-union) (comp--range-intersection): * lisp/emacs-lisp/comp.el (comp-vec-prepend, comp--emit-narg-prologue): * lisp/emacs-lisp/edebug.el (edebug--strip-instrumentation): * lisp/emacs-lisp/eldoc.el (eldoc--invoke-strategy): * lisp/emacs-lisp/pp.el (pp--format-definition): * lisp/emacs-lisp/smie.el (smie-config--guess-1): * lisp/eshell/esh-io.el (eshell-close-handle, eshell-set-output-handle): * lisp/gnus/gnus-async.el (gnus-async-prefetch-article): * lisp/gnus/gnus-group.el (gnus-group-mark-group) (gnus-group-yank-group): * lisp/gnus/gnus-salt.el (gnus-tree-forward-line): * lisp/gnus/gnus-score.el (gnus-decay-scores): * lisp/gnus/gnus-srvr.el (gnus-browse-toggle-subscription-at-point): * lisp/gnus/gnus-sum.el (gnus-build-sparse-threads, gnus-parent-headers) (gnus-update-marks, gnus-summary-work-articles) (gnus-summary-refer-parent-article, gnus-summary-next-thread) (gnus-read-header, gnus-summary-insert-new-articles): * lisp/gnus/gnus-topic.el (gnus-topic-forward-topic): * lisp/gnus/gnus.el (gnus-short-group-name): * lisp/gnus/message.el (message-remove-first-header) (message-shorten-references, message-insert-screenshot): * lisp/gnus/mm-url.el (mm-url-insert): * lisp/gnus/nnselect.el (nnselect-push-info): * lisp/ibuffer.el (ibuffer-backward-line, ibuffer-forward-line) (ibuffer-map-lines): * lisp/icomplete.el (icomplete--render-vertical): * lisp/image/image-dired-external.el (image-dired-create-thumb-1): * lisp/image/image-dired.el (image-dired-delete-char): * lisp/mail/ietf-drums-date.el (ietf-drums-date--tokenize-string): * lisp/mh-e/mh-utils.el (mh-sub-folders-parse): * lisp/minibuffer.el (minibuffer-completion-help): * lisp/mpc.el (mpc-cmd-move, mpc-songpointer-refresh-hairy): * lisp/net/eww.el (eww-process-text-input): * lisp/net/pop3.el (pop3-wait-for-messages, pop3-uidl-stat) (pop3-uidl-dele): * lisp/net/shr-color.el (shr-color-hue-to-rgb): * lisp/play/5x5.el (5x5-up, 5x5-left): * lisp/play/decipher.el (decipher-read-alphabet, decipher--digram-total) (decipher-analyze-buffer): * lisp/play/hanoi.el (hanoi-insert-ring, hanoi-move-ring): * lisp/profiler.el (profiler-format-number) (profiler-calltree-build-unified): * lisp/progmodes/antlr-mode.el (antlr-next-rule, antlr-indent-line): * lisp/progmodes/c-ts-common.el (c-ts-common-statement-offset): * lisp/progmodes/ebrowse.el (ebrowse-cyclic-display-next/previous-member-list): * lisp/progmodes/hideif.el (hif-backward-comment): * lisp/progmodes/js.el (js-beginning-of-defun, js-end-of-defun) (js-ts--syntax-propertize): * lisp/progmodes/typescript-ts-mode.el (tsx-ts--syntax-propertize-captures): * lisp/rect.el (rectangle--*-char): * lisp/term.el (term-emulate-terminal): * lisp/textmodes/reftex-cite.el (reftex-do-citation): * lisp/textmodes/reftex-index.el (reftex-index-next-phrase): * lisp/textmodes/reftex-parse.el (reftex-init-section-numbers): * lisp/textmodes/reftex-sel.el (reftex-select-unmark): * lisp/textmodes/reftex.el (reftex-silence-toc-markers): * lisp/treesit.el (treesit-navigate-thing): * lisp/vc/diff-mode.el (diff-sanity-check-context-hunk-half, (diff-sanity-check-hunk): * lisp/vc/pcvs-util.el (cvs-first): * lisp/vc/smerge-mode.el (smerge-get-current): * lisp/vc/vc-hg.el (vc-hg--glob-to-pcre): * test/lisp/net/socks-tests.el (socks-tests-perform-hello-world-http-request): * test/src/buffer-tests.el (test-overlay-randomly): Prefer decf to cl-defc in all code where we can.
* Update copyright year to 2025Paul Eggert2025-01-011-1/+1
| | | | Run "TZ=UTC0 admin/update-copyright".
* Merge from origin/emacs-30Michael Albinus2024-10-181-2/+10
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 78e6328fafd ; (select-safe-coding-system-interactively): Say "safely ... c5eba443ae7 ; * lisp/icomplete.el (icomplete-in-buffer): Doc fix (bug... 569186c36e3 ; * doc/lispref/display.texi (Face Attributes): Fix typo ... d5723fc4f03 * lisp/progmodes/c-ts-mode.el (treesit-node-eq): Declare ... 0085e48f917 * admin/notes/emba: Docker builds do not run in a worktree. 3d30905b022 * lisp/calc/calc-ext.el (math-approx-sqrt-e): Doc fix (bu... 94d0e9c4018 : Revert a mistaken change 4d90a1d8209 ; * doc/emacs/search.texi (Word Search): Spelling fixes. c154047c46a Fix c-ts-mode--anchor-prev-sibling (bug#73661) b87fda63dd4 Fix formatting of long keyboard macros by 'list-keyboard-... ae75ea62324 ; * src/fileio.c (Ffile_newer_than_file_p): Fix wording (... b1203978685 Merge branch 'emacs-30' of git.sv.gnu.org:/srv/git/emacs ... de54d922b5c * doc/emacs/mini.texi (Passwords): Mention password visib... 0f8f0773183 ; * doc/emacs/search.texi (Word Search): Document 'dictio... fb155bcfb6f ; * lisp/emacs-lisp/chart.el (chart-bar-quickie): Doc fix. 6dbe4e99ac4 ; * lisp/emacs-lisp/chart.el (chart-bar-quickie): Improve... d664227f81a ; More accurate documentation of 'file-newer-than-file-p' e49b479f869 Fix c-ts-mode indentation for initializer lists (bug#73661) f520008744b Avoid segfaults in Rmail-MIME 6a5c2edd84f Eglot: use :immediate t when resolving completions (bug#7... cd36e070c24 Eglot: minor changes to doc and docstrings 1ea0d9b891b Revert "Set treesit-primary-parser for tree-sitter modes" 52746ceb625 Remove duplicate indent rules in elixir-ts-mode ed57faafc74 Set treesit-primary-parser for tree-sitter modes 37a6c859b04 ; * lisp/emacs-lisp/cl-macs.el (cl-once-only): Fix capita... 2d4d6dc43a4 Delete XIE X extension from TODO b68b9f291cc ; * lisp/progmodes/csharp-mode.el (treesit-query-compile)... 688201ef18d ; * lisp/window.el (switch-to-prev-buffer-skip-regexp): D... ba44fc9a447 Restore comment/string check for 'electric-layout-mode' 5a462948e13 Update Arni Magnusson's email address 6b1271b169a Fix python-ts-mode-map docstring aaaafddc945 Normalize "Commentary" section in eudc.el d656be9794d Expand email abbrevs in X-Debbugs-Cc header. e9dcf0c57dd Fix 'list-tags' when invoked from a non-file buffer 51ef05f684c count-windows: Fix reference to walk-windows 5eaf0c784bf * lisp/info-look.el (mapc): Add use-package manual's index. 705a5a1a9e6 ; * ChangeLog.4: Fix attribution of one change. bf26ff0dc8d Update csharp-ts-mode font-lock (bug#73369) 4c866abab96 ; * doc/lispref/variables.texi (Creating Buffer-Local): F... d42d7d474fe ; * lisp/doc-view.el (doc-view-svg-face): Copy-edit docst... f46f476bb8f ; * admin/MAINTAINERS: Take VC subsystem, add note about ... d68e6d2689d ; rcirc-update-activity-string: Justify some existing beh... e6a37869c8d Fix inconsistency in value of rcirc-activity-string 108b3179bd4 Revert "; Minor clarification in variables.texi" 44156c21407 ; Minor clarification in variables.texi 63058e1153a Tag interactive commands in 'lua-ts-mode' 84bea20eba2 ; * lisp/info-look.el: Add two more links. 96b87ad5363 Mention LSP acronym in eglot defgroup docstring 9c904e8ceae Change :group of 'eglot' defgroup to 'tools' fd1a1b07805 Remove out-of-date documentation from python.el 11e3e0cadd4 Fix executing commands in Eshell using "env" with no loca... c0ef8a9a1b3 Fix a typo in the calendar manual 36ff7138feb ; Fix a thinko in sieve-manage.el 7abecbcd633 ; * nt/INSTALL: Update MinGW notes URL. (Bug#73528) e2b01d164cd ; Fix last changes in php-ts-mode.el e8830015b07 Require ert-x for use by 'ert-font-lock-deftest-file' a1841b4d8e7 ; * admin/authors.el (authors-aliases): Don't ignore "one... 69d8f9d1b70 Fix php-ts-mode font-lock for latest PHP grammar (bug#73516) 68f53e43488 eieio.texi: Fix bug#73505 53c887fdf6d ; cperl-mode.el: Fix an invalid face specification f5cd5585f46 ; Recommend GNU Find for 'find-dired' 65e589698e6 ; * lisp/filesets.el (filesets-homepage): Fix URL. 1f243a97806 Delete duplicated line in Viper refcard
| * ; * lisp/icomplete.el (icomplete-in-buffer): Doc fix (bug#73820).Eli Zaretskii2024-10-161-2/+10
| |
* | ; Tweak line breaks in last changeSean Whitton2024-10-051-5/+4
| |
* | icomplete-completions: Revise computation of prospects-lenSean Whitton2024-10-051-1/+6
|/ | | | | | | * lisp/icomplete.el (icomplete-completions): Revise computation of prospects-len (i) to avoid calling string-width on the entire buffer-string, which could be slow; and (ii) to better handle minibuffer prompts with embedded newlines (bug#72826).
* ; Fix Icomplete error during candidate highlightingEshel Yaron2024-06-141-3/+3
| | | | | | | | * lisp/icomplete.el (icomplete-completions): Pass completion candidates through 'completion-lazy-hilit' before trimming common prefix, rather than after. https://lists.gnu.org/archive/html/emacs-devel/2024-06/msg00271.html
* Support more metadata properties in completion-extra-properties (bug#68214)Juri Linkov2024-01-091-4/+2
| | | | | | | | | | | | | | | | | | | | | | * doc/lispref/minibuf.texi (Completion Variables): Add to the table of completion-extra-properties new items: `group-function', `display-sort-function', `cycle-sort-function'. * lisp/icomplete.el (icomplete--augment): Remove unnecessary plist-get from completion-extra-properties since now completion-metadata-get does this. * lisp/minibuffer.el (completion-metadata-get): Use plist-get to get prop from completion-extra-properties and cache the keyword. Thanks to Daniel Mendler <mail@daniel-mendler.de>. (completion-extra-properties): Mention new properties in docstring. (minibuffer-completion-help): Remove unnecessary plist-get from completion-extra-properties since now completion-metadata-get does this. * lisp/net/eww.el (eww-switch-to-buffer): * test/lisp/minibuffer-tests.el (completions-affixation-navigation-test): Unquote lambda in completion-extra-properties.
* Merge from savannah/emacs-29Po Lu2024-01-021-1/+1
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | dc4e6b13296 ; Update copyright years in more files 64b37776318 ; Run set-copyright from admin.el 8e1c56ae467 ; Add 2024 to copyright years # Conflicts: # doc/misc/modus-themes.org # doc/misc/texinfo.tex # etc/NEWS # etc/refcards/ru-refcard.tex # etc/themes/modus-operandi-theme.el # etc/themes/modus-themes.el # etc/themes/modus-vivendi-theme.el # lib/alloca.in.h # lib/binary-io.h # lib/c-ctype.h # lib/c-strcasecmp.c # lib/c-strncasecmp.c # lib/careadlinkat.c # lib/cloexec.c # lib/close-stream.c # lib/diffseq.h # lib/dup2.c # lib/filemode.h # lib/fpending.c # lib/fpending.h # lib/fsusage.c # lib/getgroups.c # lib/getloadavg.c # lib/gettext.h # lib/gettime.c # lib/gettimeofday.c # lib/group-member.c # lib/malloc.c # lib/md5-stream.c # lib/md5.c # lib/md5.h # lib/memmem.c # lib/memrchr.c # lib/nanosleep.c # lib/save-cwd.h # lib/sha1.c # lib/sig2str.c # lib/stdlib.in.h # lib/strtoimax.c # lib/strtol.c # lib/strtoll.c # lib/time_r.c # lib/xalloc-oversized.h # lisp/auth-source-pass.el # lisp/emacs-lisp/lisp-mnt.el # lisp/emacs-lisp/timer.el # lisp/info-look.el # lisp/jit-lock.el # lisp/loadhist.el # lisp/mail/rmail.el # lisp/net/ntlm.el # lisp/net/webjump.el # lisp/progmodes/asm-mode.el # lisp/progmodes/project.el # lisp/progmodes/sh-script.el # lisp/textmodes/flyspell.el # lisp/textmodes/reftex-toc.el # lisp/textmodes/reftex.el # lisp/textmodes/tex-mode.el # lisp/url/url-gw.el # m4/alloca.m4 # m4/clock_time.m4 # m4/d-type.m4 # m4/dirent_h.m4 # m4/dup2.m4 # m4/euidaccess.m4 # m4/fchmodat.m4 # m4/filemode.m4 # m4/fsusage.m4 # m4/getgroups.m4 # m4/getloadavg.m4 # m4/getrandom.m4 # m4/gettime.m4 # m4/gettimeofday.m4 # m4/gnulib-common.m4 # m4/group-member.m4 # m4/inttypes.m4 # m4/malloc.m4 # m4/manywarnings.m4 # m4/mempcpy.m4 # m4/memrchr.m4 # m4/mkostemp.m4 # m4/mktime.m4 # m4/nproc.m4 # m4/nstrftime.m4 # m4/pathmax.m4 # m4/pipe2.m4 # m4/pselect.m4 # m4/pthread_sigmask.m4 # m4/readlink.m4 # m4/realloc.m4 # m4/sig2str.m4 # m4/ssize_t.m4 # m4/stat-time.m4 # m4/stddef_h.m4 # m4/stdint.m4 # m4/stdio_h.m4 # m4/stdlib_h.m4 # m4/stpcpy.m4 # m4/strnlen.m4 # m4/strtoimax.m4 # m4/strtoll.m4 # m4/time_h.m4 # m4/timegm.m4 # m4/timer_time.m4 # m4/timespec.m4 # m4/unistd_h.m4 # m4/warnings.m4 # nt/configure.bat # nt/preprep.c # test/lisp/register-tests.el
| * ; Add 2024 to copyright yearsPo Lu2024-01-021-1/+1
| |
| * Fido-mode: never shadow 'external' completion styleJoão Távora2023-05-091-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 0e8d8a72284f6b3aaa1bbce73d41c7d84bbc4d3c)
* | Allow completion frontends to fontify candidates just-in-timeJoão Távora2023-11-061-3/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | bug#48841, bug#47711 The variable may be bound by the frontend to a non-nil around completion-producing calls like completion-all-completions. See completion-lazy-hilit docstring for more info. * lisp/icomplete.el (icomplete-minibuffer-setup): Set completion-lazy-hilit. (icomplete--render-vertical): Call completion-lazy-hilit. (icomplete-completions): Call completion-lazy-hilit. * lisp/minibuffer.el (completion-lazy-hilit): New variable. (completion-lazy-hilit): New function. (completion-lazy-hilit-fn): New variable. (completion-pcm--regexp) (completion--flex-score-last-md): New helper variables. (completion--flex-score-1): New helper. (completion-pcm--hilit-commonality): Use completion-lazy-hilit. (completion--flex-adjust-metadata): Rework sorting code. * etc/NEWS: Mention completion-lazy-hilit
* | Fido-mode: never shadow 'external' completion styleJoão Távora2023-05-051-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | Make icomplete-tidy-shadowed-file-names into a defcustomSean Whitton2023-03-221-2/+3
| | | | | | | | | | lisp/icomplete.el (icomplete-tidy-shadowed-file-names): Make variable into a defcustom.
* | Merge from origin/emacs-29Stefan Kangas2023-03-071-0/+11
|\ \ | |/ | | | | | | | | | | | | bd07cec8442 Fix regression in Fido mode (bug#62015) 0e3c7ac13da * Fix `emacs-lisp-native-compile-and-load' for (bug#61917) 4a7e657389a * lisp/emacs-lisp/comp.el (comp-prettyformat-insn): Fix (... 8a8a994cfab Revert "Fix configuration of webp libraries" de4277af009 Fix configuration of webp libraries
| * Fix regression in Fido mode (bug#62015)João Távora2023-03-061-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | To understand the regression consider this recipe where the 'fo' pattern is typed by the user in the last step. emacs -Q C-x b foo RET C-x b afoo RET C-x b *scratch* RET M-x fido-mode RET C-x b fo This used to offer both 'foo' and 'afoo' as candidates but now only offered 'foo'. This is because the pattern 'fo' matches 'foo', but not 'afoo' with 'basic' completion style. Fido mode, however, prioritizes 'flex' completion style, and that is not happening here as it used to. This was introduced in this commit commit bf81df86e52fdc995bec8d9646f84d114cb896d1 Author: João Távora <joaotavora@gmail.com> Date: Wed Dec 7 10:43:59 2022 +0000 Don't override completion-category-defaults in fido-mode I took away the nil setting of 'completion-category-defaults; in Fido mode's minibuffer. It seemed generally the correct thing to do, and was done mainly because Eglot added its style preferences to that variable instead of completion-category-overrides directly, which is a nono. So, to be able use the Fido UI with Eglot successfully, 'completion-category-defaults' should stay untouched. Or so I thought. However, I failed to notice that, for most categories, the default value of 'completion-category-defaults' prioritizes the 'basic' completion style. For example, in the 'buffer' category, the default value has the styles list '(basic substring)'. This means that if a pattern matches accoring to the 'basic' style, 'substring' will not be tried. And neither will 'completion-styles' which in Fido mode's case happens to be 'flex'. The solution in this commit is to craft a value for completion category defaults that is just like the default one, but prioritizes 'flex' completion for every category. * lisp/icomplete.el (icomplete--fido-ccd): New helper. (icomplete--fido-mode-setup): Use it.
| * Revert inadvertent change to lisp/icomplete.el in previous commitJoão Távora2023-03-031-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The change commit 3a651773d29afb48ac4229cd19e532bd57a4ee2d Author: João Távora <joaotavora@gmail.com> Date: Fri Mar 3 13:13:35 2023 +0000 Eglot: pay better attention to hints' paddingLeft/Right (bug#61924) Inadvertently added a line to this file, which shouldn't (yet) bet added. * lisp/icomplete.el (icomplete--vertical-minibuffer-setup): Remove truncate-lines.
| * Eglot: pay better attention to hints' paddingLeft/Right (bug#61924)João Távora2023-03-031-0/+1
| | | | | | | | | | * lisp/progmodes/eglot.el (eglot--update-hints-1): Consider :json-false, which is a non-nil value.
| * * lisp/icomplete.el (fido-mode): Enable in-buffer completion (bug#45763).João Távora2023-03-011-0/+3
| | | | | | | | | | Backport: (cherry picked from commit b5c13032538377b0037c745715613693a1580f81)
| * * lisp/icomplete.el: Fix in-buffer completion.Juri Linkov2023-03-011-3/+17
| | | | | | | | | | | | | | | | | | | | (icomplete-force-complete-and-exit, icomplete-force-complete): Use 'icomplete--field-beg/end' when not in the minibuffer to not erase the current buffer. Also disable 'completion-in-region-mode' instead of calling 'exit-minibuffer' (bug#45764, bug#51575, bug#61479). Backport: (cherry picked from commit a7a984c0ebebb891e2052d8416544f0bd7002007)
* | * lisp/icomplete.el (icomplete-in-buffer): Make into a defcustom.Sean Whitton2023-03-031-2/+3
| |
* | * lisp/icomplete.el (fido-mode): Enable in-buffer completion (bug#45763).João Távora2023-02-271-0/+3
| |
* | * lisp/icomplete.el: Fix in-buffer completion.Juri Linkov2023-02-271-3/+17
| | | | | | | | | | | | | | (icomplete-force-complete-and-exit, icomplete-force-complete): Use 'icomplete--field-beg/end' when not in the minibuffer to not erase the current buffer. Also disable 'completion-in-region-mode' instead of calling 'exit-minibuffer' (bug#45764, bug#51575, bug#61479).
* | * lisp/icomplete.el (icomplete-exhibit): Check validity of the current buffer.Juri Linkov2023-02-091-1/+3
|/ | | | | | This function is applicable only in buffers where functions like icomplete--field-beg can be called, and they expects either non-nil completion-in-region--data or window-minibuffer-p (bug#61308).
* ; Fix typosStefan Kangas2023-01-151-2/+2
|
* ; Add 2023 to copyright years.Eli Zaretskii2023-01-011-1/+1
|
* Don't override completion-category-defaults in fido-modeJoão Távora2022-12-071-1/+0
| | | | | | | | | | To more closely emulate ido-mode, fido-mode and fido-vertical-mode strongly lean to the 'flex completion style. But overriding completion-category-defaults is not the correct way to do it, since sometimes even the 'flex style isn't possible. * lisp/icomplete.el (icomplete--fido-mode-setup): Don't set completion-category-defaults here.
* ; Fix typosStefan Kangas2022-11-111-1/+1
|
* ; Fix several symbol name typosStefan Kangas2022-10-261-1/+1
|
* Prefer defvar-keymap in icomplete.elStefan Kangas2022-09-071-37/+30
| | | | | | * lisp/icomplete.el (icomplete-minibuffer-map) (icomplete-fido-mode-map) (icomplete-vertical-mode-minibuffer-map): Prefer defvar-keymap.
* ; Fix typos: prefer American spellingStefan Kangas2022-07-141-4/+4
|
* Merge from origin/emacs-28Stefan Kangas2022-07-141-1/+1
|\ | | | | | | | | | | | | | | | | | | | | | | 5e47ec9511 ; * lisp/url/url-http.el (url-http-parse-headers): Fix typo. ba0871bef1 ; Fix typos: prefer American spelling e3e7f31faa Adapt Tramp doc # Conflicts: # etc/NEWS # etc/themes/modus-themes.el # lisp/emacs-lisp/byte-opt.el # test/lisp/so-long-tests/spelling-tests.el
| * ; Fix typos: prefer American spellingStefan Kangas2022-07-131-1/+1
| |
* | Quote some literal keys to get help-key-binding faceStefan Kangas2022-07-031-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/align.el (align): * lisp/bindings.el (undo-repeat-map): * lisp/calc/calc-embed.el (calc-do-embedded): * lisp/calc/calc-prog.el (calc-user-define-invocation): * lisp/calc/calc-yank.el (calc--edit-mode): * lisp/comint.el (comint-history-isearch) * lisp/dired.el (dired-mode): * lisp/emulation/viper.el (viper-mode): * lisp/erc/erc-button.el (erc-button-face): * lisp/erc/erc-track.el (erc-track-enable-keybindings): * lisp/gnus/gnus-art.el (gnus-article-button-face): * lisp/gnus/gnus-eform.el (gnus-edit-form): * lisp/gnus/gnus-sum.el (gnus-summary-stop-at-end-of-message) (gnus-summary-goto-unread): * lisp/icomplete.el (icomplete-show-matches-on-no-input): * lisp/image-mode.el (image-scroll-up): * lisp/international/iso-transl.el (iso-transl-set-language): * lisp/isearch.el (isearch-forward-regexp): * lisp/misc.el (butterfly): * lisp/outline.el (outline-minor-mode-cycle-filter) (outline-minor-mode-cycle): * lisp/progmodes/grep.el (rgrep): * lisp/progmodes/gud.el (gud-gdb-repeat-map, gud-sdb-repeat-map) (gud-dbx-repeat-map, gud-xdb-repeat-map, gud-perldb-repeat-map) (gud-pdb-repeat-map, gud-guiler-repeat-map, gud-jdb-repeat-map): * lisp/progmodes/idlw-shell.el (idlwave-shell-graphics-window-size) (idlwave-shell-mode): * lisp/progmodes/idlwave.el (idlwave-shell-debug-modifiers) (idlwave-list-shell-load-path-shadows): * lisp/progmodes/python.el (python-shell-get-process-or-error): * lisp/repeat.el (repeat-check-key): * lisp/replace.el (query-replace, query-replace-regexp) (read-regexp): * lisp/simple.el (read-extended-command-predicate): * lisp/tab-bar.el (tab-bar-switch-repeat-map) (tab-bar-move-repeat-map): * lisp/term.el (ansi-term): * lisp/textmodes/reftex-index.el (reftex-index-phrases-set-macro-key): * lisp/vc/emerge.el (emerge-scroll-left, emerge-scroll-right): * lisp/windmove.el: * lisp/winner.el (winner-mode): Quote literal keys to get 'help-key-binding' face. * lisp/comint.el (comint-insert-previous-argument): Use regular quotes.
* | Merge from origin/emacs-28Stefan Kangas2022-06-241-1/+1
|\ \ | |/ | | | | | | | | | | a772c0b852 ; Fix typos: prefer US spelling. # Conflicts: # doc/misc/modus-themes.org
| * ; Fix typos: prefer US spelling.Stefan Kangas2022-06-231-1/+1
| |
* | * lisp/icomplete.el: Consider a list in minibuffer-default (bug#55800)Juri Linkov2022-06-121-3/+8
| | | | | | | | | | * lisp/icomplete.el (icomplete--sorted-completions): Handle a string value in the first element of the list of default values in minibuffer-default.
* | icomplete-in-buffer doc fixLars Ingebrigtsen2022-06-081-1/+1
| | | | | | | | | | * lisp/icomplete.el (icomplete-in-buffer): dabbrev now uses icomplete-in-buffer (bug#45764).
* | Make the icomplete-in-buffer doc string document moreLars Ingebrigtsen2022-05-071-1/+3
| | | | | | | | | | * lisp/icomplete.el (icomplete-in-buffer): Note what this variable does and doesn't do (bug#45768).
* | (icomplete-exhibit): Fix use in-bufferStefan Monnier2022-05-061-31/+30
| | | | | | | | | | | | | | Also prefer #' to quote function names and remove redundant :group args. * lisp/icomplete.el (icomplete-exhibit): Don't presume the completion field ends at `point-max`.
* | Merge from origin/emacs-28Eli Zaretskii2022-01-011-1/+1
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 836be7a112 ; * etc/refcards/ru-refcard.tex: Update Copyright year. 86cbc6ee4a * lisp/net/tramp-sh.el: Adapt copyright year ebe8772f65 ; Minor fixes related to copyright years 23c1ee6989 ; * test/manual/etags/ETAGS.good_N: Adjust to copyright ye... 8d3fc7ec89 * src/xfaces.c (face_for_font): Make 'hash' be uintptr_t. 19dcb237b5 ; Add 2022 to copyright years. # Conflicts: # etc/NEWS # etc/refcards/ru-refcard.tex # lib/cdefs.h # lisp/erc/erc-dcc.el # lisp/erc/erc-imenu.el # lisp/erc/erc-replace.el # lisp/image-dired.el # lisp/progmodes/xref.el # m4/alloca.m4 # m4/byteswap.m4 # m4/errno_h.m4 # m4/getopt.m4 # m4/gnulib-common.m4 # m4/inttypes.m4 # m4/stddef_h.m4 # m4/stdint.m4 # m4/sys_socket_h.m4