Commit graph

1728 commits

Author SHA1 Message Date
Lucius Hu e5be31bb85
Bumped minimum emacs version to 26.1 2021-05-03 22:09:11 +02:00
Lucius Hu 2182be9440
[documentation]: Improved core-load-paths and core-versions (#14707)
- Conform to standard ELISP file practice.
- Rearranged the top-level forms s.t. Variables and constants are declared at top.
- Added section markers and documentations.
  - Use three or more `;` as a section header. They work well with built-in outline-mode. `M-j` and `M-k` is the binding to quickly navigate between them.
  - Optionally use `^L` (form-feed) as a divider for the ELISP file. It's rendered as a horizontal divider. And it works with `backward-page` (`C-x [`) and `forward-page` (`C-x ]`)
2021-04-30 05:36:23 +00:00
Lucius Hu 117f4b73ab
squash! Removed legacy codes for emacs-version < 25.1 (#14497) 2021-04-28 01:17:17 -04:00
Lucius Hu bc27203615
Removed legacy codes for emacs-version < 25.1 (#14497) 2021-04-28 05:04:53 +00:00
Sylvain Benner eeee3a1fa0
[core] Fix 'append nesting in transient-state-format-hint macro (#14698) 2021-04-26 23:10:01 -04:00
emacspace e0a6363ba9 Built-in files auto-update: Fri Apr 23 14:02:04 UTC 2021 2021-04-23 23:00:39 +03:00
Lucius Hu 3bbc7a7d40
core-customization: improved SAFE variable handling (#14679)
* core-customization: improved SAFE variable handling

- SAFE can either be a function or t.
  - When it's t, use a default validation function
    `(lambda (val) (validate-value val TYPE t))`
  - When it's a function, use the supplied function.

* Fixed bugs in go and groovy layer

In almost any cases, it's better to supply `t` instead of a function, to
`SAFE` argument of `spacemacs|defc`.

For example,
```elisp
 (spacemacs|defc go-use-gocheck-for-testing nil
   "If using gocheck for testing when running the tests -check.f will be used instead of -run to specify the test that will be ran. Gocheck is mandatory for testing suites."
  'boolean nil #'booleanp)
```

If its value is nil, it evaluate to `nil`, which means that `nil` is not
a safe value for `go-use-gocheck-for-testing` local variable.

But clearly it is.

* core-customization: improved SAFE variable handling

- Added a function `spacemacs-customization//get-variable-validator`.
  This function is designed to be used with `safe-local-variable`
  property of spacemacs custom variables.
  See details in the docstring.

```elisp
(put 'FOO 'safe-local-variable
     (apply-partially 'spacemacs-customization//get-variable-validator
                      'FOO))
```

- This is better than a lambda since `apply-partially` returns a compiled
  function. (Though the performace gain may be tiny.)
- This is better than simply calling `validate-value`, because it returns
  nil when value is nil. But sometimes nil is a valid value.

Co-authored-by: Lucius Hu <lebensterben@users.noreply.github.com>
2021-04-19 21:34:09 +02:00
Maximilian Wolff 539c7849d5
[core] Avoid setting safe-local-variable to nil in spacemacs|defc 2021-04-17 22:38:29 +02:00
Maximilian Wolff 8814329a11
[groovy] Replace defvar with spacemacs|defc
And extend spacemacs|defc to allow setting
a :safe directive.
2021-04-17 22:07:44 +02:00
Maximilian Wolff 347ac504d8 [helpful] Make layer alias standard describe-functions 2021-04-15 21:14:23 +00:00
emacspace 4471024721
[bot] Auto-update (#14648)
* documentation formatting: Thu Apr 15 19:58:45 UTC 2021

* Built-in files auto-update: Thu Apr 15 19:57:01 UTC 2021
2021-04-15 22:16:34 +02:00
Daniel Nicolai b3c78297fb Add describe evil ex-command functionality
For introspection purposes it can be nice to have this functionality. Also this
function can be used to discover which ex-commands are available.
2021-04-15 22:03:59 +02:00
Maximilian Wolff 9cb5a3f67b [core] Remove some typos in doc of new jump handlers 2021-04-12 21:13:51 +00:00
Thanh Vuong f136f465ab core: revise core-jump
spacemacs|define-jump-handlers only defines a variable
`spacemacs-jump-handlers-MODE' to which handlers can be added and sets up key
bindings for mode. MODE must be a major mode,. It won't add function to mode
hook anymore.

`jump-to-definition` will walk through the three lists of handlers in the
following order: spacemacs-jump-handlers, spacemacs-jump-handlers-MODE, and
finally spacemacs-default-jump-handlers.

Dynamic handlers like lsp, tide, ggtags use spacemacs-jump-handlers to register
(add-to-list 'spacemacs-jump-handlers 'jump-hanlder)

Conventional static handlers should use spacemacs-jump-handlers-MODE
2021-04-12 21:02:23 +00:00
Mihaly Barasz bebf5c4a07 Use the standard elpa gpg homedir
Closes #13738
2021-04-12 20:15:46 +00:00
Ray 5bd1603b65 [Fix] dotspacemacs/test-dotfile complains error on new custom vars
After new custom `dotspacemacs-*` variables being introduced in
`core/core-dotspacemacs.el`, if one has an old `.spacemacs` without these
variables set, `SPC f e R` will complain error messages like
```
Variable: "dotspacemacs-emacs-dumper-dump-file" has value: "nil" that doesn't
match its type: "string"...
```
even if these variables have already had initial value.

This is because `dotspacemacs||let-init-test` macro only locally declares these
variables without setting them with their initial value.

This pull request fix this issue by expanding (dotspacemacs/get-variable-list)
into `'((var1 value1) (var2 value2) ...)` list instead of `(var1 var2 ...)`.
2021-04-10 09:43:44 +02:00
Maximilian Wolff be6f820256 Add missing GPLv3 headers to various files 2021-04-09 20:52:24 +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
duianto 4dc1d7640a [defaults] Add dotspacemacs-scroll-bar-while-scrolling 2021-04-08 21:09:54 +00:00
duianto d012d2d95f [dotfile] New var: dotspacemacs-startup-buffer-multi-digit-delay
It sets the minimum delay in seconds between number key presses.
On the Spacemacs home buffer.
2021-04-08 22:27:54 +02:00
Sylvain Benner 9c7e4bd5f1
[init] Disable GUI elements in early-init as well (#14559)
* [init] Disable GUI elements in early-init as well

Can provide a smoother startup by reducing graphical artifacts.

* [core] Add file for early-init functions

Needed to make the tests to work as early-init.el is not sourced
during tests.

Fixes error:

   Symbol’s function definition is void: spacemacs/removes-gui-elements
2021-04-08 22:25:14 +02:00
emacspace eec5ba6577
[bot] Auto-update (#14573)
* documentation formatting: Mon Apr 5 20:50:44 UTC 2021

* Built-in files auto-update: Mon Apr 5 20:49:17 UTC 2021
2021-04-05 23:19:49 +02:00
Lucius Hu f7650f89c9 refactor
- Replaced `(set (make-local-variable 'foo) bar)` with `(setq-local foo bar)`
2021-04-04 12:48:21 +02:00
Lucius Hu f4067d6375 refactor
- Replaced `(set (make-local-variable 'foo) bar)` with `(setq-local foo bar)`
2021-04-04 12:48:21 +02:00
duianto eaf2e932e6 Fix typo: connst -> const 2021-03-29 10:36:07 +02:00
duianto aabd3bcac3 Fix expected type of: dotspacemacs-which-key-delay
problem:
Setting dotspacemacs-which-key-delay to an integer, for example: 4

Makes the following message to appear on startup:
(Spacemacs) Error in dotspacemacs/init: Variable: "dotspacemacs-which-key-delay" has value: "4" that doesn’t match its type: "(float)". Validator message: "(user-error Looking for `(float)' in `4' failed because:
  not a float)"

cause:
dotspacemacs-which-key-delay expects the type: float
The float type has the description:
The value must be floating point.

solution:
Change the type to: number
The number type has the description:
The value must be a number (floating point or integer).

Source: info (`C-h i`)
In the section: Elisp > Customization Types > Simple Types
2021-03-29 10:00:28 +02:00
syl20bnr aa0c0301e2 [home] Add link to free software definition 2021-03-26 18:58:54 -04:00
emacspace 314c131209 Built-in files auto-update: Fri Mar 26 03:33:18 UTC 2021 2021-03-25 23:52:04 -04:00
syl20bnr 60a070433f [home] Add "Proudly free software" to footer 2021-03-25 23:31:18 -04:00
syl20bnr 92c1565507 [home] Fix alignement and footer regression cased by 9a66c2566 2021-03-25 23:18:39 -04:00
syl20bnr 532ad2567c [home] Add GPLv3 badge in footer 2021-03-25 22:59:32 -04:00
syl20bnr 9a66c2566e [home] Add Licensing button 2021-03-25 22:59:32 -04: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
duianto 7a2eb1be70 [home] Add multi-digit numbers to the startup lists
Added support for jumping to two digit numbers.

How quickly two numbers have to be typed,
can be modified with the variable:
spacemacs-buffer-multi-digit-delay
2021-03-21 23:38:57 +01:00
syl20bnr 3243172af1 [core] Fix another typo
Well not sure I will do all the typos mentioned by email...
2021-03-20 21:41:32 -04:00
syl20bnr 3d1b8865d9 [core] Fix value validation for dotspacemacs-editing-style 2021-03-20 20:56:34 -04:00
Lucius Hu 5830e72b60 fixup! Validate .spacemacs variables.
fixes #14535 #14537 #14529 https://github.com/syl20bnr/spacemacs/issues/10638#issuecomment-803247326
2021-03-21 01:29:09 +02:00
Lucius Hu 3e156ec763 fixup! Validate .spacemacs variables. 2021-03-21 00:54:46 +02:00
claude 3f45527813 Update doc-string for dotspacemacs-frame-title-format 2021-03-20 11:45:32 +02:00
claude 70f475d782 Fix .spacemacs validation choices 2021-03-20 11:45:32 +02: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 369cf7519f Improve spacemacs|defc doc-string 2021-03-18 20:55:08 +02:00
JAremko bbf050734a Don't show customize link in doc-strings of uncustomizable variables. 2021-03-18 20:55:08 +02:00
emacspace b86c619cb6 Built-in files auto-update: Thu Mar 18 14:37:56 UTC 2021 2021-03-18 18:07:05 +01:00
JAremko 0f2df2727d Validate .spacemacs variables. 2021-03-18 15:47:02 +02:00
Maximilian Wolff 7d2ff48d77 Allow disabling smartparens in dotfile
Smartparens seems to cause performance issues for
a lot of users. This PR allows to disable the package
completely.

There are some functions in elisp and common-lisp mode
which dependt on this package and will manually require
it when executed though. But this should only affect
lispers which mostly will want to have some kind of
smartparent functionality anyway.

For the discussion see here #12533.
2021-03-15 20:51:18 +00:00
emacspace 13791616c7
[bot] Auto-update (#14398)
* documentation formatting: Sat Mar 13 23:53:10 UTC 2021

* Built-in files auto-update: Sat Mar 13 23:51:34 UTC 2021
2021-03-14 00:57:56 +01:00
William McBee 7786e11a35
[core] load-env-vars cygwin support (#14442)
Cygwin's paths use forward slashes, not backward slashes.
2021-03-14 00:33:50 +01:00
duianto 2e48899db7 Open home buffer recent files in expected order
problem:
Pressing a number key on the Spacemacs home buffer,
doesn't reliably open the expected recent file.

cause:
The number keys are bound to open the files in the
order they are listed in the `recentf-list`.

The `recentf-list` is updated when a file is saved.

The home buffers recent files list is only updated
when the home buffer is created/refreshed/resized.

solution:
Open the recent files in the order they were listed
when the home buffer was last updated.

Fixes: incorrect order number in recent files on home buffer #14471
2021-03-13 23:19:02 +01:00