]> git.eshelyaron.com Git - emacs.git/log
emacs.git
6 years agoWhitespace fix
John Wiegley [Fri, 1 Dec 2017 08:46:57 +0000 (00:46 -0800)]
Whitespace fix

6 years agoMove :hook before :defer
John Wiegley [Fri, 1 Dec 2017 08:46:45 +0000 (00:46 -0800)]
Move :hook before :defer

6 years agoDon't macroexpand bind-keys, leave that to the evaluator
John Wiegley [Fri, 1 Dec 2017 08:45:43 +0000 (00:45 -0800)]
Don't macroexpand bind-keys, leave that to the evaluator

6 years agoAlways use `load' when loading for the sake of compilation
John Wiegley [Fri, 1 Dec 2017 08:45:04 +0000 (00:45 -0800)]
Always use `load' when loading for the sake of compilation

6 years agoSort keywords at the appropriate time
John Wiegley [Fri, 1 Dec 2017 08:44:49 +0000 (00:44 -0800)]
Sort keywords at the appropriate time

6 years agoChange the :config default, if none has been set in vars
John Wiegley [Fri, 1 Dec 2017 08:44:17 +0000 (00:44 -0800)]
Change the :config default, if none has been set in vars

6 years ago:no-require t should never require
John Wiegley [Fri, 1 Dec 2017 05:45:17 +0000 (21:45 -0800)]
:no-require t should never require

6 years agoCode reformatting
John Wiegley [Fri, 1 Dec 2017 04:35:29 +0000 (20:35 -0800)]
Code reformatting

6 years agoAllow match-expansion to take multiple cases
John Wiegley [Fri, 1 Dec 2017 03:40:54 +0000 (19:40 -0800)]
Allow match-expansion to take multiple cases

6 years agoAdd test for use-package-test-normalize/:ensure
John Wiegley [Fri, 1 Dec 2017 02:37:27 +0000 (18:37 -0800)]
Add test for use-package-test-normalize/:ensure

6 years agoAdd the missing plist-delete
John Wiegley [Fri, 1 Dec 2017 02:36:45 +0000 (18:36 -0800)]
Add the missing plist-delete

6 years agoRemove an unneeded defvar
John Wiegley [Thu, 30 Nov 2017 20:39:04 +0000 (12:39 -0800)]
Remove an unneeded defvar

6 years agoA final fix to :ensure + :load-path
John Wiegley [Thu, 30 Nov 2017 20:38:13 +0000 (12:38 -0800)]
A final fix to :ensure + :load-path

Fixes https://github.com/jwiegley/use-package/issues/190

6 years agoAdd a test case for :ensure, following up from
John Wiegley [Thu, 30 Nov 2017 20:38:01 +0000 (12:38 -0800)]
Add a test case for :ensure, following up from

GitHub-reference: https://github.com/jwiegley/use-package/issues/190

6 years agoDon't check for an :ensure that use-package-always-ensure may have added
John Wiegley [Thu, 30 Nov 2017 19:20:17 +0000 (11:20 -0800)]
Don't check for an :ensure that use-package-always-ensure may have added

Fixes https://github.com/jwiegley/use-package/issues/190

6 years agoAdd a use-package-version variable
John Wiegley [Thu, 30 Nov 2017 19:05:46 +0000 (11:05 -0800)]
Add a use-package-version variable

6 years agoAdd two new tests
John Wiegley [Thu, 30 Nov 2017 18:38:01 +0000 (10:38 -0800)]
Add two new tests

6 years agoAdd stubs for future tests of all keywords
John Wiegley [Thu, 30 Nov 2017 17:42:47 +0000 (09:42 -0800)]
Add stubs for future tests of all keywords

6 years agoAllow :ensure to take a nil value again
John Wiegley [Thu, 30 Nov 2017 17:14:28 +0000 (09:14 -0800)]
Allow :ensure to take a nil value again

Fixes https://github.com/jwiegley/use-package/issues/526

