diff --git a/core/core-configuration-layer.el b/core/core-configuration-layer.el index d4d43cb7c..cbb7e8752 100644 --- a/core/core-configuration-layer.el +++ b/core/core-configuration-layer.el @@ -1,3 +1,4 @@ +;; -*- nameless-current-name: "configuration-layer" -*- ;;; core-configuration-layer.el --- Spacemacs Core File ;; ;; Copyright (c) 2012-2017 Sylvain Benner & Contributors diff --git a/layers/+lang/emacs-lisp/README.org b/layers/+lang/emacs-lisp/README.org index 6c79b093a..4d127d39f 100644 --- a/layers/+lang/emacs-lisp/README.org +++ b/layers/+lang/emacs-lisp/README.org @@ -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 diff --git a/layers/+lang/emacs-lisp/config.el b/layers/+lang/emacs-lisp/config.el index facc5c7a8..2c9644f68 100644 --- a/layers/+lang/emacs-lisp/config.el +++ b/layers/+lang/emacs-lisp/config.el @@ -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.") diff --git a/layers/+lang/emacs-lisp/packages.el b/layers/+lang/emacs-lisp/packages.el index e6c5e3cb8..74d2a60b1 100644 --- a/layers/+lang/emacs-lisp/packages.el +++ b/layers/+lang/emacs-lisp/packages.el @@ -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