Compare commits

..

No commits in common. "117b32f62f3a600c20f010f706fc7aa36f4ff490" and "8c5f54709b1ed37bbed4f0a56086b1d0f1f95ae3" have entirely different histories.

7 changed files with 288 additions and 316 deletions

View File

@ -24,19 +24,19 @@ additionally fontifies Dash macro calls.
See also `dash-fontify-mode-lighter' and See also `dash-fontify-mode-lighter' and
`global-dash-fontify-mode'. `global-dash-fontify-mode'.
This is a minor mode. If called interactively, toggle the `Dash-Fontify This is a minor mode. If called interactively, toggle the
mode' mode. If the prefix argument is positive, enable the mode, and if `Dash-Fontify mode' mode. If the prefix argument is positive,
it is zero or negative, disable the mode. enable the mode, and if it is zero or negative, disable the mode.
If called from Lisp, toggle the mode if ARG is `toggle'. Enable the If called from Lisp, toggle the mode if ARG is `toggle'. Enable
mode if ARG is nil, omitted, or is a positive number. Disable the mode the mode if ARG is nil, omitted, or is a positive number.
if ARG is a negative number. Disable the mode if ARG is a negative number.
To check whether the minor mode is enabled in the current buffer, To check whether the minor mode is enabled in the current buffer,
evaluate the variable `dash-fontify-mode'. evaluate `dash-fontify-mode'.
The mode's hook is called both when the mode is enabled and when it is The mode's hook is called both when the mode is enabled and when
disabled. it is disabled.
(fn &optional ARG)" t) (fn &optional ARG)" t)
(put 'global-dash-fontify-mode 'globalized-minor-mode t) (put 'global-dash-fontify-mode 'globalized-minor-mode t)
@ -65,6 +65,7 @@ See `dash-fontify-mode' for more information on Dash-Fontify mode.
Register the Dash Info manual with `info-lookup-symbol'. Register the Dash Info manual with `info-lookup-symbol'.
This allows Dash symbols to be looked up with \\[info-lookup-symbol]." t) This allows Dash symbols to be looked up with \\[info-lookup-symbol]." t)
(register-definition-prefixes "dash" '("!cdr" "!cons" "--" "->" "-a" "-butlast" "-c" "-d" "-e" "-f" "-gr" "-i" "-juxt" "-keep" "-l" "-m" "-no" "-o" "-p" "-r" "-s" "-t" "-u" "-value-to-list" "-when-let" "-zip" "dash-")) (register-definition-prefixes "dash" '("!cdr" "!cons" "--" "->" "-a" "-butlast" "-c" "-d" "-e" "-f" "-gr" "-i" "-juxt" "-keep" "-l" "-m" "-no" "-o" "-p" "-r" "-s" "-t" "-u" "-value-to-list" "-when-let" "-zip" "dash-"))
;;; End of scraped data ;;; End of scraped data

View File

@ -0,0 +1,14 @@
(define-package "dash" "20240510.1327" "A modern list library for Emacs"
'((emacs "24"))
:commit "1de9dcb83eacfb162b6d9a118a4770b1281bcd84" :authors
'(("Magnar Sveen" . "magnars@gmail.com"))
:maintainers
'(("Magnar Sveen" . "magnars@gmail.com"))
:maintainer
'("Magnar Sveen" . "magnars@gmail.com")
:keywords
'("extensions" "lisp")
:url "https://github.com/magnars/dash.el")
;; Local Variables:
;; no-byte-compile: t
;; End:

View File