6 years agoOnly add :ensure nil on :load-path if use-package-always-ensure is t
John Wiegley [Thu, 30 Nov 2017 07:08:22 +0000 (23:08 -0800)]
Only add :ensure nil on :load-path if use-package-always-ensure is t

6 years agoRestructure some code
John Wiegley [Thu, 30 Nov 2017 06:20:43 +0000 (22:20 -0800)]
Restructure some code

6 years agoUsing :load-path without also using :ensure now implies :ensure nil
John Wiegley [Thu, 30 Nov 2017 06:10:01 +0000 (22:10 -0800)]
Using :load-path without also using :ensure now implies :ensure nil

Fixes https://github.com/jwiegley/use-package/issues/190

6 years agoCorrection to use-package--recognize-function
John Wiegley [Thu, 30 Nov 2017 06:03:03 +0000 (22:03 -0800)]
Correction to use-package--recognize-function

Finishes https://github.com/jwiegley/use-package/issues/525

6 years agoAllow keys to be bound to nil
John Wiegley [Thu, 30 Nov 2017 05:43:52 +0000 (21:43 -0800)]
Allow keys to be bound to nil

Fixes https://github.com/jwiegley/use-package/issues/525

6 years agoFix a missing `and'
John Wiegley [Thu, 30 Nov 2017 00:53:41 +0000 (16:53 -0800)]
Fix a missing `and'

6 years agoUse backquote rather than quote
John Wiegley [Thu, 30 Nov 2017 00:48:58 +0000 (16:48 -0800)]
Use backquote rather than quote

6 years agoCorrect use-package-normalize-mode
John Wiegley [Thu, 30 Nov 2017 00:44:20 +0000 (16:44 -0800)]
Correct use-package-normalize-mode

6 years agoWhitespace fix
John Wiegley [Thu, 30 Nov 2017 00:44:11 +0000 (16:44 -0800)]
Whitespace fix

6 years agoUpdate version and copyright
John Wiegley [Thu, 30 Nov 2017 00:37:55 +0000 (16:37 -0800)]
Update version and copyright

6 years agoAllow :bind ("C-c C-c" . (lambda () (ding))) and #'(lambda ...)
John Wiegley [Wed, 29 Nov 2017 22:41:12 +0000 (14:41 -0800)]
Allow :bind ("C-c C-c" . (lambda () (ding))) and #'(lambda ...)

Fixes https://github.com/jwiegley/use-package/issues/333
Fixes https://github.com/jwiegley/use-package/issues/461

6 years agoReorder some items in NEWS.md
John Wiegley [Wed, 29 Nov 2017 18:55:47 +0000 (10:55 -0800)]
Reorder some items in NEWS.md

6 years agoAdd NEWS.md file
John Wiegley [Wed, 29 Nov 2017 18:53:51 +0000 (10:53 -0800)]
Add NEWS.md file

6 years agoMerge pull request from basil-conto/version
John Wiegley [Wed, 29 Nov 2017 16:40:34 +0000 (08:40 -0800)]
Merge pull request from basil-conto/version

Require Emacs version >= 24.3
GitHub-reference: https://github.com/jwiegley/use-package/issues/519

6 years agoRequire Emacs version >= 24.3
Basil L. Contovounesios [Wed, 29 Nov 2017 10:50:30 +0000 (10:50 +0000)]
Require Emacs version >= 24.3

Re: https://github.com/jwiegley/use-package/issues/457

6 years agoMerge pull request from basil-conto/520
John Wiegley [Wed, 29 Nov 2017 15:57:40 +0000 (07:57 -0800)]
Merge pull request from basil-conto/520

Require cl-lib and do not use seq functions
GitHub-reference: https://github.com/jwiegley/use-package/issues/521

6 years agoMerge branch 'master' into 520
John Wiegley [Wed, 29 Nov 2017 15:57:29 +0000 (07:57 -0800)]
Merge branch 'master' into 520

