[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
- [elpa] externals/mct cc8a5c1 09/70: Mention temp-buffer-resize-mode in the docs, (continued)
- [elpa] externals/mct cc8a5c1 09/70: Mention temp-buffer-resize-mode in the docs, ELPA Syncer, 2021/11/11
- [elpa] externals/mct 91586c4 10/70: Fix documentation about manual install method, ELPA Syncer, 2021/11/11
- [elpa] externals/mct 79b2643 07/70: Remove unused user-error message, ELPA Syncer, 2021/11/11
- [elpa] externals/mct 609fd0a 12/70: Move findex and vindex annotations to their actual mentions, ELPA Syncer, 2021/11/11
- [elpa] externals/mct 4882ed6 17/70: Note display-buffer in mct-display-buffer-action, ELPA Syncer, 2021/11/11
- [elpa] externals/mct e75a6c6 19/70: Update mct-display-buffer-action with sample conf, ELPA Syncer, 2021/11/11
- [elpa] externals/mct 982b4ee 20/70: Note mct-completions-format needs mct-mode restart, ELPA Syncer, 2021/11/11
- [elpa] externals/mct 1b0ab0b 21/70: Untabify and re-indent, ELPA Syncer, 2021/11/11
- [elpa] externals/mct 5c0e138 22/70: Recompile texi/info manuald, ELPA Syncer, 2021/11/11
- [elpa] externals/mct 45c272e 25/70: Add a .dir-locals.el file, ELPA Syncer, 2021/11/11
- [elpa] externals/mct 295bac0 28/70: Generate mct.info and mct.texi using a Makefile,
ELPA Syncer <=
- [elpa] externals/mct 789174f 31/70: Update sample code with useful built-in extras, ELPA Syncer, 2021/11/11
- [elpa] externals/mct a55130a 06/70: Avoid hardcoding the "Completions" string, ELPA Syncer, 2021/11/11
- [elpa] externals/mct b392b0b 15/70: Allow for completions-format to be configured by the user, ELPA Syncer, 2021/11/11
- [elpa] externals/mct c36c7e8 11/70: Add new option mct-live-completion, ELPA Syncer, 2021/11/11
- [elpa] externals/mct 1084f58 16/70: Clarify mct-live-completion doc string, ELPA Syncer, 2021/11/11
- [elpa] externals/mct 310cc42 01/70: Initial commit, ELPA Syncer, 2021/11/11
- [elpa] externals/mct ccce90d 08/70: Make line number selection always exit minibuffer, ELPA Syncer, 2021/11/11
- [elpa] externals/mct 436b24e 13/70: Allow customizing how the Completions buffer is displayed, ELPA Syncer, 2021/11/11
- [elpa] externals/mct 9e0d523 18/70: Change default value of mct-display-buffer-action, ELPA Syncer, 2021/11/11
- [elpa] externals/mct 51c1e17 23/70: Reuse existing Completions' before re-displaying, ELPA Syncer, 2021/11/11