3bbc7a7d40
* 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>
34 lines
1.3 KiB
EmacsLisp
34 lines
1.3 KiB
EmacsLisp
;;; config.el --- Groovy layer configuration File for Spacemacs
|
|
;;
|
|
;; Copyright (c) 2012-2021 Sylvain Benner & Contributors
|
|
;;
|
|
;; Author: Maximilian Wolff <smile13241324@gmail.com>
|
|
;; URL: https://github.com/syl20bnr/spacemacs
|
|
;;
|
|
;; This file is not part of GNU Emacs.
|
|
;;
|
|
;; 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/>.
|
|
|
|
|
|
;; Variables
|
|
|
|
(spacemacs|defc groovy-backend (if (configuration-layer/layer-used-p 'lsp) 'lsp 'company-groovy)
|
|
"The backend to use for IDE features.
|
|
Possible values are `lsp' and `company-groovy'.
|
|
If not set then 'company-groovy` is the default backend unless `lsp' layer is used"
|
|
'(choice (const lsp) (const company-groovy)) nil t)
|
|
|
|
(spacemacs|defc groovy-lsp-jar-path "~/groovy-lsp-all.jar"
|
|
"The path to the lsp jar file"
|
|
'(file :must-match t) nil t)
|