emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/mct 295bac0 28/70: Generate mct.info and mct.texi using


From: ELPA Syncer
Subject: [elpa] externals/mct 295bac0 28/70: Generate mct.info and mct.texi using a Makefile
Date: Thu, 11 Nov 2021 03:57:45 -0500 (EST)

branch: externals/mct
commit 295bac0bac666375d0aca8cf3a473675e6d10b2f
Author: Philip Kaludercic <philipk@posteo.net>
Commit: Protesilaos Stavrou <info@protesilaos.com>

    Generate mct.info and mct.texi using a Makefile
---
 .gitignore |    2 +
 Makefile   |   24 ++
 mct.info   | 1008 ------------------------------------------------------------
 mct.texi   |  525 -------------------------------
 4 files changed, 26 insertions(+), 1533 deletions(-)

diff --git a/.gitignore b/.gitignore
index cb62d01..bfd141a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,5 @@
 *.elc
 *-autoloads.el
 *-pkg.el
+mct.info
+mct.texi
\ No newline at end of file
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..b8e8cd1
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,24 @@
+.POSIX:
+.SUFFIXES: .el .elc
+
+EMACS    = emacs
+MAKEINFO = makeinfo
+COMPILE  = mct.elc
+
+all: compile mct.info
+
+.PHONY: compile
+compile: $(COMPILE)
+
+.PHONY: clean
+clean:
+       rm -f $(COMPILE) mct.texi mct.info
+
+mct.texi: README.org
+       $(EMACS) -Q --batch $< -f org-texinfo-export-to-texinfo --kill
+
+mct.info: mct.texi
+       $(MAKEINFO) $<
+
+.el.elc:
+       $(EMACS) -Q --batch -L . -f batch-byte-compile $^
diff --git a/mct.info b/mct.info
deleted file mode 100644
index 53028c0..0000000
--- a/mct.info
+++ /dev/null
@@ -1,1008 +0,0 @@
-This is mct.info, produced by makeinfo version 6.8 from mct.texi.
-
-Copyright (C) 2021 Free Software Foundation, Inc.
-
-     Permission is granted to copy, distribute and/or modify this
-     document under the terms of the GNU Free Documentation License,
-     Version 1.3 or any later version published by the Free Software
-     Foundation; with no Invariant Sections, with the Front-Cover Texts
-     being “A GNU Manual,” and with the Back-Cover Texts as in (a)
-     below.  A copy of the license is included in the section entitled
-     “GNU Free Documentation License.”
-
-     (a) The FSF’s Back-Cover Text is: “You have the freedom to copy and
-     modify this GNU manual.”
-
-INFO-DIR-SECTION Emacs misc features
-START-INFO-DIR-ENTRY
-* Minibuffer and Completions in Tandem: (mct). Enhancement of the default 
minibuffer completion.
-END-INFO-DIR-ENTRY
-
-
-File: mct.info,  Node: Top,  Next: Overview of mctel,  Up: (dir)
-
-Minibuffer and Completions in Tandem (mct.el)
-*********************************************
-
-Copyright (C) 2021 Free Software Foundation, Inc.
-
-     Permission is granted to copy, distribute and/or modify this
-     document under the terms of the GNU Free Documentation License,
-     Version 1.3 or any later version published by the Free Software
-     Foundation; with no Invariant Sections, with the Front-Cover Texts
-     being “A GNU Manual,” and with the Back-Cover Texts as in (a)
-     below.  A copy of the license is included in the section entitled
-     “GNU Free Documentation License.”
-
-     (a) The FSF’s Back-Cover Text is: “You have the freedom to copy and
-     modify this GNU manual.”
-
-   This manual, written by Protesilaos Stavrou, describes the
-customization options for ‘mct.el’, and provides every other piece of
-information pertinent to it.
-
-   The documentation furnished herein corresponds to stable version
-0.1.0, released on 2021-10-22.  Any reference to a newer feature which
-does not yet form part of the latest tagged commit, is explicitly marked
-as such.
-
-   Current development target is 0.2.0-dev.
-
-* Menu:
-
-* Overview of mct.el: Overview of mctel.
-* Basic usage::
-* Installation::
-* Sample setup::
-* Keymaps::
-* Extensions::
-* Alternatives::
-* Acknowledgements::
-* GNU Free Documentation License::
-* Indices::
-
-— The Detailed Node Listing —
-
-Basic usage
-
-* Cyclic behaviour::
-* Selecting candidates::
-
-Indices
-
-* Function index::
-* Variable index::
-* Concept index::
-
-
-
-File: mct.info,  Node: Overview of mctel,  Next: Basic usage,  Prev: Top,  Up: 
Top
-
-1 Overview of mct.el
-********************
-
-Minibuffer and Completions in Tandem, also known as “MCT”, “Mct”, ‘mct’,
-or ‘mct.el’, is a package that enhances the default minibuffer and
-‘*Completions*’ buffer of Emacs 28 (or higher) so that they work
-together as part of a unified framework.  The idea is to make the
-presentation and overall functionality be consistent with other popular,
-vertically aligned completion UIs while leveraging built-in
-functionality.
-
-   The main feature set that unifies the minibuffer and the
-‘*Completions*’ buffer consists of commands that cycle between the two,
-making it seem like they are part of a contiguous space (*note Basic
-usage::).
-
-   MCT tries to find a middle ground between the frugal defaults and the
-more opinionated completion UIs.  This is most evident in its approach
-on how to present completion candidates.  Instead of showing them
-outright or only displaying them on demand, MCT implements a minimum
-input threshold as well as a slight delay before it pops up the
-‘*Completions*’ buffer and starts updating it to respond to user input.
-
-   Customisation options control the input threshold
-(‘mct-minimum-input’) and the delay between live updates
-(‘mct-live-update-delay’).  Similarly, a blocklist and a passlist for
-commands are on offer:
-
-   • The blocklist (‘mct-completion-blocklist’) disables the
-     live-updating functionality for the commands specified therein.
-
-   • The passlist (‘mct-completion-passlist’) always shows the
-     Completions’ buffer for the designated command without accounting
-     for the minimum input threshold.
-
-   To inhibit live completion in the first place, ‘mct-live-completion’
-can be set to nil.  Given this customization, the Completions’ buffern
-is only displayed when requested manually.  ‘mct-completion-passlist’
-takes precedence over this option.
-
-   Other customisations:
-
-   • ‘mct-hide-completion-mode-line’ to hide the mode line of the
-     ‘*Completions*’ buffer.  This removes the separation between it and
-     the minibuffer, further contributing to the idea of a unified space
-     between the two.
-
-   • ‘mct-remove-shadowed-file-name’ to clear shadowed file names when
-     ‘file-name-shadow-mode’ is enabled.  This means that in prompts
-     that use file paths (such as ‘find-file’) when you start in, say,
-     ‘~/Git/mct.el’ and type ‘~/’ the previous file path is removed and
-     only the new one is inserted.  Whereas the default is to keep the
-     original file name visible yet “shadowed” by a different colour.
-
-   • ‘mct-show-completion-line-numbers’ to always display line numbers
-     in the Completions’ buffer.  This can be helpful to get a sense of
-     the length of the completion candidates’ list.  Though note that
-     line numbers are displayed ephemerally while using the
-     ‘mct-choose-completion-number’ command, which is bound to ‘M-g M-g’
-     in either the minibuffer or the ‘*Completions*’ buffer.
-
-   • ‘mct-apply-completion-stripes’ applies alternative background
-     colours in the Completions’ buffer.  This is only tested with the
-     ‘modus-themes’ and will only work nicely if the main background is
-     pure black or white—other themes would need to add support for the
-     faces we define or, at least, users must modify the ‘mct-stripe’
-     face.
-
-
-File: mct.info,  Node: Basic usage,  Next: Installation,  Prev: Overview of 
mctel,  Up: Top
-
-2 Basic usage
-*************
-
-* Menu:
-
-* Cyclic behaviour::
-* Selecting candidates::
-
-
-File: mct.info,  Node: Cyclic behaviour,  Next: Selecting candidates,  Up: 
Basic usage
-
-2.1 Cyclic behaviour
-====================
-
-When ‘mct-mode’ is enabled, some new keymaps are activated which add
-commands for cycling between the minibuffer and the completions.
-Suppose the following standard layout:
-
-     -----------------
-     |               |
-     |               |
-     |               |
-     |  Buffer       |
-     |               |
-     |               |
-     |               |
-     -----------------
-     -----------------
-     |               |
-     |  Completions  |
-     |               |
-     -----------------
-     -----------------
-     |  Minibuffer   |
-     -----------------
-
-   When inside the minibuffer, pressing ‘C-n’ (or down arrow) takes you
-to the top of the completions, while ‘C-p’ (or up arrow) moves to the
-bottom.  The commands are ‘mct-switch-to-completions-top’ for the former
-and ‘mct-switch-to-completions-bottom’ for the latter.  If the
-‘*Completions*’ are not shown, then the buffer pops up automatically and
-point moves to the given position.
-
-   Similarly, while inside the ‘*Completions*’ buffer, ‘C-p’ (or up
-arrow) at the top of the buffer switches to the minibuffer, while ‘C-n’
-(or down arrow) at the bottom of the buffer also goes to the minibuffer.
-If point is anywhere else inside the buffer, those key bindings perform
-a regular line motion.  The commands are
-‘mct-previous-completion-or-mini’ and ‘mct-next-completion-or-mini’.
-
-   The display of the ‘*Completions*’ can be toggled at any time from
-inside the minibuffer with ‘C-l’ (mnemonic is “[l]ist completions” and
-the command is ‘mct-list-completions-toggle’).
-
-
-File: mct.info,  Node: Selecting candidates,  Prev: Cyclic behaviour,  Up: 
Basic usage
-
-2.2 Selecting candidates
-========================
-
-There are several ways to select a completion candidate.
-
-  1. Suppose that you are typing ‘mod’ with the intent to select the
-     ‘modus-themes.el’ buffer.  To complete the first candidate follow
-     up ‘mod’ with the ‘TAB’ key.  This is how you would do it with the
-     default minibuffer.  If done fast enough, no completions will be
-     shown (depending on your minimum input threshold and the
-     live-update delay).
-
-  2. Upon cycling through the completions, type ‘RET’ to select the
-     candidate at point and exit the minibuffer.  This works for all
-     types of completion prompts.
-
-  3. For certain contexts where selecting a candidate does not
-     necessarily mean that the process has to be finalised (e.g.  when
-     using ‘find-file’) selection in the ‘*Completions*’ buffer can be
-     done with ‘TAB’ which completes the item at point but does not exit
-     the minibuffer.  The command is instead renewed to update the list
-     of completions with the new candidates.
-
-  4. Select a candidate by its line number by typing ‘M-g M-g’ in either
-     the minibuffer or the ‘*Completions*’ buffer.  This calls the
-     command ‘mct-choose-completion-number’ which internally enables
-     line numbers and always makes the completions’ buffer visible.
-
-  5. In prompts that allow the selection of multiple candidates
-     (internally via the ‘completing-read-multiple’ function) a ‘[CRM]’
-     label is added to the text of the prompt.  The user thus knows that
-     pressing ‘M-RET’ in the ‘*Completions*’ will append the candidate
-     at point to the list of selections and keep the completions
-     available so that another item may be selected.  Any of the
-     aforementioned applicable methods can confirm the final selection.
-     If, say, you want to pick a total of three candidates, do ‘M-RET’
-     for the first two and ‘RET’ for the last one.  In contexts that are
-     not CRM-powered, the ‘M-RET’ has the same effect as ‘RET’.
-
-     NOTE 2021-10-22: this assumes the ‘crm-separator’ to be constant
-     (the comma ‘,’ character) but some commands ‘let’ bind it to
-     something else, so the behaviour does not work as expected.  One
-     such case is ‘org-set-tags-command’ which uses ‘:’ as a separator.
-
-  1. Type ‘M-e’ (‘mct-edit-completion’) in the completions’ buffer to
-     place the current candidate in the minibuffer, without exiting the
-     session.  This allows you to edit the text before confirming it.
-
-
-File: mct.info,  Node: Installation,  Next: Sample setup,  Prev: Basic usage,  
Up: Top
-
-3 Installation
-**************
-
-MCT is not in any package archive for the time being, though I plan to
-submit it to GNU ELPA (as such, any non-trivial patches require
-copyright assignment to the Free Software Foundation).  Users can rely
-on ‘straight.el’, ‘quelpa’, or equivalent to fetch the source.  Below
-are the essentials for those who prefer the manual method.
-
-   Assuming your Emacs files are found in ‘~/.emacs.d/’, execute the
-following commands in a shell prompt:
-
-     cd ~/.emacs.d
-
-     # Create a directory for manually-installed packages
-     mkdir manual-packages
-
-     # Go to the new directory
-     cd manual-packages
-
-     # Clone this repo and name it "mct"
-     git clone https://gitlab.com/protesilaos/mct.el.git mct
-
-   Finally, in your ‘init.el’ (or equivalent) evaluate this:
-
-     ;; Make Elisp files in that directory available to the user.
-     (add-to-list 'load-path "~/.emacs.d/manual-packages/mct")
-
-   Everything is in place to set up the package.
-
-
-File: mct.info,  Node: Sample setup,  Next: Keymaps,  Prev: Installation,  Up: 
Top
-
-4 Sample setup
-**************
-
-Minimal setup:
-
-     (require 'mct)
-     (mct-mode 1)
-
-   And with more options:
-
-     (require 'mct)
-
-     (setq mct-remove-shadowed-file-names t) ; works when 
`file-name-shadow-mode' is enabled
-     (setq mct-hide-completion-mode-line t)
-     (setq mct-show-completion-line-numbers nil)
-     (setq mct-apply-completion-stripes t)
-     (setq mct-minimum-input 3)
-     (setq mct-live-update-delay 0.6)
-
-     ;; NOTE: `mct-completion-blocklist' can be used for commands with lots
-     ;; of candidates, depending also on how low `mct-minimum-input' is.
-     ;; With the settings shown here this is not required, otherwise I would
-     ;; use something like this:
-     ;;
-     ;; (setq mct-completion-blocklist
-     ;;       '( describe-symbol describe-function describe-variable
-     ;;          execute-extended-command insert-char))
-     (setq mct-completion-blocklist nil)
-
-     ;; This is for commands that should always pop up the completions'
-     ;; buffer.  It circumvents the default method of waiting for some user
-     ;; input (see `mct-minimum-input') before displaying and updating the
-     ;; completions' buffer.
-     (setq mct-completion-passlist
-           '(imenu
-             Info-goto-node
-             Info-index
-             Info-menu
-             vc-retrieve-tag))
-
-     (mct-mode 1)
-
-   Other useful extras from the Emacs source code (read their doc
-strings):
-
-     (setq enable-recursive-minibuffers t)
-     (setq minibuffer-eldef-shorten-default t)
-
-     (file-name-shadow-mode 1)
-     (minibuffer-depth-indicate-mode 1)
-     (minibuffer-electric-default-mode 1)
-
-     ;;; Temporary window height
-
-     ;; Evaluate: (info "(emacs) Temporary Displays")
-     ;;
-     ;; Or read: ;; 
<https://www.gnu.org/software/emacs/manual/html_node/emacs/Temporary-Displays.html>.
-
-     (setq temp-buffer-max-height (lambda (buf) (/ (window-height) 4)))
-     ;; OR
-     ;; (setq temp-buffer-max-height (lambda (buf) (/ (frame-height) 4)))
-
-     (temp-buffer-resize-mode 1)
-
-
-File: mct.info,  Node: Keymaps,  Next: Extensions,  Prev: Sample setup,  Up: 
Top
-
-5 Keymaps
-*********
-
-MCT defines its own keymaps, which extend those that are active in the
-minibuffer and the ‘*Completions*’ buffer, respectively:
-
-   • ‘mct-completion-list-mode-map’
-   • ‘mct-minibuffer-local-completion-map’
-   • ‘mct-minibuffer-local-filename-completion-map’
-
-   You can invoke ‘describe-keymap’ to learn more about them.
-
-   If you want to edit any key bindings, do it in those keymaps, not in
-those they extend and override (the names of the original ones are the
-same as above, minus the ‘mct-’ prefix).
-
-
-File: mct.info,  Node: Extensions,  Next: Alternatives,  Prev: Keymaps,  Up: 
Top
-
-6 Extensions
-************
-
-MCT only tweaks the default minibuffer.  To get more out of it, consider
-these exceptionally well-crafted extras:
-
-‘consult’
-     Adds several commands that make interacting with the minibuffer
-     more powerful.  There also are several packages that build on it,
-     such as ‘consult-dir’.
-‘embark’
-     Provides configurable contextual actions for completions and many
-     other constructs inside buffers.
-‘marginalia’
-     Displays informative annotations for all known types of completion
-     candidates.
-‘orderless’
-     A completion style that matches a variety of patterns (regexp,
-     flex, initialism, etc.)  regardless of the order they appear in.
-
-
-File: mct.info,  Node: Alternatives,  Next: Acknowledgements,  Prev: 
Extensions,  Up: Top
-
-7 Alternatives
-**************
-
-The only alternative I have used that is conceptually close to MCT is
-‘vertico’.  Vertico is a more mature and feature-rich package, while its
-maintainer, Daniel Mendler, is an accomplished programmer.  Whereas MCT
-is mostly an excuse to practice my Elisp skills.
-
-
-File: mct.info,  Node: Acknowledgements,  Next: GNU Free Documentation 
License,  Prev: Alternatives,  Up: Top
-
-8 Acknowledgements
-******************
-
-MCT is meant to be a collective effort.  Every bit of help matters.
-
-Author/maintainer
-     Protesilaos Stavrou.
-
-Contributions to code or documentation
-     Philip Kaludercic.
-
-Ideas and user feedback
-     Philip Kaludercic, Manuel Uberti.
-
-Inspiration for certain features
-     ‘icomplete.el’ (built-in—multiple authors), Daniel Mendler
-     (‘vertico’), Omar Antolín Camarena (‘embark’, ‘live-completions’),
-     Štěpán Němec (‘stripes.el’).
-
-
-File: mct.info,  Node: GNU Free Documentation License,  Next: Indices,  Prev: 
Acknowledgements,  Up: Top
-
-Appendix A GNU Free Documentation License
-*****************************************
-
-                     Version 1.3, 3 November 2008
-
-     Copyright © 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
-     <https://fsf.org/>
-
-     Everyone is permitted to copy and distribute verbatim copies
-     of this license document, but changing it is not allowed.
-
-  0. PREAMBLE
-
-     The purpose of this License is to make a manual, textbook, or other
-     functional and useful document “free” in the sense of freedom: to
-     assure everyone the effective freedom to copy and redistribute it,
-     with or without modifying it, either commercially or
-     noncommercially.  Secondarily, this License preserves for the
-     author and publisher a way to get credit for their work, while not
-     being considered responsible for modifications made by others.
-
-     This License is a kind of “copyleft”, which means that derivative
-     works of the document must themselves be free in the same sense.
-     It complements the GNU General Public License, which is a copyleft
-     license designed for free software.
-
-     We have designed this License in order to use it for manuals for
-     free software, because free software needs free documentation: a
-     free program should come with manuals providing the same freedoms
-     that the software does.  But this License is not limited to
-     software manuals; it can be used for any textual work, regardless
-     of subject matter or whether it is published as a printed book.  We
-     recommend this License principally for works whose purpose is
-     instruction or reference.
-
-  1. APPLICABILITY AND DEFINITIONS
-
-     This License applies to any manual or other work, in any medium,
-     that contains a notice placed by the copyright holder saying it can
-     be distributed under the terms of this License.  Such a notice
-     grants a world-wide, royalty-free license, unlimited in duration,
-     to use that work under the conditions stated herein.  The
-     “Document”, below, refers to any such manual or work.  Any member
-     of the public is a licensee, and is addressed as “you”.  You accept
-     the license if you copy, modify or distribute the work in a way
-     requiring permission under copyright law.
-
-     A “Modified Version” of the Document means any work containing the
-     Document or a portion of it, either copied verbatim, or with
-     modifications and/or translated into another language.
-
-     A “Secondary Section” is a named appendix or a front-matter section
-     of the Document that deals exclusively with the relationship of the
-     publishers or authors of the Document to the Document’s overall
-     subject (or to related matters) and contains nothing that could
-     fall directly within that overall subject.  (Thus, if the Document
-     is in part a textbook of mathematics, a Secondary Section may not
-     explain any mathematics.)  The relationship could be a matter of
-     historical connection with the subject or with related matters, or
-     of legal, commercial, philosophical, ethical or political position
-     regarding them.
-
-     The “Invariant Sections” are certain Secondary Sections whose
-     titles are designated, as being those of Invariant Sections, in the
-     notice that says that the Document is released under this License.
-     If a section does not fit the above definition of Secondary then it
-     is not allowed to be designated as Invariant.  The Document may
-     contain zero Invariant Sections.  If the Document does not identify
-     any Invariant Sections then there are none.
-
-     The “Cover Texts” are certain short passages of text that are
-     listed, as Front-Cover Texts or Back-Cover Texts, in the notice
-     that says that the Document is released under this License.  A
-     Front-Cover Text may be at most 5 words, and a Back-Cover Text may
-     be at most 25 words.
-
-     A “Transparent” copy of the Document means a machine-readable copy,
-     represented in a format whose specification is available to the
-     general public, that is suitable for revising the document
-     straightforwardly with generic text editors or (for images composed
-     of pixels) generic paint programs or (for drawings) some widely
-     available drawing editor, and that is suitable for input to text
-     formatters or for automatic translation to a variety of formats
-     suitable for input to text formatters.  A copy made in an otherwise
-     Transparent file format whose markup, or absence of markup, has
-     been arranged to thwart or discourage subsequent modification by
-     readers is not Transparent.  An image format is not Transparent if
-     used for any substantial amount of text.  A copy that is not
-     “Transparent” is called “Opaque”.
-
-     Examples of suitable formats for Transparent copies include plain
-     ASCII without markup, Texinfo input format, LaTeX input format,
-     SGML or XML using a publicly available DTD, and standard-conforming
-     simple HTML, PostScript or PDF designed for human modification.
-     Examples of transparent image formats include PNG, XCF and JPG.
-     Opaque formats include proprietary formats that can be read and
-     edited only by proprietary word processors, SGML or XML for which
-     the DTD and/or processing tools are not generally available, and
-     the machine-generated HTML, PostScript or PDF produced by some word
-     processors for output purposes only.
-
-     The “Title Page” means, for a printed book, the title page itself,
-     plus such following pages as are needed to hold, legibly, the
-     material this License requires to appear in the title page.  For
-     works in formats which do not have any title page as such, “Title
-     Page” means the text near the most prominent appearance of the
-     work’s title, preceding the beginning of the body of the text.
-
-     The “publisher” means any person or entity that distributes copies
-     of the Document to the public.
-
-     A section “Entitled XYZ” means a named subunit of the Document
-     whose title either is precisely XYZ or contains XYZ in parentheses
-     following text that translates XYZ in another language.  (Here XYZ
-     stands for a specific section name mentioned below, such as
-     “Acknowledgements”, “Dedications”, “Endorsements”, or “History”.)
-     To “Preserve the Title” of such a section when you modify the
-     Document means that it remains a section “Entitled XYZ” according
-     to this definition.
-
-     The Document may include Warranty Disclaimers next to the notice
-     which states that this License applies to the Document.  These
-     Warranty Disclaimers are considered to be included by reference in
-     this License, but only as regards disclaiming warranties: any other
-     implication that these Warranty Disclaimers may have is void and
-     has no effect on the meaning of this License.
-
-  2. VERBATIM COPYING
-
-     You may copy and distribute the Document in any medium, either
-     commercially or noncommercially, provided that this License, the
-     copyright notices, and the license notice saying this License
-     applies to the Document are reproduced in all copies, and that you
-     add no other conditions whatsoever to those of this License.  You
-     may not use technical measures to obstruct or control the reading
-     or further copying of the copies you make or distribute.  However,
-     you may accept compensation in exchange for copies.  If you
-     distribute a large enough number of copies you must also follow the
-     conditions in section 3.
-
-     You may also lend copies, under the same conditions stated above,
-     and you may publicly display copies.
-
-  3. COPYING IN QUANTITY
-
-     If you publish printed copies (or copies in media that commonly
-     have printed covers) of the Document, numbering more than 100, and
-     the Document’s license notice requires Cover Texts, you must
-     enclose the copies in covers that carry, clearly and legibly, all
-     these Cover Texts: Front-Cover Texts on the front cover, and
-     Back-Cover Texts on the back cover.  Both covers must also clearly
-     and legibly identify you as the publisher of these copies.  The
-     front cover must present the full title with all words of the title
-     equally prominent and visible.  You may add other material on the
-     covers in addition.  Copying with changes limited to the covers, as
-     long as they preserve the title of the Document and satisfy these
-     conditions, can be treated as verbatim copying in other respects.
-
-     If the required texts for either cover are too voluminous to fit
-     legibly, you should put the first ones listed (as many as fit
-     reasonably) on the actual cover, and continue the rest onto
-     adjacent pages.
-
-     If you publish or distribute Opaque copies of the Document
-     numbering more than 100, you must either include a machine-readable
-     Transparent copy along with each Opaque copy, or state in or with
-     each Opaque copy a computer-network location from which the general
-     network-using public has access to download using public-standard
-     network protocols a complete Transparent copy of the Document, free
-     of added material.  If you use the latter option, you must take
-     reasonably prudent steps, when you begin distribution of Opaque
-     copies in quantity, to ensure that this Transparent copy will
-     remain thus accessible at the stated location until at least one
-     year after the last time you distribute an Opaque copy (directly or
-     through your agents or retailers) of that edition to the public.
-
-     It is requested, but not required, that you contact the authors of
-     the Document well before redistributing any large number of copies,
-     to give them a chance to provide you with an updated version of the
-     Document.
-
-  4. MODIFICATIONS
-
-     You may copy and distribute a Modified Version of the Document
-     under the conditions of sections 2 and 3 above, provided that you
-     release the Modified Version under precisely this License, with the
-     Modified Version filling the role of the Document, thus licensing
-     distribution and modification of the Modified Version to whoever
-     possesses a copy of it.  In addition, you must do these things in
-     the Modified Version:
-
-       A. Use in the Title Page (and on the covers, if any) a title
-          distinct from that of the Document, and from those of previous
-          versions (which should, if there were any, be listed in the
-          History section of the Document).  You may use the same title
-          as a previous version if the original publisher of that
-          version gives permission.
-
-       B. List on the Title Page, as authors, one or more persons or
-          entities responsible for authorship of the modifications in
-          the Modified Version, together with at least five of the
-          principal authors of the Document (all of its principal
-          authors, if it has fewer than five), unless they release you
-          from this requirement.
-
-       C. State on the Title page the name of the publisher of the
-          Modified Version, as the publisher.
-
-       D. Preserve all the copyright notices of the Document.
-
-       E. Add an appropriate copyright notice for your modifications
-          adjacent to the other copyright notices.
-
-       F. Include, immediately after the copyright notices, a license
-          notice giving the public permission to use the Modified
-          Version under the terms of this License, in the form shown in
-          the Addendum below.
-
-       G. Preserve in that license notice the full lists of Invariant
-          Sections and required Cover Texts given in the Document’s
-          license notice.
-
-       H. Include an unaltered copy of this License.
-
-       I. Preserve the section Entitled “History”, Preserve its Title,
-          and add to it an item stating at least the title, year, new
-          authors, and publisher of the Modified Version as given on the
-          Title Page.  If there is no section Entitled “History” in the
-          Document, create one stating the title, year, authors, and
-          publisher of the Document as given on its Title Page, then add
-          an item describing the Modified Version as stated in the
-          previous sentence.
-
-       J. Preserve the network location, if any, given in the Document
-          for public access to a Transparent copy of the Document, and
-          likewise the network locations given in the Document for
-          previous versions it was based on.  These may be placed in the
-          “History” section.  You may omit a network location for a work
-          that was published at least four years before the Document
-          itself, or if the original publisher of the version it refers
-          to gives permission.
-
-       K. For any section Entitled “Acknowledgements” or “Dedications”,
-          Preserve the Title of the section, and preserve in the section
-          all the substance and tone of each of the contributor
-          acknowledgements and/or dedications given therein.
-
-       L. Preserve all the Invariant Sections of the Document, unaltered
-          in their text and in their titles.  Section numbers or the
-          equivalent are not considered part of the section titles.
-
-       M. Delete any section Entitled “Endorsements”.  Such a section
-          may not be included in the Modified Version.
-
-       N. Do not retitle any existing section to be Entitled
-          “Endorsements” or to conflict in title with any Invariant
-          Section.
-
-       O. Preserve any Warranty Disclaimers.
-
-     If the Modified Version includes new front-matter sections or
-     appendices that qualify as Secondary Sections and contain no
-     material copied from the Document, you may at your option designate
-     some or all of these sections as invariant.  To do this, add their
-     titles to the list of Invariant Sections in the Modified Version’s
-     license notice.  These titles must be distinct from any other
-     section titles.
-
-     You may add a section Entitled “Endorsements”, provided it contains
-     nothing but endorsements of your Modified Version by various
-     parties—for example, statements of peer review or that the text has
-     been approved by an organization as the authoritative definition of
-     a standard.
-
-     You may add a passage of up to five words as a Front-Cover Text,
-     and a passage of up to 25 words as a Back-Cover Text, to the end of
-     the list of Cover Texts in the Modified Version.  Only one passage
-     of Front-Cover Text and one of Back-Cover Text may be added by (or
-     through arrangements made by) any one entity.  If the Document
-     already includes a cover text for the same cover, previously added
-     by you or by arrangement made by the same entity you are acting on
-     behalf of, you may not add another; but you may replace the old
-     one, on explicit permission from the previous publisher that added
-     the old one.
-
-     The author(s) and publisher(s) of the Document do not by this
-     License give permission to use their names for publicity for or to
-     assert or imply endorsement of any Modified Version.
-
-  5. COMBINING DOCUMENTS
-
-     You may combine the Document with other documents released under
-     this License, under the terms defined in section 4 above for
-     modified versions, provided that you include in the combination all
-     of the Invariant Sections of all of the original documents,
-     unmodified, and list them all as Invariant Sections of your
-     combined work in its license notice, and that you preserve all
-     their Warranty Disclaimers.
-
-     The combined work need only contain one copy of this License, and
-     multiple identical Invariant Sections may be replaced with a single
-     copy.  If there are multiple Invariant Sections with the same name
-     but different contents, make the title of each such section unique
-     by adding at the end of it, in parentheses, the name of the
-     original author or publisher of that section if known, or else a
-     unique number.  Make the same adjustment to the section titles in
-     the list of Invariant Sections in the license notice of the
-     combined work.
-
-     In the combination, you must combine any sections Entitled
-     “History” in the various original documents, forming one section
-     Entitled “History”; likewise combine any sections Entitled
-     “Acknowledgements”, and any sections Entitled “Dedications”.  You
-     must delete all sections Entitled “Endorsements.”
-
-  6. COLLECTIONS OF DOCUMENTS
-
-     You may make a collection consisting of the Document and other
-     documents released under this License, and replace the individual
-     copies of this License in the various documents with a single copy
-     that is included in the collection, provided that you follow the
-     rules of this License for verbatim copying of each of the documents
-     in all other respects.
-
-     You may extract a single document from such a collection, and
-     distribute it individually under this License, provided you insert
-     a copy of this License into the extracted document, and follow this
-     License in all other respects regarding verbatim copying of that
-     document.
-
-  7. AGGREGATION WITH INDEPENDENT WORKS
-
-     A compilation of the Document or its derivatives with other
-     separate and independent documents or works, in or on a volume of a
-     storage or distribution medium, is called an “aggregate” if the
-     copyright resulting from the compilation is not used to limit the
-     legal rights of the compilation’s users beyond what the individual
-     works permit.  When the Document is included in an aggregate, this
-     License does not apply to the other works in the aggregate which
-     are not themselves derivative works of the Document.
-
-     If the Cover Text requirement of section 3 is applicable to these
-     copies of the Document, then if the Document is less than one half
-     of the entire aggregate, the Document’s Cover Texts may be placed
-     on covers that bracket the Document within the aggregate, or the
-     electronic equivalent of covers if the Document is in electronic
-     form.  Otherwise they must appear on printed covers that bracket
-     the whole aggregate.
-
-  8. TRANSLATION
-
-     Translation is considered a kind of modification, so you may
-     distribute translations of the Document under the terms of section
-     4.  Replacing Invariant Sections with translations requires special
-     permission from their copyright holders, but you may include
-     translations of some or all Invariant Sections in addition to the
-     original versions of these Invariant Sections.  You may include a
-     translation of this License, and all the license notices in the
-     Document, and any Warranty Disclaimers, provided that you also
-     include the original English version of this License and the
-     original versions of those notices and disclaimers.  In case of a
-     disagreement between the translation and the original version of
-     this License or a notice or disclaimer, the original version will
-     prevail.
-
-     If a section in the Document is Entitled “Acknowledgements”,
-     “Dedications”, or “History”, the requirement (section 4) to
-     Preserve its Title (section 1) will typically require changing the
-     actual title.
-
-  9. TERMINATION
-
-     You may not copy, modify, sublicense, or distribute the Document
-     except as expressly provided under this License.  Any attempt
-     otherwise to copy, modify, sublicense, or distribute it is void,
-     and will automatically terminate your rights under this License.
-
-     However, if you cease all violation of this License, then your
-     license from a particular copyright holder is reinstated (a)
-     provisionally, unless and until the copyright holder explicitly and
-     finally terminates your license, and (b) permanently, if the
-     copyright holder fails to notify you of the violation by some
-     reasonable means prior to 60 days after the cessation.
-
-     Moreover, your license from a particular copyright holder is
-     reinstated permanently if the copyright holder notifies you of the
-     violation by some reasonable means, this is the first time you have
-     received notice of violation of this License (for any work) from
-     that copyright holder, and you cure the violation prior to 30 days
-     after your receipt of the notice.
-
-     Termination of your rights under this section does not terminate
-     the licenses of parties who have received copies or rights from you
-     under this License.  If your rights have been terminated and not
-     permanently reinstated, receipt of a copy of some or all of the
-     same material does not give you any rights to use it.
-
-  10. FUTURE REVISIONS OF THIS LICENSE
-
-     The Free Software Foundation may publish new, revised versions of
-     the GNU Free Documentation License from time to time.  Such new
-     versions will be similar in spirit to the present version, but may
-     differ in detail to address new problems or concerns.  See
-     <https://www.gnu.org/licenses/>.
-
-     Each version of the License is given a distinguishing version
-     number.  If the Document specifies that a particular numbered
-     version of this License “or any later version” applies to it, you
-     have the option of following the terms and conditions either of
-     that specified version or of any later version that has been
-     published (not as a draft) by the Free Software Foundation.  If the
-     Document does not specify a version number of this License, you may
-     choose any version ever published (not as a draft) by the Free
-     Software Foundation.  If the Document specifies that a proxy can
-     decide which future versions of this License can be used, that
-     proxy’s public statement of acceptance of a version permanently
-     authorizes you to choose that version for the Document.
-
-  11. RELICENSING
-
-     “Massive Multiauthor Collaboration Site” (or “MMC Site”) means any
-     World Wide Web server that publishes copyrightable works and also
-     provides prominent facilities for anybody to edit those works.  A
-     public wiki that anybody can edit is an example of such a server.
-     A “Massive Multiauthor Collaboration” (or “MMC”) contained in the
-     site means any set of copyrightable works thus published on the MMC
-     site.
-
-     “CC-BY-SA” means the Creative Commons Attribution-Share Alike 3.0
-     license published by Creative Commons Corporation, a not-for-profit
-     corporation with a principal place of business in San Francisco,
-     California, as well as future copyleft versions of that license
-     published by that same organization.
-
-     “Incorporate” means to publish or republish a Document, in whole or
-     in part, as part of another Document.
-
-     An MMC is “eligible for relicensing” if it is licensed under this
-     License, and if all works that were first published under this
-     License somewhere other than this MMC, and subsequently
-     incorporated in whole or in part into the MMC, (1) had no cover
-     texts or invariant sections, and (2) were thus incorporated prior
-     to November 1, 2008.
-
-     The operator of an MMC Site may republish an MMC contained in the
-     site under CC-BY-SA on the same site at any time before August 1,
-     2009, provided the MMC is eligible for relicensing.
-
-ADDENDUM: How to use this License for your documents
-====================================================
-
-To use this License in a document you have written, include a copy of
-the License in the document and put the following copyright and license
-notices just after the title page:
-
-       Copyright (C)  YEAR  YOUR NAME.
-       Permission is granted to copy, distribute and/or modify this document
-       under the terms of the GNU Free Documentation License, Version 1.3
-       or any later version published by the Free Software Foundation;
-       with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
-       Texts.  A copy of the license is included in the section entitled ``GNU
-       Free Documentation License''.
-
-   If you have Invariant Sections, Front-Cover Texts and Back-Cover
-Texts, replace the “with...Texts.” line with this:
-
-         with the Invariant Sections being LIST THEIR TITLES, with
-         the Front-Cover Texts being LIST, and with the Back-Cover Texts
-         being LIST.
-
-   If you have Invariant Sections without Cover Texts, or some other
-combination of the three, merge those two alternatives to suit the
-situation.
-
-   If your document contains nontrivial examples of program code, we
-recommend releasing these examples in parallel under your choice of free
-software license, such as the GNU General Public License, to permit
-their use in free software.
-
-
-File: mct.info,  Node: Indices,  Prev: GNU Free Documentation License,  Up: Top
-
-B Indices
-*********
-
-* Menu:
-
-* Function index::
-* Variable index::
-* Concept index::
-
-
-File: mct.info,  Node: Function index,  Next: Variable index,  Up: Indices
-
-B.1 Function index
-==================
-
-[index]
-* Menu:
-
-* mct-choose-completion-number:          Overview of mctel.    (line 57)
-* mct-edit-completion:                   Selecting candidates. (line 47)
-* mct-list-completions-toggle:           Cyclic behaviour.     (line 42)
-* mct-next-completion-or-mini:           Cyclic behaviour.     (line 35)
-* mct-previous-completion-or-mini:       Cyclic behaviour.     (line 35)
-* mct-switch-to-completions-bottom:      Cyclic behaviour.     (line 28)
-* mct-switch-to-completions-top:         Cyclic behaviour.     (line 28)
-
-
-File: mct.info,  Node: Variable index,  Next: Concept index,  Prev: Function 
index,  Up: Indices
-
-B.2 Variable index
-==================
-
-[index]
-* Menu:
-
-* mct-apply-completion-stripes:          Overview of mctel.    (line 64)
-* mct-completion-blocklist:              Overview of mctel.    (line 31)
-* mct-completion-list-mode-map:          Keymaps.              (line  6)
-* mct-completion-passlist:               Overview of mctel.    (line 34)
-* mct-hide-completion-mode-line:         Overview of mctel.    (line 45)
-* mct-live-completion:                   Overview of mctel.    (line 38)
-* mct-live-update-delay:                 Overview of mctel.    (line 26)
-* mct-minibuffer-local-completion-map:   Keymaps.              (line  6)
-* mct-minibuffer-local-filename-completion-map: Keymaps.       (line  6)
-* mct-minimum-input:                     Overview of mctel.    (line 26)
-* mct-remove-shadowed-file-name:         Overview of mctel.    (line 50)
-* mct-stripe:                            Overview of mctel.    (line 64)
-
-
-File: mct.info,  Node: Concept index,  Prev: Variable index,  Up: Indices
-
-B.3 Concept index
-=================
-
-[index]
-* Menu:
-
-* Alternatives to MCT:                   Alternatives.          (line 6)
-* Candidate selection:                   Selecting candidates.  (line 6)
-* Contributors:                          Acknowledgements.      (line 6)
-* Cyclic behaviour:                      Cyclic behaviour.      (line 6)
-* Extra packages:                        Extensions.            (line 6)
-* Keymaps:                               Keymaps.               (line 6)
-* Overview of features:                  Overview of mctel.     (line 6)
-* Sample configuration:                  Sample setup.          (line 6)
-
-
-
-Tag Table:
-Node: Top865
-Node: Overview of mctel2457
-Node: Basic usage5985
-Node: Cyclic behaviour6165
-Node: Selecting candidates7896
-Node: Installation10602
-Node: Sample setup11690
-Node: Keymaps13791
-Node: Extensions14435
-Node: Alternatives15230
-Node: Acknowledgements15623
-Node: GNU Free Documentation License16248
-Node: Indices41603
-Node: Function index41773
-Node: Variable index42423
-Node: Concept index43460
-
-End Tag Table
-
-
-Local Variables:
-coding: utf-8
-End:
diff --git a/mct.texi b/mct.texi
deleted file mode 100644
index 0a8aee2..0000000
--- a/mct.texi
+++ /dev/null
@@ -1,525 +0,0 @@
-\input texinfo    @c -*- texinfo -*-
-@c %**start of header
-@setfilename mct.info
-@settitle Minibuffer and Completions in Tandem (mct.el)
-@documentencoding UTF-8
-@documentlanguage en
-@set MAINTAINERSITE @uref{https://protesilaos.com,maintainer webpage}
-@set MAINTAINER Protesilaos Stavrou
-@set MAINTAINEREMAIL @email{info@protesilaos.com}
-@set MAINTAINERCONTACT @uref{mailto:info@protesilaos.com,contact the 
maintainer}
-@c %**end of header
-
-@copying
-Copyright (C) 2021  Free Software Foundation, Inc.
-
-@quotation
-Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.3 or
-any later version published by the Free Software Foundation; with no
-Invariant Sections, with the Front-Cover Texts being “A GNU Manual,” and
-with the Back-Cover Texts as in (a) below.  A copy of the license is
-included in the section entitled “GNU Free Documentation License.”
-
-(a) The FSF’s Back-Cover Text is: “You have the freedom to copy and
-modify this GNU manual.”
-
-@end quotation
-@end copying
-
-@dircategory Emacs misc features
-@direntry
-* Minibuffer and Completions in Tandem: (mct). Enhancement of the default 
minibuffer completion.
-@end direntry
-
-@finalout
-@titlepage
-@title Minibuffer and Completions in Tandem (mct.el)
-@author Protesilaos Stavrou (@email{info@@protesilaos.com})
-@page
-@vskip 0pt plus 1filll
-@insertcopying
-@end titlepage
-
-@ifnottex
-@node Top
-@top Minibuffer and Completions in Tandem (mct.el)
-
-@insertcopying
-
-This manual, written by Protesilaos Stavrou, describes the customization
-options for @samp{mct.el}, and provides every other piece of information
-pertinent to it.
-
-The documentation furnished herein corresponds to stable version
-0.1.0, released on 2021-10-22.  Any reference to a newer
-feature which does not yet form part of the latest tagged commit, is
-explicitly marked as such.
-
-Current development target is 0.2.0-dev.
-
-@end ifnottex
-
-@menu
-* Overview of mct.el: Overview of mctel. 
-* Basic usage::
-* Installation::
-* Sample setup::
-* Keymaps::
-* Extensions::
-* Alternatives::
-* Acknowledgements::
-* GNU Free Documentation License::
-* Indices::
-
-@detailmenu
---- The Detailed Node Listing ---
-
-Basic usage
-
-* Cyclic behaviour::
-* Selecting candidates::
-
-Indices
-
-* Function index::
-* Variable index::
-* Concept index::
-
-@end detailmenu
-@end menu
-
-@node Overview of mctel
-@chapter Overview of mct.el
-
-@cindex Overview of features
-
-Minibuffer and Completions in Tandem, also known as ``MCT'', ``Mct'', 
@samp{mct},
-or @samp{mct.el}, is a package that enhances the default minibuffer and
-@samp{*Completions*} buffer of Emacs 28 (or higher) so that they work together
-as part of a unified framework.  The idea is to make the presentation
-and overall functionality be consistent with other popular, vertically
-aligned completion UIs while leveraging built-in functionality.
-
-The main feature set that unifies the minibuffer and the @samp{*Completions*}
-buffer consists of commands that cycle between the two, making it seem
-like they are part of a contiguous space (@ref{Basic usage}).
-
-MCT tries to find a middle ground between the frugal defaults and the
-more opinionated completion UIs.  This is most evident in its approach
-on how to present completion candidates.  Instead of showing them
-outright or only displaying them on demand, MCT implements a minimum
-input threshold as well as a slight delay before it pops up the
-@samp{*Completions*} buffer and starts updating it to respond to user input.
-
-@vindex mct-minimum-input
-@vindex mct-live-update-delay
-Customisation options control the input threshold (@code{mct-minimum-input})
-and the delay between live updates (@code{mct-live-update-delay}).  Similarly,
-a blocklist and a passlist for commands are on offer:
-
-@vindex mct-completion-blocklist
-@itemize
-@item
-The blocklist (@code{mct-completion-blocklist}) disables the live-updating
-functionality for the commands specified therein.
-@end itemize
-
-@vindex mct-completion-passlist
-@itemize
-@item
-The passlist (@code{mct-completion-passlist}) always shows the Completions'
-buffer for the designated command without accounting for the minimum
-input threshold.
-@end itemize
-
-@vindex mct-live-completion
-To inhibit live completion in the first place, @code{mct-live-completion}
-can be set to nil.  Given this customization, the Completions' buffern
-is only displayed when requested manually.  @code{mct-completion-passlist}
-takes precedence over this option.
-
-Other customisations:
-
-@vindex mct-hide-completion-mode-line
-@itemize
-@item
-@code{mct-hide-completion-mode-line} to hide the mode line of the
-@samp{*Completions*} buffer.  This removes the separation between it and the
-minibuffer, further contributing to the idea of a unified space
-between the two.
-@end itemize
-
-@vindex mct-remove-shadowed-file-name
-@itemize
-@item
-@code{mct-remove-shadowed-file-name} to clear shadowed file names when
-@code{file-name-shadow-mode} is enabled.  This means that in prompts that use
-file paths (such as @code{find-file}) when you start in, say, 
@samp{~/Git/mct.el}
-and type @samp{~/} the previous file path is removed and only the new one is
-inserted.  Whereas the default is to keep the original file name
-visible yet ``shadowed'' by a different colour.
-@end itemize
-
-@findex mct-choose-completion-number
-@itemize
-@item
-@code{mct-show-completion-line-numbers} to always display line numbers in the
-Completions' buffer.  This can be helpful to get a sense of the length
-of the completion candidates' list.  Though note that line numbers are
-displayed ephemerally while using the @code{mct-choose-completion-number}
-command, which is bound to @samp{M-g M-g} in either the minibuffer or the
-@samp{*Completions*} buffer.
-@end itemize
-
-@vindex mct-apply-completion-stripes
-@vindex mct-stripe
-@itemize
-@item
-@code{mct-apply-completion-stripes} applies alternative background colours in
-the Completions' buffer.  This is only tested with the @samp{modus-themes}
-and will only work nicely if the main background is pure black or
-white---other themes would need to add support for the faces we define
-or, at least, users must modify the @code{mct-stripe} face.
-@end itemize
-
-@node Basic usage
-@chapter Basic usage
-
-@menu
-* Cyclic behaviour::
-* Selecting candidates::
-@end menu
-
-@node Cyclic behaviour
-@section Cyclic behaviour
-
-@cindex Cyclic behaviour
-
-When @code{mct-mode} is enabled, some new keymaps are activated which add
-commands for cycling between the minibuffer and the completions.
-Suppose the following standard layout:
-
-@example
------------------
-|               |
-|               |
-|               |
-|  Buffer       |
-|               |
-|               |
-|               |
------------------
------------------
-|               |
-|  Completions  |
-|               |
------------------
------------------
-|  Minibuffer   |
------------------
-@end example
-
-@findex mct-switch-to-completions-top
-@findex mct-switch-to-completions-bottom
-When inside the minibuffer, pressing @samp{C-n} (or down arrow) takes you to
-the top of the completions, while @samp{C-p} (or up arrow) moves to the bottom.
-The commands are @code{mct-switch-to-completions-top} for the former and
-@code{mct-switch-to-completions-bottom} for the latter.  If the 
@samp{*Completions*}
-are not shown, then the buffer pops up automatically and point moves to
-the given position.
-
-@findex mct-previous-completion-or-mini
-@findex mct-next-completion-or-mini
-Similarly, while inside the @samp{*Completions*} buffer, @samp{C-p} (or up 
arrow) at
-the top of the buffer switches to the minibuffer, while @samp{C-n} (or down
-arrow) at the bottom of the buffer also goes to the minibuffer.  If
-point is anywhere else inside the buffer, those key bindings perform a
-regular line motion.  The commands are @code{mct-previous-completion-or-mini}
-and @code{mct-next-completion-or-mini}.
-
-@findex mct-list-completions-toggle
-The display of the @samp{*Completions*} can be toggled at any time from inside
-the minibuffer with @samp{C-l} (mnemonic is ``[l]ist completions'' and the
-command is @code{mct-list-completions-toggle}).
-
-@node Selecting candidates
-@section Selecting candidates
-
-@cindex Candidate selection
-
-There are several ways to select a completion candidate.
-
-@enumerate
-@item
-Suppose that you are typing @samp{mod} with the intent to select the
-@samp{modus-themes.el} buffer.  To complete the first candidate follow up
-@samp{mod} with the @samp{TAB} key.  This is how you would do it with the 
default
-minibuffer.  If done fast enough, no completions will be shown
-(depending on your minimum input threshold and the live-update
-delay).
-
-@item
-Upon cycling through the completions, type @samp{RET} to select the
-candidate at point and exit the minibuffer.  This works for all types
-of completion prompts.
-
-@item
-For certain contexts where selecting a candidate does not necessarily
-mean that the process has to be finalised (e.g. when using @code{find-file})
-selection in the @samp{*Completions*} buffer can be done with @samp{TAB} which
-completes the item at point but does not exit the minibuffer.  The
-command is instead renewed to update the list of completions with the
-new candidates.
-
-@item
-Select a candidate by its line number by typing @samp{M-g M-g} in either the
-minibuffer or the @samp{*Completions*} buffer.  This calls the command
-@code{mct-choose-completion-number} which internally enables line numbers
-and always makes the completions' buffer visible.
-
-@item
-In prompts that allow the selection of multiple candidates
-(internally via the @code{completing-read-multiple} function) a @samp{[CRM]} 
label
-is added to the text of the prompt.  The user thus knows that
-pressing @samp{M-RET} in the @samp{*Completions*} will append the candidate at
-point to the list of selections and keep the completions available so
-that another item may be selected.  Any of the aforementioned
-applicable methods can confirm the final selection.  If, say, you
-want to pick a total of three candidates, do @samp{M-RET} for the first two
-and @samp{RET} for the last one.  In contexts that are not CRM-powered, the
-@samp{M-RET} has the same effect as @samp{RET}.
-
-NOTE 2021-10-22: this assumes the @code{crm-separator} to be constant (the
-comma @samp{,} character) but some commands @code{let} bind it to something 
else,
-so the behaviour does not work as expected.  One such case is
-@code{org-set-tags-command} which uses @samp{:} as a separator.
-@end enumerate
-
-@findex mct-edit-completion
-@enumerate
-@item
-Type @samp{M-e} (@code{mct-edit-completion}) in the completions' buffer to 
place
-the current candidate in the minibuffer, without exiting the session.
-This allows you to edit the text before confirming it.
-@end enumerate
-
-@node Installation
-@chapter Installation
-
-MCT is not in any package archive for the time being, though I plan to
-submit it to GNU ELPA (as such, any non-trivial patches require
-copyright assignment to the Free Software Foundation).  Users can rely
-on @samp{straight.el}, @samp{quelpa}, or equivalent to fetch the source.  
Below are
-the essentials for those who prefer the manual method.
-
-Assuming your Emacs files are found in @samp{~/.emacs.d/}, execute the
-following commands in a shell prompt:
-
-@example
-cd ~/.emacs.d
-
-# Create a directory for manually-installed packages
-mkdir manual-packages
-
-# Go to the new directory
-cd manual-packages
-
-# Clone this repo and name it "mct"
-git clone https://gitlab.com/protesilaos/mct.el.git mct
-@end example
-
-Finally, in your @samp{init.el} (or equivalent) evaluate this:
-
-@lisp
-;; Make Elisp files in that directory available to the user.
-(add-to-list 'load-path "~/.emacs.d/manual-packages/mct")
-@end lisp
-
-Everything is in place to set up the package.
-
-@node Sample setup
-@chapter Sample setup
-
-@cindex Sample configuration
-
-Minimal setup:
-
-@lisp
-(require 'mct)
-(mct-mode 1)
-@end lisp
-
-And with more options:
-
-@lisp
-(require 'mct)
-
-(setq mct-remove-shadowed-file-names t) ; works when `file-name-shadow-mode' 
is enabled
-(setq mct-hide-completion-mode-line t)
-(setq mct-show-completion-line-numbers nil)
-(setq mct-apply-completion-stripes t)
-(setq mct-minimum-input 3)
-(setq mct-live-update-delay 0.6)
-
-;; NOTE: `mct-completion-blocklist' can be used for commands with lots
-;; of candidates, depending also on how low `mct-minimum-input' is.
-;; With the settings shown here this is not required, otherwise I would
-;; use something like this:
-;;
-;; (setq mct-completion-blocklist
-;;       '( describe-symbol describe-function describe-variable
-;;          execute-extended-command insert-char))
-(setq mct-completion-blocklist nil)
-
-;; This is for commands that should always pop up the completions'
-;; buffer.  It circumvents the default method of waiting for some user
-;; input (see `mct-minimum-input') before displaying and updating the
-;; completions' buffer.
-(setq mct-completion-passlist
-      '(imenu
-        Info-goto-node
-        Info-index
-        Info-menu
-        vc-retrieve-tag))
-
-(mct-mode 1)
-@end lisp
-
-Other useful extras from the Emacs source code (read their doc strings):
-
-@lisp
-(setq enable-recursive-minibuffers t)
-(setq minibuffer-eldef-shorten-default t)
-
-(file-name-shadow-mode 1)
-(minibuffer-depth-indicate-mode 1)
-(minibuffer-electric-default-mode 1)
-
-;;; Temporary window height
-
-;; Evaluate: (info "(emacs) Temporary Displays")
-;;
-;; Or read: ;; 
<https://www.gnu.org/software/emacs/manual/html_node/emacs/Temporary-Displays.html>.
-
-(setq temp-buffer-max-height (lambda (buf) (/ (window-height) 4)))
-;; OR
-;; (setq temp-buffer-max-height (lambda (buf) (/ (frame-height) 4)))
-
-(temp-buffer-resize-mode 1)
-@end lisp
-
-@node Keymaps
-@chapter Keymaps
-
-@cindex Keymaps
-@vindex mct-completion-list-mode-map
-@vindex mct-minibuffer-local-completion-map
-@vindex mct-minibuffer-local-filename-completion-map
-
-MCT defines its own keymaps, which extend those that are active in the
-minibuffer and the @samp{*Completions*} buffer, respectively:
-
-@itemize
-@item
-@code{mct-completion-list-mode-map}
-@item
-@code{mct-minibuffer-local-completion-map}
-@item
-@code{mct-minibuffer-local-filename-completion-map}
-@end itemize
-
-You can invoke @code{describe-keymap} to learn more about them.
-
-If you want to edit any key bindings, do it in those keymaps, not in
-those they extend and override (the names of the original ones are the
-same as above, minus the @samp{mct-} prefix).
-
-@node Extensions
-@chapter Extensions
-
-@cindex Extra packages
-
-MCT only tweaks the default minibuffer.  To get more out of it, consider
-these exceptionally well-crafted extras:
-
-@table @asis
-@item @samp{consult}
-Adds several commands that make interacting with the
-minibuffer more powerful.  There also are several packages that build
-on it, such as @samp{consult-dir}.
-@item @samp{embark}
-Provides configurable contextual actions for completions and
-many other constructs inside buffers.
-@item @samp{marginalia}
-Displays informative annotations for all known types of
-completion candidates.
-@item @samp{orderless}
-A completion style that matches a variety of patterns
-(regexp, flex, initialism, etc.) regardless of the order they appear
-in.
-@end table
-
-@node Alternatives
-@chapter Alternatives
-
-@cindex Alternatives to MCT
-
-The only alternative I have used that is conceptually close to MCT is
-@samp{vertico}.  Vertico is a more mature and feature-rich package, while its
-maintainer, Daniel Mendler, is an accomplished programmer.  Whereas MCT
-is mostly an excuse to practice my Elisp skills.
-
-@node Acknowledgements
-@chapter Acknowledgements
-
-@cindex Contributors
-
-MCT is meant to be a collective effort.  Every bit of help matters.
-
-@table @asis
-@item Author/maintainer
-Protesilaos Stavrou.
-
-@item Contributions to code or documentation
-Philip Kaludercic.
-
-@item Ideas and user feedback
-Philip Kaludercic, Manuel Uberti.
-
-@item Inspiration for certain features
-@samp{icomplete.el} (built-in---multiple
-authors), Daniel Mendler (@samp{vertico}), Omar Antolín Camarena 
(@samp{embark},
-@samp{live-completions}), Štěpán Němec (@samp{stripes.el}).
-@end table
-
-@node GNU Free Documentation License
-@appendix GNU Free Documentation License
-
-@include doclicense.texi
-
-@node Indices
-@chapter Indices
-
-@menu
-* Function index::
-* Variable index::
-* Concept index::
-@end menu
-
-@node Function index
-@section Function index
-
-@printindex fn
-
-@node Variable index
-@section Variable index
-
-@printindex vr
-
-@node Concept index
-@section Concept index
-
-@printindex cp
-
-@bye
\ No newline at end of file



reply via email to

[Prev in Thread] Current Thread [Next in Thread]