From 18762615ae06bfddc508e893da83ac5a7ab946c2 Mon Sep 17 00:00:00 2001 From: syl20bnr Date: Thu, 7 May 2015 00:31:13 -0400 Subject: [PATCH] Actually add the emacs-lisp folder :-) --- contrib/lang/emacs-lisp/README.md | 57 +++++++++++++++++++ contrib/lang/emacs-lisp/config.el | 14 +++++ contrib/lang/emacs-lisp/extensions.el | 33 +++++++++++ contrib/lang/emacs-lisp/img/emacs-lisp.png | Bin 0 -> 27907 bytes contrib/lang/emacs-lisp/packages.el | 63 +++++++++++++++++++++ 5 files changed, 167 insertions(+) create mode 100644 contrib/lang/emacs-lisp/README.md create mode 100644 contrib/lang/emacs-lisp/config.el create mode 100644 contrib/lang/emacs-lisp/extensions.el create mode 100644 contrib/lang/emacs-lisp/img/emacs-lisp.png create mode 100644 contrib/lang/emacs-lisp/packages.el diff --git a/contrib/lang/emacs-lisp/README.md b/contrib/lang/emacs-lisp/README.md new file mode 100644 index 000000000..e9c9060b3 --- /dev/null +++ b/contrib/lang/emacs-lisp/README.md @@ -0,0 +1,57 @@ +# Emacs Lisp contribution layer for Spacemacs + +![logo](img/emacs-lisp.png) + + +**Table of Contents** + +- [Emacs Lisp contribution layer for Spacemacs](#emacs-lisp-contribution-layer-for-spacemacs) + - [Description](#description) + - [Install](#install) + - [Key bindings](#key-bindings) + - [srefactor](#srefactor) + + + +## Description + +This layer gathers all the configuration related to emacs-lisp. This should +always be in your dotfile, it is not recommended to uninstall it. + +## Install + +To use this contribution add it to your `~/.spacemacs` + +```elisp +(setq-default dotspacemacs-configuration-layers '(emacs-lisp)) +``` + +## Key bindings + +Key Binding | Description +---------------------------------------------|------------------------------------------- +SPC m g g | go to definition of symbol under point +SPC m h h | describe symbol at point +SPC m e $ or SPC m e l | go to end of current line and evaluate +SPC m e b | evaluate current buffer +SPC m e c | evaluate current form (start with `defun`, `setq`, etc...) +SPC m e e | evaluate sexp before point +SPC m e r | evaluate current region +SPC m e f | evaluation current function +SPC m , | toggle `lisp state` +SPC m t b | run tests of current buffer +SPC m t q | run `ert` + +### srefactor + +The [semantic layer][semantic-layer] should be installed for these key bindings +to become active. + +Key Binding | Description +---------------------|------------------------------------------------------------ +SPC m = b | format current buffer +SPC m = f | format current function +SPC m = r | format current sexp +SPC m = o | format all on one line + +[semantic-layer]: ../../semantic/README.md diff --git a/contrib/lang/emacs-lisp/config.el b/contrib/lang/emacs-lisp/config.el new file mode 100644 index 000000000..730223fda --- /dev/null +++ b/contrib/lang/emacs-lisp/config.el @@ -0,0 +1,14 @@ +;;; config.el --- Emacs Lisp Layer configuration File for Spacemacs +;; +;; Copyright (c) 2012-2014 Sylvain Benner +;; Copyright (c) 2014-2015 Sylvain Benner & Contributors +;; +;; Author: Sylvain Benner +;; URL: https://github.com/syl20bnr/spacemacs +;; +;; This file is not part of GNU Emacs. +;; +;;; License: GPLv3 + +;; Variables +(spacemacs|defvar-company-backends emacs-lisp-mode) diff --git a/contrib/lang/emacs-lisp/extensions.el b/contrib/lang/emacs-lisp/extensions.el new file mode 100644 index 000000000..b6dcde7ca --- /dev/null +++ b/contrib/lang/emacs-lisp/extensions.el @@ -0,0 +1,33 @@ +;;; extensions.el --- Emacs Lisp Layer Extensions File for Spacemacs +;; +;; Copyright (c) 2012-2014 Sylvain Benner +;; Copyright (c) 2014-2015 Sylvain Benner & Contributors +;; +;; Author: Sylvain Benner +;; URL: https://github.com/syl20bnr/spacemacs +;; +;; This file is not part of GNU Emacs. +;; +;;; License: GPLv3 + +(setq emacs-lisp-post-extensions + '(emacs-builtin-emacs-lisp)) + +(defun emacs-lisp/init-emacs-builtin-emacs-lisp () + + (evil-leader/set-key-for-mode 'emacs-lisp-mode + "me$" 'lisp-state-eval-sexp-end-of-line + "meb" 'eval-buffer + "mec" 'spacemacs/eval-current-form + "mee" 'eval-last-sexp + "mer" 'spacemacs/eval-region + "mef" 'eval-defun + "mel" 'lisp-state-eval-sexp-end-of-line + "m," 'lisp-state-toggle-lisp-state + "mtb" 'spacemacs/ert-run-tests-buffer + "mtq" 'ert) + + ;; company support + (push 'company-capf company-backends-emacs-lisp-mode) + (spacemacs|add-company-hook emacs-lisp-mode)) + diff --git a/contrib/lang/emacs-lisp/img/emacs-lisp.png b/contrib/lang/emacs-lisp/img/emacs-lisp.png new file mode 100644 index 0000000000000000000000000000000000000000..b196474c713ea7caadc5a2ba55ab79ebfc18ae3c GIT binary patch literal 27907 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 TH3~YxK*tXW1@T%@qu~Dm&j?Cy literal 0 HcmV?d00001 diff --git a/contrib/lang/emacs-lisp/packages.el b/contrib/lang/emacs-lisp/packages.el new file mode 100644 index 000000000..834f105c5 --- /dev/null +++ b/contrib/lang/emacs-lisp/packages.el @@ -0,0 +1,63 @@ +;;; packages.el --- Emacs Lisp Layer packages File for Spacemacs +;; +;; Copyright (c) 2012-2014 Sylvain Benner +;; Copyright (c) 2014-2015 Sylvain Benner & Contributors +;; +;; Author: Sylvain Benner +;; URL: https://github.com/syl20bnr/spacemacs +;; +;; This file is not part of GNU Emacs. +;; +;;; License: GPLv3 + +(setq emacs-lisp-packages + '( + eldoc + elisp-slime-nav + evil + semantic + smartparens + srefactor + )) + +(defun emacs-lisp/post-init-eldoc () + (add-hook 'emacs-lisp-mode-hook 'eldoc-mode)) + +(defun emacs-lisp/init-elisp-slime-nav () + ;; Elisp go-to-definition with M-. and back again with M-, + (use-package elisp-slime-nav + :defer t + :init + (progn + (add-hook 'emacs-lisp-mode-hook 'elisp-slime-nav-mode) + (evil-leader/set-key-for-mode 'emacs-lisp-mode + "mgg" 'elisp-slime-nav-find-elisp-thing-at-point + "mhh" 'elisp-slime-nav-describe-elisp-thing-at-point)))) + +(defun emacs-lisp/post-init-evil () + (add-to-hook 'emacs-lisp-mode + '(lambda () + (spacemacs|define-text-object ";" + "elisp-comment" + ";; " + "")))) + +(defun emacs-lisp/post-init-semantic () + (semantic/enable-semantic-mode 'emacs-lisp-mode) + (eval-after-load 'semantic + '(semantic-default-elisp-setup))) + +(defun emacs-lisp/post-init-srefactor () + (add-hook 'emacs-lisp-mode-hook 'spacemacs/lazy-load-srefactor) + (use-package srefactor-lisp + :commands (srefactor-lisp-format-buffer + srefactor-lisp-format-defun + srefactor-lisp-format-sexp + srefactor-lisp-one-line) + :init + (evil-leader/set-key-for-mode 'emacs-lisp-mode + "mfb" 'srefactor-lisp-format-buffer + "mfd" 'srefactor-lisp-format-defun + "mfr" 'srefactor-lisp-format-sexp + "mfo" 'srefactor-lisp-one-line + )))