Pin essential packages to melpa-stable
This commit is contained in:
parent
9671ff68de
commit
42ef36f836
|
@ -8,15 +8,14 @@
|
||||||
/ebackup/
|
/ebackup/
|
||||||
/el-get/
|
/el-get/
|
||||||
/elpa/*
|
/elpa/*
|
||||||
!/elpa/diminish-20*
|
!/elpa/diminish-*
|
||||||
!/elpa/bind-key-20*
|
!/elpa/bind-key-*
|
||||||
!/elpa/use-package-20*
|
!/elpa/use-package-*
|
||||||
!/elpa/dash-20*
|
!/elpa/dash-*
|
||||||
!/elpa/hydra-20*
|
!/elpa/hydra-*
|
||||||
!/elpa/page-break-lines-20*
|
!/elpa/page-break-lines-*
|
||||||
!/elpa/multiple-cursors-20*
|
!/elpa/exec-path-from-shell-*
|
||||||
!/elpa/exec-path-from-shell-20*
|
!/elpa/lv-*
|
||||||
!/elpa/lv-20*
|
|
||||||
/emms/
|
/emms/
|
||||||
/eshell/history
|
/eshell/history
|
||||||
/eshell/lastdir
|
/eshell/lastdir
|
||||||
|
|
|
@ -1,10 +1,12 @@
|
||||||
;;; bind-key-autoloads.el --- automatically extracted autoloads
|
;;; bind-key-autoloads.el --- automatically extracted autoloads
|
||||||
;;
|
;;
|
||||||
;;; Code:
|
;;; Code:
|
||||||
(add-to-list 'load-path (directory-file-name (or (file-name-directory #$) (car load-path))))
|
|
||||||
|
(add-to-list 'load-path (directory-file-name
|
||||||
|
(or (file-name-directory #$) (car load-path))))
|
||||||
|
|
||||||
|
|
||||||
;;;### (autoloads nil "bind-key" "bind-key.el" (23441 26626 910934
|
;;;### (autoloads nil "bind-key" "bind-key.el" (0 0 0 0))
|
||||||
;;;;;; 47000))
|
|
||||||
;;; Generated autoloads from bind-key.el
|
;;; Generated autoloads from bind-key.el
|
||||||
|
|
||||||
(autoload 'bind-key "bind-key" "\
|
(autoload 'bind-key "bind-key" "\
|
||||||
|
@ -69,11 +71,14 @@ Display all the personal keybindings defined by `bind-key'.
|
||||||
|
|
||||||
\(fn)" t nil)
|
\(fn)" t nil)
|
||||||
|
|
||||||
|
(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "bind-key" '("compare-keybindings" "get-binding-description" "bind-key" "personal-keybindings" "override-global-m")))
|
||||||
|
|
||||||
;;;***
|
;;;***
|
||||||
|
|
||||||
;; Local Variables:
|
;; Local Variables:
|
||||||
;; version-control: never
|
;; version-control: never
|
||||||
;; no-byte-compile: t
|
;; no-byte-compile: t
|
||||||
;; no-update-autoloads: t
|
;; no-update-autoloads: t
|
||||||
|
;; coding: utf-8
|
||||||
;; End:
|
;; End:
|
||||||
;;; bind-key-autoloads.el ends here
|
;;; bind-key-autoloads.el ends here
|
|
@ -0,0 +1,2 @@
|
||||||
|
;;; -*- no-byte-compile: t -*-
|
||||||
|
(define-package "bind-key" "2.4" "A simple way to manage personal keybindings" 'nil :commit "39a8b8812c2c9f6f0b299e6a04e504ef393694ce" :keywords '("keys" "keybinding" "config" "dotemacs") :authors '(("John Wiegley" . "johnw@newartisans.com")) :maintainer '("John Wiegley" . "johnw@newartisans.com") :url "https://github.com/jwiegley/use-package")
|
|
@ -7,7 +7,7 @@
|
||||||
;; Created: 16 Jun 2012
|
;; Created: 16 Jun 2012
|
||||||
;; Modified: 29 Nov 2017
|
;; Modified: 29 Nov 2017
|
||||||
;; Version: 2.4
|
;; Version: 2.4
|
||||||
;; Package-Version: 20180513.430
|
;; Package-Version: 2.4
|
||||||
;; Keywords: keys keybinding config dotemacs
|
;; Keywords: keys keybinding config dotemacs
|
||||||
;; URL: https://github.com/jwiegley/use-package
|
;; URL: https://github.com/jwiegley/use-package
|
||||||
|
|
|
@ -1,2 +0,0 @@
|
||||||
;;; -*- no-byte-compile: t -*-
|
|
||||||
(define-package "bind-key" "20180513.430" "A simple way to manage personal keybindings" 'nil :commit "3fb8f39f5901a4c0ef7887283e56e60b541675ea" :keywords '("keys" "keybinding" "config" "dotemacs") :authors '(("John Wiegley" . "johnw@newartisans.com")) :maintainer '("John Wiegley" . "johnw@newartisans.com") :url "https://github.com/jwiegley/use-package")
|
|
|
@ -0,0 +1,70 @@
|
||||||
|
If you have lots of keybindings set in your .emacs file, it can be hard to
|
||||||
|
know which ones you haven't set yet, and which may now be overriding some
|
||||||
|
new default in a new emacs version. This module aims to solve that
|
||||||
|
problem.
|
||||||
|
|
||||||
|
Bind keys as follows in your .emacs:
|
||||||
|
|
||||||
|
(require 'bind-key)
|
||||||
|
|
||||||
|
(bind-key "C-c x" 'my-ctrl-c-x-command)
|
||||||
|
|
||||||
|
If the keybinding argument is a vector, it is passed straight to
|
||||||
|
`define-key', so remapping a key with `[remap COMMAND]' works as
|
||||||
|
expected:
|
||||||
|
|
||||||
|
(bind-key [remap original-ctrl-c-x-command] 'my-ctrl-c-x-command)
|
||||||
|
|
||||||
|
If you want the keybinding to override all minor modes that may also bind
|
||||||
|
the same key, use the `bind-key*' form:
|
||||||
|
|
||||||
|
(bind-key* "<C-return>" 'other-window)
|
||||||
|
|
||||||
|
If you want to rebind a key only in a particular keymap, use:
|
||||||
|
|
||||||
|
(bind-key "C-c x" 'my-ctrl-c-x-command some-other-mode-map)
|
||||||
|
|
||||||
|
To unbind a key within a keymap (for example, to stop your favorite major
|
||||||
|
mode from changing a binding that you don't want to override everywhere),
|
||||||
|
use `unbind-key':
|
||||||
|
|
||||||
|
(unbind-key "C-c x" some-other-mode-map)
|
||||||
|
|
||||||
|
To bind multiple keys at once, or set up a prefix map, a `bind-keys' macro
|
||||||
|
is provided. It accepts keyword arguments, please see its documentation
|
||||||
|
for a detailed description.
|
||||||
|
|
||||||
|
To add keys into a specific map, use :map argument
|
||||||
|
|
||||||
|
(bind-keys :map dired-mode-map
|
||||||
|
("o" . dired-omit-mode)
|
||||||
|
("a" . some-custom-dired-function))
|
||||||
|
|
||||||
|
To set up a prefix map, use `:prefix-map' and `:prefix' arguments (both are
|
||||||
|
required)
|
||||||
|
|
||||||
|
(bind-keys :prefix-map my-customize-prefix-map
|
||||||
|
:prefix "C-c c"
|
||||||
|
("f" . customize-face)
|
||||||
|
("v" . customize-variable))
|
||||||
|
|
||||||
|
You can combine all the keywords together. Additionally,
|
||||||
|
`:prefix-docstring' can be specified to set documentation of created
|
||||||
|
`:prefix-map' variable.
|
||||||
|
|
||||||
|
To bind multiple keys in a `bind-key*' way (to be sure that your bindings
|
||||||
|
will not be overridden by other modes), you may use `bind-keys*' macro:
|
||||||
|
|
||||||
|
(bind-keys*
|
||||||
|
("C-o" . other-window)
|
||||||
|
("C-M-n" . forward-page)
|
||||||
|
("C-M-p" . backward-page))
|
||||||
|
|
||||||
|
After Emacs loads, you can see a summary of all your personal keybindings
|
||||||
|
currently in effect with this command:
|
||||||
|
|
||||||
|
M-x describe-personal-keybindings
|
||||||
|
|
||||||
|
This display will tell you if you've overriden a default keybinding, and
|
||||||
|
what the default was. Also, it will tell you if the key was rebound after
|
||||||
|
your binding it with `bind-key', and what it was rebound it to.
|
|
@ -11,6 +11,10 @@
|
||||||
|
|
||||||
(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "dash" '("dash-" "-keep" "-butlast" "-non" "-only-some" "-zip" "-e" "->" "-a" "-gr" "-when-let" "-d" "-l" "-s" "-p" "-r" "-m" "-i" "-f" "-u" "-value-to-list" "-t" "--" "-c" "!cons" "!cdr")))
|
(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "dash" '("dash-" "-keep" "-butlast" "-non" "-only-some" "-zip" "-e" "->" "-a" "-gr" "-when-let" "-d" "-l" "-s" "-p" "-r" "-m" "-i" "-f" "-u" "-value-to-list" "-t" "--" "-c" "!cons" "!cdr")))
|
||||||
|
|
||||||
|
;;;***
|
||||||
|
|
||||||
|
;;;### (autoloads nil nil ("dash-pkg.el") (0 0 0 0))
|
||||||
|
|
||||||
;;;***
|
;;;***
|
||||||
|
|
||||||
;; Local Variables:
|
;; Local Variables:
|
|
@ -0,0 +1,9 @@
|
||||||
|
(define-package "dash" "2.16.0" "A modern list library for Emacs" 'nil :keywords
|
||||||
|
'("lists")
|
||||||
|
:authors
|
||||||
|
'(("Magnar Sveen" . "magnars@gmail.com"))
|
||||||
|
:maintainer
|
||||||
|
'("Magnar Sveen" . "magnars@gmail.com"))
|
||||||
|
;; Local Variables:
|
||||||
|
;; no-byte-compile: t
|
||||||
|
;; End:
|
|
@ -4,7 +4,6 @@
|
||||||
|
|
||||||
;; Author: Magnar Sveen <magnars@gmail.com>
|
;; Author: Magnar Sveen <magnars@gmail.com>
|
||||||
;; Version: 2.16.0
|
;; Version: 2.16.0
|
||||||
;; Package-Version: 20190920.1035
|
|
||||||
;; Keywords: lists
|
;; Keywords: lists
|
||||||
|
|
||||||
;; This program is free software; you can redistribute it and/or modify
|
;; This program is free software; you can redistribute it and/or modify
|
||||||
|
@ -34,12 +33,6 @@
|
||||||
|
|
||||||
;;; Code:
|
;;; Code:
|
||||||
|
|
||||||
;; TODO: `gv' was introduced in Emacs 24.3, so remove this and all
|
|
||||||
;; calls to `defsetf' when support for earlier versions is dropped.
|
|
||||||
(eval-when-compile
|
|
||||||
(unless (fboundp 'gv-define-setter)
|
|
||||||
(require 'cl)))
|
|
||||||
|
|
||||||
(defgroup dash ()
|
(defgroup dash ()
|
||||||
"Customize group for dash.el"
|
"Customize group for dash.el"
|
||||||
:group 'lisp
|
:group 'lisp
|
||||||
|
@ -689,10 +682,7 @@ See also: `-third-item'.
|
||||||
|
|
||||||
\(fn LIST)")
|
\(fn LIST)")
|
||||||
|
|
||||||
(defalias '-third-item
|
(defalias '-third-item 'caddr
|
||||||
(if (fboundp 'caddr)
|
|
||||||
#'caddr
|
|
||||||
(lambda (list) (car (cddr list))))
|
|
||||||
"Return the third item of LIST, or nil if LIST is too short.
|
"Return the third item of LIST, or nil if LIST is too short.
|
||||||
|
|
||||||
See also: `-fourth-item'.
|
See also: `-fourth-item'.
|
||||||
|
@ -713,18 +703,28 @@ See also: `-last-item'."
|
||||||
(declare (pure t) (side-effect-free t))
|
(declare (pure t) (side-effect-free t))
|
||||||
(car (cdr (cdr (cdr (cdr list))))))
|
(car (cdr (cdr (cdr (cdr list))))))
|
||||||
|
|
||||||
|
;; TODO: gv was introduced in 24.3, so we can remove the if statement
|
||||||
|
;; when support for earlier versions is dropped
|
||||||
|
(eval-when-compile
|
||||||
|
(require 'cl)
|
||||||
|
(if (fboundp 'gv-define-simple-setter)
|
||||||
|
(gv-define-simple-setter -first-item setcar)
|
||||||
|
(require 'cl)
|
||||||
|
(with-no-warnings
|
||||||
|
(defsetf -first-item (x) (val) `(setcar ,x ,val)))))
|
||||||
|
|
||||||
(defun -last-item (list)
|
(defun -last-item (list)
|
||||||
"Return the last item of LIST, or nil on an empty list."
|
"Return the last item of LIST, or nil on an empty list."
|
||||||
(declare (pure t) (side-effect-free t))
|
(declare (pure t) (side-effect-free t))
|
||||||
(car (last list)))
|
(car (last list)))
|
||||||
|
|
||||||
;; Use `with-no-warnings' to suppress unbound `-last-item' or
|
;; TODO: gv was introduced in 24.3, so we can remove the if statement
|
||||||
;; undefined `gv--defsetter' warnings arising from both
|
;; when support for earlier versions is dropped
|
||||||
;; `gv-define-setter' and `defsetf' in certain Emacs versions.
|
(eval-when-compile
|
||||||
(with-no-warnings
|
|
||||||
(if (fboundp 'gv-define-setter)
|
(if (fboundp 'gv-define-setter)
|
||||||
(gv-define-setter -last-item (val x) `(setcar (last ,x) ,val))
|
(gv-define-setter -last-item (val x) `(setcar (last ,x) ,val))
|
||||||
(defsetf -last-item (x) (val) `(setcar (last ,x) ,val))))
|
(with-no-warnings
|
||||||
|
(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."
|
||||||
|
@ -2274,22 +2274,9 @@ The test for equality is done with `equal',
|
||||||
or with `-compare-fn' if that's non-nil.
|
or with `-compare-fn' if that's non-nil.
|
||||||
|
|
||||||
Alias: `-uniq'"
|
Alias: `-uniq'"
|
||||||
;; Implementation note: The speedup gained from hash table lookup
|
(let (result)
|
||||||
;; starts to outweigh its overhead for lists of length greater than
|
(--each list (unless (-contains? result it) (!cons it result)))
|
||||||
;; 32. See discussion in PR #305.
|
(nreverse result)))
|
||||||
(let* ((len (length list))
|
|
||||||
(lut (and (> len 32)
|
|
||||||
;; Check that `-compare-fn' is a valid hash-table
|
|
||||||
;; lookup function or `nil'.
|
|
||||||
(memq -compare-fn '(nil equal eq eql))
|
|
||||||
(make-hash-table :test (or -compare-fn #'equal)
|
|
||||||
:size len))))
|
|
||||||
(if lut
|
|
||||||
(--filter (unless (gethash it lut)
|
|
||||||
(puthash it t lut))
|
|
||||||
list)
|
|
||||||
(--each list (unless (-contains? lut it) (!cons it lut)))
|
|
||||||
(nreverse lut))))
|
|
||||||
|
|
||||||
(defalias '-uniq '-distinct)
|
(defalias '-uniq '-distinct)
|
||||||
|
|
||||||
|
@ -2342,11 +2329,7 @@ or with `-compare-fn' if that's non-nil."
|
||||||
|
|
||||||
(defun -inits (list)
|
(defun -inits (list)
|
||||||
"Return all prefixes of LIST."
|
"Return all prefixes of LIST."
|
||||||
(let ((res (list list)))
|
(nreverse (-map 'reverse (-tails (nreverse list)))))
|
||||||
(setq list (reverse list))
|
|
||||||
(while list
|
|
||||||
(push (reverse (!cdr list)) res))
|
|
||||||
res))
|
|
||||||
|
|
||||||
(defun -tails (list)
|
(defun -tails (list)
|
||||||
"Return all suffixes of LIST"
|
"Return all suffixes of LIST"
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,18 @@
|
||||||
|
This is the file .../info/dir, which contains the
|
||||||
|
topmost node of the Info hierarchy, called (dir)Top.
|
||||||
|
The first time you invoke Info you start off looking at this node.
|
||||||
|
|
||||||
|
File: dir, Node: Top This is the top of the INFO tree
|
||||||
|
|
||||||
|
This (the Directory node) gives a menu of major topics.
|
||||||
|
Typing "q" exits, "H" lists all Info commands, "d" returns here,
|
||||||
|
"h" gives a primer for first-timers,
|
||||||
|
"mEmacs<Return>" visits the Emacs manual, etc.
|
||||||
|
|
||||||
|
In Emacs, you can click mouse button 2 on a menu item or cross reference
|
||||||
|
to select it.
|
||||||
|
|
||||||
|
* Menu:
|
||||||
|
|
||||||
|
Emacs
|
||||||
|
* Dash: (dash.info). A modern list library for GNU Emacs
|
|
@ -1,2 +0,0 @@
|
||||||
;;; -*- no-byte-compile: t -*-
|
|
||||||
(define-package "dash" "20190920.1035" "A modern list library for Emacs" 'nil :commit "a743ae3da1d5869434c6f262bbe45ef30d87cb9c" :keywords '("lists") :authors '(("Magnar Sveen" . "magnars@gmail.com")) :maintainer '("Magnar Sveen" . "magnars@gmail.com"))
|
|
|
@ -0,0 +1,16 @@
|
||||||
|
;;; dash-functional-autoloads.el --- automatically extracted autoloads
|
||||||
|
;;
|
||||||
|
;;; Code:
|
||||||
|
(add-to-list 'load-path (directory-file-name (or (file-name-directory #$) (car load-path))))
|
||||||
|
|
||||||
|
;;;### (autoloads nil nil ("dash-functional.el") (23441 26596 442795
|
||||||
|
;;;;;; 456000))
|
||||||
|
|
||||||
|
;;;***
|
||||||
|
|
||||||
|
;; Local Variables:
|
||||||
|
;; version-control: never
|
||||||
|
;; no-byte-compile: t
|
||||||
|
;; no-update-autoloads: t
|
||||||
|
;; End:
|
||||||
|
;;; dash-functional-autoloads.el ends here
|
|
@ -0,0 +1,2 @@
|
||||||
|
;;; -*- no-byte-compile: t -*-
|
||||||
|
(define-package "dash-functional" "20180107.1618" "Collection of useful combinators for Emacs Lisp" '((dash "2.0.0") (emacs "24")) :commit "85e8f62b7a8ae0b4da307ddf16e4f1c3559d0d3f" :keywords '("lisp" "functions" "combinators"))
|
|
@ -0,0 +1,219 @@
|
||||||
|
;;; dash-functional.el --- Collection of useful combinators for Emacs Lisp -*- lexical-binding: t -*-
|
||||||
|
|
||||||
|
;; Copyright (C) 2013-2014 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
;; Authors: Matus Goljer <matus.goljer@gmail.com>
|
||||||
|
;; Magnar Sveen <magnars@gmail.com>
|
||||||
|
;; Version: 1.2.0
|
||||||
|
;; Package-Version: 20180107.1618
|
||||||
|
;; Package-Requires: ((dash "2.0.0") (emacs "24"))
|
||||||
|
;; Keywords: lisp functions combinators
|
||||||
|
|
||||||
|
;; 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
|
||||||
|
;; the Free Software Foundation, either version 3 of the License, or
|
||||||
|
;; (at your option) any later version.
|
||||||
|
|
||||||
|
;; This program is distributed in the hope that it will be useful,
|
||||||
|
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
;; GNU General Public License for more details.
|
||||||
|
|
||||||
|
;; You should have received a copy of the GNU General Public License
|
||||||
|
;; along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
;;; Commentary:
|
||||||
|
|
||||||
|
;; Collection of useful combinators for Emacs Lisp
|
||||||
|
;;
|
||||||
|
;; See documentation on https://github.com/magnars/dash.el#functions
|
||||||
|
|
||||||
|
;;; Code:
|
||||||
|
|
||||||
|
(require 'dash)
|
||||||
|
|
||||||
|
(defun -partial (fn &rest args)
|
||||||
|
"Takes a function FN and fewer than the normal arguments to FN,
|
||||||
|
and returns a fn that takes a variable number of additional ARGS.
|
||||||
|
When called, the returned function calls FN with ARGS first and
|
||||||
|
then additional args."
|
||||||
|
(apply 'apply-partially fn args))
|
||||||
|
|
||||||
|
(defun -rpartial (fn &rest args)
|
||||||
|
"Takes a function FN and fewer than the normal arguments to FN,
|
||||||
|
and returns a fn that takes a variable number of additional ARGS.
|
||||||
|
When called, the returned function calls FN with the additional
|
||||||
|
args first and then ARGS."
|
||||||
|
(lambda (&rest args-before) (apply fn (append args-before args))))
|
||||||
|
|
||||||
|
(defun -juxt (&rest fns)
|
||||||
|
"Takes a list of functions and returns a fn that is the
|
||||||
|
juxtaposition of those fns. The returned fn takes a variable
|
||||||
|
number of args, and returns a list containing the result of
|
||||||
|
applying each fn to the args (left-to-right)."
|
||||||
|
(lambda (&rest args) (mapcar (lambda (x) (apply x args)) fns)))
|
||||||
|
|
||||||
|
(defun -compose (&rest fns)
|
||||||
|
"Takes a list of functions and returns a fn that is the
|
||||||
|
composition of those fns. The returned fn takes a variable
|
||||||
|
number of arguments, and returns the result of applying
|
||||||
|
each fn to the result of applying the previous fn to
|
||||||
|
the arguments (right-to-left)."
|
||||||
|
(lambda (&rest args)
|
||||||
|
(car (-reduce-r-from (lambda (fn xs) (list (apply fn xs)))
|
||||||
|
args fns))))
|
||||||
|
|
||||||
|
(defun -applify (fn)
|
||||||
|
"Changes an n-arity function FN to a 1-arity function that
|
||||||
|
expects a list with n items as arguments"
|
||||||
|
(apply-partially 'apply fn))
|
||||||
|
|
||||||
|
(defun -on (operator transformer)
|
||||||
|
"Return a function of two arguments that first applies
|
||||||
|
TRANSFORMER to each of them and then applies OPERATOR on the
|
||||||
|
results (in the same order).
|
||||||
|
|
||||||
|
In types: (b -> b -> c) -> (a -> b) -> a -> a -> c"
|
||||||
|
(lambda (x y) (funcall operator (funcall transformer x) (funcall transformer y))))
|
||||||
|
|
||||||
|
(defun -flip (func)
|
||||||
|
"Swap the order of arguments for binary function FUNC.
|
||||||
|
|
||||||
|
In types: (a -> b -> c) -> b -> a -> c"
|
||||||
|
(lambda (x y) (funcall func y x)))
|
||||||
|
|
||||||
|
(defun -const (c)
|
||||||
|
"Return a function that returns C ignoring any additional arguments.
|
||||||
|
|
||||||
|
In types: a -> b -> a"
|
||||||
|
(lambda (&rest _) c))
|
||||||
|
|
||||||
|
(defmacro -cut (&rest params)
|
||||||
|
"Take n-ary function and n arguments and specialize some of them.
|
||||||
|
Arguments denoted by <> will be left unspecialized.
|
||||||
|
|
||||||
|
See SRFI-26 for detailed description."
|
||||||
|
(let* ((i 0)
|
||||||
|
(args (mapcar (lambda (_) (setq i (1+ i)) (make-symbol (format "D%d" i)))
|
||||||
|
(-filter (-partial 'eq '<>) params))))
|
||||||
|
`(lambda ,args
|
||||||
|
,(let ((body (--map (if (eq it '<>) (pop args) it) params)))
|
||||||
|
(if (eq (car params) '<>)
|
||||||
|
(cons 'funcall body)
|
||||||
|
body)))))
|
||||||
|
|
||||||
|
(defun -not (pred)
|
||||||
|
"Take a unary predicate PRED and return a unary predicate
|
||||||
|
that returns t if PRED returns nil and nil if PRED returns
|
||||||
|
non-nil."
|
||||||
|
(lambda (x) (not (funcall pred x))))
|
||||||
|
|
||||||
|
(defun -orfn (&rest preds)
|
||||||
|
"Take list of unary predicates PREDS and return a unary
|
||||||
|
predicate with argument x that returns non-nil if at least one of
|
||||||
|
the PREDS returns non-nil on x.
|
||||||
|
|
||||||
|
In types: [a -> Bool] -> a -> Bool"
|
||||||
|
(lambda (x) (-any? (-cut funcall <> x) preds)))
|
||||||
|
|
||||||
|
(defun -andfn (&rest preds)
|
||||||
|
"Take list of unary predicates PREDS and return a unary
|
||||||
|
predicate with argument x that returns non-nil if all of the
|
||||||
|
PREDS returns non-nil on x.
|
||||||
|
|
||||||
|
In types: [a -> Bool] -> a -> Bool"
|
||||||
|
(lambda (x) (-all? (-cut funcall <> x) preds)))
|
||||||
|
|
||||||
|
(defun -iteratefn (fn n)
|
||||||
|
"Return a function FN composed N times with itself.
|
||||||
|
|
||||||
|
FN is a unary function. If you need to use a function of higher
|
||||||
|
arity, use `-applify' first to turn it into a unary function.
|
||||||
|
|
||||||
|
With n = 0, this acts as identity function.
|
||||||
|
|
||||||
|
In types: (a -> a) -> Int -> a -> a.
|
||||||
|
|
||||||
|
This function satisfies the following law:
|
||||||
|
|
||||||
|
(funcall (-iteratefn fn n) init) = (-last-item (-iterate fn init (1+ n)))."
|
||||||
|
(lambda (x) (--dotimes n (setq x (funcall fn x))) x))
|
||||||
|
|
||||||
|
(defun -counter (&optional beg end inc)
|
||||||
|
"Return a closure that counts from BEG to END, with increment INC.
|
||||||
|
|
||||||
|
The closure will return the next value in the counting sequence
|
||||||
|
each time it is called, and nil after END is reached. BEG
|
||||||
|
defaults to 0, INC defaults to 1, and if END is nil, the counter
|
||||||
|
will increment indefinitely.
|
||||||
|
|
||||||
|
The closure accepts any number of arguments, which are discarded."
|
||||||
|
(let ((inc (or inc 1))
|
||||||
|
(n (or beg 0)))
|
||||||
|
(lambda (&rest _)
|
||||||
|
(when (or (not end) (< n end))
|
||||||
|
(prog1 n
|
||||||
|
(setq n (+ n inc)))))))
|
||||||
|
|
||||||
|
(defvar -fixfn-max-iterations 1000
|
||||||
|
"The default maximum number of iterations performed by `-fixfn'
|
||||||
|
unless otherwise specified.")
|
||||||
|
|
||||||
|
(defun -fixfn (fn &optional equal-test halt-test)
|
||||||
|
"Return a function that computes the (least) fixpoint of FN.
|
||||||
|
|
||||||
|
FN must be a unary function. The returned lambda takes a single
|
||||||
|
argument, X, the initial value for the fixpoint iteration. The
|
||||||
|
iteration halts when either of the following conditions is satisified:
|
||||||
|
|
||||||
|
1. Iteration converges to the fixpoint, with equality being
|
||||||
|
tested using EQUAL-TEST. If EQUAL-TEST is not specified,
|
||||||
|
`equal' is used. For functions over the floating point
|
||||||
|
numbers, it may be necessary to provide an appropriate
|
||||||
|
appoximate comparsion test.
|
||||||
|
|
||||||
|
2. HALT-TEST returns a non-nil value. HALT-TEST defaults to a
|
||||||
|
simple counter that returns t after `-fixfn-max-iterations',
|
||||||
|
to guard against infinite iteration. Otherwise, HALT-TEST
|
||||||
|
must be a function that accepts a single argument, the
|
||||||
|
current value of X, and returns non-nil as long as iteration
|
||||||
|
should continue. In this way, a more sophisticated
|
||||||
|
convergence test may be supplied by the caller.
|
||||||
|
|
||||||
|
The return value of the lambda is either the fixpoint or, if
|
||||||
|
iteration halted before converging, a cons with car `halted' and
|
||||||
|
cdr the final output from HALT-TEST.
|
||||||
|
|
||||||
|
In types: (a -> a) -> a -> a."
|
||||||
|
(let ((eqfn (or equal-test 'equal))
|
||||||
|
(haltfn (or halt-test
|
||||||
|
(-not
|
||||||
|
(-counter 0 -fixfn-max-iterations)))))
|
||||||
|
(lambda (x)
|
||||||
|
(let ((re (funcall fn x))
|
||||||
|
(halt? (funcall haltfn x)))
|
||||||
|
(while (and (not halt?) (not (funcall eqfn x re)))
|
||||||
|
(setq x re
|
||||||
|
re (funcall fn re)
|
||||||
|
halt? (funcall haltfn re)))
|
||||||
|
(if halt? (cons 'halted halt?)
|
||||||
|
re)))))
|
||||||
|
|
||||||
|
(defun -prodfn (&rest fns)
|
||||||
|
"Take a list of n functions and return a function that takes a
|
||||||
|
list of length n, applying i-th function to i-th element of the
|
||||||
|
input list. Returns a list of length n.
|
||||||
|
|
||||||
|
In types (for n=2): ((a -> b), (c -> d)) -> (a, c) -> (b, d)
|
||||||
|
|
||||||
|
This function satisfies the following laws:
|
||||||
|
|
||||||
|
(-compose (-prodfn f g ...) (-prodfn f\\=' g\\=' ...)) = (-prodfn (-compose f f\\=') (-compose g g\\=') ...)
|
||||||
|
(-prodfn f g ...) = (-juxt (-compose f (-partial \\='nth 0)) (-compose g (-partial \\='nth 1)) ...)
|
||||||
|
(-compose (-prodfn f g ...) (-juxt f\\=' g\\=' ...)) = (-juxt (-compose f f\\=') (-compose g g\\=') ...)
|
||||||
|
(-compose (-partial \\='nth n) (-prod f1 f2 ...)) = (-compose fn (-partial \\='nth n))"
|
||||||
|
(lambda (x) (-zip-with 'funcall fns x)))
|
||||||
|
|
||||||
|
(provide 'dash-functional)
|
||||||
|
|
||||||
|
;;; dash-functional.el ends here
|
|
@ -0,0 +1,8 @@
|
||||||
|
A modern list api for Emacs.
|
||||||
|
|
||||||
|
See documentation on https://github.com/magnars/dash.el#functions
|
||||||
|
|
||||||
|
**Please note** The lexical binding in this file is not utilised at the
|
||||||
|
moment. We will take full advantage of lexical binding in an upcoming 3.0
|
||||||
|
release of Dash. In the meantime, we've added the pragma to avoid a bug that
|
||||||
|
you can read more about in https://github.com/magnars/dash.el/issues/130.
|
|
@ -1,10 +1,12 @@
|
||||||
;;; diminish-autoloads.el --- automatically extracted autoloads
|
;;; diminish-autoloads.el --- automatically extracted autoloads
|
||||||
;;
|
;;
|
||||||
;;; Code:
|
;;; Code:
|
||||||
(add-to-list 'load-path (directory-file-name (or (file-name-directory #$) (car load-path))))
|
|
||||||
|
(add-to-list 'load-path (directory-file-name
|
||||||
|
(or (file-name-directory #$) (car load-path))))
|
||||||
|
|
||||||
|
|
||||||
;;;### (autoloads nil "diminish" "diminish.el" (23441 26592 586778
|
;;;### (autoloads nil "diminish" "diminish.el" (0 0 0 0))
|
||||||
;;;;;; 335000))
|
|
||||||
;;; Generated autoloads from diminish.el
|
;;; Generated autoloads from diminish.el
|
||||||
|
|
||||||
(autoload 'diminish "diminish" "\
|
(autoload 'diminish "diminish" "\
|
||||||
|
@ -47,11 +49,14 @@ what diminished modes would be on the mode-line if they were still minor.
|
||||||
|
|
||||||
\(fn)" t nil)
|
\(fn)" t nil)
|
||||||
|
|
||||||
|
(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "diminish" '("diminish")))
|
||||||
|
|
||||||
;;;***
|
;;;***
|
||||||
|
|
||||||
;; Local Variables:
|
;; Local Variables:
|
||||||
;; version-control: never
|
;; version-control: never
|
||||||
;; no-byte-compile: t
|
;; no-byte-compile: t
|
||||||
;; no-update-autoloads: t
|
;; no-update-autoloads: t
|
||||||
|
;; coding: utf-8
|
||||||
;; End:
|
;; End:
|
||||||
;;; diminish-autoloads.el ends here
|
;;; diminish-autoloads.el ends here
|
|
@ -0,0 +1,2 @@
|
||||||
|
;;; -*- no-byte-compile: t -*-
|
||||||
|
(define-package "diminish" "0.45" "Diminished modes are minor modes with no modeline display" 'nil :commit "0211de96b7cfba9c9dc8d2d392dbd4ccdb22bc65" :keywords '("extensions" "diminish" "minor" "codeprose") :authors '(("Will Mengarini" . "seldon@eskimo.com")) :maintainer '("Martin Yrjölä" . "martin.yrjola@gmail.com") :url "https://github.com/myrjola/diminish.el")
|
|
@ -5,11 +5,13 @@
|
||||||
;; Author: Will Mengarini <seldon@eskimo.com>
|
;; Author: Will Mengarini <seldon@eskimo.com>
|
||||||
;; Maintainer: Martin Yrjölä <martin.yrjola@gmail.com>
|
;; Maintainer: Martin Yrjölä <martin.yrjola@gmail.com>
|
||||||
;; URL: <https://github.com/myrjola/diminish.el>
|
;; URL: <https://github.com/myrjola/diminish.el>
|
||||||
;; Package-Version: 20170419.1736
|
;; Package-Version: 0.45
|
||||||
;; Created: Th 19 Feb 98
|
;; Created: Th 19 Feb 98
|
||||||
;; Version: 0.45
|
;; Version: 0.45
|
||||||
;; Keywords: extensions, diminish, minor, codeprose
|
;; Keywords: extensions, diminish, minor, codeprose
|
||||||
|
|
||||||
|
;; This file is part of GNU Emacs.
|
||||||
|
|
||||||
;; 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
|
||||||
;; the Free Software Foundation; either version 2, or (at your option)
|
;; the Free Software Foundation; either version 2, or (at your option)
|
||||||
|
@ -20,10 +22,10 @@
|
||||||
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
;; GNU General Public License for more details.
|
;; GNU General Public License for more details.
|
||||||
|
|
||||||
;; You should have received a copy of the GNU General Public License along with
|
;; You should have received a copy of the GNU General Public License
|
||||||
;; this program; see the file LICENSE. If not, write to the write to the Free
|
;; along with GNU Emacs; see the file COPYING. If not, write to the
|
||||||
;; Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||||
;; 02110-1301, USA.
|
;; Boston, MA 02111-1307, USA.
|
||||||
|
|
||||||
;;; Commentary:
|
;;; Commentary:
|
||||||
|
|
||||||
|
@ -179,8 +181,7 @@ to TO-WHAT if it's > 1 char long & doesn't already begin with a space."
|
||||||
(let ((minor (assq mode minor-mode-alist)))
|
(let ((minor (assq mode minor-mode-alist)))
|
||||||
(when minor
|
(when minor
|
||||||
(progn (callf or to-what "")
|
(progn (callf or to-what "")
|
||||||
(when (and (stringp to-what)
|
(when (> (length to-what) 1)
|
||||||
(> (length to-what) 1))
|
|
||||||
(or (= (string-to-char to-what) ?\ )
|
(or (= (string-to-char to-what) ?\ )
|
||||||
(callf2 concat " " to-what)))
|
(callf2 concat " " to-what)))
|
||||||
(or (assq mode diminished-mode-alist)
|
(or (assq mode diminished-mode-alist)
|
|
@ -1,2 +0,0 @@
|
||||||
;;; -*- no-byte-compile: t -*-
|
|
||||||
(define-package "diminish" "20170419.1736" "Diminished modes are minor modes with no modeline display" 'nil :commit "565a983a39d2e2cffab5df13b34f3b6116723208" :keywords '("extensions" "diminish" "minor" "codeprose") :authors '(("Will Mengarini" . "seldon@eskimo.com")) :maintainer '("Martin Yrjölä" . "martin.yrjola@gmail.com") :url "https://github.com/myrjola/diminish.el")
|
|
|
@ -0,0 +1,70 @@
|
||||||
|
Minor modes each put a word on the mode line to signify that they're
|
||||||
|
active. This can cause other displays, such as % of file that point is
|
||||||
|
at, to run off the right side of the screen. For some minor modes, such
|
||||||
|
as mouse-avoidance-mode, the display is a waste of space, since users
|
||||||
|
typically set the mode in their .emacs & never change it. For other
|
||||||
|
modes, such as my jiggle-mode, it's a waste because there's already a
|
||||||
|
visual indication of whether the mode is in effect.
|
||||||
|
|
||||||
|
A diminished mode is a minor mode that has had its mode line
|
||||||
|
display diminished, usually to nothing, although diminishing to a
|
||||||
|
shorter word or a single letter is also supported. This package
|
||||||
|
implements diminished modes.
|
||||||
|
|
||||||
|
You can use this package either interactively or from your .emacs file.
|
||||||
|
In either case, first you'll need to copy this file to a directory that
|
||||||
|
appears in your load-path. `load-path' is the name of a variable that
|
||||||
|
contains a list of directories Emacs searches for files to load.
|
||||||
|
To prepend another directory to load-path, put a line like
|
||||||
|
(add-to-list 'load-path "c:/My_Directory") in your .emacs file.
|
||||||
|
|
||||||
|
To create diminished modes interactively, type
|
||||||
|
M-x load-library
|
||||||
|
to get a prompt like
|
||||||
|
Load library:
|
||||||
|
and respond `diminish' (unquoted). Then type
|
||||||
|
M-x diminish
|
||||||
|
to get a prompt like
|
||||||
|
Diminish what minor mode:
|
||||||
|
and respond with the name of some minor mode, like mouse-avoidance-mode.
|
||||||
|
You'll then get this prompt:
|
||||||
|
To what mode-line display:
|
||||||
|
Respond by just hitting <Enter> if you want the name of the mode
|
||||||
|
completely removed from the mode line. If you prefer, you can abbreviate
|
||||||
|
the name. If your abbreviation is 2 characters or more, such as "Av",
|
||||||
|
it'll be displayed as a separate word on the mode line, just like minor
|
||||||
|
modes' names. If it's a single character, such as "V", it'll be scrunched
|
||||||
|
up against the previous word, so for example if the undiminished mode line
|
||||||
|
display had been "Abbrev Fill Avoid", it would become "Abbrev FillV".
|
||||||
|
Multiple single-letter diminished modes will all be scrunched together.
|
||||||
|
The display of undiminished modes will not be affected.
|
||||||
|
|
||||||
|
To find out what the mode line would look like if all diminished modes
|
||||||
|
were still minor, type M-x diminished-modes. This displays in the echo
|
||||||
|
area the complete list of minor or diminished modes now active, but
|
||||||
|
displays them all as minor. They remain diminished on the mode line.
|
||||||
|
|
||||||
|
To convert a diminished mode back to a minor mode, type M-x diminish-undo
|
||||||
|
to get a prompt like
|
||||||
|
Restore what diminished mode:
|
||||||
|
Respond with the name of some diminished mode. To convert all
|
||||||
|
diminished modes back to minor modes, respond to that prompt
|
||||||
|
with `diminished-modes' (unquoted, & note the hyphen).
|
||||||
|
|
||||||
|
When you're responding to the prompts for mode names, you can use
|
||||||
|
completion to avoid extra typing; for example, m o u SPC SPC SPC
|
||||||
|
is usually enough to specify mouse-avoidance-mode. Mode names
|
||||||
|
typically end in "-mode", but for historical reasons
|
||||||
|
auto-fill-mode is named by "auto-fill-function".
|
||||||
|
|
||||||
|
To create diminished modes noninteractively in your .emacs file, put
|
||||||
|
code like
|
||||||
|
(require 'diminish)
|
||||||
|
(diminish 'abbrev-mode "Abv")
|
||||||
|
(diminish 'jiggle-mode)
|
||||||
|
(diminish 'mouse-avoidance-mode "M")
|
||||||
|
near the end of your .emacs file. It should be near the end so that any
|
||||||
|
minor modes your .emacs loads will already have been loaded by the time
|
||||||
|
they're to be converted to diminished modes.
|
||||||
|
|
||||||
|
To diminish a major mode, (setq mode-name "whatever") in the mode hook.
|
|
@ -0,0 +1,2 @@
|
||||||
|
;;; -*- no-byte-compile: t -*-
|
||||||
|
(define-package "exec-path-from-shell" "1.12" "Get environment variables such as $PATH from the shell" 'nil :commit "76cd6e3fa8a7dac937af7e40507843dfae4f9184" :keywords '("unix" "environment") :authors '(("Steve Purcell" . "steve@sanityinc.com")) :maintainer '("Steve Purcell" . "steve@sanityinc.com") :url "https://github.com/purcell/exec-path-from-shell")
|
|
@ -5,7 +5,7 @@
|
||||||
;; Author: Steve Purcell <steve@sanityinc.com>
|
;; Author: Steve Purcell <steve@sanityinc.com>
|
||||||
;; Keywords: unix, environment
|
;; Keywords: unix, environment
|
||||||
;; URL: https://github.com/purcell/exec-path-from-shell
|
;; URL: https://github.com/purcell/exec-path-from-shell
|
||||||
;; Package-Version: 20190426.2227
|
;; Package-Version: 1.12
|
||||||
;; Package-X-Original-Version: 0
|
;; Package-X-Original-Version: 0
|
||||||
|
|
||||||
;; This file is not part of GNU Emacs.
|
;; This file is not part of GNU Emacs.
|
||||||
|
@ -181,8 +181,6 @@ shell-escaped, so they may contain $ etc."
|
||||||
|
|
||||||
Execute the shell according to `exec-path-from-shell-arguments'.
|
Execute the shell according to `exec-path-from-shell-arguments'.
|
||||||
The result is a list of (NAME . VALUE) pairs."
|
The result is a list of (NAME . VALUE) pairs."
|
||||||
(when (file-remote-p default-directory)
|
|
||||||
(error "You cannot run exec-path-from-shell from a remote buffer (Tramp, etc.)"))
|
|
||||||
(let* ((random-default (md5 (format "%s%s%s" (emacs-pid) (random) (current-time))))
|
(let* ((random-default (md5 (format "%s%s%s" (emacs-pid) (random) (current-time))))
|
||||||
(dollar-names (mapcar (lambda (n) (format "${%s-%s}" n random-default)) names))
|
(dollar-names (mapcar (lambda (n) (format "${%s-%s}" n random-default)) names))
|
||||||
(values (split-string (exec-path-from-shell-printf
|
(values (split-string (exec-path-from-shell-printf
|
|
@ -1,2 +0,0 @@
|
||||||
;;; -*- no-byte-compile: t -*-
|
|
||||||
(define-package "exec-path-from-shell" "20190426.2227" "Get environment variables such as $PATH from the shell" 'nil :commit "3cfedb8791397ed50ee66bc0a7cbee5b9d78245c" :keywords '("unix" "environment") :authors '(("Steve Purcell" . "steve@sanityinc.com")) :maintainer '("Steve Purcell" . "steve@sanityinc.com") :url "https://github.com/purcell/exec-path-from-shell")
|
|
|
@ -0,0 +1,45 @@
|
||||||
|
On OS X (and perhaps elsewhere) the $PATH environment variable and
|
||||||
|
`exec-path' used by a windowed Emacs instance will usually be the
|
||||||
|
system-wide default path, rather than that seen in a terminal
|
||||||
|
window.
|
||||||
|
|
||||||
|
This library allows the user to set Emacs' `exec-path' and $PATH
|
||||||
|
from the shell path, so that `shell-command', `compile' and the
|
||||||
|
like work as expected.
|
||||||
|
|
||||||
|
It also allows other environment variables to be retrieved from the
|
||||||
|
shell, so that Emacs will see the same values you get in a terminal.
|
||||||
|
|
||||||
|
If you use a non-POSIX-standard shell like "tcsh" or "fish", your
|
||||||
|
shell will be asked to execute "sh" as a subshell in order to print
|
||||||
|
out the variables in a format which can be reliably parsed. "sh"
|
||||||
|
must be a POSIX-compliant shell in this case.
|
||||||
|
|
||||||
|
Note that shell variables which have not been exported as
|
||||||
|
environment variables (e.g. using the "export" keyword) may not be
|
||||||
|
visible to `exec-path-from-shell'.
|
||||||
|
|
||||||
|
Installation:
|
||||||
|
|
||||||
|
ELPA packages are available on Marmalade and MELPA. Alternatively,
|
||||||
|
place this file on a directory in your `load-path', and explicitly
|
||||||
|
require it.
|
||||||
|
|
||||||
|
Usage:
|
||||||
|
|
||||||
|
(require 'exec-path-from-shell) ;; if not using the ELPA package
|
||||||
|
(exec-path-from-shell-initialize)
|
||||||
|
|
||||||
|
Customize `exec-path-from-shell-variables' to modify the list of
|
||||||
|
variables imported.
|
||||||
|
|
||||||
|
If you use your Emacs config on other platforms, you can instead
|
||||||
|
make initialization conditional as follows:
|
||||||
|
|
||||||
|
(when (memq window-system '(mac ns))
|
||||||
|
(exec-path-from-shell-initialize))
|
||||||
|
|
||||||
|
Alternatively, you can use `exec-path-from-shell-copy-envs' or
|
||||||
|
`exec-path-from-shell-copy-env' directly, e.g.
|
||||||
|
|
||||||
|
(exec-path-from-shell-copy-env "PYTHONPATH")
|
|
@ -1,4 +1,4 @@
|
||||||
(define-package "hydra" "20191125.955" "Make bindings that stick around."
|
(define-package "hydra" "0.15.0" "Make bindings that stick around."
|
||||||
'((cl-lib "0.5")
|
'((cl-lib "0.5")
|
||||||
(lv "0"))
|
(lv "0"))
|
||||||
:keywords
|
:keywords
|
|
@ -33,7 +33,7 @@
|
||||||
;; heads can be called in succession with only a short extension.
|
;; heads can be called in succession with only a short extension.
|
||||||
;; The Hydra is vanquished once Hercules, any binding that isn't the
|
;; The Hydra is vanquished once Hercules, any binding that isn't the
|
||||||
;; Hydra's head, arrives. Note that Hercules, besides vanquishing the
|
;; Hydra's head, arrives. Note that Hercules, besides vanquishing the
|
||||||
;; Hydra, will still serve his original purpose, calling his proper
|
;; Hydra, will still serve his orignal purpose, calling his proper
|
||||||
;; command. This makes the Hydra very seamless, it's like a minor
|
;; command. This makes the Hydra very seamless, it's like a minor
|
||||||
;; mode that disables itself automagically.
|
;; mode that disables itself automagically.
|
||||||
;;
|
;;
|
||||||
|
@ -211,33 +211,15 @@ the body or the head."
|
||||||
(declare-function posframe-hide "posframe")
|
(declare-function posframe-hide "posframe")
|
||||||
(declare-function posframe-poshandler-window-center "posframe")
|
(declare-function posframe-poshandler-window-center "posframe")
|
||||||
|
|
||||||
(defvar hydra-posframe-show-params
|
|
||||||
'(:internal-border-width 1
|
|
||||||
:internal-border-color "red"
|
|
||||||
:poshandler posframe-poshandler-window-center)
|
|
||||||
"List of parameters passed to `posframe-show'.")
|
|
||||||
|
|
||||||
(defvar hydra--posframe-timer nil
|
|
||||||
"Timer for hiding posframe hint.")
|
|
||||||
|
|
||||||
(defun hydra-posframe-show (str)
|
(defun hydra-posframe-show (str)
|
||||||
(require 'posframe)
|
(require 'posframe)
|
||||||
(when hydra--posframe-timer
|
(posframe-show
|
||||||
(cancel-timer hydra--posframe-timer))
|
" *hydra-posframe*"
|
||||||
(setq hydra--posframe-timer nil)
|
:string str
|
||||||
(apply #'posframe-show
|
:poshandler #'posframe-poshandler-window-center))
|
||||||
" *hydra-posframe*"
|
|
||||||
:string str
|
|
||||||
hydra-posframe-show-params))
|
|
||||||
|
|
||||||
(defun hydra-posframe-hide ()
|
(defun hydra-posframe-hide ()
|
||||||
(require 'posframe)
|
(posframe-hide " *hydra-posframe*"))
|
||||||
(unless hydra--posframe-timer
|
|
||||||
(setq hydra--posframe-timer
|
|
||||||
(run-with-idle-timer
|
|
||||||
0 nil (lambda ()
|
|
||||||
(setq hydra--posframe-timer nil)
|
|
||||||
(posframe-hide " *hydra-posframe*"))))))
|
|
||||||
|
|
||||||
(defvar hydra-hint-display-alist
|
(defvar hydra-hint-display-alist
|
||||||
(list (list 'lv #'lv-message #'lv-delete-window)
|
(list (list 'lv #'lv-message #'lv-delete-window)
|
||||||
|
@ -253,6 +235,14 @@ the body or the head."
|
||||||
(const posframe))
|
(const posframe))
|
||||||
:group 'hydra)
|
:group 'hydra)
|
||||||
|
|
||||||
|
(define-obsolete-variable-alias
|
||||||
|
'hydra-lv 'hydra-hint-display-type "0.14.0"
|
||||||
|
"Use either `hydra-hint-display-type' or `hydra-set-property' :verbosity.")
|
||||||
|
|
||||||
|
(defcustom hydra-lv t
|
||||||
|
"When non-nil, `lv-message' (not `message') will be used to display hints."
|
||||||
|
:type 'boolean)
|
||||||
|
|
||||||
(defcustom hydra-verbose nil
|
(defcustom hydra-verbose nil
|
||||||
"When non-nil, hydra will issue some non essential style warnings."
|
"When non-nil, hydra will issue some non essential style warnings."
|
||||||
:type 'boolean)
|
:type 'boolean)
|
||||||
|
@ -325,19 +315,18 @@ Exitable only through a blue head.")
|
||||||
(around hydra-around-find-function-search-for-symbol-advice
|
(around hydra-around-find-function-search-for-symbol-advice
|
||||||
(symbol type library) activate)
|
(symbol type library) activate)
|
||||||
"Navigate to hydras with `find-function-search-for-symbol'."
|
"Navigate to hydras with `find-function-search-for-symbol'."
|
||||||
(prog1 ad-do-it
|
ad-do-it
|
||||||
(when (symbolp symbol)
|
;; The orignial function returns (cons (current-buffer) (point))
|
||||||
;; The original function returns (cons (current-buffer) (point))
|
;; if it found the point.
|
||||||
;; if it found the point.
|
(unless (cdr ad-return-value)
|
||||||
(unless (cdr ad-return-value)
|
(with-current-buffer (find-file-noselect library)
|
||||||
(with-current-buffer (find-file-noselect library)
|
(let ((sn (symbol-name symbol)))
|
||||||
(let ((sn (symbol-name symbol)))
|
(when (and (null type)
|
||||||
(when (and (null type)
|
(string-match "\\`\\(hydra-[a-z-A-Z0-9]+\\)/\\(.*\\)\\'" sn)
|
||||||
(string-match "\\`\\(hydra-[a-z-A-Z0-9]+\\)/\\(.*\\)\\'" sn)
|
(re-search-forward (concat "(defhydra " (match-string 1 sn))
|
||||||
(re-search-forward (concat "(defhydra " (match-string 1 sn))
|
nil t))
|
||||||
nil t))
|
(goto-char (match-beginning 0)))
|
||||||
(goto-char (match-beginning 0)))
|
(cons (current-buffer) (point)))))))
|
||||||
(cons (current-buffer) (point)))))))))
|
|
||||||
|
|
||||||
;;* Universal Argument
|
;;* Universal Argument
|
||||||
(defvar hydra-base-map
|
(defvar hydra-base-map
|
||||||
|
@ -1072,7 +1061,7 @@ If CELL-FORMATS is nil, `hydra-cell-format' is used for all columns."
|
||||||
(mapconcat #'identity x " "))))
|
(mapconcat #'identity x " "))))
|
||||||
|
|
||||||
(defun hydra-reset-radios (names)
|
(defun hydra-reset-radios (names)
|
||||||
"Set variables NAMES to their defaults.
|
"Set varibles NAMES to their defaults.
|
||||||
NAMES should be defined by `defhydradio' or similar."
|
NAMES should be defined by `defhydradio' or similar."
|
||||||
(dolist (n names)
|
(dolist (n names)
|
||||||
(set n (aref (get n 'range) 0))))
|
(set n (aref (get n 'range) 0))))
|
||||||
|
@ -1123,7 +1112,7 @@ Each head of NORMALIZED-HEADS must have a column property."
|
||||||
finally return balanced-heads-groups))
|
finally return balanced-heads-groups))
|
||||||
|
|
||||||
(defun hydra--generate-matrix (heads-groups)
|
(defun hydra--generate-matrix (heads-groups)
|
||||||
"Return a copy of HEADS-GROUPS decorated with table formatting information.
|
"Return a copy of HEADS-GROUPS decorated with table formating information.
|
||||||
Details of modification:
|
Details of modification:
|
||||||
2 virtual heads acting as table header were added to each heads-group.
|
2 virtual heads acting as table header were added to each heads-group.
|
||||||
Each head is decorated with 2 new properties max-doc-len and max-key-len
|
Each head is decorated with 2 new properties max-doc-len and max-key-len
|
||||||
|
@ -1174,7 +1163,7 @@ representing the maximum dimension of their owning group.
|
||||||
|
|
||||||
|
|
||||||
(defun hydra--hint-from-matrix (body heads-matrix)
|
(defun hydra--hint-from-matrix (body heads-matrix)
|
||||||
"Generate a formatted table-style docstring according to BODY and HEADS-MATRIX.
|
"Generate a formated table-style docstring according to BODY and HEADS-MATRIX.
|
||||||
HEADS-MATRIX is expected to be a list of heads with following features:
|
HEADS-MATRIX is expected to be a list of heads with following features:
|
||||||
Each heads must have the same length
|
Each heads must have the same length
|
||||||
Each head must have a property max-key-len and max-doc-len."
|
Each head must have a property max-key-len and max-doc-len."
|
|
@ -0,0 +1,51 @@
|
||||||
|
This package can be used to tie related commands into a family of
|
||||||
|
short bindings with a common prefix - a Hydra.
|
||||||
|
|
||||||
|
Once you summon the Hydra (through the prefixed binding), all the
|
||||||
|
heads can be called in succession with only a short extension.
|
||||||
|
The Hydra is vanquished once Hercules, any binding that isn't the
|
||||||
|
Hydra's head, arrives. Note that Hercules, besides vanquishing the
|
||||||
|
Hydra, will still serve his orignal purpose, calling his proper
|
||||||
|
command. This makes the Hydra very seamless, it's like a minor
|
||||||
|
mode that disables itself automagically.
|
||||||
|
|
||||||
|
Here's an example Hydra, bound in the global map (you can use any
|
||||||
|
keymap in place of `global-map'):
|
||||||
|
|
||||||
|
(defhydra hydra-zoom (global-map "<f2>")
|
||||||
|
"zoom"
|
||||||
|
("g" text-scale-increase "in")
|
||||||
|
("l" text-scale-decrease "out"))
|
||||||
|
|
||||||
|
It allows to start a command chain either like this:
|
||||||
|
"<f2> gg4ll5g", or "<f2> lgllg".
|
||||||
|
|
||||||
|
Here's another approach, when you just want a "callable keymap":
|
||||||
|
|
||||||
|
(defhydra hydra-toggle (:color blue)
|
||||||
|
"toggle"
|
||||||
|
("a" abbrev-mode "abbrev")
|
||||||
|
("d" toggle-debug-on-error "debug")
|
||||||
|
("f" auto-fill-mode "fill")
|
||||||
|
("t" toggle-truncate-lines "truncate")
|
||||||
|
("w" whitespace-mode "whitespace")
|
||||||
|
("q" nil "cancel"))
|
||||||
|
|
||||||
|
This binds nothing so far, but if you follow up with:
|
||||||
|
|
||||||
|
(global-set-key (kbd "C-c C-v") 'hydra-toggle/body)
|
||||||
|
|
||||||
|
you will have bound "C-c C-v a", "C-c C-v d" etc.
|
||||||
|
|
||||||
|
Knowing that `defhydra' defines e.g. `hydra-toggle/body' command,
|
||||||
|
you can nest Hydras if you wish, with `hydra-toggle/body' possibly
|
||||||
|
becoming a blue head of another Hydra.
|
||||||
|
|
||||||
|
If you want to learn all intricacies of using `defhydra' without
|
||||||
|
having to figure it all out from this source code, check out the
|
||||||
|
wiki: https://github.com/abo-abo/hydra/wiki. There's a wealth of
|
||||||
|
information there. Everyone is welcome to bring the existing pages
|
||||||
|
up to date and add new ones.
|
||||||
|
|
||||||
|
Additionally, the file hydra-examples.el serves to demo most of the
|
||||||
|
functionality.
|
|
@ -0,0 +1,2 @@
|
||||||
|
;;; -*- no-byte-compile: t -*-
|
||||||
|
(define-package "lv" "0.15.0" "Other echo area" 'nil :commit "f27fce1b2f0a9162e159557bdeb2c0c94defb4d2" :authors '(("Oleh Krehel")) :maintainer '("Oleh Krehel"))
|
|
@ -1,5 +1,5 @@
|
||||||
;;; lv.el --- Other echo area
|
;;; lv.el --- Other echo area
|
||||||
;; Package-Version: 20191214.1357
|
;; Package-Version: 0.15.0
|
||||||
|
|
||||||
;; Copyright (C) 2015 Free Software Foundation, Inc.
|
;; Copyright (C) 2015 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
@ -44,11 +44,6 @@
|
||||||
:group 'lv
|
:group 'lv
|
||||||
:type 'boolean)
|
:type 'boolean)
|
||||||
|
|
||||||
(defcustom lv-use-padding nil
|
|
||||||
"Whether to use horizontal padding in the LV window."
|
|
||||||
:group 'lv
|
|
||||||
:type 'boolean)
|
|
||||||
|
|
||||||
(defface lv-separator
|
(defface lv-separator
|
||||||
'((((class color) (background light)) :background "grey80")
|
'((((class color) (background light)) :background "grey80")
|
||||||
(((class color) (background dark)) :background "grey30"))
|
(((class color) (background dark)) :background "grey30"))
|
||||||
|
@ -61,11 +56,6 @@ Only the background color is significant."
|
||||||
"Holds the current LV window.")
|
"Holds the current LV window.")
|
||||||
|
|
||||||
(defvar display-line-numbers)
|
(defvar display-line-numbers)
|
||||||
(defvar display-fill-column-indicator)
|
|
||||||
(defvar tab-line-format)
|
|
||||||
|
|
||||||
(defvar lv-window-hook nil
|
|
||||||
"Hook to run by `lv-window' when a new window is created.")
|
|
||||||
|
|
||||||
(defun lv-window ()
|
(defun lv-window ()
|
||||||
"Ensure that LV window is live and return it."
|
"Ensure that LV window is live and return it."
|
||||||
|
@ -84,14 +74,10 @@ Only the background color is significant."
|
||||||
(set-window-hscroll lv-wnd 0)
|
(set-window-hscroll lv-wnd 0)
|
||||||
(setq window-size-fixed t)
|
(setq window-size-fixed t)
|
||||||
(setq mode-line-format nil)
|
(setq mode-line-format nil)
|
||||||
(setq header-line-format nil)
|
|
||||||
(setq tab-line-format nil)
|
|
||||||
(setq cursor-type nil)
|
(setq cursor-type nil)
|
||||||
(setq display-line-numbers nil)
|
(setq display-line-numbers nil)
|
||||||
(setq display-fill-column-indicator nil)
|
|
||||||
(set-window-dedicated-p lv-wnd t)
|
(set-window-dedicated-p lv-wnd t)
|
||||||
(set-window-parameter lv-wnd 'no-other-window t)
|
(set-window-parameter lv-wnd 'no-other-window t))
|
||||||
(run-hooks 'lv-window-hook))
|
|
||||||
(select-window ori)))))
|
(select-window ori)))))
|
||||||
|
|
||||||
(defvar golden-ratio-mode)
|
(defvar golden-ratio-mode)
|
||||||
|
@ -99,14 +85,6 @@ Only the background color is significant."
|
||||||
(defvar lv-force-update nil
|
(defvar lv-force-update nil
|
||||||
"When non-nil, `lv-message' will refresh even for the same string.")
|
"When non-nil, `lv-message' will refresh even for the same string.")
|
||||||
|
|
||||||
(defun lv--pad-to-center (str width)
|
|
||||||
"Pad STR with spaces on the left to be centered to WIDTH."
|
|
||||||
(let* ((strs (split-string str "\n"))
|
|
||||||
(padding (make-string
|
|
||||||
(/ (- width (length (car strs))) 2)
|
|
||||||
?\ )))
|
|
||||||
(mapconcat (lambda (s) (concat padding s)) strs "\n")))
|
|
||||||
|
|
||||||
(defun lv-message (format-string &rest args)
|
(defun lv-message (format-string &rest args)
|
||||||
"Set LV window contents to (`format' FORMAT-STRING ARGS)."
|
"Set LV window contents to (`format' FORMAT-STRING ARGS)."
|
||||||
(let* ((str (apply #'format format-string args))
|
(let* ((str (apply #'format format-string args))
|
||||||
|
@ -114,8 +92,6 @@ Only the background color is significant."
|
||||||
deactivate-mark
|
deactivate-mark
|
||||||
golden-ratio-mode)
|
golden-ratio-mode)
|
||||||
(with-selected-window (lv-window)
|
(with-selected-window (lv-window)
|
||||||
(when lv-use-padding
|
|
||||||
(setq str (lv--pad-to-center str (window-width))))
|
|
||||||
(unless (and (string= (buffer-string) str)
|
(unless (and (string= (buffer-string) str)
|
||||||
(null lv-force-update))
|
(null lv-force-update))
|
||||||
(delete-region (point-min) (point-max))
|
(delete-region (point-min) (point-max))
|
|
@ -1,2 +0,0 @@
|
||||||
;;; -*- no-byte-compile: t -*-
|
|
||||||
(define-package "lv" "20191214.1357" "Other echo area" 'nil :commit "9db28034d7d61bfeff89899633b958f22befc53d" :authors '(("Oleh Krehel")) :maintainer '("Oleh Krehel"))
|
|
|
@ -0,0 +1,9 @@
|
||||||
|
This package provides `lv-message' intended to be used in place of
|
||||||
|
`message' when semi-permanent hints are needed, in order to not
|
||||||
|
interfere with Echo Area.
|
||||||
|
|
||||||
|
"Я тихо-тихо пiдглядаю,
|
||||||
|
І тiшуся собi, як бачу то,
|
||||||
|
Шо страшить i не пiдпускає,
|
||||||
|
А iншi п’ють тебе, як воду пiсок."
|
||||||
|
-- Андрій Кузьменко, L.V.
|
|
@ -90,7 +90,6 @@ this file. Usage:
|
||||||
package. This is useful if the package is being lazily
|
package. This is useful if the package is being lazily
|
||||||
loaded, and you wish to conditionally call functions in your
|
loaded, and you wish to conditionally call functions in your
|
||||||
`:init' block that are defined in the package.
|
`:init' block that are defined in the package.
|
||||||
:hook Specify hook(s) to attach this package to.
|
|
||||||
|
|
||||||
:bind Bind keys, and define autoloads for the bound commands.
|
:bind Bind keys, and define autoloads for the bound commands.
|
||||||
:bind* Bind keys, and define autoloads for the bound commands,
|
:bind* Bind keys, and define autoloads for the bound commands,
|
||||||
|
@ -100,7 +99,7 @@ this file. Usage:
|
||||||
:bind-keymap* Like `:bind-keymap', but overrides all minor mode bindings
|
:bind-keymap* Like `:bind-keymap', but overrides all minor mode bindings
|
||||||
|
|
||||||
:defer Defer loading of a package -- this is implied when using
|
:defer Defer loading of a package -- this is implied when using
|
||||||
`:commands', `:bind', `:bind*', `:mode', `:magic', `:hook',
|
`:commands', `:bind', `:bind*', `:mode', `:magic',
|
||||||
`:magic-fallback', or `:interpreter'. This can be an integer,
|
`:magic-fallback', or `:interpreter'. This can be an integer,
|
||||||
to force loading after N seconds of idle time, if the package
|
to force loading after N seconds of idle time, if the package
|
||||||
has not already been loaded.
|
has not already been loaded.
|
|
@ -651,8 +651,7 @@ extending any keys already present."
|
||||||
,(when (eq use-package-verbose 'debug)
|
,(when (eq use-package-verbose 'debug)
|
||||||
`(message ,(format "Compiling package %s" name-string)))
|
`(message ,(format "Compiling package %s" name-string)))
|
||||||
,(unless (plist-get args :no-require)
|
,(unless (plist-get args :no-require)
|
||||||
`(unless (featurep ',name-symbol)
|
`(load ,name-string nil t)))))))))
|
||||||
(load ,name-string nil t))))))))))
|
|
||||||
|
|
||||||
;; Certain keywords imply :defer, if :demand was not specified.
|
;; Certain keywords imply :defer, if :demand was not specified.
|
||||||
(when (and (not (plist-member args :demand))
|
(when (and (not (plist-member args :demand))
|
||||||
|
@ -1029,7 +1028,7 @@ meaning:
|
||||||
"use-package statistics"
|
"use-package statistics"
|
||||||
"Show current statistics gathered about use-package declarations."
|
"Show current statistics gathered about use-package declarations."
|
||||||
(setq tabulated-list-format
|
(setq tabulated-list-format
|
||||||
;; The sum of column width is 80 characters:
|
;; The sum of column width is 80 caracters:
|
||||||
#[("Package" 25 t)
|
#[("Package" 25 t)
|
||||||
("Status" 13 t)
|
("Status" 13 t)
|
||||||
("Last Event" 23 t)
|
("Last Event" 23 t)
|
||||||
|
@ -1420,7 +1419,7 @@ no keyword implies `:all'."
|
||||||
(defun use-package-handler/:custom-face (name _keyword args rest state)
|
(defun use-package-handler/:custom-face (name _keyword args rest state)
|
||||||
"Generate use-package custom-face keyword code."
|
"Generate use-package custom-face keyword code."
|
||||||
(use-package-concat
|
(use-package-concat
|
||||||
(mapcar #'(lambda (def) `(custom-set-faces (backquote ,def))) args)
|
(mapcar #'(lambda (def) `(custom-set-faces (quote ,def))) args)
|
||||||
(use-package-process-keywords name rest state)))
|
(use-package-process-keywords name rest state)))
|
||||||
|
|
||||||
;;;; :init
|
;;;; :init
|
||||||
|
@ -1534,7 +1533,6 @@ this file. Usage:
|
||||||
package. This is useful if the package is being lazily
|
package. This is useful if the package is being lazily
|
||||||
loaded, and you wish to conditionally call functions in your
|
loaded, and you wish to conditionally call functions in your
|
||||||
`:init' block that are defined in the package.
|
`:init' block that are defined in the package.
|
||||||
:hook Specify hook(s) to attach this package to.
|
|
||||||
|
|
||||||
:bind Bind keys, and define autoloads for the bound commands.
|
:bind Bind keys, and define autoloads for the bound commands.
|
||||||
:bind* Bind keys, and define autoloads for the bound commands,
|
:bind* Bind keys, and define autoloads for the bound commands,
|
||||||
|
@ -1544,7 +1542,7 @@ this file. Usage:
|
||||||
:bind-keymap* Like `:bind-keymap', but overrides all minor mode bindings
|
:bind-keymap* Like `:bind-keymap', but overrides all minor mode bindings
|
||||||
|
|
||||||
:defer Defer loading of a package -- this is implied when using
|
:defer Defer loading of a package -- this is implied when using
|
||||||
`:commands', `:bind', `:bind*', `:mode', `:magic', `:hook',
|
`:commands', `:bind', `:bind*', `:mode', `:magic',
|
||||||
`:magic-fallback', or `:interpreter'. This can be an integer,
|
`:magic-fallback', or `:interpreter'. This can be an integer,
|
||||||
to force loading after N seconds of idle time, if the package
|
to force loading after N seconds of idle time, if the package
|
||||||
has not already been loaded.
|
has not already been loaded.
|
|
@ -1,4 +1,4 @@
|
||||||
(define-package "use-package" "20191126.2034" "A configuration macro for simplifying your .emacs"
|
(define-package "use-package" "2.4" "A configuration macro for simplifying your .emacs"
|
||||||
'((emacs "24.3")
|
'((emacs "24.3")
|
||||||
(bind-key "2.4"))
|
(bind-key "2.4"))
|
||||||
:keywords
|
:keywords
|
|
@ -901,7 +901,7 @@ While the ‘:after’ keyword delays loading until the dependencies are
|
||||||
loaded, the somewhat simpler ‘:requires’ keyword simply never loads the
|
loaded, the somewhat simpler ‘:requires’ keyword simply never loads the
|
||||||
package if the dependencies are not available at the time the
|
package if the dependencies are not available at the time the
|
||||||
‘use-package’ declaration is encountered. By "available" in this
|
‘use-package’ declaration is encountered. By "available" in this
|
||||||
context it means that ‘foo’ is available of ‘(featurep 'foo)’ evaluates
|
context it means that ‘foo’ is available of ‘(featurep 'foo)’ evaulates
|
||||||
to a non-nil value. For example:
|
to a non-nil value. For example:
|
||||||
|
|
||||||
(use-package abbrev
|
(use-package abbrev
|
|
@ -0,0 +1,8 @@
|
||||||
|
The `use-package' declaration macro allows you to isolate package
|
||||||
|
configuration in your ".emacs" in a way that is performance-oriented and,
|
||||||
|
well, just tidy. I created it because I have over 80 packages that I use
|
||||||
|
in Emacs, and things were getting difficult to manage. Yet with this
|
||||||
|
utility my total load time is just under 1 second, with no loss of
|
||||||
|
functionality!
|
||||||
|
|
||||||
|
Please see README.md from the same repository for documentation.
|
13
init.el
13
init.el
|
@ -52,6 +52,10 @@
|
||||||
(package-install package))
|
(package-install package))
|
||||||
(require package)))
|
(require package)))
|
||||||
|
|
||||||
|
(add-to-list 'package-pinned-packages '("diminish" . "melpa-stable"))
|
||||||
|
(add-to-list 'package-pinned-packages '("use-package" . "melpa-stable"))
|
||||||
|
(add-to-list 'package-pinned-packages '("bind-key" . "melpa-stable"))
|
||||||
|
|
||||||
(put 'use-package 'lisp-indent-function 1)
|
(put 'use-package 'lisp-indent-function 1)
|
||||||
(setq use-package-verbose t
|
(setq use-package-verbose t
|
||||||
use-package-minimum-reported-time 0.01)
|
use-package-minimum-reported-time 0.01)
|
||||||
|
@ -533,9 +537,11 @@
|
||||||
|
|
||||||
;; * Some essential packages
|
;; * Some essential packages
|
||||||
|
|
||||||
(use-package dash)
|
(use-package dash
|
||||||
|
:pin "melpa-stable")
|
||||||
|
|
||||||
(use-package hydra)
|
(use-package hydra
|
||||||
|
:pin "melpa-stable")
|
||||||
|
|
||||||
(use-package db-utils
|
(use-package db-utils
|
||||||
:commands (endless/fill-or-unfill
|
:commands (endless/fill-or-unfill
|
||||||
|
@ -621,6 +627,7 @@
|
||||||
:commands counsel-projectile)
|
:commands counsel-projectile)
|
||||||
|
|
||||||
(use-package exec-path-from-shell
|
(use-package exec-path-from-shell
|
||||||
|
:pin "melpa-stable"
|
||||||
:commands (exec-path-from-shell-copy-envs))
|
:commands (exec-path-from-shell-copy-envs))
|
||||||
|
|
||||||
|
|
||||||
|
@ -2683,6 +2690,7 @@ With given ARG, display files in `db/important-document-path’."
|
||||||
:commands (mastodon))
|
:commands (mastodon))
|
||||||
|
|
||||||
(use-package multiple-cursors
|
(use-package multiple-cursors
|
||||||
|
:pin "melpa-stable"
|
||||||
:ensure t
|
:ensure t
|
||||||
:commands (mc/edit-lines
|
:commands (mc/edit-lines
|
||||||
mc/mark-next-like-this
|
mc/mark-next-like-this
|
||||||
|
@ -2696,6 +2704,7 @@ With given ARG, display files in `db/important-document-path’."
|
||||||
(require 'org-ref-url-utils)))
|
(require 'org-ref-url-utils)))
|
||||||
|
|
||||||
(use-package page-break-lines
|
(use-package page-break-lines
|
||||||
|
:pin "melpa-stable"
|
||||||
:commands (page-break-lines-mode)
|
:commands (page-break-lines-mode)
|
||||||
:diminish page-break-lines-mode)
|
:diminish page-break-lines-mode)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue