summaryrefslogtreecommitdiff
path: root/orderless.el
AgeCommit message (Collapse)Author
2024-02-23Add orderless--match-p helperDaniel Mendler
2024-02-17Break long linesDaniel Mendler
2024-02-17orderless-compile: Expand docstringDaniel Mendler
2024-02-17Simplify orderless--compile-componentDaniel Mendler
2024-02-17Update commentary, recommend (setq completion-styles '(orderless basic))Daniel Mendler
2024-02-17Rename orderless-without to orderless-notDaniel Mendler
2024-02-17Turn orderless-annotation/without into a "pattern transformer"Daniel Mendler
orderless-annotation and orderless-without take a PRED and a REGEXP argument and turn it into a new predicate. This looks like a good solution. The complexity is pushed to orderless--compile-component and orderless-without is as simple as possible.
2024-02-17Alternative 2: Compile component before passing it to orderless-annotationDaniel Mendler
2024-02-16Alternative approach: Add COMPILE arg to orderless-annotation/withoutDaniel Mendler
This way the index and total are preserved even for the recursive matchers.
2024-02-16Add comment regarding the orderless--component-compiler callsDaniel Mendler
2024-02-16orderless--dispatch: Explicitly specify the argumentsDaniel Mendler
- The dispatchers have a fixed calling convention. - Explicitly specifying the arguments is both safer and more efficient.
2024-02-16Use orderless--dispatch in orderless--compile-componentDaniel Mendler
2024-02-16orderless-without: orderless--compile-component can return nilDaniel Mendler
2024-02-16Update documentation of orderless-style-dispatchersDaniel Mendler
2024-02-16orderless-affix-dispatch: Ignore single dispatcher characterDaniel Mendler
2024-02-16Rename orderless-pattern-compiler to orderless-compileDaniel Mendler
orderless-compile returns a predicate and a list of regexps. Keep orderless-pattern-compiler as obsolete function.
2024-02-16Rename orderless-dispatch to orderless--dispatchDaniel Mendler
The function is internal.
2024-02-16Add orderless--component-compiler and use it in orderless-without/annotationDaniel Mendler
2024-02-16orderless-pattern-compiler: Simplify slightly, remove variable predDaniel Mendler
2024-02-16Remove orderless--predicate-orOmar Antolín Camarena
This simplifies the semantics: all predicates are and-ed together.
2024-02-16Extend orderless-without-literal commentDaniel Mendler
2024-02-15orderless-annotation: Also check completion-extra-propertiesDaniel Mendler
2024-02-15orderless-annotation, orderless-without-regexp: Check validityDaniel Mendler
2024-02-15Pattern compiler: Compile to regexps and a predicate functionDaniel Mendler
Compiling to predicate functions makes it possible to implement a wide range of additional matching styles. Two of them are implemented here: - orderless-annotation: Match on candidate annotations with a regexp. - orderless-without-regexp: Exclude candidates matching a regexp (Fix #88). One could imagine creating additional matchers. Many completion category specific ideas had been mentioned in #30. A regexp could match against the content of a buffer or the buffer major mode. Such a matcher would only apply to the buffer completon category.
2024-02-15Document the new rx format for matching stylesOmar Antolín Camarena
2024-02-15Drop support for Emacs 26.1 because rx does not support (literal ...)Daniel Mendler
2024-02-15orderless-literal: Use (literal string) instead of regexp-quoteDaniel Mendler
2024-02-15Support rx sepxs as return values of matching style functionsDaniel Mendler
2024-02-15Revert "orderless-pattern-compiler: Create fewer intermediate data structures"Daniel Mendler
This reverts commit ebd2b841de857c568b547446a27ed9e58e1354eb.
2024-02-15orderless-try-completion: Use or instead of ifDaniel Mendler
2024-02-15orderless-pattern-compiler: Create fewer intermediate data structuresDaniel Mendler
2024-02-15Replace orderless--prefix+pattern by orderless--compileDaniel Mendler
Reduce code duplication.
2024-02-14Extract orderless--filterDaniel Mendler
Make sure that orderless-pattern-compiler is only called once per orderless-all-completions and orderless-try-completion.
2024-02-14Optimize orderless-try-completion predicate calling conventionDaniel Mendler
Only allocate a rest argument list if the predicate is used on hash table candidates.
2023-11-10Use hashed symbols everywhere for consistencyDaniel Mendler
2023-11-10Fix typo in defcustomDaniel Mendler
2023-11-10Avoid loading cl-lib at runtimeDaniel Mendler
Reduce the dependency footprint and load time. cl-lib is large and not used much at runtime in Orderless. In contrast, using cl-lib at compile time seems unavoidable given crucial features like cl-defun, cl-defstruct, cl-letf and cl-loop. Loading cl-lib at compile is a common pattern in many Emacs libs. See also this long thread on emacs-devel about the pros and cons of cl-lib: https://lists.gnu.org/archive/html/emacs-devel/2023-10/msg00731.html
2023-11-07Add support for completion-lazy-hilitDaniel Mendler
New protocol in upcoming Emacs 30
2023-10-25Work around inconsistency of `completion-table-with-context'Daniel Mendler
The function `completion-table-with-context' modifies the predicate such that the string arguments are prefixed. This behavior is inconsistent with the `completion-file-name-table', where the strings returned by `all-completions' are the same as the strings passed to the predicate. The behavior of `all-completions' seems more intuitive at first sight. This could be an unintended bug or oversight in `completion-table-with-context'. In `orderless-try-completion' we work around the inconsistency by checking if a prefix is already present in the string passed to the predicate. If not, the prefix is added. Fix #148
2023-10-25Remove obsolete variableDaniel Mendler
2023-09-19Fix wording in docstringjgart
2023-09-19Fix wording in docstringjgart
2023-02-03Deprecate orderless-skip-highlightingDaniel Mendler
2023-02-03Remove orderless-skip-highlightingDaniel Mendler
This variable was added to support Selectrum, which has been deprecated now. Vertico and Corfu use a different technique to implement deferred highlighting for the visible candidates only. There are no other users of this variable. The problem of deferred highlighting must be solved more generally by improving the completion styles API itself in minibuffer.el. It is therefore better to not provide this variable here.
2023-01-29Avoid length=Omar Antolín Camarena
For strings it makes no difference anyway.
2023-01-29Add a simple affix dispatcher, make it the default (fix #131)Omar Antolín Camarena
2022-12-25Release version 1.0!1.0Omar Antolín Camarena
2022-11-28Bump version number (fix #116)0.8Omar Antolín
2022-11-13Correct case-folding when highlighting matches (fix #127)Omar Antolín
Highlighting of matches should be done with the same case-folding that filtering is done with! This is perhaps most noticeable with orderless-smart-case on, but was previously incorrect with it off since filtering used completion-ignore-case and highlighting used case-fold-search!
2022-09-17Flex matching: more efficient regexp, better highlightingOmar Antolín
Fix #119 using @minad's suggestion.