@ -1,14 +1,12 @@
;;; dash.el --- A modern list library for Emacs -*- lexical-binding: t -*- ;;; dash.el --- A modern list library for Emacs -*- lexical-binding: t -*-
;; Copyright (C) 2012-2025 Free Software Foundation, Inc. ;; Copyright (C) 2012-2024 Free Software Foundation, Inc.
;; Author: Magnar Sveen <magnars@gmail.com> ;; Author: Magnar Sveen <magnars@gmail.com>
;; Maintainer: Basil L. Contovounesios <basil@contovou.net> ;; Version: 2.19.1
;; Package-Version: 20250312.1307
;; Package-Revision: fcb5d831fc08
;; Package-Requires: ((emacs "24")) ;; Package-Requires: ((emacs "24"))
;; Keywords: extensions, lisp ;; Keywords: extensions, lisp
;; URL: https://github.com/magnars/dash.el ;; Homepage: https://github.com/magnars/dash.el
;; This program is free software: you can redistribute it and/or modify ;; This program is free software: you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by ;; it under the terms of the GNU General Public License as published by
@ -32,15 +30,6 @@
;;; Code: ;;; Code:
(eval-when-compile (eval-when-compile
(unless (fboundp 'static-if)
(defmacro static-if (condition then-form &rest else-forms)
"Expand to THEN-FORM or ELSE-FORMS based on compile-time CONDITION.
Polyfill for Emacs 30 `static-if'."
(declare (debug (sexp sexp &rest sexp)) (indent 2))
(if (eval condition lexical-binding)
then-form
(cons 'progn else-forms))))
;; TODO: Emacs 24.3 first introduced `gv', so remove this and all ;; TODO: Emacs 24.3 first introduced `gv', so remove this and all
;; calls to `defsetf' when support for earlier versions is dropped. ;; calls to `defsetf' when support for earlier versions is dropped.
(unless (fboundp 'gv-define-setter) (unless (fboundp 'gv-define-setter)
@ -795,24 +784,19 @@ See also: `-flatten'"
list) list)
(defalias '-concat #'append (defalias '-concat #'append
"Concatenate all SEQUENCES and make the result a list. "Concatenate all the arguments and make the result a list.
The result is a list whose elements are the elements of all the arguments. The result is a list whose elements are the elements of all the arguments.
Each argument may be a list, vector or string. Each argument may be a list, vector or string.
All arguments except the last argument are copied. The last argument All arguments except the last argument are copied. The last argument
is just used as the tail of the new list. If the last argument is not is just used as the tail of the new list.
a list, this results in a dotted list.
As an exception, if all the arguments except the last are nil, and the
last argument is not a list, the return value is that last argument
unaltered, not a list.
\(fn &rest SEQUENCES)") \(fn &rest SEQUENCES)")
(defalias '-copy #'copy-sequence (defalias '-copy #'copy-sequence
"Create a shallow copy of LIST. "Create a shallow copy of LIST.
The elements of LIST are not copied; they are shared with the original.
\n(fn LIST)") \(fn LIST)")
(defmacro --splice (pred form list) (defmacro --splice (pred form list)
"Splice lists generated by FORM in place of items satisfying PRED in LIST. "Splice lists generated by FORM in place of items satisfying PRED in LIST.
@ -1052,9 +1036,13 @@ See also: `-first-item', etc."
(declare (pure t) (side-effect-free t)) (declare (pure t) (side-effect-free t))
(car (last list))) (car (last list)))
(static-if (fboundp 'gv-define-setter) ;; Use `with-no-warnings' to suppress unbound `-last-item' or
(gv-define-setter -last-item (val x) `(setcar (last ,x) ,val)) ;; undefined `gv--defsetter' warnings arising from both
(defsetf -last-item (x) (val) `(setcar (last ,x) ,val))) ;; `gv-define-setter' and `defsetf' in certain Emacs versions.
(with-no-warnings
(if (fboundp 'gv-define-setter)
(gv-define-setter -last-item (val x) `(setcar (last ,x) ,val))
(defsetf -last-item (x) (val) `(setcar (last ,x) ,val))))
(defun -butlast (list) (defun -butlast (list)
"Return a list of all items in list except for the last." "Return a list of all items in list except for the last."
@ -1253,17 +1241,6 @@ For another variant, see also `-take-while'."
(declare (important-return-value t)) (declare (important-return-value t))
(--drop-while (funcall pred it) list)) (--drop-while (funcall pred it) list))
;; Added in Emacs 29.
(static-if (fboundp 'take)
(defun dash--take (n list)
"Return the first N elements of LIST.
Like `take', but ensure result is fresh."
(let ((prefix (take n list)))
(if (eq prefix list)
;; If same list is returned, make a copy.
(copy-sequence prefix)
prefix))))
(defun -take (n list) (defun -take (n list)
"Return a copy of the first N items in LIST. "Return a copy of the first N items in LIST.
Return a copy of LIST if it contains N items or fewer. Return a copy of LIST if it contains N items or fewer.
@ -1271,9 +1248,7 @@ Return nil if N is zero or less.
See also: `-take-last'." See also: `-take-last'."
(declare (side-effect-free t)) (declare (side-effect-free t))
(static-if (fboundp 'dash--take) (--take-while (< it-index n) list))
(dash--take n list)
(--take-while (< it-index n) list)))
(defun -take-last (n list) (defun -take-last (n list)
"Return a copy of the last N items of LIST in order. "Return a copy of the last N items of LIST in order.
@ -1299,9 +1274,7 @@ Return nil if LIST contains N items or fewer.
See also: `-drop'." See also: `-drop'."
(declare (side-effect-free t)) (declare (side-effect-free t))
(static-if (fboundp 'dash--take) (nbutlast (copy-sequence list) n))
(dash--take (- (length list) n) list)
(nbutlast (copy-sequence list) n)))
(defun -split-at (n list) (defun -split-at (n list)
"Split LIST into two sublists after the Nth element. "Split LIST into two sublists after the Nth element.
@ -2467,7 +2440,7 @@ Similar to &hash but check whether the map is not nil."
`(let ((,src ,source)) `(let ((,src ,source))
(when ,src (gethash ,key ,src))))) (when ,src (gethash ,key ,src)))))
(defalias 'dash-expand:&keys #'dash-expand:&plist) (defalias 'dash-expand:&keys 'dash-expand:&plist)
(defun dash--match-kv-1 (match-form source type) (defun dash--match-kv-1 (match-form source type)
"Match MATCH-FORM against SOURCE of type TYPE. "Match MATCH-FORM against SOURCE of type TYPE.
@ -2928,14 +2901,16 @@ example:
(let ((cmp -compare-fn)) (let ((cmp -compare-fn))
(cond ((memq cmp '(nil equal)) #'assoc) (cond ((memq cmp '(nil equal)) #'assoc)
((eq cmp #'eq) #'assq) ((eq cmp #'eq) #'assq)
((lambda (key alist) ;; Since Emacs 26, `assoc' accepts a custom `testfn'.
;; Since Emacs 26, `assoc' accepts a custom `testfn'. ;; Version testing would be simpler here, but feature
;; Version testing would be simpler here, but feature ;; testing gets more brownie points, I guess.
;; testing gets more brownie points, I guess. ((condition-case nil
(static-if (condition-case nil (with-no-warnings (assoc nil () #'eql))
(assoc nil () #'eql) (wrong-number-of-arguments t))
(wrong-number-of-arguments t)) (lambda (key alist)
(--first (and (consp it) (funcall cmp (car it) key)) alist) (--first (and (consp it) (funcall cmp (car it) key)) alist)))
((with-no-warnings
(lambda (key alist)
(assoc key alist cmp))))))) (assoc key alist cmp)))))))
(defun dash--hash-test-fn () (defun dash--hash-test-fn ()
@ -3323,10 +3298,9 @@ Return the sorted list. LIST is NOT modified by side effects.
COMPARATOR is called with two elements of LIST, and should return non-nil COMPARATOR is called with two elements of LIST, and should return non-nil
if the first element should sort before the second." if the first element should sort before the second."
(declare (important-return-value t)) (declare (important-return-value t))
(static-if (condition-case nil (sort []) (wrong-number-of-arguments)) ;; Not yet worth changing to (sort list :lessp comparator);
;; Since Emacs 30. ;; still seems as fast or slightly faster.
(sort list :lessp comparator) (sort (copy-sequence list) comparator))
(sort (copy-sequence list) comparator)))
(defmacro --sort (form list) (defmacro --sort (form list)
"Anaphoric form of `-sort'." "Anaphoric form of `-sort'."
@ -3661,13 +3635,7 @@ structure such as plist or alist."
;;; Combinators ;;; Combinators
(defalias '-partial #'apply-partially (defalias '-partial #'apply-partially)
"Return a function that is a partial application of FUN to ARGS.
ARGS is a list of the first N arguments to pass to FUN.
The result is a new function which does the same as FUN, except that
the first N arguments are fixed at the values with which this function
was called.
\n(fn FUN &rest ARGS)")
(defun -rpartial (fn &rest args) (defun -rpartial (fn &rest args)
"Return a function that is a partial application of FN to ARGS. "Return a function that is a partial application of FN to ARGS.
@ -3833,9 +3801,11 @@ See also: `-orfn' and `-not'."
;; Open-code for speed. ;; Open-code for speed.
(cond ((cdr preds) (lambda (&rest args) (--every (apply it args) preds))) (cond ((cdr preds) (lambda (&rest args) (--every (apply it args) preds)))
(preds (car preds)) (preds (car preds))
((static-if (fboundp 'always) ;; As a `pure' function, this runtime check may generate
#'always ;; backward-incompatible bytecode for `(-andfn)' at compile-time,
(lambda (&rest _) t))))) ;; but I doubt that's a problem in practice (famous last words).
((fboundp 'always) #'always)
((lambda (&rest _) t))))
(defun -iteratefn (fn n) (defun -iteratefn (fn n)
"Return a function FN composed N times with itself. "Return a function FN composed N times with itself.
@ -3955,13 +3925,13 @@ This function satisfies the following laws:
`(;; TODO: Do not fontify the following automatic variables `(;; TODO: Do not fontify the following automatic variables
;; globally; detect and limit to their local anaphoric scope. ;; globally; detect and limit to their local anaphoric scope.
(,(rx symbol-start (| "acc" "it" "it-index" "other") symbol-end) (,(rx symbol-start (| "acc" "it" "it-index" "other") symbol-end)
. 'font-lock-variable-name-face) 0 font-lock-variable-name-face)
;; Macros in dev/examples.el. Based on `lisp-mode-symbol-regexp'. ;; Macros in dev/examples.el. Based on `lisp-mode-symbol-regexp'.
(,(rx ?\( (group (| "defexamples" "def-example-group")) symbol-end (,(rx ?\( (group (| "defexamples" "def-example-group")) symbol-end
(+ (in "\t ")) (+ (in "\t "))
(group (* (| (syntax word) (syntax symbol) (: ?\\ nonl))))) (group (* (| (syntax word) (syntax symbol) (: ?\\ nonl)))))
(1 'font-lock-keyword-face) (1 font-lock-keyword-face)
(2 'font-lock-function-name-face)) (2 font-lock-function-name-face))
;; Symbols in dev/examples.el. ;; Symbols in dev/examples.el.
,(rx symbol-start (| "=>" "~>" "!!>") symbol-end) ,(rx symbol-start (| "=>" "~>" "!!>") symbol-end)
;; Elisp macro fontification was static prior to Emacs 25. ;; Elisp macro fontification was static prior to Emacs 25.
@ -4097,14 +4067,15 @@ See also `dash-fontify-mode-lighter' and
(if dash-fontify-mode (if dash-fontify-mode
(font-lock-add-keywords nil dash--keywords t) (font-lock-add-keywords nil dash--keywords t)
(font-lock-remove-keywords nil dash--keywords)) (font-lock-remove-keywords nil dash--keywords))
(static-if (fboundp 'font-lock-flush) (cond ((fboundp 'font-lock-flush) ;; Added in Emacs 25.
;; Added in Emacs 25. (font-lock-flush))
(font-lock-flush) ;; `font-lock-fontify-buffer' unconditionally enables
(when font-lock-mode ;; `font-lock-mode' and is marked `interactive-only' in later
;; Unconditionally enables `font-lock-mode' and is marked ;; Emacs versions which have `font-lock-flush', so we guard
;; `interactive-only' in later Emacs versions which have ;; and pacify as needed, respectively.
;; `font-lock-flush'. (font-lock-mode
(font-lock-fontify-buffer)))) (with-no-warnings
(font-lock-fontify-buffer)))))
(defun dash--turn-on-fontify-mode () (defun dash--turn-on-fontify-mode ()
"Enable `dash-fontify-mode' if in an Emacs Lisp buffer." "Enable `dash-fontify-mode' if in an Emacs Lisp buffer."

View File

@ -1,8 +1,8 @@
This is dash.info, produced by makeinfo version 6.8 from dash.texi. This is dash.info, produced by makeinfo version 6.7 from dash.texi.
This manual is for Dash version 2.20.0. This manual is for Dash version 2.19.1.
Copyright © 20122025 Free Software Foundation, Inc. Copyright © 20122024 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License, document under the terms of the GNU Free Documentation License,
@ -22,9 +22,9 @@ File: dash.info, Node: Top, Next: Installation, Up: (dir)
Dash Dash
**** ****
This manual is for Dash version 2.20.0. This manual is for Dash version 2.19.1.
Copyright © 20122025 Free Software Foundation, Inc. Copyright © 20122024 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License, document under the terms of the GNU Free Documentation License,
@ -110,7 +110,7 @@ File: dash.info, Node: Using in a package, Next: Fontification of special vari
If you use Dash in your own package, be sure to list it as a dependency If you use Dash in your own package, be sure to list it as a dependency
in the librarys headers as follows (*note (elisp)Library Headers::). in the librarys headers as follows (*note (elisp)Library Headers::).
;; Package-Requires: ((dash "2.20.0")) ;; Package-Requires: ((dash "2.19.1"))
 
File: dash.info, Node: Fontification of special variables, Next: Info symbol lookup, Prev: Using in a package, Up: Installation File: dash.info, Node: Fontification of special variables, Next: Info symbol lookup, Prev: Using in a package, Up: Installation
@ -353,8 +353,7 @@ The results are collected in order and returned as a new list.
⇒ (0 1 0 2 0 3) ⇒ (0 1 0 2 0 3)
-- Function: -copy (list) -- Function: -copy (list)
Create a shallow copy of LIST. The elements of LIST are not Create a shallow copy of LIST.
copied; they are shared with the original.
(-copy '(1 2 3)) (-copy '(1 2 3))
⇒ (1 2 3) ⇒ (1 2 3)
@ -640,17 +639,12 @@ Functions returning a modified copy of the input list.
⇒ (40 50 60) ⇒ (40 50 60)
-- Function: -concat (&rest sequences) -- Function: -concat (&rest sequences)
Concatenate all SEQUENCES and make the result a list. The result Concatenate all the arguments and make the result a list. The
is a list whose elements are the elements of all the arguments. result is a list whose elements are the elements of all the
Each argument may be a list, vector or string. arguments. Each argument may be a list, vector or string.
All arguments except the last argument are copied. The last All arguments except the last argument are copied. The last
argument is just used as the tail of the new list. If the last argument is just used as the tail of the new list.
argument is not a list, this results in a dotted list.
As an exception, if all the arguments except the last are nil,
and the last argument is not a list, the return value is that last
argument unaltered, not a list.
(-concat '(1)) (-concat '(1))
⇒ (1) ⇒ (1)
@ -4560,8 +4554,8 @@ Index
(line 445) (line 445)
* -fixfn: Function combinators. * -fixfn: Function combinators.
(line 224) (line 224)
* -flatten: List to list. (line 43) * -flatten: List to list. (line 38)
* -flatten-n: List to list. (line 65) * -flatten-n: List to list. (line 60)
* -flip: Function combinators. * -flip: Function combinators.
(line 95) (line 95)
* -fourth-item: Other list operations. * -fourth-item: Other list operations.
@ -4573,7 +4567,7 @@ Index
* -if-let: Binding. (line 34) * -if-let: Binding. (line 34)
* -if-let*: Binding. (line 45) * -if-let*: Binding. (line 45)
* -inits: Reductions. (line 222) * -inits: Reductions. (line 222)
* -insert-at: List to list. (line 119) * -insert-at: List to list. (line 114)
* -interleave: Other list operations. * -interleave: Other list operations.
(line 56) (line 56)
* -interpose: Other list operations. * -interpose: Other list operations.
@ -4646,16 +4640,16 @@ Index
* -reductions-r: Reductions. (line 154) * -reductions-r: Reductions. (line 154)
* -reductions-r-from: Reductions. (line 118) * -reductions-r-from: Reductions. (line 118)
* -remove: Sublist selection. (line 26) * -remove: Sublist selection. (line 26)
* -remove-at: List to list. (line 156) * -remove-at: List to list. (line 151)
* -remove-at-indices: List to list. (line 175) * -remove-at-indices: List to list. (line 170)
* -remove-first: Sublist selection. (line 44) * -remove-first: Sublist selection. (line 44)
* -remove-item: Sublist selection. (line 84) * -remove-item: Sublist selection. (line 84)
* -remove-last: Sublist selection. (line 65) * -remove-last: Sublist selection. (line 65)
* -repeat: Unfolding. (line 44) * -repeat: Unfolding. (line 44)
* -replace: List to list. (line 77) * -replace: List to list. (line 72)
* -replace-at: List to list. (line 130) * -replace-at: List to list. (line 125)
* -replace-first: List to list. (line 91) * -replace-first: List to list. (line 86)
* -replace-last: List to list. (line 105) * -replace-last: List to list. (line 100)
* -rotate: Other list operations. * -rotate: Other list operations.
(line 8) (line 8)
* -rotate-args: Function combinators. * -rotate-args: Function combinators.
@ -4711,7 +4705,7 @@ Index
(line 215) (line 215)
* -unzip-lists: Other list operations. * -unzip-lists: Other list operations.
(line 196) (line 196)
* -update-at: List to list. (line 142) * -update-at: List to list. (line 137)
* -when-let: Binding. (line 9) * -when-let: Binding. (line 9)
* -when-let*: Binding. (line 21) * -when-let*: Binding. (line 21)
* -zip: Other list operations. * -zip: Other list operations.
@ -4752,199 +4746,199 @@ Ref: -splice10080
Ref: -splice-list11155 Ref: -splice-list11155
Ref: -mapcat11614 Ref: -mapcat11614
Ref: -copy11987 Ref: -copy11987
Node: Sublist selection12253 Node: Sublist selection12175
Ref: -filter12446 Ref: -filter12368
Ref: -remove12999 Ref: -remove12921
Ref: -remove-first13548 Ref: -remove-first13470
Ref: -remove-last14396 Ref: -remove-last14318
Ref: -remove-item15126 Ref: -remove-item15048
Ref: -non-nil15526 Ref: -non-nil15448
Ref: -slice15808 Ref: -slice15730
Ref: -take16337 Ref: -take16259
Ref: -take-last16755 Ref: -take-last16677
Ref: -drop17192 Ref: -drop17114
Ref: -drop-last17639 Ref: -drop-last17561
Ref: -take-while18071 Ref: -take-while17993
Ref: -drop-while18698 Ref: -drop-while18620
Ref: -select-by-indices19331 Ref: -select-by-indices19253
Ref: -select-columns19842 Ref: -select-columns19764
Ref: -select-column20545 Ref: -select-column20467
Node: List to list21008 Node: List to list20930
Ref: -keep21200 Ref: -keep21122
Ref: -concat21776 Ref: -concat21698
Ref: -flatten22556 Ref: -flatten22226
Ref: -flatten-n23318 Ref: -flatten-n22988
Ref: -replace23702 Ref: -replace23372
Ref: -replace-first24163 Ref: -replace-first23833
Ref: -replace-last24658 Ref: -replace-last24328
Ref: -insert-at25146 Ref: -insert-at24816
Ref: -replace-at25471 Ref: -replace-at25141
Ref: -update-at25858 Ref: -update-at25528
Ref: -remove-at26399 Ref: -remove-at26069
Ref: -remove-at-indices27026 Ref: -remove-at-indices26696
Node: Reductions27716 Node: Reductions27386
Ref: -reduce-from27912 Ref: -reduce-from27582
Ref: -reduce-r-from28636 Ref: -reduce-r-from28306
Ref: -reduce29899 Ref: -reduce29569
Ref: -reduce-r30650 Ref: -reduce-r30320
Ref: -reductions-from31928 Ref: -reductions-from31598
Ref: -reductions-r-from32734 Ref: -reductions-r-from32404
Ref: -reductions33564 Ref: -reductions33234
Ref: -reductions-r34275 Ref: -reductions-r33945
Ref: -count35020 Ref: -count34690
Ref: -sum35250 Ref: -sum34920
Ref: -running-sum35438 Ref: -running-sum35108
Ref: -product35759 Ref: -product35429
Ref: -running-product35967 Ref: -running-product35637
Ref: -inits36308 Ref: -inits35978
Ref: -tails36553 Ref: -tails36223
Ref: -common-prefix36798 Ref: -common-prefix36468
Ref: -common-suffix37092 Ref: -common-suffix36762
Ref: -min37386 Ref: -min37056
Ref: -min-by37612 Ref: -min-by37282
Ref: -max38133 Ref: -max37803
Ref: -max-by38358 Ref: -max-by38028
Ref: -frequencies38884 Ref: -frequencies38554
Node: Unfolding39499 Node: Unfolding39169
Ref: -iterate39740 Ref: -iterate39410
Ref: -unfold40187 Ref: -unfold39857
Ref: -repeat40992 Ref: -repeat40662
Ref: -cycle41276 Ref: -cycle40946
Node: Predicates41673 Node: Predicates41343
Ref: -some41850 Ref: -some41520
Ref: -every42279 Ref: -every41949
Ref: -any?42993 Ref: -any?42663
Ref: -all?43342 Ref: -all?43012
Ref: -none?44084 Ref: -none?43754
Ref: -only-some?44404 Ref: -only-some?44074
Ref: -contains?44949 Ref: -contains?44619
Ref: -is-prefix?45455 Ref: -is-prefix?45125
Ref: -is-suffix?45787 Ref: -is-suffix?45457
Ref: -is-infix?46119 Ref: -is-infix?45789
Ref: -cons-pair?46479 Ref: -cons-pair?46149
Node: Partitioning46810 Node: Partitioning46480
Ref: -split-at46998 Ref: -split-at46668
Ref: -split-with47662 Ref: -split-with47332
Ref: -split-on48302 Ref: -split-on47972
Ref: -split-when48973 Ref: -split-when48643
Ref: -separate49616 Ref: -separate49286
Ref: -partition50150 Ref: -partition49820
Ref: -partition-all50599 Ref: -partition-all50269
Ref: -partition-in-steps51024 Ref: -partition-in-steps50694
Ref: -partition-all-in-steps51570 Ref: -partition-all-in-steps51240
Ref: -partition-by52084 Ref: -partition-by51754
Ref: -partition-by-header52462 Ref: -partition-by-header52132
Ref: -partition-after-pred53063 Ref: -partition-after-pred52733
Ref: -partition-before-pred53516 Ref: -partition-before-pred53186
Ref: -partition-before-item53901 Ref: -partition-before-item53571
Ref: -partition-after-item54208 Ref: -partition-after-item53878
Ref: -group-by54510 Ref: -group-by54180
Node: Indexing54943 Node: Indexing54613
Ref: -elem-index55145 Ref: -elem-index54815
Ref: -elem-indices55632 Ref: -elem-indices55302
Ref: -find-index56091 Ref: -find-index55761
Ref: -find-last-index56760 Ref: -find-last-index56430
Ref: -find-indices57411 Ref: -find-indices57081
Ref: -grade-up58173 Ref: -grade-up57843
Ref: -grade-down58580 Ref: -grade-down58250
Node: Set operations58994 Node: Set operations58664
Ref: -union59177 Ref: -union58847
Ref: -difference59607 Ref: -difference59277
Ref: -intersection60035 Ref: -intersection59705
Ref: -powerset60464 Ref: -powerset60134
Ref: -permutations60741 Ref: -permutations60411
Ref: -distinct61179 Ref: -distinct60849
Ref: -same-items?61573 Ref: -same-items?61243
Node: Other list operations62182 Node: Other list operations61852
Ref: -rotate62407 Ref: -rotate62077
Ref: -cons*62760 Ref: -cons*62430
Ref: -snoc63182 Ref: -snoc62852
Ref: -interpose63594 Ref: -interpose63264
Ref: -interleave63888 Ref: -interleave63558
Ref: -iota64254 Ref: -iota63924
Ref: -zip-with64737 Ref: -zip-with64407
Ref: -zip-pair65545 Ref: -zip-pair65215
Ref: -zip-lists66111 Ref: -zip-lists65781
Ref: -zip-lists-fill66909 Ref: -zip-lists-fill66579
Ref: -zip67619 Ref: -zip67289
Ref: -zip-fill68646 Ref: -zip-fill68316
Ref: -unzip-lists69560 Ref: -unzip-lists69230
Ref: -unzip70183 Ref: -unzip69853
Ref: -pad71176 Ref: -pad70846
Ref: -table71661 Ref: -table71331
Ref: -table-flat72447 Ref: -table-flat72117
Ref: -first73452 Ref: -first73122
Ref: -last73985 Ref: -last73655
Ref: -first-item74331 Ref: -first-item74001
Ref: -second-item74743 Ref: -second-item74413
Ref: -third-item75160 Ref: -third-item74830
Ref: -fourth-item75535 Ref: -fourth-item75205
Ref: -fifth-item75913 Ref: -fifth-item75583
Ref: -last-item76288 Ref: -last-item75958
Ref: -butlast76649 Ref: -butlast76319
Ref: -sort76894 Ref: -sort76564
Ref: -list77388 Ref: -list77058
Ref: -fix77957 Ref: -fix77627
Node: Tree operations78446 Node: Tree operations78116
Ref: -tree-seq78642 Ref: -tree-seq78312
Ref: -tree-map79503 Ref: -tree-map79173
Ref: -tree-map-nodes79943 Ref: -tree-map-nodes79613
Ref: -tree-reduce80807 Ref: -tree-reduce80477
Ref: -tree-reduce-from81689 Ref: -tree-reduce-from81359
Ref: -tree-mapreduce82289 Ref: -tree-mapreduce81959
Ref: -tree-mapreduce-from83148 Ref: -tree-mapreduce-from82818
Ref: -clone84433 Ref: -clone84103
Node: Threading macros84771 Node: Threading macros84441
Ref: ->84996 Ref: ->84666
Ref: ->>85484 Ref: ->>85154
Ref: -->85987 Ref: -->85657
Ref: -as->86544 Ref: -as->86214
Ref: -some->86998 Ref: -some->86668
Ref: -some->>87383 Ref: -some->>87053
Ref: -some-->87830 Ref: -some-->87500
Ref: -doto88397 Ref: -doto88067
Node: Binding88950 Node: Binding88620
Ref: -when-let89157 Ref: -when-let88827
Ref: -when-let*89618 Ref: -when-let*89288
Ref: -if-let90147 Ref: -if-let89817
Ref: -if-let*90513 Ref: -if-let*90183
Ref: -let91136 Ref: -let90806
Ref: -let*97226 Ref: -let*96896
Ref: -lambda98163 Ref: -lambda97833
Ref: -setq98969 Ref: -setq98639
Node: Side effects99770 Node: Side effects99440
Ref: -each99964 Ref: -each99634
Ref: -each-while100491 Ref: -each-while100161
Ref: -each-indexed101111 Ref: -each-indexed100781
Ref: -each-r101703 Ref: -each-r101373
Ref: -each-r-while102145 Ref: -each-r-while101815
Ref: -dotimes102789 Ref: -dotimes102459
Node: Destructive operations103342 Node: Destructive operations103012
Ref: !cons103560 Ref: !cons103230
Ref: !cdr103764 Ref: !cdr103434
Node: Function combinators103957 Node: Function combinators103627
Ref: -partial104161 Ref: -partial103831
Ref: -rpartial104679 Ref: -rpartial104349
Ref: -juxt105327 Ref: -juxt104997
Ref: -compose105779 Ref: -compose105449
Ref: -applify106386 Ref: -applify106056
Ref: -on106816 Ref: -on106486
Ref: -flip107588 Ref: -flip107258
Ref: -rotate-args108112 Ref: -rotate-args107782
Ref: -const108741 Ref: -const108411
Ref: -cut109083 Ref: -cut108753
Ref: -not109563 Ref: -not109233
Ref: -orfn110107 Ref: -orfn109777
Ref: -andfn110900 Ref: -andfn110570
Ref: -iteratefn111687 Ref: -iteratefn111357
Ref: -fixfn112389 Ref: -fixfn112059
Ref: -prodfn113963 Ref: -prodfn113633
Node: Development115114 Node: Development114784
Node: Contribute115403 Node: Contribute115073
Node: Contributors116415 Node: Contributors116085
Node: FDL118508 Node: FDL118178
Node: GPL143828 Node: GPL143498
Node: Index181577 Node: Index181247
 
End Tag Table End Tag Table

View File

@ -1,10 +0,0 @@
;; -*- no-byte-compile: t; lexical-binding: nil -*-
(define-package "dash" "20250312.1307"
"A modern list library for Emacs."
'((emacs "24"))
:url "https://github.com/magnars/dash.el"
:commit "fcb5d831fc08a43f984242c7509870f30983c27c"
:revdesc "fcb5d831fc08"
:keywords '("extensions" "lisp")
:authors '(("Magnar Sveen" . "magnars@gmail.com"))
:maintainers '(("Basil L. Contovounesios" . "basil@contovou.net")))

View File

@ -2511,6 +2511,8 @@ eventuelly be set to nil, however)."
helm-source-bookmarks helm-source-bookmarks
(helm-make-source "Buffers" 'helm-source-buffers)
;; If no prefix arg is given, extract files from ;; If no prefix arg is given, extract files from
;; `db/important-documents-path and list them as well ;; `db/important-documents-path and list them as well
(when (and (not arg) (when (and (not arg)