From unknown Mon Jul 21 13:30:21 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#79026 <79026@debbugs.gnu.org> To: bug#79026 <79026@debbugs.gnu.org> Subject: Status: 30.1; TAB in Minibuffer when using a quail input-method should complete the longest common suffix of candidates Reply-To: bug#79026 <79026@debbugs.gnu.org> Date: Mon, 21 Jul 2025 20:30:21 +0000 retitle 79026 30.1; TAB in Minibuffer when using a quail input-method shoul= d complete the longest common suffix of candidates reassign 79026 emacs submitter 79026 Cass Alexandru severity 79026 wishlist thanks From debbugs-submit-bounces@debbugs.gnu.org Tue Jul 15 08:29:31 2025 Received: (at submit) by debbugs.gnu.org; 15 Jul 2025 12:29:31 +0000 Received: from localhost ([127.0.0.1]:40862 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ubeml-00038k-Lg for submit@debbugs.gnu.org; Tue, 15 Jul 2025 08:29:31 -0400 Received: from lists.gnu.org ([2001:470:142::17]:49206) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1ubavc-0001cR-5z for submit@debbugs.gnu.org; Tue, 15 Jul 2025 04:22:22 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ubavN-0005FC-I5 for bug-gnu-emacs@gnu.org; Tue, 15 Jul 2025 04:22:06 -0400 Received: from mout01.posteo.de ([185.67.36.65]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ubavI-0006uP-PA for bug-gnu-emacs@gnu.org; Tue, 15 Jul 2025 04:22:05 -0400 Received: from submission (posteo.de [185.67.36.169]) by mout01.posteo.de (Postfix) with ESMTPS id 13C5A240027 for ; Tue, 15 Jul 2025 10:21:56 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=posteo.eu; s=1984.ea087b; t=1752567717; bh=KfC5/1zBErspcJ70Lk6b0k4vPkL6uTqppwbiAKV8NZM=; h=Message-ID:Date:MIME-Version:To:Subject:From:Content-Type: Content-Transfer-Encoding:From; b=MShC9gU0PhGYAzjW99XUvXq4tXsB79AA1Ck90zD63x19UBsEsTUr4LSRkbEBrWW8O /lOT63RYhGNczdu81u/1kyAsZ0JTKbEPE1YAAqstE7AQ3GuoSPaHKf/RVi32Re/bIA Yov8Sd4+IlGL+jsfU/jUOYPalzikTbpcADatsbA/0RbzliS2dxn6V9gAuncwlAruH7 QNALPG2WDBG3gY3BJNAj31Xooqffqqq6eXuj+zAOjj7zIrUUba3e7drdPpcnpTAZ5/ tWRXRNlux1i3edP9KNmEgi8YcwEOXUtFDQZ6fdY2RTfhYRVE95Q9AfNPen+OSAwiFC fDt4nx66BWxuJY9drCOtHygNkJ4AiHXLOT9SQAUX1Dk+Gd9TeYviq6DnqaiP27tsee HG899/43cen/HXGOG0DoGzRhqpjNdwn7FmxfAHplmSJLCAQW0Xk0xK5MUD7a+D0izl bI3+ldy3SeaGj4h/jOX+e1xRYhPJv+e2qgoKlBANxdIqQQk1GJq Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4bhBxJ3cbfz9rxL for ; Tue, 15 Jul 2025 10:21:56 +0200 (CEST) Message-ID: <2eba7de6-0bf4-4c4f-abb3-f8b941e3bb8f@posteo.eu> Date: Tue, 15 Jul 2025 08:21:56 +0000 MIME-Version: 1.0 To: bug-gnu-emacs@gnu.org Subject: 30.1; TAB in Minibuffer when using a quail input-method should complete the longest common suffix of candidates Content-Language: de-DE, en-US From: Cass Alexandru Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Received-SPF: pass client-ip=185.67.36.65; envelope-from=g.cassian.alexandru@posteo.eu; helo=mout01.posteo.de X-Spam_score_int: -38 X-Spam_score: -3.9 X-Spam_bar: --- X-Spam_report: (-3.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, PDS_BTC_ID=0.499, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: 1.5 (+) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: 1. Steps to reproduce: Type the following in a buffer with `Fundamental` mode: ``` M-x set-input-method RET TeX RET \ab ``` 2. Expected behaviour: `TAB` completes to the only possible option (\above) [...] Content analysis details: (1.5 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 1.0 SPF_SOFTFAIL SPF: sender does not match SPF record (softfail) -0.0 SPF_HELO_PASS SPF: HELO matches SPF record -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [2001:470:142:0:0:0:0:17 listed in] [list.dnswl.org] 0.5 PDS_BTC_ID FP reduced Bitcoin ID X-Debbugs-Envelope-To: submit X-Mailman-Approved-At: Tue, 15 Jul 2025 08:29:24 -0400 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.5 (/) 1. Steps to reproduce: Type the following in a buffer with `Fundamental` mode: ``` M-x set-input-method RET TeX RET \ab ``` 2. Expected behaviour: `TAB` completes to the only possible option (\above) and inserts `┴`. 3. Actual behaviour: `TAB` pops up the `*Quail Completions*` buffer with the following content, and I need to fully type out `\above` for `┴` to be inserted in the main buffer: ``` Possible completion and corresponding characters are: \ab: - \abo: - \abov: - \above:(1/1) 1.┴ ``` My question is: How can I get the expected behaviour instead of the observed one? In GNU Emacs 30.1 (build 1, x86_64-pc-linux-gnu, X toolkit, cairo version 1.18.2, Xaw3d scroll bars) Windowing system distributor 'The X.Org Foundation', version 11.0.12101016 System Description: NixOS 25.05 (Warbler) Configured using: 'configure --prefix=/nix/store/glh7dkancz0wlk5gh6zii601f0alys2v-emacs-30.1 --disable-build-details --with-modules --with-x-toolkit=lucid --with-cairo --without-xft --with-compress-install --with-toolkit-scroll-bars --with-native-compilation --without-imagemagick --with-mailutils --without-small-ja-dic --with-tree-sitter --with-xinput2 --without-xwidgets --with-dbus --with-selinux' Configured features: CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 M17N_FLT MODULES NATIVE_COMP NOTIFY INOTIFY PDUMPER PNG RSVG SECCOMP SOUND SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER WEBP X11 XAW3D XDBE XIM XINPUT2 XPM LUCID ZLIB Important settings: value of $EMACSLOADPATH: value of $EMACSNATIVELOADPATH: value of $LANG: en_US.UTF-8 locale-coding-system: utf-8-unix Major mode: ELisp/l Minor modes in effect: global-git-commit-mode: t magit-auto-revert-mode: t show-smartparens-global-mode: t show-smartparens-mode: t smartparens-mode: t server-mode: t desktop-save-mode: t TeX-PDF-mode: t winner-mode: t ido-everywhere: t yas-global-mode: t yas-minor-mode: t override-global-mode: t tooltip-mode: t global-eldoc-mode: t eldoc-mode: t show-paren-mode: t electric-indent-mode: t mouse-wheel-mode: t tool-bar-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t minibuffer-regexp-mode: t buffer-read-only: t line-number-mode: t transient-mark-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t Load-path shadows: /nix/store/38farb3b39kgi9ccyfqnjb6iigirgihw-emacs-packages-deps/share/emacs/site-lisp/site-start hides /nix/store/glh7dkancz0wlk5gh6zii601f0alys2v-emacs-30.1/share/emacs/site-lisp/site-start /nix/store/38farb3b39kgi9ccyfqnjb6iigirgihw-emacs-packages-deps/share/emacs/site-lisp/elpa/transient-20250306.1916/transient hides /nix/store/glh7dkancz0wlk5gh6zii601f0alys2v-emacs-30.1/share/emacs/30.1/lisp/transient /nix/store/38farb3b39kgi9ccyfqnjb6iigirgihw-emacs-packages-deps/share/emacs/site-lisp/elpa/bind-key-2.4.1/bind-key hides /nix/store/glh7dkancz0wlk5gh6zii601f0alys2v-emacs-30.1/share/emacs/30.1/lisp/bind-key /nix/store/38farb3b39kgi9ccyfqnjb6iigirgihw-emacs-packages-deps/share/emacs/site-lisp/elpa/use-package-2.4.6/use-package-diminish hides /nix/store/glh7dkancz0wlk5gh6zii601f0alys2v-emacs-30.1/share/emacs/30.1/lisp/use-package/use-package-diminish /nix/store/38farb3b39kgi9ccyfqnjb6iigirgihw-emacs-packages-deps/share/emacs/site-lisp/elpa/use-package-2.4.6/use-package hides /nix/store/glh7dkancz0wlk5gh6zii601f0alys2v-emacs-30.1/share/emacs/30.1/lisp/use-package/use-package /nix/store/38farb3b39kgi9ccyfqnjb6iigirgihw-emacs-packages-deps/share/emacs/site-lisp/elpa/use-package-2.4.6/use-package-core hides /nix/store/glh7dkancz0wlk5gh6zii601f0alys2v-emacs-30.1/share/emacs/30.1/lisp/use-package/use-package-core /nix/store/38farb3b39kgi9ccyfqnjb6iigirgihw-emacs-packages-deps/share/emacs/site-lisp/elpa/use-package-2.4.6/use-package-ensure-system-package hides /nix/store/glh7dkancz0wlk5gh6zii601f0alys2v-emacs-30.1/share/emacs/30.1/lisp/use-package/use-package-ensure-system-package /nix/store/38farb3b39kgi9ccyfqnjb6iigirgihw-emacs-packages-deps/share/emacs/site-lisp/elpa/use-package-2.4.6/use-package-delight hides /nix/store/glh7dkancz0wlk5gh6zii601f0alys2v-emacs-30.1/share/emacs/30.1/lisp/use-package/use-package-delight /nix/store/38farb3b39kgi9ccyfqnjb6iigirgihw-emacs-packages-deps/share/emacs/site-lisp/elpa/use-package-2.4.6/use-package-ensure hides /nix/store/glh7dkancz0wlk5gh6zii601f0alys2v-emacs-30.1/share/emacs/30.1/lisp/use-package/use-package-ensure /nix/store/38farb3b39kgi9ccyfqnjb6iigirgihw-emacs-packages-deps/share/emacs/site-lisp/elpa/use-package-2.4.6/use-package-jump hides /nix/store/glh7dkancz0wlk5gh6zii601f0alys2v-emacs-30.1/share/emacs/30.1/lisp/use-package/use-package-jump /nix/store/38farb3b39kgi9ccyfqnjb6iigirgihw-emacs-packages-deps/share/emacs/site-lisp/elpa/use-package-2.4.6/use-package-bind-key hides /nix/store/glh7dkancz0wlk5gh6zii601f0alys2v-emacs-30.1/share/emacs/30.1/lisp/use-package/use-package-bind-key /nix/store/38farb3b39kgi9ccyfqnjb6iigirgihw-emacs-packages-deps/share/emacs/site-lisp/elpa/use-package-2.4.6/use-package-lint hides /nix/store/glh7dkancz0wlk5gh6zii601f0alys2v-emacs-30.1/share/emacs/30.1/lisp/use-package/use-package-lint /nix/store/38farb3b39kgi9ccyfqnjb6iigirgihw-emacs-packages-deps/share/emacs/site-lisp/elpa/xref-1.7.0/xref hides /nix/store/glh7dkancz0wlk5gh6zii601f0alys2v-emacs-30.1/share/emacs/30.1/lisp/progmodes/xref /nix/store/38farb3b39kgi9ccyfqnjb6iigirgihw-emacs-packages-deps/share/emacs/site-lisp/elpa/project-0.11.1/project hides /nix/store/glh7dkancz0wlk5gh6zii601f0alys2v-emacs-30.1/share/emacs/30.1/lisp/progmodes/project /nix/store/38farb3b39kgi9ccyfqnjb6iigirgihw-emacs-packages-deps/share/emacs/site-lisp/elpa/let-alist-1.0.6/let-alist hides /nix/store/glh7dkancz0wlk5gh6zii601f0alys2v-emacs-30.1/share/emacs/30.1/lisp/emacs-lisp/let-alist /nix/store/38farb3b39kgi9ccyfqnjb6iigirgihw-emacs-packages-deps/share/emacs/site-lisp/elpa/seq-2.24/seq hides /nix/store/glh7dkancz0wlk5gh6zii601f0alys2v-emacs-30.1/share/emacs/30.1/lisp/emacs-lisp/seq /nix/store/38farb3b39kgi9ccyfqnjb6iigirgihw-emacs-packages-deps/share/emacs/site-lisp/elpa/compat-30.0.2.0/compat hides /nix/store/glh7dkancz0wlk5gh6zii601f0alys2v-emacs-30.1/share/emacs/30.1/lisp/emacs-lisp/compat /nix/store/38farb3b39kgi9ccyfqnjb6iigirgihw-emacs-packages-deps/share/emacs/site-lisp/elpa/eldoc-1.15.0/eldoc hides /nix/store/glh7dkancz0wlk5gh6zii601f0alys2v-emacs-30.1/share/emacs/30.1/lisp/emacs-lisp/eldoc Features: (shadow sort mail-extr emacsbug align debug backtrace ind-util help-macro cl-print shortdoc whitespace files-x mc-edit-lines descr-text direnv mule-util ibuf-ext ibuffer ibuffer-loaddefs vc-hg vc-bzr vc-src vc-sccs vc-svn vc-cvs vc-rcs log-view vc bug-reference magit-extras face-remap magit-submodule magit-blame magit-stash magit-reflog magit-bisect magit-push magit-pull magit-fetch magit-clone magit-remote magit-commit magit-sequence magit-notes magit-worktree magit-tag magit-merge magit-branch magit-reset magit-files magit-refs magit-status magit magit-repos magit-apply magit-wip magit-log which-func magit-diff smerge-mode diff git-commit log-edit pcvs-util add-log magit-core magit-autorevert magit-margin magit-transient magit-process with-editor magit-mode transient benchmark magit-git magit-base pcmpl-unix tabify help-fns radix-tree cus-edit cus-start cus-load misearch multi-isearch ace-window avy reftex-sel reftex-ref reftex-parse reftex-toc conf-mode make-mode display-line-numbers oc-basic org-element org-persist org-id org-refile org-element-ast avl-tree ol-eww eww url-queue mm-url ol-rmail ol-mhe ol-irc ol-info ol-gnus nnselect gnus-art mm-uu mml2015 mm-view mml-smime smime dig gnus-sum shr pixel-fill kinsoku url-file svg gnus-group gnus-undo gnus-start gnus-dbus gnus-cloud nnimap nnmail mail-source utf7 nnoo gnus-spec gnus-int gnus-range message sendmail rfc822 mml mml-sec epa mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 ietf-drums mailabbrev gmm-utils mailheader gnus-win gnus nnheader gnus-util mail-utils range mm-util mail-prsvr ol-docview doc-view image-mode exif ol-bibtex bibtex ol-bbdb ol-w3m ol-doi org-link-doi smartparens-org org ob ob-tangle ob-ref ob-lob ob-table ob-exp org-macro org-src sh-script executable ob-comint org-pcomplete org-list org-footnote org-faces org-entities org-version ob-emacs-lisp ob-core ob-eval org-cycle org-table ol org-fold org-fold-core org-keys oc org-loaddefs find-func cal-menu calendar cal-loaddefs org-compat org-macs smartparens-python python company-oddmuse company-keywords company-etags company-gtags company-dabbrev-code company-dabbrev company-files company-clang company-capf company-cmake company-semantic company-template company-bbdb view lsp-zig lsp-yang lsp-yaml lsp-xml lsp-wgsl lsp-volar lsp-vimscript lsp-vhdl lsp-vetur lsp-html lsp-verilog lsp-vala lsp-v lsp-typespec lsp-typeprof lsp-ttcn3 lsp-ts-query lsp-trunk lsp-toml lsp-tilt lsp-tex lsp-terraform lsp-svelte lsp-steep lsp-sqls lsp-sql lsp-sorbet lsp-solidity lsp-solargraph lsp-semgrep lsp-rust lsp-ruff lsp-ruby-syntax-tree lsp-ruby-lsp lsp-rubocop lsp-roslyn lsp-roc lsp-rf lsp-remark lsp-racket lsp-r lsp-qml lsp-pylsp lsp-pyls lsp-pwsh lsp-purescript lsp-pls lsp-php lsp-perlnavigator lsp-perl lsp-openscad lsp-ocaml lsp-nushell lsp-nix lsp-nim lsp-nginx lsp-nextflow lsp-move lsp-mojo lsp-mint lsp-meson lsp-mdx lsp-matlab lsp-marksman lsp-markdown lsp-magik lsp-fennel lsp-lua lsp-lisp lsp-kubernetes-helm lsp-kotlin lsp-json lsp-jq lsp-javascript lsp-idris lsp-haxe lsp-haskell lsp-hack lsp-groovy lsp-graphql lsp-golangci-lint lsp-glsl lsp-gleam lsp-gdscript lsp-fsharp lsp-futhark lsp-fortran lsp-eslint lsp-erlang lsp-emmet lsp-elm lsp-elixir lsp-earthly lsp-dockerfile lsp-dhall lsp-d lsp-cypher lsp-cucumber lsp-copilot lsp-css lsp-c3 lsp-csharp lsp-crystal lsp-credo lsp-cobol lsp-cmake lsp-clojure lsp-clangd lsp-bufls lsp-go lsp-completion lsp-beancount lsp-bash lsp-awk lsp-autotools lsp-astro lsp-asm lsp-ansible lsp-angular lsp-ada lsp-semantic-tokens lsp-actionscript smartparens-haskell haskell-mode haskell-cabal haskell-utils haskell-font-lock haskell-indentation haskell-string haskell-sort-imports haskell-lexeme haskell-align-imports haskell-complete-module haskell-ghc-support flymake-proc etags fileloop generator dabbrev haskell-customize agda2-mode agda2-queue agda2-abbrevs skeleton agda2-highlight agda2 annotation eri bibtex-style smartparens-javascript js c-ts-common treesit nix-mode ffap nix-repl nix-shell nix-store nix-log nix-instantiate nix-shebang nix-format nix jka-compr dired-aux hl-line dired dired-loaddefs yank-media smartparens-c cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs autorevert vc-git diff-mode track-changes vc-dispatcher reftex-dcr reftex-auc reftex reftex-loaddefs reftex-vars smartparens-config smartparens-markdown smartparens-text smartparens-latex smartparens-html smartparens loadhist tex-bar toolbar-x tex-mode font-latex latexenc preview global-prefs mediawiki-mode server delsel re-builder desktop frameset crdt gnutls forms forms-mode xdg auctex-latexmk latex latex-flymake flymake tex-ispell tex-style tex dbus xml crm texmathp auctex magma-snippets magma-mode magma-interactive magma-q magma-completion magma-scan term disp-table shell pcomplete ehelp magma-extra autoinsert magma-smie smie magma-font-lock magma-vars rcirc-color rcirc parse-time iso8601 time-date yaml-mode ultra-scroll pixel-scroll cua-base agda-input quail polymode derived poly-lock polymode-base polymode-weave polymode-export polymode-compat polymode-methods polymode-core polymode-classes eieio-custom eieio-base lean4-mode lean4-lake lean4-fringe lean4-dev lean4-info magit-section format-spec cursor-sensor llama lean4-syntax lean4-util lean4-settings compat lean4-eri lsp-mode lsp-protocol tree-widget wid-edit spinner network-stream puny nsm markdown-mode color noutline outline lv inline imenu ht filenotify f s ewoc epg rfc6068 epg-config dash idris-mode idris-commands idris-hole-list idris-ipkg-mode compile text-property-search comint ansi-osc ansi-color idris-tree-info idris-warnings-tree idris-info idris-repl idris-xref xref project idris-highlight-input idris-prover inferior-idris idris-warnings idris-log idris-events pp idris-simple-indent idris-syntax idris-common-utils idris-settings idris-keys idris-core idris-compat prop-menu iedit iedit-lib mc-hide-unmatched-lines-mode mc-mark-more sgml-mode facemenu dom thingatpt mc-cycle-cursors multiple-cursors-core comp comp-cstr warnings comp-run comp-common rx rect advice winner ring company ido move-text yasnippet edmacro kmacro cl-extra help-mode use-package use-package-ensure use-package-delight use-package-diminish use-package-bind-key bind-key easy-mmode use-package-core ace-window-autoloads agda2-mode-autoloads auctex-latexmk-autoloads avy-autoloads cargo-autoloads company-auctex-autoloads auctex-autoloads tex-site company-coq-autoloads company-math-autoloads company-reftex-autoloads company-autoloads crdt-autoloads direnv-autoloads flx-ido-autoloads flx-autoloads flycheck-haskell-autoloads flycheck-rust-autoloads flycheck-autoloads fsharp-mode-autoloads haskell-mode-autoloads highlight-indentation-autoloads htmlize-autoloads idris-mode-autoloads iedit-autoloads lsp-haskell-autoloads lsp-ui-autoloads lsp-mode-autoloads ht-autoloads lv-autoloads magit-autoloads pcase magma-mode-autoloads math-symbol-lists-autoloads move-text-autoloads multiple-cursors-autoloads nix-mode-autoloads magit-section-autoloads llama-autoloads pcre2el-autoloads phi-search-autoloads polymode-autoloads proof-general-autoloads proof-site proof-autoloads prop-menu-autoloads racer-autoloads pos-tip-autoloads rustic-autoloads markdown-mode-autoloads f-autoloads rust-mode-autoloads s-autoloads smartparens-autoloads dash-autoloads spinner-autoloads transient-autoloads info with-editor-autoloads ws-butler-autoloads xelb-autoloads xterm-color-autoloads yaml-mode-autoloads yasnippet-autoloads package browse-url url url-proxy url-privacy url-expand url-methods url-history url-cookie generate-lisp-file url-domsuf url-util mailcap url-handlers url-parse auth-source cl-seq eieio eieio-core cl-macs icons password-cache json subr-x map byte-opt gv bytecomp byte-compile url-vars cl-loaddefs cl-lib rmc iso-transl tooltip cconv eldoc paren electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel term/x-win x-win term/common-win x-dnd touch-screen tool-bar dnd fontset image regexp-opt fringe tabulated-list replace newcomment text-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors frame minibuffer nadvice seq simple cl-generic indonesian philippine cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese composite emoji-zwj charscript charprop case-table epa-hook jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button loaddefs theme-loaddefs faces cus-face macroexp files window text-properties overlay sha1 md5 base64 format env code-pages mule custom widget keymap hashtable-print-readable backquote threads dbusbind inotify dynamic-setting system-font-setting font-render-setting cairo x-toolkit xinput2 x multi-tty move-toolbar make-network-process native-compile emacs) Memory information: ((conses 16 2068960 351359) (symbols 48 74110 0) (strings 32 457206 25309) (string-bytes 1 17653278) (vectors 16 144083) (vector-slots 8 2460867 369307) (floats 8 2888 2727) (intervals 56 93902 101) (buffers 992 371)) From debbugs-submit-bounces@debbugs.gnu.org Tue Jul 15 09:53:38 2025 Received: (at 79026) by debbugs.gnu.org; 15 Jul 2025 13:53:38 +0000 Received: from localhost ([127.0.0.1]:41393 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ubg6E-0002dh-3K for submit@debbugs.gnu.org; Tue, 15 Jul 2025 09:53:38 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:48582) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1ubg69-0002dP-Ff for 79026@debbugs.gnu.org; Tue, 15 Jul 2025 09:53:34 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ubg63-0002jh-7o; Tue, 15 Jul 2025 09:53:27 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=kMr/dNQNtkC1yeAfL1WoHwmUkT41zTc/ixMjHsijzFs=; b=hCYKuEBZlGUU3lHCoe8i eQbQmCS3nxlJP3SxCrv/ZkoDdzcWZOSnXjo/VNkMQPa6bbHxzLFpznJ9l5PJ57owBje7ZB9Szsahn 70g00ckoj1d8y5bgpOilh5ZijprJGKXHGd5Vxwe6fStwvDsgb61l+4svVsUN61im/OJ+ncydMLeTy ZuxuVN3KJ/9WQ6pxKtB7k3zoyPM6kdcmhggvILGuwC5lW+Q32H9f9YQoOV5YvQMt1MSE8Zz4EJAIw r7dLvw6z3aXg5xBvHa08cLj7yWQ4zcLZVD4fU2BEssBZWZ5A7XOxdb6upJzVo7pd8l0FevfTywTiA 1GD1ZyNpC3rUzA==; Date: Tue, 15 Jul 2025 16:53:23 +0300 Message-Id: <86cya1k1bg.fsf@gnu.org> From: Eli Zaretskii To: Cass Alexandru , Stefan Monnier , Arash Esbati In-Reply-To: <2eba7de6-0bf4-4c4f-abb3-f8b941e3bb8f@posteo.eu> (message from Cass Alexandru on Tue, 15 Jul 2025 08:21:56 +0000) Subject: Re: bug#79026: 30.1; TAB in Minibuffer when using a quail input-method should complete the longest common suffix of candidates References: <2eba7de6-0bf4-4c4f-abb3-f8b941e3bb8f@posteo.eu> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 79026 Cc: 79026@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Date: Tue, 15 Jul 2025 08:21:56 +0000 > From: Cass Alexandru > > 1. Steps to reproduce: Type the following in a buffer with `Fundamental` > mode: > ``` > M-x set-input-method RET TeX RET > \ab > ``` > 2. Expected behaviour: `TAB` completes to the only possible option > (\above) and inserts `┴`. > > 3. Actual behaviour: `TAB` pops up the `*Quail Completions*` buffer with > the following content, and I need to fully type out `\above` for `┴` to > be inserted in the main buffer: > ``` > Possible completion and corresponding characters are: > \ab: - > \abo: - > \abov: - > \above:(1/1) 1.┴ > ``` > > My question is: How can I get the expected behaviour instead of the > observed one? It doesn't look like quail-completion (which is the command bound to TAB in that input method) is supposed to work as you expect. Instead, it is a fancy visual feedback for typing long sequences, fancier than what Emacs usually shows in the echo-area (which is just the list of candidates for the next character). IOW, after pressing TAB, you are supposed to: . realize that there's just one candidate "\above" . type its characters one by one, guided by the moving highlight in the *Quail Completions* buffer as you go Stefan and Arash, am I right? From debbugs-submit-bounces@debbugs.gnu.org Tue Jul 15 10:11:35 2025 Received: (at 79026) by debbugs.gnu.org; 15 Jul 2025 14:11:35 +0000 Received: from localhost ([127.0.0.1]:42785 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ubgNb-0004DB-9Y for submit@debbugs.gnu.org; Tue, 15 Jul 2025 10:11:35 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:48146) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1ubgNX-0004Cr-Vu for 79026@debbugs.gnu.org; Tue, 15 Jul 2025 10:11:32 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ubgNP-0007hm-4l; Tue, 15 Jul 2025 10:11:24 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=L6Qdx2RsXi+Ufh0RjOtvJrsFtjWZMH67+Ht0zI5gppc=; b=ELC+qQQV0JayCcppTTRc T7pk+lbRakOZMQeqCRwrgQShAoWAFpN7qGBLz4AW/eEMANYcNWIXZIgzqZD6IkjZKUgXmcaRo2C1y 1t1xgR14CAruo/YTIEWsTWnPLljSaEVo1hu8EBCsGv8da+dQNlqCe8g95Gf5elc1vobEborhQfJgK /qXFRd1vSONB0k6k4jjovIfIgsFsi4x64kW8JXeTkVfR/mEAogM1J5+PNKjUlCTmMq7ZwBOt17jC2 nNcLl0ruDB5bp6bbVBKp1ASM5Dsix8laPeXcfEBmyFRILKYUz7BgKMK2yQPwxGHe1EcDYTyHQN2sj RLlVMhT4a3BIuA==; Date: Tue, 15 Jul 2025 17:11:17 +0300 Message-Id: <86a555k0hm.fsf@gnu.org> From: Eli Zaretskii To: Cass Alexandru In-Reply-To: <5ab64e08-ba38-4cef-a0bc-94c248c2a63c@posteo.eu> (message from Cass Alexandru on Tue, 15 Jul 2025 13:58:41 +0000) Subject: Re: bug#79026: 30.1; TAB in Minibuffer when using a quail input-method should complete the longest common suffix of candidates References: <2eba7de6-0bf4-4c4f-abb3-f8b941e3bb8f@posteo.eu> <86cya1k1bg.fsf@gnu.org> <5ab64e08-ba38-4cef-a0bc-94c248c2a63c@posteo.eu> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 79026 Cc: Arash Esbati , 79026@debbugs.gnu.org, Stefan Monnier X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) [Please use Reply All to reply, to keep everyone CC'ed.] > Date: Tue, 15 Jul 2025 13:58:41 +0000 > From: Cass Alexandru > > Hi all, > > On 15/07/2025 15:53, Eli Zaretskii wrote: > >> Date: Tue, 15 Jul 2025 08:21:56 +0000 > >> From: Cass Alexandru > >> > >> 1. Steps to reproduce: Type the following in a buffer with `Fundamental` > >> mode: > >> ``` > >> M-x set-input-method RET TeX RET > >> \ab > >> ``` > >> 2. Expected behaviour: `TAB` completes to the only possible option > >> (\above) and inserts `┴`. > >> > >> 3. Actual behaviour: `TAB` pops up the `*Quail Completions*` buffer with > >> the following content, and I need to fully type out `\above` for `┴` to > >> be inserted in the main buffer: > >> ``` > >> Possible completion and corresponding characters are: > >> \ab: - > >> \abo: - > >> \abov: - > >> \above:(1/1) 1.┴ > >> ``` > >> > >> My question is: How can I get the expected behaviour instead of the > >> observed one? > > It doesn't look like quail-completion (which is the command bound to > > TAB in that input method) is supposed to work as you expect. Instead, > > it is a fancy visual feedback for typing long sequences, fancier than > > what Emacs usually shows in the echo-area (which is just the list of > > candidates for the next character). > > > > IOW, after pressing TAB, you are supposed to: > > > > . realize that there's just one candidate "\above" > > . type its characters one by one, guided by the moving highlight in > > the *Quail Completions* buffer as you go > It was suggested to me on the emacs stackexchange > > to report this as a bug, though I suppose it's more of a feature > request, and if I was more proficient in elisp I could perhaps ascertain > how to get the desired behaviour by means of custom function or a > `defadvice`. I do think one could argue that greedy suffix completion on > tab is the desired behaviour in this circumstance, as this is the > behaviour in all other settings where tab-completion is used in emacs > (and unix systems generally). > > > > Stefan and Arash, am I right? From debbugs-submit-bounces@debbugs.gnu.org Tue Jul 15 10:29:45 2025 Received: (at 79026) by debbugs.gnu.org; 15 Jul 2025 14:29:45 +0000 Received: from localhost ([127.0.0.1]:42892 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ubgfB-0005Xl-BJ for submit@debbugs.gnu.org; Tue, 15 Jul 2025 10:29:45 -0400 Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:4645) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1ubgf8-0005X6-F9 for 79026@debbugs.gnu.org; Tue, 15 Jul 2025 10:29:43 -0400 Received: from pmg1.iro.umontreal.ca (localhost.localdomain [127.0.0.1]) by pmg1.iro.umontreal.ca (Proxmox) with ESMTP id 00FC31002F0; Tue, 15 Jul 2025 10:29:37 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1752589772; bh=ncBrRwCu+WYWBcxPzVd9BDwbSWemPF79dDdIfL6HcWM=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=BzM4i2NAbtikRRLB/q6R7/lFdiB3iFr5umpNHn+Q4rRPpNrkH4D2PZP0SdhU8oWkS npIGNFItwvr6OgwpkNKCm+tVUIju+tccLpkI76E8Wtp0ICgRlXtLQM1rFfymqu6A9Y Zg4c/IXrGKxR1o9S8WVrPuhWaPvI24HHSMBIb5hDqepqL2cturt/rzmBTyPb8UkJXG q172jjgLgz+0VhgwHwlL7I3I+0/U0ILfKY2+i+kW6xc+tYLq0sdcp0Lrf3MDYwJaUU LpLjuvJMTVD/UlIVB2Lro29tB/z3UGjKuIqAzmi0CztloNMR4bnomPIC3k5PFHYeW9 kfXxjtVucNuZA== Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg1.iro.umontreal.ca (Proxmox) with ESMTP id 0B4C110002E; Tue, 15 Jul 2025 10:29:32 -0400 (EDT) Received: from pastel (unknown [104.247.225.139]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id CED041208DE; Tue, 15 Jul 2025 10:29:31 -0400 (EDT) From: Stefan Monnier To: Eli Zaretskii Subject: Re: bug#79026: 30.1; TAB in Minibuffer when using a quail input-method should complete the longest common suffix of candidates In-Reply-To: <86cya1k1bg.fsf@gnu.org> Message-ID: References: <2eba7de6-0bf4-4c4f-abb3-f8b941e3bb8f@posteo.eu> <86cya1k1bg.fsf@gnu.org> Date: Tue, 15 Jul 2025 10:29:31 -0400 User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-SPAM-INFO: Spam detection results: 0 ALL_TRUSTED -1 Passed through trusted hosts only via SMTP AWL -0.274 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from domain X-SPAM-LEVEL: X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 79026 Cc: Cass Alexandru , 79026@debbugs.gnu.org, Arash Esbati X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > It doesn't look like quail-completion (which is the command bound to > TAB in that input method) is supposed to work as you expect. Instead, > it is a fancy visual feedback for typing long sequences, fancier than > what Emacs usually shows in the echo-area (which is just the list of > candidates for the next character). > > IOW, after pressing TAB, you are supposed to: > > . realize that there's just one candidate "\above" > . type its characters one by one, guided by the moving highlight in > the *Quail Completions* buffer as you go > > Stefan and Arash, am I right? I sadly don't know any more than you do about it. I hope Handa would know better. I have wished for a quail completion mechanism based on the usual minibuffer completion, but IIUC it's not completely straightforward. Stefan From debbugs-submit-bounces@debbugs.gnu.org Wed Jul 16 03:54:07 2025 Received: (at 79026) by debbugs.gnu.org; 16 Jul 2025 07:54:07 +0000 Received: from localhost ([127.0.0.1]:47787 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ubwxr-0003fF-6b for submit@debbugs.gnu.org; Wed, 16 Jul 2025 03:54:07 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:48018) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1ubwxm-0003eT-Em for 79026@debbugs.gnu.org; Wed, 16 Jul 2025 03:54:04 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ubwxf-0005C0-L4; Wed, 16 Jul 2025 03:53:56 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:Date:References:In-Reply-To:Subject:To: From; bh=qKBXa9m3GolrNaTbpYFkh8mg+DazQfcXteP99BkGWEk=; b=LB8Ra9BR0Axt7ePRnriN yD14fw3POgDVmwL55mqF1VrAJ96dIMc6tPwZNWDrjhaeB7TFxm7G+cXGrMBbxGhMkdpT0qpH4l8wB LEJKtqOjJ1DW68PEqhIJ2qYliDhvkEzm9190/tD0Gh/D8xWg+akDSGVXwC0DqvQNEMtYQgKID6dEk Gamf16qRPE26/IQSFw3jM86ACtHPTIH5zUZXE7z9EySOV6DXejVSca1uOVsQI4pnHW6TT6LDJEaxT kon1BGkXJqGnzcMHppb4b5RJnY2RxJwtL1fiZhBcQPOkU6bPAYR+pvEHUdqf4pOv3wpusyG20146c 3NsV/pfWAWPMHw==; From: Arash Esbati To: Eli Zaretskii Subject: Re: bug#79026: 30.1; TAB in Minibuffer when using a quail input-method should complete the longest common suffix of candidates In-Reply-To: References: <2eba7de6-0bf4-4c4f-abb3-f8b941e3bb8f@posteo.eu> <86cya1k1bg.fsf@gnu.org> Date: Wed, 16 Jul 2025 09:53:51 +0200 Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 79026 Cc: Cass Alexandru , 79026@debbugs.gnu.org, Stefan Monnier X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Stefan Monnier writes: >> It doesn't look like quail-completion (which is the command bound to >> TAB in that input method) is supposed to work as you expect. Instead, >> it is a fancy visual feedback for typing long sequences, fancier than >> what Emacs usually shows in the echo-area (which is just the list of >> candidates for the next character). >> >> IOW, after pressing TAB, you are supposed to: >> >> . realize that there's just one candidate "\above" >> . type its characters one by one, guided by the moving highlight in >> the *Quail Completions* buffer as you go >> >> Stefan and Arash, am I right? > > I sadly don't know any more than you do about it. Same here, sorry. Best, Arash From debbugs-submit-bounces@debbugs.gnu.org Wed Jul 16 08:07:33 2025 Received: (at 79026) by debbugs.gnu.org; 16 Jul 2025 12:07:33 +0000 Received: from localhost ([127.0.0.1]:48669 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uc0v7-0005hf-7G for submit@debbugs.gnu.org; Wed, 16 Jul 2025 08:07:33 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:45076) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1uc0v3-0005gz-Jx; Wed, 16 Jul 2025 08:07:30 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uc0uw-0002Tf-4n; Wed, 16 Jul 2025 08:07:22 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=/FSBaBpzeO8fjm3NKGcDwmLEqYtjAVWmNcN5Q5q2NnM=; b=TC4bZOClFIeu ttQE3fo3CaGdEAv1hoh9fGqS6X3L5ql8Bxbj4iVtRJXAz8bsOD3efVP1IlRQtElHgrsVkSrwBFrFt gxppA08AWykXWJMtzYtt088LI0UOFfDvckeRRmGxeftiTCD1QvAwoQ83zUfM8FpOlN91R1FDAATDy y4DqmlaDnxE7BlQSgTOJ9e+5ZfmU9jEHUXHyAyouLbPjbDy4e/fTsPCxFG6QAmVd5McYhL/ESPTzr t7NS/h3v8dUa/COn8mF1F5JuCsZyO1HQJa192//BxNTOUf0BgRkTVHixTndg9PhA951MonCtPZm3a pZbpFgneFMvzmc5V4k4QJg==; Date: Wed, 16 Jul 2025 15:07:14 +0300 Message-Id: <86tt3cibkd.fsf@gnu.org> From: Eli Zaretskii To: Arash Esbati In-Reply-To: (message from Arash Esbati on Wed, 16 Jul 2025 09:53:51 +0200) Subject: Re: bug#79026: 30.1; TAB in Minibuffer when using a quail input-method should complete the longest common suffix of candidates References: <2eba7de6-0bf4-4c4f-abb3-f8b941e3bb8f@posteo.eu> <86cya1k1bg.fsf@gnu.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 79026 Cc: g.cassian.alexandru@posteo.eu, 79026@debbugs.gnu.org, monnier@iro.umontreal.ca X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) severity 79026 wishlist thanks > From: Arash Esbati > Cc: Stefan Monnier , Cass Alexandru > , 79026@debbugs.gnu.org > Date: Wed, 16 Jul 2025 09:53:51 +0200 > > Stefan Monnier writes: > > >> It doesn't look like quail-completion (which is the command bound to > >> TAB in that input method) is supposed to work as you expect. Instead, > >> it is a fancy visual feedback for typing long sequences, fancier than > >> what Emacs usually shows in the echo-area (which is just the list of > >> candidates for the next character). > >> > >> IOW, after pressing TAB, you are supposed to: > >> > >> . realize that there's just one candidate "\above" > >> . type its characters one by one, guided by the moving highlight in > >> the *Quail Completions* buffer as you go > >> > >> Stefan and Arash, am I right? > > > > I sadly don't know any more than you do about it. > > Same here, sorry. Thanks. I guess this makes this bug report a request for enhancement, since no one has implemented TAB completion for input methods. From debbugs-submit-bounces@debbugs.gnu.org Wed Jul 16 11:09:53 2025 Received: (at 79026) by debbugs.gnu.org; 16 Jul 2025 15:09:53 +0000 Received: from localhost ([127.0.0.1]:50154 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uc3lZ-0003OC-9w for submit@debbugs.gnu.org; Wed, 16 Jul 2025 11:09:53 -0400 Received: from mail-pl1-x642.google.com ([2607:f8b0:4864:20::642]:43508) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1uc3lX-0003Np-5L for 79026@debbugs.gnu.org; Wed, 16 Jul 2025 11:09:51 -0400 Received: by mail-pl1-x642.google.com with SMTP id d9443c01a7336-23e210ebd5dso7787685ad.1 for <79026@debbugs.gnu.org>; Wed, 16 Jul 2025 08:09:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1752678585; x=1753283385; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=nUopX4ttZ0e7EUat2Vg8oCZEH0FhbpEPrTR49YgJW+k=; b=bunVbsTauNcQVDA54hoebexlUr8U5rM0pE5qOwW2a4Idf9DHYy+wN/iUqEKA5ZU8AE dnwiPftjdihoeujAiJqMZDnV06/XSUfMRyQGccxCOqKnKxkxf7Kc0N7if8KyO3eojQTd Kw/gpydeT0qKY4dmv0KQA288RyhXT9n+VAIv/+f52MgVT/mwqnyGnN5HFwnYWV4+1fDu 5/uKjb6Q0ieSz4oVNRVTykTdMi/1zFo7cyK5D20D4uaQIrs6OmvieoMCeALDxOPFPMOq p5mWwBWlD19typIU9Vm+D/jWgNY01P3XD+lZftIjx5oiw9wqY/qclXwOiQfzUsoHi3W+ 4orQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752678585; x=1753283385; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=nUopX4ttZ0e7EUat2Vg8oCZEH0FhbpEPrTR49YgJW+k=; b=OA9V7+jvzNXv5vi9/+yQpj9/D0fSa7Kk9YLD4YnPVOy9PA1o9hMFEFe4vdpVUFdI5X sVKTVxzhBxqWzaLKJBzEPbyl8ykDOVfi1jBauwTMJc14Tx353DigWbnZBig5mK0t8Nnf 6NKTGd38Lk3jIu2EpdPx6/p/Da8CEPaRUOGk7p+m40/nDyz8CRCJAI1krMM0NrJYd9WX 9MqPceMZaKyHw6ODMSdpeVuHzODp7zuN5CLf871fjrWdDs489t4lKIuGB/IubaZJMZWU aeFgEgKMdIFCm3S5EBvqocs1DYoLaUY28HDxX32MpkTYr9NZmp6G+bOiPZYWxrbTD/fR J4Jw== X-Forwarded-Encrypted: i=1; AJvYcCVYX/nETrf8ggaA2KvJhc1vdMjh7R5pEMR0W76Hq+oYAyJQQpOAkX4B8ZsKrkl+vxiGEofCZg==@debbugs.gnu.org X-Gm-Message-State: AOJu0YyGP61mWxsxzwkELDv4NI/tQA+GeAMMTdXf+gIApRtmsG19Qk5n 2qgvNZq+VsSLeAGM73dfNaF66mTMEL0akxiuG52dBFVoZjpSg2iiQQGu X-Gm-Gg: ASbGncthHMr+m9AyckdtSPfc8bbi4CtQy3eiw/52nCT+RmLShkFmA+udGM/4py9F4OY 7h0EUOcO4xBdzN5t40PeZiF/spW9EP1NwW6ZRRnwyjA5XdBco7CZFWtfWMYzntZ+Or/2aqKTK1v tVCtQvv5Jv87wIYriypTRnWWNqIt/li+WaDSgkoZBrlF4BFPIF1BI/rPwixAejVbFnDySP8IUTU zT086nrJloRVjY696nTNBXc634UhIzzGhA8swHm919P2l4FITTZ4DKWG7zX7v0kfwmSuxpadqav gC0+0DjzLvMDCpBbg5eFBpmFNDQvntn27COZp4/rMvMjNRZkPsqOhKDHYQSWuVmCm/vj3/BpbRj YYON+pq/AvhpAiLm/2xI= X-Google-Smtp-Source: AGHT+IERelZb4Az9jRCm5mKao0wZkW17EmRl3zm3lSTqjH+mRXr2CkDvd5849Z7aFkmgXqMYU4J6sA== X-Received: by 2002:a17:902:f551:b0:23d:d290:705 with SMTP id d9443c01a7336-23e24974280mr46031155ad.3.1752678584646; Wed, 16 Jul 2025 08:09:44 -0700 (PDT) Received: from localhost ([49.204.114.245]) by smtp.gmail.com with UTF8SMTPSA id d9443c01a7336-23de435bbc1sm127407335ad.228.2025.07.16.08.09.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Jul 2025 08:09:44 -0700 (PDT) From: Visuwesh To: Eli Zaretskii Subject: Re: bug#79026: 30.1; TAB in Minibuffer when using a quail input-method should complete the longest common suffix of candidates In-Reply-To: <86cya1k1bg.fsf@gnu.org> References: <2eba7de6-0bf4-4c4f-abb3-f8b941e3bb8f@posteo.eu> <86cya1k1bg.fsf@gnu.org> Date: Wed, 16 Jul 2025 20:39:41 +0530 Message-ID: <87jz48matm.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 79026 Cc: Arash Esbati , Cass Alexandru , 79026@debbugs.gnu.org, Stefan Monnier X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) [=E0=AE=9A=E0=AF=86=E0=AE=B5=E0=AF=8D=E0=AE=B5=E0=AE=BE=E0=AE=AF=E0=AF=8D = =E0=AE=9C=E0=AF=82=E0=AE=B2=E0=AF=88 15, 2025] Eli Zaretskii wrote: > It doesn't look like quail-completion (which is the command bound to > TAB in that input method) is supposed to work as you expect. Instead, > it is a fancy visual feedback for typing long sequences, fancier than > what Emacs usually shows in the echo-area (which is just the list of > candidates for the next character). > > IOW, after pressing TAB, you are supposed to: > > . realize that there's just one candidate "\above" > . type its characters one by one, guided by the moving highlight in > the *Quail Completions* buffer as you go > > Stefan and Arash, am I right? Looking at quail-completion, it only seems to list the possible translations and their keys. There is quail-choose-completion but it seems to be broken (it inserts the same translation twice when trying it with tamil-phonetic), and does not work at all for TeX (maybe because of non-nil TRANSLATION-KEYS (why BTW?)). If it works, then you can click on the translation shown in *Quail Completions* to insert it. I gave a shot implementing a CAPF for Quail but it does not "recontinue" the translation process if one "rejects" the completion completely i.e., using C-g. To try it out, evaluate the following in emacs -Q (defun vz/quail--string (def key) "Return the translation of KEY as specified by DEF." (let ((translation (quail-get-translation (car def) key (length key))= )) (if (characterp translation) (string translation) ;; When there are multiple candidates, then a vector is ;; returned. (and (consp translation) (append (cdr translation) nil))))) (defun vz/quail--candidates (key &optional map candidates) "Return an alist of translations and corresponding keys leading from = KEY. The optional argument MAP is the `quail-map' for KEY, and CANDIDATES is an internal variable." (let* ((map (or map (quail-lookup-key key nil t))) (map (if (and (symbolp map) (functionp map)) (funcall map key (length key)) map))) ;; If car of MAP is non-nil, then KEY translates to car of MAP. (when (car map) (let ((translation (vz/quail--string map key))) (if (stringp translation) (push (cons translation key) candidates) (dolist (tr translation) (push (cons tr key) candidates))))) ;; If cdr of MAP is non-nil, then the translation continues on ;; forward. (when (cdr map) ;; See `quail-completion-1'. (dolist (rest (if (functionp (cdr map)) (funcall (cdr map)) (cdr map))) (setq candidates (append (vz/quail--candidates (concat key (string (car re= st))) (cdr rest)) candidates)))) candidates)) (defun vz/quail--capf () (let ((candidates (vz/quail--candidates quail-current-key))) ;; For `quail-overlay', see `quail-delete-region'. (when (and candidates (overlay-start quail-overlay))) (quail-delete-region) (list (overlay-start quail-overlay) (overlay-end quail-overlay) (completion-table-with-metadata candidates `((annotation-function . ,(lambda (string) (concat "\t=E2=86=90 " (cdr (assoc string candidates= ))))))) :exit-function (lambda (string status) (when (memq status '(finished sole)) ;; Setting to nil is required for sole candidate. (setq quail-current-str nil) (quail-terminate-translation)))))) (defun vz/quail-complete-at-point () (interactive) (let ((completion-at-point-functions (list #'vz/quail--capf))) (completion-at-point))) (with-temp-buffer ;; Load the TeX IM. (let (message-log-max) (activate-input-method "TeX")) (let ((quail-current-package (assoc "TeX" quail-package-alist))) (define-key (nth 5 quail-current-package) (kbd "TAB") #'vz/quail-complete-at-point))) (define-key quail-translation-keymap (kbd "TAB") #'vz/quail-complete-at= -point) and say C-u C-\ TeX RET to activate the TeX IM. Then say \al TAB which should pop up the *Completions* buffer from which you can select the desired translation. For reasons I have not explored, M- and M- does not work and kills the completion.=20=20 From debbugs-submit-bounces@debbugs.gnu.org Thu Jul 17 01:35:46 2025 Received: (at 79026) by debbugs.gnu.org; 17 Jul 2025 05:35:46 +0000 Received: from localhost ([127.0.0.1]:52438 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ucHHW-0007wQ-2o for submit@debbugs.gnu.org; Thu, 17 Jul 2025 01:35:46 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:39372) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1ucHHT-0007vt-AV for 79026@debbugs.gnu.org; Thu, 17 Jul 2025 01:35:44 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ucHHN-000124-Cc; Thu, 17 Jul 2025 01:35:37 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=6IQsUwRnAjV/+LtnTPC+r6z4VCxrzt1joiqByFZKKjU=; b=Csq6OGv291iDryou2If6 J8xf7Jcim6xgZpUM9ziy2thLdEuepAKvumfhCxmDxe1x6KI00l+1dRiJP2FstlrFDwjidCpa94ZCq UOwwKQmtxcmZydN1Ou+sfTcF5LzK5004RW9FihhlOiEktRvZBctQBuQCi/mt3RpXmJstCoFqW/USI 1wz1sEezCKkD/juQu8Xgh1O0yprXZOSkDgS6OC1ArATHqn3XCSfWI+3fplF/ZWauubbSulLHv/HWt 4A/r7RoixETVNzJHQbYS9zeovFqbJSD+sBcCedFbsY5ebc+6BGLSrxWryTjkklZKm8Kpu5hFXaXJ2 oIT7wD+B26eSAw==; Date: Thu, 17 Jul 2025 08:35:33 +0300 Message-Id: <861pqfidlm.fsf@gnu.org> From: Eli Zaretskii To: Visuwesh In-Reply-To: <87jz48matm.fsf@gmail.com> (message from Visuwesh on Wed, 16 Jul 2025 20:39:41 +0530) Subject: Re: bug#79026: 30.1; TAB in Minibuffer when using a quail input-method should complete the longest common suffix of candidates References: <2eba7de6-0bf4-4c4f-abb3-f8b941e3bb8f@posteo.eu> <86cya1k1bg.fsf@gnu.org> <87jz48matm.fsf@gmail.com> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 79026 Cc: arash@gnu.org, g.cassian.alexandru@posteo.eu, 79026@debbugs.gnu.org, monnier@iro.umontreal.ca X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Visuwesh > Cc: Cass Alexandru , Stefan Monnier > , Arash Esbati , > 79026@debbugs.gnu.org > Date: Wed, 16 Jul 2025 20:39:41 +0530 > > [செவ்வாய் ஜூலை 15, 2025] Eli Zaretskii wrote: > > > It doesn't look like quail-completion (which is the command bound to > > TAB in that input method) is supposed to work as you expect. Instead, > > it is a fancy visual feedback for typing long sequences, fancier than > > what Emacs usually shows in the echo-area (which is just the list of > > candidates for the next character). > > > > IOW, after pressing TAB, you are supposed to: > > > > . realize that there's just one candidate "\above" > > . type its characters one by one, guided by the moving highlight in > > the *Quail Completions* buffer as you go > > > > Stefan and Arash, am I right? > > Looking at quail-completion, it only seems to list the possible > translations and their keys. There is quail-choose-completion but it > seems to be broken (it inserts the same translation twice when trying it > with tamil-phonetic), and does not work at all for TeX (maybe because of > non-nil TRANSLATION-KEYS (why BTW?)). TRANSLATION-KEYS non-nil is what makes TAB invoke quail-completion in the first place, right? > If it works, then you can click on the translation shown in *Quail > Completions* to insert it. I think part of the request here is to make it work. But there's also another part: if there's only one completion, TAB should complete it and exit the Quail loop. IOW, the request here is to make quail-completion work as minibuffer completion works elsewhere. If you can come up with a patch to do that (probably optionally, given how quail-completion's original behavior was very different), that'd be appreciated. From debbugs-submit-bounces@debbugs.gnu.org Thu Jul 17 03:47:07 2025 Received: (at 79026) by debbugs.gnu.org; 17 Jul 2025 07:47:07 +0000 Received: from localhost ([127.0.0.1]:52811 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ucJKd-0001iw-1N for submit@debbugs.gnu.org; Thu, 17 Jul 2025 03:47:07 -0400 Received: from mail-pf1-x441.google.com ([2607:f8b0:4864:20::441]:52543) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1ucJKa-0001iM-Ms for 79026@debbugs.gnu.org; Thu, 17 Jul 2025 03:47:05 -0400 Received: by mail-pf1-x441.google.com with SMTP id d2e1a72fcca58-74b54cead6cso493892b3a.1 for <79026@debbugs.gnu.org>; Thu, 17 Jul 2025 00:47:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1752738418; x=1753343218; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=V6u+14pQ4ft4ci0Kn8MjkhGbrWT/u/60OqnDuOLDx6A=; b=DbXBp9L7qGPDuMRXHk0u8+fI52hCPQsFBk3+9uz/dB9CYZN/Guyl8vwdWCSI+r8HB2 +aUIl+LxhYMP9sXlMgWzZNoUT6p3mbBuFqAQchH51Hx0ZUbaMId+tRRGSaVVRS6vKoX8 L5zFpoZkp8s+IwtcNU+JoFKZCnWFumdhNu2ggnW+3R8ZOxMjBj1gGLAgZOSsVC+KEZXZ UD/PSspJFHFHb+nRots+c4UrdcT0Ib0vOJnOyVEwQ9XqqPkZ4I6Zm5x+7FeNsciUGQZM p5OWT0sVujKHNI64BrCOemgvp1o8Jo0j6BCOALIcye1mPE5YVrw0fFj0jcQ/hzH+rJzd 01NA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752738418; x=1753343218; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=V6u+14pQ4ft4ci0Kn8MjkhGbrWT/u/60OqnDuOLDx6A=; b=AvqnI8HMmnC4tv6bj9ia16B136NBAemvigZDvW6qQ3NTnscQLa8RODgsWxEX/7miGy c8MwScfKkjLYzIpZh/DFH2YLt7k78+3X/YQTIEgTb9HDTKRsZF4dRmOvXCs0jm4joKwj 9SIDac8B5Qr5MuVgICUfCJeZDVByS0xihsE0aGuUIdhWa6a5Mtoe/ORVLn1ySeWiktaP L9KVkOtJqw7FnbFWy08ozcerxgmMiS5vb/aAtoIL0JqyYZWgqsNcfgvoXdV5rnIYzZ+V harMb9AIVpufVwqUk/zD0udorbxoqWeWC8oQZlpGWSyKNFAKwTa+HIrajgpw+dZzj84m /XvQ== X-Forwarded-Encrypted: i=1; AJvYcCWDHx75NxV+lXGv6wbUhh7z1LIPAkYnjPlb/m01QvtUJXUhFt+4FWPgkYlvScHeN+4w/cWR7g==@debbugs.gnu.org X-Gm-Message-State: AOJu0YxEcnlayqIv4gU/HQUEG4KvJpIBxVXWDbOy5oRx8j5Z7CvizU/7 RNr4zkijJVEdbjBdKsT6a2SXoPQSSMSMtigmaOjGiCepFS8LT/7M6XgP X-Gm-Gg: ASbGncvo2nikSOJcsdtEV5YYObzv3Quym/+jhTI+kdgjXfNjJ3hDZmxxrJn9rUXkYHT 1FlmbYzIdawdRvW3B5oDue+svZXCIlAzd+EPO0+IsipdP11gaBXP5Dmly3esYl84uFdBAv5j/GC m5KnZg3Z2BMRPOKcJzu2l5IeWS+n9OS7mp4tPiC6+tz1lJaoBImAXW9fNEO5kvz5m6y/1WNFaax m20+rb5mu0W/JCNxCbJv6f65Eao2JEP7R6CnK8XlTxryZ9txyp8KkvUsKUDoeSsoTGeGUwQHDeT QmsLhJXwLZvqhiKGGdLfYnkmsv8C+wI3Yg4OH9Kvkj87wT58M3/Zspcl2mLU7f/qvHI+XR9cxGn FnlRJkRwj6o6npbqjXg== X-Google-Smtp-Source: AGHT+IGe5D3zwt7ywDOyR9GLeoYKCcZYCYjg1Vc2q7ZMwG/M2gcBn1hkq9NVTCMV5S8hqPlXuT6JTQ== X-Received: by 2002:a05:6a20:2588:b0:21e:eb3a:dc04 with SMTP id adf61e73a8af0-23810666f23mr9360073637.3.1752738418339; Thu, 17 Jul 2025 00:46:58 -0700 (PDT) Received: from localhost ([49.204.114.23]) by smtp.gmail.com with UTF8SMTPSA id d2e1a72fcca58-74eb9f22c01sm16058672b3a.101.2025.07.17.00.46.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 17 Jul 2025 00:46:57 -0700 (PDT) From: Visuwesh To: Eli Zaretskii Subject: Re: bug#79026: 30.1; TAB in Minibuffer when using a quail input-method should complete the longest common suffix of candidates In-Reply-To: <861pqfidlm.fsf@gnu.org> References: <2eba7de6-0bf4-4c4f-abb3-f8b941e3bb8f@posteo.eu> <86cya1k1bg.fsf@gnu.org> <87jz48matm.fsf@gmail.com> <861pqfidlm.fsf@gnu.org> Date: Thu, 17 Jul 2025 13:16:54 +0530 Message-ID: <87frevmf81.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 79026 Cc: arash@gnu.org, 79026@debbugs.gnu.org, g.cassian.alexandru@posteo.eu, monnier@iro.umontreal.ca X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) [=E0=AE=B5=E0=AE=BF=E0=AE=AF=E0=AE=BE=E0=AE=B4=E0=AE=A9=E0=AF=8D =E0=AE=9C= =E0=AF=82=E0=AE=B2=E0=AF=88 17, 2025] Eli Zaretskii wrote: >> Looking at quail-completion, it only seems to list the possible >> translations and their keys. There is quail-choose-completion but it >> seems to be broken (it inserts the same translation twice when trying it >> with tamil-phonetic), and does not work at all for TeX (maybe because of >> non-nil TRANSLATION-KEYS (why BTW?)). > > TRANSLATION-KEYS non-nil is what makes TAB invoke quail-completion in > the first place, right? You're right. I didn't notice that the TeX IM had SIMPLE non-nil. >> If it works, then you can click on the translation shown in *Quail >> Completions* to insert it. > > I think part of the request here is to make it work. But there's also > another part: if there's only one completion, TAB should complete it > and exit the Quail loop. I think the problem here is that mouse-2 is not bound to quail-mouse-choose-completion in the translation keymap of TeX IM. This, of course, does not rule out the other bug I talked about. > IOW, the request here is to make quail-completion work as minibuffer > completion works elsewhere. If you can come up with a patch to do > that (probably optionally, given how quail-completion's original > behavior was very different), that'd be appreciated. If there is only one translation for the current key, it should just insert it? I.e., typing TAB after \alph should insert =CE=B1. If there is more than one, it should complete to the longest possible common key i.e., typing TAB after \app should complete to \approx and the Quail loop would be active. Another TAB from here on would pop up the *Quail Completions* buffer? Did I get it right? I wonder if we can reuse the completion facility for this. From debbugs-submit-bounces@debbugs.gnu.org Thu Jul 17 04:01:23 2025 Received: (at 79026) by debbugs.gnu.org; 17 Jul 2025 08:01:23 +0000 Received: from localhost ([127.0.0.1]:52831 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ucJYQ-0002WU-Sw for submit@debbugs.gnu.org; Thu, 17 Jul 2025 04:01:23 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:54232) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1ucJYN-0002WA-DS for 79026@debbugs.gnu.org; Thu, 17 Jul 2025 04:01:20 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ucJYH-00066v-NS; Thu, 17 Jul 2025 04:01:13 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=bAXELJO83wvSA9qSmZb9XIlpL9ApqGq7svnQ5L3R2vU=; b=r+WxL4gzv3JBqZ/g3tin Js1tum88tCB8ChDOdwxsNnOKxB7fKnTKRly8UkewaGamWmF+9V4zCvRu4Pt5613LW8LvbAVdJ0XyZ NH9Y/uEZwkcXh2iRWFIonkWPDywTy0ED8NdUTWMhdpSF95hO0wLJ1Aths+gJ3/HaNn+pXlv0i7G+s ApCSMaoUA41e0ZIKEBlazrV6+lVGR6/XJgi1UpVopvaHNSvW+O9R6rwZ+dLtVoRAsk0YSN+nxd18I dByw9976YJLumeP7LgcNq6Ru+MG1F8/9wxmdDZipswRW1V7UhQfVTtJ275M17YiRkJtRDw2o6txoC T+TCFEESa3sIXg==; Date: Thu, 17 Jul 2025 11:00:59 +0300 Message-Id: <86o6tjgsas.fsf@gnu.org> From: Eli Zaretskii To: Visuwesh In-Reply-To: <87frevmf81.fsf@gmail.com> (message from Visuwesh on Thu, 17 Jul 2025 13:16:54 +0530) Subject: Re: bug#79026: 30.1; TAB in Minibuffer when using a quail input-method should complete the longest common suffix of candidates References: <2eba7de6-0bf4-4c4f-abb3-f8b941e3bb8f@posteo.eu> <86cya1k1bg.fsf@gnu.org> <87jz48matm.fsf@gmail.com> <861pqfidlm.fsf@gnu.org> <87frevmf81.fsf@gmail.com> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 79026 Cc: arash@gnu.org, 79026@debbugs.gnu.org, g.cassian.alexandru@posteo.eu, monnier@iro.umontreal.ca X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Visuwesh > Cc: arash@gnu.org, g.cassian.alexandru@posteo.eu, 79026@debbugs.gnu.org, > monnier@iro.umontreal.ca > Date: Thu, 17 Jul 2025 13:16:54 +0530 > > [வியாழன் ஜூலை 17, 2025] Eli Zaretskii wrote: > > > IOW, the request here is to make quail-completion work as minibuffer > > completion works elsewhere. If you can come up with a patch to do > > that (probably optionally, given how quail-completion's original > > behavior was very different), that'd be appreciated. > > If there is only one translation for the current key, it should just > insert it? I.e., typing TAB after \alph should insert α. > > If there is more than one, it should complete to the longest possible > common key i.e., typing TAB after \app should complete to \approx and > the Quail loop would be active. Another TAB from here on would pop up > the *Quail Completions* buffer? Yes, I think so. > Did I get it right? I wonder if we can reuse the completion facility > for this. That's the question, yes. From debbugs-submit-bounces@debbugs.gnu.org Thu Jul 17 08:59:51 2025 Received: (at 79026) by debbugs.gnu.org; 17 Jul 2025 12:59:52 +0000 Received: from localhost ([127.0.0.1]:53500 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ucODG-0004WA-Iv for submit@debbugs.gnu.org; Thu, 17 Jul 2025 08:59:51 -0400 Received: from mail-pl1-x644.google.com ([2607:f8b0:4864:20::644]:42017) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1ucODA-0004Vm-Cy for 79026@debbugs.gnu.org; Thu, 17 Jul 2025 08:59:46 -0400 Received: by mail-pl1-x644.google.com with SMTP id d9443c01a7336-236192f8770so6903165ad.0 for <79026@debbugs.gnu.org>; Thu, 17 Jul 2025 05:59:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1752757178; x=1753361978; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=HbSL+vAH5XuOlHB3HBPLI34AWh6hY5sIS8SEC5IIq4M=; b=QKdxsL+AJNnUGkvYbfJBxgwlP4r7swNNkYJeoWSZ67EVGOJIgCY/pFnXFKqjLJf8WU qnjv/0atYtxCkPNC/krhOxurnaZfIpr/vVe+Mht5jXxSext9UMj3a5Yl111BNJMHWK99 IizZr7g3iCSF91/U6z2XLmy12+iIoQFmKw+i0CbGPUcc+BTpbHrFxe4jQYK0eVIV+HTR gTPuPcOpzZVzcM6y+koOCNriaOCWBH162J124M/nB2b6t6dM73nObbDAOaRZPqdcjdi/ XKB4CuPUIm2WoAh7CMcFCrGoxValdd2iDfpw0bXaZevbfq9f4uiBkPYDYKFsboisRXNq WcjQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752757178; x=1753361978; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=HbSL+vAH5XuOlHB3HBPLI34AWh6hY5sIS8SEC5IIq4M=; b=q0SBvkPfjUwhxHeASoNUErIWNkKdwMI2Wn1HADlT/e1qDaIaUJtOgrO3CZQMtzaIzG d12Clbvx6cvvZGS5/VXJYFOvo5UxY+nkMPZCV20+2zyjHMRu8A26tuEX3a/591jFpMLb Sba5Lw621mnoVDr/K3uF1tBIS5v8LIh7Lns1GCQFOncD4CLc+Jyf2tm0Mhe0VUDvdiDW DelV9PAC6GKRNm+rN/bVN2QZ1KD6VoteIVELd47Q7wRGXz+baNI4vrlW63O0YLs3U0eX ovixYX5fwfzdVtiyPNfBvLz6hHxN2ONeEcDviPCsKlG5lMdPBr0PCi5Vy+6N/v7h92UH /25A== X-Forwarded-Encrypted: i=1; AJvYcCWq64dh/5DWCwp8mmFAsYLsPg3lLEY3z0RHaSd/evmO7ud7L6CLdtCukZL6v4OVxBXxyoBI0w==@debbugs.gnu.org X-Gm-Message-State: AOJu0YwMLvtkvegazMpbTiY+tneW9EyjK2xF+c7oC+5ah1bTO5fTTC6v qECGQ5aDpjaTdH5HRwfHzw1vzRSFjrky0Ap9oVMuJW4Ohhv/Q/Iem/77 X-Gm-Gg: ASbGncuIsxNs4mLHXSx9RGU4CTJ5AUyPZoCzsX9pLlc55oow0ZHnsFRgxrRz/qAYb2Z rXyCNE6k5KIamMT+YBrl2OZAUAl6X32sgeEngBCTk9bQ/xMDXXOuL20f7+Ogt07kdXxv9KsZltr g5Q2ZY0Aq+dtKo+Z478008f5WnolPXXvJLfnlxJ1Ypa9OhFol+qoVlaA2/baFLtP+dZKoBvNkIB PKKPPI3KA0Yh9nOXH+sYnlxBfMPMFOsC5HgDXZgT1XbKLC/gVuFMp2Dr3e1xEGMRA9SPobq4Wpr Epo2k+KfIV57tXsTSO42MkFJAgbllROB2WqpJdMwOiomDxVgTxbcvMwyL4s/Bf5+pB7+pTJI+5j BpbaY5nCHi9KZcvuigg== X-Google-Smtp-Source: AGHT+IEeGrLqNvQaHfrxUHrrrxsZ4PJ+PAmk5AkTn4trT7DP9jRAiY79CS9hjoCRWzjx8sQy2qivSA== X-Received: by 2002:a17:903:1786:b0:235:eca0:12e8 with SMTP id d9443c01a7336-23e2f6a4ed1mr41723505ad.4.1752757177721; Thu, 17 Jul 2025 05:59:37 -0700 (PDT) Received: from localhost ([49.204.114.23]) by smtp.gmail.com with UTF8SMTPSA id d9443c01a7336-23de4323f0asm146909225ad.115.2025.07.17.05.59.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 17 Jul 2025 05:59:37 -0700 (PDT) From: Visuwesh To: Eli Zaretskii Subject: Re: bug#79026: 30.1; TAB in Minibuffer when using a quail input-method should complete the longest common suffix of candidates In-Reply-To: <86o6tjgsas.fsf@gnu.org> References: <2eba7de6-0bf4-4c4f-abb3-f8b941e3bb8f@posteo.eu> <86cya1k1bg.fsf@gnu.org> <87jz48matm.fsf@gmail.com> <861pqfidlm.fsf@gnu.org> <87frevmf81.fsf@gmail.com> <86o6tjgsas.fsf@gnu.org> Date: Thu, 17 Jul 2025 18:29:33 +0530 Message-ID: <8734avm0qy.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 79026 Cc: arash@gnu.org, 79026@debbugs.gnu.org, g.cassian.alexandru@posteo.eu, monnier@iro.umontreal.ca X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) [=E0=AE=B5=E0=AE=BF=E0=AE=AF=E0=AE=BE=E0=AE=B4=E0=AE=A9=E0=AF=8D =E0=AE=9C= =E0=AF=82=E0=AE=B2=E0=AF=88 17, 2025] Eli Zaretskii wrote: >> From: Visuwesh >> Cc: arash@gnu.org, g.cassian.alexandru@posteo.eu, 79026@debbugs.gnu.or= g, >> monnier@iro.umontreal.ca >> Date: Thu, 17 Jul 2025 13:16:54 +0530 >>=20 >> [=E0=AE=B5=E0=AE=BF=E0=AE=AF=E0=AE=BE=E0=AE=B4=E0=AE=A9=E0=AF=8D =E0=AE= =9C=E0=AF=82=E0=AE=B2=E0=AF=88 17, 2025] Eli Zaretskii wrote: >>=20 >> > IOW, the request here is to make quail-completion work as minibuffer >> > completion works elsewhere. If you can come up with a patch to do >> > that (probably optionally, given how quail-completion's original >> > behavior was very different), that'd be appreciated. >>=20 >> If there is only one translation for the current key, it should just >> insert it? I.e., typing TAB after \alph should insert =CE=B1. >>=20 >> If there is more than one, it should complete to the longest possible >> common key i.e., typing TAB after \app should complete to \approx and >> the Quail loop would be active. Another TAB from here on would pop up >> the *Quail Completions* buffer? > > Yes, I think so. > >> Did I get it right? I wonder if we can reuse the completion facility >> for this. > > That's the question, yes. OK, I will see if I can achieve the desired behaviour. For now, can someone confirm if the double-insertion bug in quail-mouse-choose-completion is fixed with the patch at the end? It seems that setting _both_ quail-current-str and choose-completion leads to the double insertion. The code was last changed in commit 35fffde1df8d896c964b6d3b42fff70f4dd1c49b Author: Dave Love Date: Sat Dec 15 16:40:33 2001 +0000 (quail-keyboard-layout-alist): Add pc105-uk. (quail-keyboard-layout-type): Fix :type. (quail-choose-completion-string): Simplify. (quail-update-leim-list-file): Don't get fooled by commented-out code. (quail-input-string-to-events): Run events through translation-table-for-input. where the extra choose-completion-string seems to have added. Before, the comment in quail-choose-completion-string said: ;; Store the completion in `quail-current-str', which will later ;; be converted to a character event list, then inserted into ;; the buffer where completion was requested. and only quail-current-str was set, so I wonder if the call to choose-completion-string is necessary. Here's the promised patch: diff --git a/lisp/international/quail.el b/lisp/international/quail.el index 2b66a0bc0f7..e6fcc2b0cb8 100644 --- a/lisp/international/quail.el +++ b/lisp/international/quail.el @@ -2316,10 +2316,6 @@ quail-mouse-choose-completion ;; (select-window owindow)) (quail-delete-region) (setq quail-current-str choice) - ;; FIXME: We need to pass `base-position' here. - ;; FIXME: why do we need choose-completion-string with all its - ;; completion-specific logic? - (choose-completion-string choice buffer) (quail-terminate-translation))) =20 (defun quail-build-decode-map (map-list key decode-map num