[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/orderless f8efbdae4d 087/204: Document style dispatches
From: |
ELPA Syncer |
Subject: |
[elpa] externals/orderless f8efbdae4d 087/204: Document style dispatches in the README |
Date: |
Tue, 11 Jan 2022 12:58:20 -0500 (EST) |
branch: externals/orderless
commit f8efbdae4de5f8256bcf8f64fb164ab3da0b6a2e
Author: Omar Antolín <omar.antolin@gmail.com>
Commit: Omar Antolín <omar.antolin@gmail.com>
Document style dispatches in the README
---
README.org | 38 ++++++++++++++++++++++++++++++++++++++
1 file changed, 38 insertions(+)
diff --git a/README.org b/README.org
index 67f5257864..9edc5a3ba3 100644
--- a/README.org
+++ b/README.org
@@ -58,6 +58,7 @@ Bug reports are highly welcome and appreciated!
- [[#component-matching-styles][Component matching styles]]
- [[#component-separator-regexp][Component separator regexp]]
- [[#faces-for-component-matches][Faces for component matches]]
+ - [[#style-dispatchers][Style dispatchers]]
- [[#related-packages][Related packages]]
- [[#ivy-and-helm][Ivy and Helm]]
- [[#prescient][Prescient]]
@@ -170,6 +171,43 @@ tries each completion style in turn and uses the first one
returning
matches. You will only see these particular faces when the =orderless=
completion is the one that ends up being used, of course.
+** Style dispatchers
+
+For more fine-grained control on which matching styles to use for each
+component of the input string, you can use the =orderless-style-dispatchers=
+variable, which should be set to list of /style dispatchers/.
+
+A style dispatcher is a function of two arguments, a string and an
+integer. It is called with each component of the input string and the
+component's index (starting from 0). It can either decline to handle
+the component or return which matching styles to use for it. It can
+also, if desired, additionally return a new string to use in place of
+the component. Consult the documentation of
+=orderless-style-dispatchers= for full details.
+
+As an example, say you wanted the following setup:
+
+- you want the first component to match as an initialism and
+ subsequent components to match literally ---this is pretty useful for,
+ say, =execute-extended-command= (=M-x=) or =describe-function= (=C-h f=).
+- except that any component ending in =~= should match (the characters
+ other than the final =~=) in the flex style.
+
+You can achieve this with the following configuration:
+
+#+begin_src emacs-lisp
+ (defun flex-if-twiddle (pattern _index)
+ (when (string-suffix-p "~" pattern)
+ `(orderless-flex . ,(substring pattern 0 (1- (length pattern))))))
+
+ (defun first-initialism-then-literal (pattern index)
+ (if (= index 0) 'orderless-initialism 'orderless-literal))
+
+ (setq orderless-style-dispatchers
+ '(flex-if-twiddle first-initialism-then-literal))
+#+end_src
+
+
* Related packages
** Ivy and Helm
- [elpa] externals/orderless 044fac0859 029/204: Revert "Better match face defaults (kindly contributed by Protesilaos)", (continued)
- [elpa] externals/orderless 044fac0859 029/204: Revert "Better match face defaults (kindly contributed by Protesilaos)", ELPA Syncer, 2022/01/11
- [elpa] externals/orderless 2813ffb2b1 039/204: Optimization: check if first component is string literal, ELPA Syncer, 2022/01/11
- [elpa] externals/orderless 25266dfc60 033/204: Update README.org, ELPA Syncer, 2022/01/11
- [elpa] externals/orderless 39202177e1 040/204: Undo previous optimization as it is invalid in general :(, ELPA Syncer, 2022/01/11
- [elpa] externals/orderless ecddc3da2e 045/204: Un-nest definition of orderless--highlight-matches, ELPA Syncer, 2022/01/11
- [elpa] externals/orderless 582b3a9fa8 031/204: Make all `defface' syntax more efficient+readable, ELPA Syncer, 2022/01/11
- [elpa] externals/orderless c51037b8ef 024/204: Add custom variable for component separator regexp, ELPA Syncer, 2022/01/11
- [elpa] externals/orderless 9856eeed32 047/204: Mention prefixes style in overview, ELPA Syncer, 2022/01/11
- [elpa] externals/orderless cacd856f9a 041/204: Leverage completion-regexp-list: simplify code, increase speed!, ELPA Syncer, 2022/01/11
- [elpa] externals/orderless 3005cf8ee9 077/204: Merge pull request #12 from noctuid/feature/strict-initialism, ELPA Syncer, 2022/01/11
- [elpa] externals/orderless f8efbdae4d 087/204: Document style dispatches in the README,
ELPA Syncer <=
- [elpa] externals/orderless e16fc5ddb1 099/204: Ido has progressive completion too!, ELPA Syncer, 2022/01/11
- [elpa] externals/orderless dc1a31b5fc 098/204: Merge remote-tracking branch 'github/master', ELPA Syncer, 2022/01/11
- [elpa] externals/orderless 306fb267f5 100/204: Mark orderless-temporarily-change-separator obsolete (#15), ELPA Syncer, 2022/01/11
- [elpa] externals/orderless 09f4c74280 105/204: Update dispatchers documentation, add transient vars, ELPA Syncer, 2022/01/11
- [elpa] externals/orderless bc9e48216e 120/204: Add option for "smart case" matching, ELPA Syncer, 2022/01/11
- [elpa] externals/orderless 1f1e0380e2 122/204: Test for match before highlighting it, ELPA Syncer, 2022/01/11
- [elpa] externals/orderless 6b94b9abf8 124/204: Merge pull request #21 from wyuenho/patch-1, ELPA Syncer, 2022/01/11
- [elpa] externals/orderless 0826fd4eb4 130/204: Merge pull request #27 from vifon/master, ELPA Syncer, 2022/01/11
- [elpa] externals/orderless fc420e3d07 134/204: Minor readme tweak, ELPA Syncer, 2022/01/11
- [elpa] externals/orderless b600f88db0 144/204: Add orderless-define-completion-style macro, a new fix for #31, ELPA Syncer, 2022/01/11