summaryrefslogtreecommitdiff
path: root/orderless.el
AgeCommit message (Collapse)Author
2026-01-24Version 1.61.6Daniel Mendler
2026-01-04Use when-let*Daniel Mendler
2026-01-01; Update copyright yearsDaniel Mendler
2025-11-21orderless-compile, orderless-escapable-split-on-space: Preserve empty componentsDaniel Mendler
Fix #55 Only drop the last empty component. The new behavior has the following effects: 1. The first empty component is preserved and can be treated specifically as requested in #55. The assumption is that a separator at the beginning is intentional. (cdr (orderless-compile " ")) => ("") (cdr (orderless-compile " foo")) => ("" "foo") 2. Completely blank input will compile to an empty regexp list. This is important for completion command startup performance: (cdr (orderless-compile "")) => nil 3. When separating components, the last separator will not lead to an intermediate artificial empty component, as long as the user has not finished typing. For example the user types the words "foo bar": (cdr (orderless-compile "foo")) => ("foo") (cdr (orderless-compile "foo ")) => ("foo") (cdr (orderless-compile "foo bar")) => ("foo" "bar")
2025-09-22Use correct type for defcustomsDaniel Mendler
Orderless expects a list of functions but a hook is not simply that. A hook can also be a single function, or a list which includes the special value t to reference the default value of the hook.
2025-07-28Version 1.51.5Daniel Mendler
2025-03-16Version 1.41.4Daniel Mendler
2025-03-16Use keywords "matching" and "completion"Daniel Mendler
2025-02-02Relax the smart-case heuristic; Check the whole patternDaniel Mendler
By not only checking the compiled regexp, smart case is also toggled when matching on annotations, e.g., &Lv as in #184.
2025-01-01Update copyright yearsDaniel Mendler
2024-12-22Version 1.31.3Daniel Mendler
2024-09-26Use tag Website for group linkDaniel Mendler
2024-09-26Add group links, Use URL: keyword instead of deprecated Homepage:Daniel Mendler
2024-09-10Version 1.21.2Daniel Mendler
2024-09-05orderless-expand-prefix: Support the values `prefix`, `substring` and `nil`Daniel Mendler
Using `completion-substring-try-completion` can be costly in comparison to prefix completion only via `try-completion`, in particular in the context of timer-based auto completion. As a compromise, default to `prefix` completion only. Performance should not be affected, while expansion is still provided. Depending on preference the expansion setting can be escalated to `substring` or even disabled, in case the restrictive Orderless (non-)expansion behavior is preferred.
2024-09-05Add `orderless-expand-substring` for literal substring expansionDaniel Mendler
If the customization option `orderless-expand-substring` is set to t, `orderless-try-completion` first tries to treat the input as literal substring and tries to expand it. If literal substring expansion fails, Orderless falls back to its regular behavior, and checks if there exists a single unique match to expand to. The option `orderless-expand-substring` is effective in the default completion UI and Corfu when pressing TAB, but does not affect Vertico. It makes the transition to Orderless a little friendlier for users accustomed to the Emacs built-in `basic` and `substring` completion styles. As an alternative to `orderless-expand-substring` one could define an alternative completion style `tab` as follows. (add-to-list 'completion-styles-alist '(tab completion-substring-try-completion ignore "Completion style which provides only TAB completion.")) I've used this `tab` configuration style for a long time in my personal configuration, but the goal is to improve out of the box behavior of Orderless and related packages. The following two configurations are equivalent: ;; NEW: Use orderless-expand-substring (setq completion-styles '(orderless basic) orderless-expand-substring t) ;; OLD: Use the tab style from above. (setq completion-styles '(tab orderless basic) orderless-expand-substring nil)
2024-09-03Drop obsolete function aliasesDaniel Mendler
2024-07-17Use Compat 30Daniel Mendler
2024-07-11orderless-annotation: Match against both prefix and suffix (Fix #176)Daniel Mendler
2024-07-09Fix affixation matching problem in orderless-annotationDaniel Mendler
2024-06-06orderless-not, orderless-annotation: Respect smart-case (Fix #174)Daniel Mendler
2024-03-20Version 1.11.1Daniel Mendler
2024-03-20Add myself as co-maintainerDaniel Mendler
2024-03-12orderless-literal: Go back to regexp-quoteDaniel Mendler
Otherwise the duplicates created by the orderless-regexp and orderless-literal styles are not deleted.
2024-03-12orderless--literal-prefix-p: Pass START=2 to replace-regexp-in-stringDaniel Mendler
2024-03-12rx-to-string: Pass no-group argumentDaniel Mendler
2024-03-08Update copyright yearsDaniel Mendler
2024-03-08Use `orderless-escapable-split-on-space' as default component separatorDaniel Mendler
2024-03-08ReindentDaniel Mendler
2024-03-05Change default syntax for annotation matching to &Omar Antolin Camarena
The @ sign is used for several other thing like user names on many services which have Emacs clients, and is also used to add words to local dictionaries in Jinx.
2024-03-03Rename orderless--anchored-quoted-regexp to orderless--literal-prefix-pDaniel Mendler
Clarify the relation to orderless-literal-prefix.
2024-03-03Rename orderless-prefix to orderless-literal-prefix and registerDaniel Mendler
Avoid confusion with orderless-prefixes. Registering orderless-literal-prefix with the ^ character has a modest advantage - it makes sure that the prefix optimization sets in.
2024-03-03Fix orderless--anchored-quoted-regexp: Detect \` instead of ^Daniel Mendler
This makes a difference for multi-line candidates. Multi-line candidates are uncommon, but they exist, e.g., for read-from-kill-ring.
2024-03-03Fix orderless--metadata: Always return non-nil metadata inside minibufferDaniel Mendler
Otherwise completion-extra-properties may not be taken into account if the metadata returned by the completion table is nil.
2024-03-03Extract orderless--metadata helper functionDaniel Mendler
The helper function can be reused for other style modifiers, for example a style matching against the group title returned by the `group-function', which is also specified by the completion metadata.
2024-03-03Add orderless-prefix matching styleDaniel Mendler
This matching style is useful as a return value of a style dispatcher like orderless-affix-dispatch. It matches literals as a prefix and triggers the prefix filter optimization, see `orderless--anchored-quoted-regexp'.
2024-02-29orderless-affix-dispatch: Do not error on empty stringDaniel Mendler
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