Commit Graph

402 Commits

Author SHA1 Message Date
Daniel Nicolai 548edefcce Install org from ELPA instead of Org ELPA
From org version 9.5 org will not be distributed from Org ELPA but from
ELPA (see https://list.orgmode.org/87lfa7tc9v.fsf@gnu.org/t/). This commit makes
Spacemacs use/install org from ELPA.

Besides that, this commit removes some 'hack' that seemed to have no effect. As
org comes with Emacs `package-installed-p 'org` will always return t. Also
activating org via `configuration-layer//activate-package` seems to have no
effect.

Finally, the package is declared including a :min-version because appending only
`:location melpa` seems to have no effect (this can probably be considered a
bug).
I am almost certain that the information that was added when making org install
from Org ELPA is still relevant also for installing org from ELPA so I have just
adapted the version number from 0.104 to 0.300.

As the "org" archive has been removed, the `ert-deftest` for it can be removed
also.
2021-11-06 14:34:18 +01:00
Lin Sun 497c767036 [core] Support packing elisp to *.elc and *.el.gz files
Support packing elisp to *.elc and *.el.gz like vallina Emacs.
2021-09-29 22:15:38 +02:00
Markus Bertheau eda7e19370
Don't fail hard when trying to delete a non-existing package (#14821) 2021-06-04 03:57:26 +00:00
Richard Kim 63197014cc
use org and org-contrib packages rather than org-plus-contrib
setup org-contrib in org layer rather than spacemacs-org layer

follow-on fix for spacemacs-org layer
2021-05-29 21:10:21 +02:00
Lucius Hu bc27203615
Removed legacy codes for emacs-version < 25.1 (#14497) 2021-04-28 05:04:53 +00:00
Mihaly Barasz bebf5c4a07 Use the standard elpa gpg homedir
Closes #13738
2021-04-12 20:15:46 +00:00
duianto ef1ad4ecee Check package updates from Spacemacs home buffer
problem:
`SPC f e U` checks if packages have updates.
But if the current buffer isn't the Spacemacs home buffer,
then the minibuffer just shows:
>Do you want to update 1 package(s)? (y or n)

There's no information about which packages have updates.

Canceling the prompt with: `n`
and switching to the messages buffer `SPC b m`, does list them.
>(Spacemacs) --> Found 1 package(s) to update:
>
>(Spacemacs) dap-mode

But it doesn't work to switch to the home buffer,
because that information was erased when the home buffer was refreshed.

solution:
Switch to the home buffer before checking for updates.
2021-04-09 21:40:19 +02:00
syl20bnr 97cd83e169 Apply GPLv3 terms explicitly to all elisp files 2021-03-25 22:59:32 -04:00
syl20bnr d55a9e2e67 Update header for year 2021 2021-03-25 22:59:32 -04:00
Aaron L. Zeng 454e729ef0 In SPC h d P, print :toggle expression using Elisp syntax
This prints out an expression in valid Lisp syntax, so that, e.g.,
strings in the expression are quoted.
2021-03-19 09:48:44 +01:00
JAremko 0f2df2727d Validate .spacemacs variables. 2021-03-18 15:47:02 +02:00
Thanh Vuong ae65f3cedd
Fix #14213 remove dash and ht from core libs
- delete dash and ht in core
- reimplemented all ht functions we need in `spacemacs-ht.el` and use them
- add dash to spacemacs-bootstrap
2021-02-07 22:22:39 +01:00
duianto b4922325c7 [core] Shorten package update restart message
problem:
When the Emacs frame has the default window width (80 characters).

Then the current restart to update message:
Emacs has to be restarted to actually install the new version of the packages (SPC q r)

is cut off at the Emacs frames right edge:
Emacs has to be restarted to actually install the new version of the packages (S

solution:
Shortening the message:
Restart Emacs to install the updated packages. (SPC q r)

says the same thing, and keeps it within 80 characters.
2021-01-24 21:56:14 +01:00
duianto c0f61fa035 [core] Fix package update restart message
Problem:
When the restart-emacs package is being updated.

The update packages restart message, still shows the (SPC q r) key binding even
though it doesn't work.

Cause:
The member function compared a string against a list of symbols.

A possible improvement:
Explain that the key binding won't work this time.

Before:
Emacs has to be restarted to actually install the new version of the packages (SPC q r).

After:
Emacs has to be restarted to actually install the new version of the packages
(SPC q r) won't work this time, because the restart-emacs package is being updated.
2020-12-08 20:14:52 +01:00
Brandon T. Willard ac3c3546a2 Fix misc. compilation warnings 2020-10-15 23:49:33 +02:00
Robert O'Connor 82ba73a1c0
update copyright to 2020 2020-09-23 21:25:01 +02:00
syl20bnr 52ec07bb44 [core] Fix installation of unused layer dependencies after SPC h SPC
Fix bug where layer dependencies of all layers (even the unused ones)
are installed after SPC h SPC and then SPC f e R
2020-08-29 21:51:52 -04:00
syl20bnr b5f673e0a7 [core] Update message when force dumping 2020-08-29 21:51:52 -04:00
Maximilian Wolff c43b9ea104
[core] Revise "do not delete system package" check
Fixed some smaller issues and added the missing
logging feature.
2020-07-13 00:55:23 +02:00
William Cedervall 52d5d9d98f
Only remove non system pkg
Added "configuration-layer//system-package?" based on package-delete
(pretty much a direct partial copy-paste) so that
"configuration-layer//package-delete" can check if package is a
system package

No crash on spacemacs boot (with unused system-package present).
Though right now "configuration-layer//package-delete" only ignores system
packages instead of reporting them. Not entierly what @nbraud proposed,
but insufficient err-logging is a significantly smaller issue.

Fixes #11160
2020-07-13 00:55:23 +02:00
Mihaly Barasz 0f7693c4d5 Fix spacelpa public key file name
This fixes the issue that users have to import the public key manually
to pass spacelpa archive verification. See #12652
2020-07-01 21:11:33 +02:00
Aaron Jensen 840b431cf6
configuration: fix redundant update checking
Fixes #13114
2020-02-09 19:23:19 +00:00
Ag Ibragimov 7f92a4388d fix: ignore nil values in dotspacemacs-configuration-layers
otherwise it throws warnings when layers introduced imperatively, e.g.:

dotspacemacs-configuration-layers
`(
  ,(when (eq system-type 'darwin) 'osx)
  ,(when (eq system-type 'gnu/linux) 'exwm))
2020-02-05 20:54:13 +01:00
duianto 623ca354fe
Fix home buffer version and banner
- Removed the first line deletion.
This required the banners to have an empty first line.

- Removed the empty first line from the banners.

- Made sure that there is a single empty line between:
  - The Version and Banner.
  - Banner and Buttons ([?] [Homepage] ...).
  - Version and Buttons (when the banner is hidden).

- Reordered the backend version insertion function call
to match the frontend Spacemacs buffer order.
  - version
  - banner
  - buttons

Before it added:
- the banner
- then the buffers first line was removed
- then the version was added to the first line
- then the buttons were added at the bottom of the buffer
(there are more things added after the buttons,
but they haven't been changed by this commit).

- Removed the version insertion call in:
core/core-spacemacs-buffer.el

The changes above caused the version to appear twice
in the Spacemacs home buffer on startup.

I'm not sure if it has/had other uses.

This seems to be where it was first added to:
core-configuration-layer.el:
core: restore default mode line in home buffer
77161bd591

It was slightly modified in this commit:
core: defer distro insertion in home buffer
cd50d9c069

Here it was joined with the banner:
Fix version injection in home buffer
  Don't inject version if banner is nil
a764eb4eb9

core: condensed versions into one string in left-hand side
  spacemacs-version@emacs-version (distribution)
627e934453

- I had not seen that the version was joined with the
banner on purpose until now.

It seemed useful to still be able to see the versions
if one just wanted to hide the banner.

Therefore I opened this PR (it's been cherry-picked):
Uncouple version from banner in spacemacs buffer #11901
https://github.com/syl20bnr/spacemacs/pull/11901

If there's a good reason to combine them again,
then the changes can be reverted.
2019-12-03 20:44:22 +00:00
syl20bnr 584392bd92 [core] Fix layer dependencies based on layer variables
There was a edge case with the declaration of the `lsp` layer in `layers.el`
files.
The `hy` layer depends on the `python` layer which in turn depends on the `lsp`
layer if and only if the `python-backend` layer variable is set to `lsp`.
When the `hy` layer was declared first then it declares the `python` layer
without its layer variables, thus the `lsp` layer was not declared because the
`python-backend` variable was not set.

The fix is to gather all the layer dependencies and resolve them only after all
the used layers have been declared.

* new function `configuration-layer/declare-layer-dependencies`
* replace all calls to `configuration-layer/declare-layer` by the new function
  except for distribution layers (we declare layer dependencies right away in
  distribution layers)
2019-09-30 02:00:48 -04:00
syl20bnr cfb12e9bd5 [core] Improve spacelpa archive verification
* modified function configuration-layer//stable-elpa-verify-archive

Add a `fatal-err` variable to handle critical erros that prevent the
verification to be attempted.
Use the function `epg-verify-file` instead of `epg-verify-string` which seems
to give more reliable results.
2019-08-24 22:50:39 -04:00
syl20bnr 512a1e3b0c [core] Fix some typos in stable ELPA verification prompts 2019-08-23 13:16:39 -04:00
syl20bnr c975fc64ca [core] Improve spacelpa verification and error detection
* modified function configuration-layer//stable-elpa-verify-archive

Gather errors along the verification steps and make a single call to
configuration-layer//stable-elpa-ask-to-continue at the end of the function.

Improve the scope of catched errors so now the users should be prompted when
GPG is not available on the system.
2019-08-23 12:12:51 -04:00
syl20bnr f21abcdcf3 [core] Rewrite of the stable ELPA initialization code
* new function configuration-layer//stable-elpa-disable-repository
* new function configuration-layer//stable-elpa-update-version-file
* new function configuration-layer//stable-elpa-delete-temporary-files
* new function configuration-layer//stable-elpa-ask-to-continue
* new function configuration-layer//stable-elpa-verify-archive
* new function configuration-layer//stable-elpa-disable-repository
* rename function configuration-layer/stable-elpa-download-tarball to
                  configuration-layer//stable-elpa-download-tarball
* new function configuration-layer/stable-elpa-init
* make the function configuration-layer/stable-elpa-version interactive

configuration-layer/stable-elpa-init is called from init.el.
This function then calls the other new function in more clear fashion than the
previous complicated configuration-layer/stable-elpa-download-tarball

The users are now prompt if they want to install the stable ELPA repository when
the verification of the archive failed.
2019-08-23 00:51:21 -04:00
syl20bnr 4a8a8b04af [core] Remove unecessary check for gzip executable on Windows
Turns out we don't use it at all. Also tar.exe is part of the standard
MS Windows 10 distribution, it is installed in system32 directory.
2019-08-21 22:44:32 -04:00
syl20bnr b800694d32 [core] Add function for generic error about not found executable
* new function configuration-layer//executable-not-found-error
* use new function for tar and gzip not found errors
2019-08-21 22:30:24 -04:00
syl20bnr cfc1057af0 core: fix spacelpa support
* new variable configuration-layer-stable-elpa-archive
* add missing sub-directory "packages"
* update .lock file with above changes and bump to archive version 0.400
2019-08-21 19:53:58 -04:00
syl20bnr 0c39f63c66 [dump] Move some code to dump-init.el 2019-07-26 22:44:11 -04:00
syl20bnr f51fc8e13b [core] Add pre-dump for layers and function spacemacs/dump-modes 2019-07-26 16:32:27 -04:00
Miciah Masters 19e4c49126 Fix sort in insert-lazy-install-configuration
Commit 1c4f685b13 replaced
configuration-layer--layers (a list of cfgl-layer objects) with
configuration-layer--used-layers (a list of symbols).  It also changed the
configuration-layer/insert-lazy-install-configuration function to use the
new variable, but it did not change the sort predicate.  Consequently, the
function started failing:

    Wrong type argument: listp, spacemacs-purpose

In addition, because sort is destructive, the function also deleted values
from configuration-layer--used-layers.

This commit fixes the sort predicate so that the function returns the
correct value, and it copies the list before sorting to avoid modifying
configuration-layer--used-layers.

* core/core-configuration-layer.el
(configuration-layer/insert-lazy-install-configuration): Use string<
as the sort predicate, and give sort a copy of the list.
2019-04-26 21:41:39 +02:00
Florian Bruhin cca6c0549b core: Fix typo in error message 2019-04-24 19:41:24 +02:00
Codruț Constantin Gușoi a2bda16823 Use external tar program for extracting archive 2019-02-01 00:57:46 +02:00
Kevin Ji e98c1b5113
core: Remove space before question mark 2018-10-18 20:02:24 +03:00
John Eismeier 5e3c96562a Propose a couple of spelling corrections 2018-08-02 00:20:06 +03:00
syl20bnr 6220ace290 core: rework environment variables and PATH management
See updated DOCUMENTATION.org and FAQ.org for more info.

* add core-env.el
* add library load-env-vars.el
* add bootstrap package dotenv-mode.el
* remove spacemacs-environment from bootstrap layer
* remove dotspacemacs variable dotspacemacs-import-env-vars-from-shell
* remove dotspacemacs variable dotspacemacs-improt-env-vars-shell-file-name
* add new key binding SPC f e e to open spacemacs.env file
* add new key binding SPC f e E to reload environment variable from env file
* add new key binding SPC f e C-e to re-initialize the env file from shell.
2018-06-25 02:55:28 -04:00
syl20bnr f1f8db002a core: display time spent in user-config in home buffer 2018-06-16 15:21:58 -04:00
syl20bnr d3c594512d core: don't call user-load unless we are dumping 2018-06-16 14:46:17 -04:00
syl20bnr b8e0fdd4a5 core: fix pdumper enabled on SPC f e R no matter what 2018-06-16 11:05:05 -04:00
Benjamin Reynolds 594fdc8f05 Rename spacemacs/mplist-get functions to be more descriptive
* spacemacs/mplist-get -> spacemacs/mplist-get-values
* spacemacs/plist-get -> spacemacs/mplist-get-value
* refactor spacemacs/mplist-get-value to be defined in terms of mplist-get-values

Ref #10803 See [comment]

[comment]: https://github.com/syl20bnr/spacemacs/pull/10803#issuecomment-395292606
2018-06-14 00:15:49 -04:00
syl20bnr ac247396f3 core: avoid unecessary output in message buffer at startup
Unless in debug mode.
2018-06-10 02:49:51 -04:00
syl20bnr c2211b32e3 core: new function configuration-layer/load-file 2018-06-10 02:46:16 -04:00
syl20bnr 39bf9e516c core: fix warning about quoted lambda in core-configuration-layer.el 2018-06-10 02:45:34 -04:00
syl20bnr a0a3ff0c20 core: refactor the progress bar
Spacemacs is slow to startup so better give it a not buggy progress bar :-)

* Move progress bar code to core-progress-bar.el file
* Remove the counters at the end of the progress bar
* Fix update of the progress bar value
* Fix progress bar size when staring Emacs maximized
2018-06-10 02:32:29 -04:00
Miciah Masters e0b751bee3 Avoid non-idempotent use of push in init code
Replace push with add-to-list in layer init functions and related code.

Modify spacemacs|add-toggle to check for and update an existing toggle in
spacemacs-toggles and only create a new toggle if none already existed.

Replace a conditional push onto erc-packages with use of :toggle.

When initializing which-key, set which-key-replacement-alist to its default
or customized setting before adding all the Spacemacs replacements.  We
want to keep the stock replacements but avoid adding duplicates of the
Spacemacs replacements.

Replace the emacs-lisp-mode-hook lambda with a named function to avoid
adding duplicate hooks (which can add duplicate definitions of the
evil-surround pair).
2018-06-05 22:17:13 -04:00
syl20bnr 92fac263a8 core: re-evaluate layer variables after package configuration
It allows to put package variable with a default value set by spacemacs in
the layer variables. For instance to set treemacs position to the right, you can
now do it like this:

(treemacs :variables treemacs-position 'right)
2018-05-28 11:23:57 -04:00