emacs-lisp: improve nameless configuration

- Change nameless prefix to > instead of default :
- Change toggle to SPC m >
- Set nameless separator to nil in order to make it work with any type or separator
- Add diminish unicode ⧁
- Define some default global aliases for Spacemacs source code
- Rename layer variable emacs-lisp-nameless-mode to emacs-lisp-hide-namespace-prefix
- Make variable nameless-current-name safe as a local variable for string values
- Set nameless prefix for core-configuration-layer.el
This commit is contained in:
syl20bnr 2017-12-17 23:25:04 -05:00
parent 71f8919ebf
commit 2ed3946d7b
4 changed files with 45 additions and 9 deletions

View File

@ -1,3 +1,4 @@
;; -*- nameless-current-name: "configuration-layer" -*-
;;; core-configuration-layer.el --- Spacemacs Core File
;;
;; Copyright (c) 2012-2017 Sylvain Benner & Contributors

View File

@ -10,6 +10,7 @@
- [[#working-with-lisp-files-barfage-slurpage--more][Working with lisp files (barfage, slurpage & more)]]
- [[#debugging-elisp][Debugging Elisp]]
- [[#nameless][Nameless]]
- [[#aliases][Aliases]]
- [[#key-bindings][Key bindings]]
- [[#additional-testing-functions-with-overseer][Additional testing functions with overseer]]
- [[#additional-evaluation-functions][Additional evaluation functions]]
@ -98,13 +99,32 @@ function or press ~o~ to go out of it.
7) Press ~a~ to stop debugging.
* Nameless
Nameless hides package namespaces in your emacs-lisp code, and replaces it by leading ~:~
It can be toggled by ~SPC m :~.
Nameless hides package namespaces in your emacs-lisp code, and replaces it by
leading ~>~ It can be toggled with ~SPC m >~.
To have it automatically on, you need to define a layer variable:
=(emacs-lisp :variables emacs-lisp-nameless-mode t)= in =.spacemacs= =dotspacemacs/layers=
To have it automatically on set the layer variable
=emacs-lisp-hide-namespace-prefix= to =t=
Further configuration can be done with the custom variable =nameless-global-aliases=, cf [[https://github.com/Malabarba/Nameless#requiring-other-packages-as-aliases][original library documentation]]
#+BEGIN_SRC emacs-lisp
(setq-default dotspacemacs-configuration-layers '(
(emacs-lisp :variables emacs-lisp-hide-namespace-prefix t)))
#+END_SRC
** Aliases
This layer defines some global aliases for Spacemacs:
| alias | namespace |
|-------+---------------------|
| S | spacemacs |
| SB | spacemacs-buffer |
| CL | configuration-layer |
You can define additional alias in function =dotspacemacs/user-config= of your
dotfile:
#+BEGIN_SRC emacs-lisp
(add-to-list 'nameless-global-aliases '("N" . "nameless"))
#+END_SRC
* Key bindings

View File

@ -14,5 +14,5 @@
(spacemacs|define-jump-handlers emacs-lisp-mode)
(spacemacs|define-jump-handlers lisp-interaction-mode)
(defvar emacs-lisp-nameless-mode nil
"If non-nil, nameless-mode is automatically turn on for emacs-lisp buffers.")
(defvar emacs-lisp-hide-namespace-prefix nil
"If non-nil, hide namespace prefixes using nameless-mode.")

View File

@ -184,13 +184,28 @@
:defer t
:init
(progn
(when emacs-lisp-nameless-mode
(when emacs-lisp-hide-namespace-prefix
(add-hook 'emacs-lisp-mode-hook 'nameless-mode-from-hook))
(setq
;; always show the separator since it can have a semantic purpose
;; like in Spacemacs where - is variable and / is a function.
;; moreover it makes nameless work for all kind of separators.
nameless-separator nil
;; Use > as the defautl prefix : is already used for
;; keywords
nameless-prefix ">")
;; some default aliases for Spacemacs source code
(setq nameless-global-aliases '(("SB" . "spacemacs-buffer")
("S" . "spacemacs")
("CL" . "configuration-layer")))
;; make `nameless-current-name' safe as a local variable for string values
(put 'nameless-current-name 'safe-local-variable #'stringp)
(spacemacs|diminish nameless-mode "" " >")
(spacemacs|add-toggle nameless
:status nameless-mode
:on (nameless-mode)
:off (nameless-mode -1)
:evil-leader-for-mode (emacs-lisp-mode . ":")))))
:evil-leader-for-mode (emacs-lisp-mode . ">")))))
(defun emacs-lisp/init-overseer ()
(use-package overseer