6 years agoAdd a missing (require 'seq)
John Wiegley [Wed, 29 Nov 2017 15:55:53 +0000 (07:55 -0800)]
Add a missing (require 'seq)

6 years agoRequire cl-lib and do not use seq functions
Basil L. Contovounesios [Wed, 29 Nov 2017 15:47:00 +0000 (15:47 +0000)]
Require cl-lib and do not use seq functions

cl-lib is also required for a separate call to cl-mapcan.

Fixes https://github.com/jwiegley/use-package/issues/520

6 years agoWhen use-package-inject-hooks is non-nil, always fire init/config hooks
John Wiegley [Wed, 29 Nov 2017 05:12:25 +0000 (21:12 -0800)]
When use-package-inject-hooks is non-nil, always fire init/config hooks

This used to not happen if `:init` or `:config` was missing, or set to nil as
with `:init nil`.

Fixes https://github.com/jwiegley/use-package/issues/250

6 years agoPrint map keys in describe-personal-keybindings
John Wiegley [Wed, 29 Nov 2017 04:58:04 +0000 (20:58 -0800)]
Print map keys in describe-personal-keybindings

Fixes https://github.com/jwiegley/use-package/issues/406

6 years agoRepeating a bind no longer causes duplicates in personal-keybindings
John Wiegley [Wed, 29 Nov 2017 04:52:29 +0000 (20:52 -0800)]
Repeating a bind no longer causes duplicates in personal-keybindings

Fixes https://github.com/jwiegley/use-package/issues/446

6 years agoWhen byte-compiling, correctly output declare-function directives
John Wiegley [Wed, 29 Nov 2017 04:31:40 +0000 (20:31 -0800)]
When byte-compiling, correctly output declare-function directives

Fixes https://github.com/jwiegley/use-package/issues/474

6 years agoMake diminish a soft dependency, as delight already was
John Wiegley [Wed, 29 Nov 2017 04:26:34 +0000 (20:26 -0800)]
Make diminish a soft dependency, as delight already was

Fixes https://github.com/jwiegley/use-package/issues/493

6 years agoAllow :diminish to take no argument, once again
John Wiegley [Wed, 29 Nov 2017 00:27:09 +0000 (16:27 -0800)]
Allow :diminish to take no argument, once again

6 years agoFix for single :custom (foo bar)
John Wiegley [Tue, 28 Nov 2017 22:39:59 +0000 (14:39 -0800)]
Fix for single :custom (foo bar)

6 years agoAllow :custom (foo1 bar1) (foo2 bar2) etc
John Wiegley [Tue, 28 Nov 2017 22:16:13 +0000 (14:16 -0800)]
Allow :custom (foo1 bar1) (foo2 bar2) etc

Fixes https://github.com/jwiegley/use-package/issues/518

6 years agoAdd support for `:hook`
John Wiegley [Tue, 28 Nov 2017 21:58:38 +0000 (13:58 -0800)]
Add support for `:hook`

Fixes https://github.com/jwiegley/use-package/issues/444

6 years agoAppend to *use-package* when debugging, don't clear it
John Wiegley [Tue, 28 Nov 2017 19:41:41 +0000 (11:41 -0800)]
Append to *use-package* when debugging, don't clear it

Fixes https://github.com/jwiegley/use-package/issues/476

6 years agoMake unrecognized keywords a warning
John Wiegley [Tue, 28 Nov 2017 19:31:35 +0000 (11:31 -0800)]
Make unrecognized keywords a warning

This could actually be used to store your own metadata in use-package
declarations, to be (read) later by simply parsing init file contents.

Fixes https://github.com/jwiegley/use-package/issues/483

6 years agoUpgrade license to GPL 3
John Wiegley [Tue, 28 Nov 2017 19:22:53 +0000 (11:22 -0800)]
Upgrade license to GPL 3

Fixes https://github.com/jwiegley/use-package/issues/499

6 years agoDon't allow :commands, :bind, etc., to be given an empty list
John Wiegley [Tue, 28 Nov 2017 19:16:12 +0000 (11:16 -0800)]
Don't allow :commands, :bind, etc., to be given an empty list

This makes the following an error:

    :commands
    :commands nil
    :commands ()

Fixes https://github.com/jwiegley/use-package/issues/512

6 years agoExplicit :defer t should override use-package-always-demand
John Wiegley [Tue, 28 Nov 2017 19:14:30 +0000 (11:14 -0800)]
Explicit :defer t should override use-package-always-demand

Fixes https://github.com/jwiegley/use-package/issues/514

6 years agoMerge pull request from drrlvn/patch-1
John Wiegley [Tue, 28 Nov 2017 19:08:08 +0000 (11:08 -0800)]
Merge pull request from drrlvn/patch-1

Remove duplicate documentation of :mode
GitHub-reference: https://github.com/jwiegley/use-package/issues/489

6 years agoCorrections to the normalization of :custom
John Wiegley [Tue, 28 Nov 2017 19:03:47 +0000 (11:03 -0800)]
Corrections to the normalization of :custom

6 years agoMerge pull request from joewreschnig/implicit-diminish
John Wiegley [Tue, 28 Nov 2017 19:07:03 +0000 (11:07 -0800)]
Merge pull request from joewreschnig/implicit-diminish

Allow `:diminish` with no arguments.
GitHub-reference: https://github.com/jwiegley/use-package/issues/472

6 years agoMerge pull request from waymondo/master
John Wiegley [Tue, 21 Nov 2017 22:30:47 +0000 (14:30 -0800)]
Merge pull request from waymondo/master

Allow customized values to be nil
GitHub-reference: https://github.com/jwiegley/use-package/issues/515

6 years agoallow customized values to be nil
Justin Talbott [Tue, 21 Nov 2017 04:33:34 +0000 (23:33 -0500)]
allow customized values to be nil

6 years agoMerge pull request from canatella/add-customization-keywords
John Wiegley [Mon, 20 Nov 2017 23:42:19 +0000 (15:42 -0800)]
Merge pull request from canatella/add-customization-keywords

Add customization keywords
GitHub-reference: https://github.com/jwiegley/use-package/issues/508

7 years agoAdd support for face customization
Damien Merenne [Tue, 17 Oct 2017 17:40:38 +0000 (19:40 +0200)]
Add support for face customization

Allows customization of faces using customize-set-faces. This makes it
easier to manage customization in version control. Instead of having all the
faces written in a custom.el, the faces can be customized where the rest
of the package is configured.

7 years agoAdd support for variable customization
Damien Merenne [Tue, 17 Oct 2017 17:35:19 +0000 (19:35 +0200)]
Add support for variable customization

Allows customization of variable using customize-set-variables. This makes it
easier to manage customization in version control. Instead of having all the
variables written in a custom.el, the variable can be customized where the rest
of the package is configured.

7 years agoMerge pull request from carldotac/master
John Wiegley [Mon, 30 Oct 2017 21:28:06 +0000 (14:28 -0700)]
Merge pull request from carldotac/master

Fix documentation typos
GitHub-reference: https://github.com/jwiegley/use-package/issues/513

7 years agoFix typos in docstring
Carl Lieberman [Mon, 30 Oct 2017 20:03:35 +0000 (16:03 -0400)]
Fix typos in docstring

7 years agoMerge pull request from emacsjanitors/demote-manually
John Wiegley [Fri, 13 Oct 2017 22:48:07 +0000 (15:48 -0700)]
Merge pull request from emacsjanitors/demote-manually

Don't use with-demoted-errors in use-package-ensure-elpa
GitHub-reference: https://github.com/jwiegley/use-package/issues/507

7 years agoCosmetic changes to use-package-ensure-elpa
Jonas Bernoulli [Fri, 13 Oct 2017 12:09:13 +0000 (14:09 +0200)]
Cosmetic changes to use-package-ensure-elpa

7 years agoDon't use with-demoted-errors in use-package-ensure-elpa
Jonas Bernoulli [Fri, 13 Oct 2017 12:08:06 +0000 (14:08 +0200)]
Don't use with-demoted-errors in use-package-ensure-elpa

It expects a literal string as argument at macro-expansion
time, but we need to construct the message.

7 years agoMerge pull request from raxod502/feat/fix-install-deferred
John Wiegley [Sun, 13 Aug 2017 05:56:38 +0000 (22:56 -0700)]
Merge pull request from raxod502/feat/fix-install-deferred

Fix bug in use-package-install-deferred-package
GitHub-reference: https://github.com/jwiegley/use-package/issues/479

7 years agoRemove duplicate documentation of :mode
Dror Levin [Sun, 30 Jul 2017 21:11:13 +0000 (00:11 +0300)]
Remove duplicate documentation of :mode

7 years agoMerge pull request from joewreschnig/481-delight-docs
John Wiegley [Mon, 10 Jul 2017 19:34:43 +0000 (12:34 -0700)]
Merge pull request from joewreschnig/481-delight-docs

Document :delight in the doc string and README.
GitHub-reference: https://github.com/jwiegley/use-package/issues/484

7 years agoDocument :delight in the doc string and README
Joe Wreschnig [Sun, 9 Jul 2017 20:23:38 +0000 (22:23 +0200)]
Document :delight in the doc string and README

7 years agoAllow `:diminish` with no arguments
Joe Wreschnig [Wed, 14 Jun 2017 18:24:01 +0000 (20:24 +0200)]
Allow `:diminish` with no arguments

When given no arguments, have :diminish assume it should diminish a
mode named after the current package (the package’s name, with “-mode”
appended, if it’s not already) to an empty string.

When given only a string to diminish an implicit package name to, do
not append “-mode” to the package name if it already ends with
it.  (This is a backwards-incompatible change if someone was
diminishing a package named “foo-mode” implementing `foo-mode-mode`.)

Add test cases for `use-package-normalize-diminish`.

This addresses some of the redundancy mentioned in issue https://github.com/jwiegley/use-package/issues/288.

7 years agoMerge pull request from joewreschnig/477-delight-wrappers
John Wiegley [Sun, 2 Jul 2017 20:22:40 +0000 (13:22 -0700)]
Merge pull request from joewreschnig/477-delight-wrappers

Allow multiple :delight arguments, or omitting the mode. (https://github.com/jwiegley/use-package/issues/477)
GitHub-reference: https://github.com/jwiegley/use-package/issues/480

7 years agoAllow :major as the third argument in :delight calls
Joe Wreschnig [Sun, 2 Jul 2017 15:45:26 +0000 (17:45 +0200)]
Allow :major as the third argument in :delight calls

7 years agoAllow multiple :delight arguments, or omitting the mode. ()
Joe Wreschnig [Sun, 2 Jul 2017 14:20:01 +0000 (16:20 +0200)]
Allow multiple :delight arguments, or omitting the mode. ()

This allows using forms such as

    (use-package foo :delight)
        ;; => (delight 'foo-mode)
    (use-package foo :delight " f")
        ;; => (delight 'foo-mode " f")
    (use-package foo :delight (a-mode) (b-mode " b")
        ;; => (delight 'a-mode) (delight 'b-mode " b")

This brings support for `:delight` in line with `:diminish`.
GitHub-reference: https://github.com/jwiegley/use-package/issues/477

7 years agoFix bug in use-package-install-deferred-package
Radon Rosborough [Fri, 30 Jun 2017 19:26:26 +0000 (12:26 -0700)]
Fix bug in use-package-install-deferred-package

Previously, deferred installation didn't work because I didn't convert
the result of a `completing-read' back from a string to a symbol,
which meant the hash-table lookup failed.

7 years agoMerge pull request from joewreschnig/magic-469
John Wiegley [Fri, 16 Jun 2017 21:54:22 +0000 (14:54 -0700)]
Merge pull request from joewreschnig/magic-469

Add `:magic` and `:magic-fallback` keywords (issue https://github.com/jwiegley/use-package/issues/469).
GitHub-reference: https://github.com/jwiegley/use-package/issues/473

7 years agoAdd `:magic` and `:magic-fallback` keywords (issue)
Joe Wreschnig [Thu, 15 Jun 2017 18:44:11 +0000 (20:44 +0200)]
Add `:magic` and `:magic-fallback` keywords (issue)

These keywords work equivalently to `:mode` or `:interpreter`, but for
`magic-mode-alist` and `magic-fallback-mode-alist`.

The handler function implementation is now passed a list to add to,
and shared by all four of them.
GitHub-reference: https://github.com/jwiegley/use-package/issues/469

7 years agoProtect against errors during package install
David Leatherman [Tue, 23 May 2017 01:23:26 +0000 (18:23 -0700)]
Protect against errors during package install

If the network is missing and there is a new use-package with :ensure,
startup would fail part of the way through due package.el being unable
to reach the package repo.  This will catch that error and report it
while allowing startup to continue.

Copyright-paperwork-exempt: yes

7 years agoMerge pull request from raxod502/feat/failed-autoload-msg
John Wiegley [Tue, 9 May 2017 18:57:54 +0000 (11:57 -0700)]
Merge pull request from raxod502/feat/failed-autoload-msg

Fix quoting error in failed autoload message
GitHub-reference: https://github.com/jwiegley/use-package/issues/456

7 years agoFix quoting error in failed autoload message
Radon Rosborough [Sun, 7 May 2017 22:23:50 +0000 (15:23 -0700)]
Fix quoting error in failed autoload message

7 years agoMerge pull request from raxod502/normalize-nil
John Wiegley [Wed, 5 Apr 2017 17:28:15 +0000 (10:28 -0700)]
Merge pull request from raxod502/normalize-nil

Make use-package-normalize-value handle nil better
GitHub-reference: https://github.com/jwiegley/use-package/issues/449

7 years agoMake use-package-normalize-value handle nil better
Radon Rosborough [Wed, 5 Apr 2017 04:16:06 +0000 (21:16 -0700)]
Make use-package-normalize-value handle nil better

The previous version of `use-package-normalize-value', when passed
nil, would return the list (symbol-value (quote nil)). This meant that
keywords which used `use-package-normalize-value' or the higher-level
normalizer `use-package-normalize-test' would get a non-nil
argument (i.e. the above list) even when the user specified nil to the
package.

This had the concrete impact of making it so that :defer-install nil
was treated as :defer-install t.

7 years agoMerge pull request from raxod502/fix-bind-key-filter
John Wiegley [Mon, 3 Apr 2017 19:34:01 +0000 (12:34 -0700)]
Merge pull request from raxod502/fix-bind-key-filter

Don't mutilate keyword arguments in :bind
GitHub-reference: https://github.com/jwiegley/use-package/issues/447

7 years agoAdd comment explaining keyword-argument patch
Radon Rosborough [Mon, 3 Apr 2017 17:40:46 +0000 (10:40 -0700)]
Add comment explaining keyword-argument patch

7 years agoDon't mutilate keyword arguments in :bind
Radon Rosborough [Mon, 3 Apr 2017 04:03:47 +0000 (21:03 -0700)]
Don't mutilate keyword arguments in :bind

The parsing logic in `use-package-normalize-pairs' is not designed to
deal with keyword arguments. However, `use-package-normalize-pairs' is
used to process the arguments to :bind, which can include keyword
arguments. These keyword arguments are supposed to be passed untouched
to the underlying `bind-keys' function, but there is a clause in
`use-package-normalize-pairs' that replaces lists with their first
element. Thus an invocation like:

(use-package company
  :bind (:map company-active-map
         :filter (company-explicit-action-p)
         ("RET" . company-complete-selection)))

Generates code like this:

(bind-keys
  :map company-active-map
  :filter company-explicit-action-p
  ("RET" . company-complete-selection))

Which generates an error since `company-explicit-action-p' is now
being referenced as a variable rather than a function.

The proper solution is to refactor the logic that goes into parsing
uses of :bind, but this commit adds a temporary patch to eliminate the
above problem, while trying to be as reverse-compatible as possible.
In particular it just inhibits the list-to-first-element
transformation when the previous element processed was a keyword.

7 years agoMerge pull request from raxod502/fix-after
John Wiegley [Mon, 27 Mar 2017 21:49:43 +0000 (14:49 -0700)]
Merge pull request from raxod502/fix-after

Fix :after keyword
GitHub-reference: https://github.com/jwiegley/use-package/issues/439

7 years agoMerge pull request from raxod502/always-defer-install
John Wiegley [Mon, 27 Mar 2017 21:49:33 +0000 (14:49 -0700)]
Merge pull request from raxod502/always-defer-install

Add use-package-always-defer-install
GitHub-reference: https://github.com/jwiegley/use-package/issues/443

7 years agoAdd use-package-always-defer-install
Radon Rosborough [Sun, 26 Mar 2017 21:40:17 +0000 (14:40 -0700)]
Add use-package-always-defer-install

See https://github.com/jwiegley/use-package/pull/433#issuecomment-289317875

7 years agoFix :after keyword
Radon Rosborough [Sun, 19 Mar 2017 15:33:30 +0000 (08:33 -0700)]
Fix :after keyword

Commit [1] broke the functionality of :after (see [2]) due to an
extraneous quote being added.

[1]: bd2afa53c7580d23ed8008267b80e1834b6e6600
[2]: https://github.com/jwiegley/use-package/pull/433#issuecomment-287606553

7 years agoMerge pull request from raxod502/defer-install
John Wiegley [Sun, 19 Mar 2017 07:12:06 +0000 (00:12 -0700)]
Merge pull request from raxod502/defer-install

[RFC] Support for deferred installation
GitHub-reference: https://github.com/jwiegley/use-package/issues/433

7 years agoMerge remote-tracking branch 'origin/master' into defer-install
Radon Rosborough [Sun, 19 Mar 2017 03:43:40 +0000 (20:43 -0700)]
Merge remote-tracking branch 'origin/master' into defer-install

Resolve merge conflicts.

7 years agoUpdate docstring, installation prompt message
Radon Rosborough [Sun, 19 Mar 2017 03:00:53 +0000 (20:00 -0700)]
Update docstring, installation prompt message

7 years agoVarious improvements for deferred installation
Radon Rosborough [Sun, 19 Mar 2017 02:34:28 +0000 (19:34 -0700)]
Various improvements for deferred installation

7 years agoGet :defer-install completely working, in theory
Radon Rosborough [Thu, 9 Mar 2017 04:05:15 +0000 (20:05 -0800)]
Get :defer-install completely working, in theory

* A quoting error has been fixed in `use-package-handler/:defer'.
* `use-package-install-deferred-package' has been updated to return t
  if the package was actually installed, and nil otherwise.
* The fake autoloads generated during deferred installation are
  doctored so Emacs does not think they were defined in the user's
  init-file.
* The docstrings of the fake autoloads have been improved.
* Arguments and interactivity are now correctly passed to the
  autoloaded function.
* The autoload now skips requiring the feature and calling the
  original function if the user declines to install the package. This
  prevents unprofessional errors.

7 years agoImprove deferred installation mechanism
Radon Rosborough [Thu, 9 Mar 2017 03:00:37 +0000 (19:00 -0800)]
Improve deferred installation mechanism

This time around, I've gotten rid of the advice on `require' (that was
never going to work) and instead made `use-package' try to handle
loading the package at the appropriate time. In particular, when
deferred installation is active, all the autoloads generated by
`use-package' are not regular autoloads, but regular functions that
will install the relevant package, require the relevant feature, and
only then call the newly defined (autoloaded) function.

Some smarter logic has been added to make sure things like `:demand'
play nicely with the autoloading system; see the extensive comment in
`use-package-handler/:defer-install' for more information on how that
works.

There was a section in `use-package-install-deferred-package' which
referred to a nonexistent variable `use-package--deferred-features';
that has been removed.

There is now, in addition to `use-package-ensure-function', a new
variable called `use-package-pre-ensure-function'. This is intended
for use by package managers which, unlike package.el, activate
autoloads package-by-package instead of all at once. Even if a package
is marked for deferred installation, the user would likely want its
autoloads activated immediately *if* it was already installed. The
logic for doing that can now be put in
`use-package-pre-ensure-function'.

7 years agoMerge branch 'generalized-ensure' into defer-install
Radon Rosborough [Thu, 9 Mar 2017 02:19:15 +0000 (18:19 -0800)]
Merge branch 'generalized-ensure' into defer-install

7 years agoUpdate docstring for use-package-ensure-function
Radon Rosborough [Thu, 9 Mar 2017 02:16:31 +0000 (18:16 -0800)]
Update docstring for use-package-ensure-function

Now it properly reflects the API changes recently made.

7 years agoFirst cut at :defer-install keyword
Radon Rosborough [Wed, 8 Mar 2017 20:28:40 +0000 (12:28 -0800)]
First cut at :defer-install keyword

This new keyword, if provided along with a non-nil value, causes the
action of :ensure to be deferred until "necessary". Package
installation can be triggered by the user calling the new interactive
function `use-package-install-deferred-package', or by the feature
declared by the `use-package' form being required. This latter
behavior seems to be the simplest way to make sure that package
installation actually takes place when it needs to, but it requires
that an advice be added to `require', which may be considered overly
intrusive. (Also, it's generally considered bad practice for functions
in Emacs to put advice on other functions in Emacs.) Thus it may make
sense to add an option or function to explicitly enable this behavior,
if there does not turn out to be a better way to accomplish deferred
installation.

Documentation has not been updated to reflect :defer-install yet.

7 years agoExtend capabilities of use-package-ensure-function
Radon Rosborough [Wed, 8 Mar 2017 19:17:33 +0000 (11:17 -0800)]
Extend capabilities of use-package-ensure-function

Modify the expected API of `use-package-ensure-function' so that it is
passed three arguments: the name of the package declared in the
`use-package' form; the argument passed to `:ensure'; and the current
`state' plist created by previous handlers. (Previously, it was only
given a single argument, which was the argument passed to `:ensure',
or the name of the package declared in the `use-package' form, if the
former was `t'.

This allows for more flexibility in the capabilities of the
`use-package-ensure-function' implementation. For example, its
behavior can change depending on the values of other keywords, if
those keywords modify the `state' plist appropriately.

7 years agoRevert "Return `t' after calling `eval-after-load'"
John Wiegley [Sat, 18 Feb 2017 09:32:34 +0000 (01:32 -0800)]
Revert "Return `t' after calling `eval-after-load'"

This reverts commit 87a8ff6d693f3cc79ea423ca8c8e0a60b0bc596c.

7 years agoSupport multiple symbols passed to :after
John Wiegley [Thu, 16 Feb 2017 21:48:05 +0000 (13:48 -0800)]
Support multiple symbols passed to :after

The following expressions are now permitted:

    foo                         ; load after foo is loaded
    foo bar                     ; load after both foo and bar are loaded
    :all foo bar                ; same as previous
    :any foo bar                ; load after either foo or bar is loaded
    :any (:all foo bar) baz     ; more complex combinations...
    :any (:all foo bar) (:all baz wow)
    :all (:any foo bar) (:any baz wow)

Fixes https://github.com/jwiegley/use-package/issues/283