From 29ea01b77260cb77e9a8e4eb0b0c15c845fbb99b Mon Sep 17 00:00:00 2001 From: Aria Edmonds Date: Sat, 9 Jun 2018 21:47:26 +1000 Subject: [PATCH 1/6] lang/emacs-lisp: Add +parinfer feature --- init.example.el | 3 ++- modules/lang/emacs-lisp/+parinfer.el | 22 ++++++++++++++++++++++ modules/lang/emacs-lisp/config.el | 2 ++ modules/lang/emacs-lisp/packages.el | 3 +++ 4 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 modules/lang/emacs-lisp/+parinfer.el diff --git a/init.example.el b/init.example.el index 7d03efd15..c272bcd19 100644 --- a/init.example.el +++ b/init.example.el @@ -75,7 +75,8 @@ ;erlang ; an elegant language for a more civilized age ;elixir ; erlang done right ;elm ; care for a cup of TEA? - emacs-lisp ; drown in parentheses + (emacs-lisp ; drown in parentheses + +parinfer) ; A handy addon to sort of turn lisp into python ;ess ; emacs speaks statistics ;go ; the hipster dialect ;(haskell +intero) ; a language that's lazier than I am diff --git a/modules/lang/emacs-lisp/+parinfer.el b/modules/lang/emacs-lisp/+parinfer.el new file mode 100644 index 000000000..60a6f4d98 --- /dev/null +++ b/modules/lang/emacs-lisp/+parinfer.el @@ -0,0 +1,22 @@ +;;; lang/emacs-lisp/+parinfer.el -*- lexical-binding: t; -*- + + +(def-package! parinfer + :commands (parinfer-mode) + :init + (add-hook! emacs-lisp-mode + (yas-minor-mode -1) + (parinfer-mode)) + (setq parinfer-extensions + '(defaults + pretty-parens + smart-tab + smart-yank)) + (if (featurep! :feature evil) + (push 'evil parinfer-extensions)) + :config + (map! :map emacs-lisp-mode-map + :i "" #'parinfer-smart-tab:dwim-right + :i "" #'parinfer-smart-tab:dwim-left + :localleader + :nv "m" #'parinfer-toggle-mode)) diff --git a/modules/lang/emacs-lisp/config.el b/modules/lang/emacs-lisp/config.el index dc395d0e5..20d7077e1 100644 --- a/modules/lang/emacs-lisp/config.el +++ b/modules/lang/emacs-lisp/config.el @@ -116,3 +116,5 @@ (def-project-mode! +emacs-lisp-ert-mode :modes (emacs-lisp-mode) :match "/test[/-].+\\.el$") + +(when (featurep! +parinfer) (load! "+parinfer")) diff --git a/modules/lang/emacs-lisp/packages.el b/modules/lang/emacs-lisp/packages.el index 24b02c21b..07f484dd9 100644 --- a/modules/lang/emacs-lisp/packages.el +++ b/modules/lang/emacs-lisp/packages.el @@ -9,3 +9,6 @@ (when (featurep! :feature syntax-checker) (package! flycheck-cask)) + +(when (featurep! +parinfer) + (package! parinfer)) From d178d78b2b5c8bfd7310e60582efe8d585e0df29 Mon Sep 17 00:00:00 2001 From: Aria Edmonds Date: Sat, 9 Jun 2018 22:01:09 +1000 Subject: [PATCH 2/6] Move +parinfer to :editor parinfer --- init.example.el | 6 ++++-- .../emacs-lisp/+parinfer.el => editor/parinfer/config.el} | 6 +++++- modules/editor/parinfer/packages.el | 4 ++++ modules/lang/emacs-lisp/config.el | 2 -- modules/lang/emacs-lisp/packages.el | 3 --- 5 files changed, 13 insertions(+), 8 deletions(-) rename modules/{lang/emacs-lisp/+parinfer.el => editor/parinfer/config.el} (80%) create mode 100644 modules/editor/parinfer/packages.el diff --git a/init.example.el b/init.example.el index c272bcd19..b57ab2566 100644 --- a/init.example.el +++ b/init.example.el @@ -75,8 +75,7 @@ ;erlang ; an elegant language for a more civilized age ;elixir ; erlang done right ;elm ; care for a cup of TEA? - (emacs-lisp ; drown in parentheses - +parinfer) ; A handy addon to sort of turn lisp into python + emacs-lisp ; drown in parentheses ;ess ; emacs speaks statistics ;go ; the hipster dialect ;(haskell +intero) ; a language that's lazier than I am @@ -128,6 +127,9 @@ ;floobits ; peer programming for a price ;impatient-mode ; show off code over HTTP + :editor + parinfer ; A handy addon to sort of turn lisp into python + :config ;; For literate config users. This will tangle+compile a config.org ;; literate config in your `doom-private-dir' whenever it changes. diff --git a/modules/lang/emacs-lisp/+parinfer.el b/modules/editor/parinfer/config.el similarity index 80% rename from modules/lang/emacs-lisp/+parinfer.el rename to modules/editor/parinfer/config.el index 60a6f4d98..4da768520 100644 --- a/modules/lang/emacs-lisp/+parinfer.el +++ b/modules/editor/parinfer/config.el @@ -4,7 +4,11 @@ (def-package! parinfer :commands (parinfer-mode) :init - (add-hook! emacs-lisp-mode + (add-hook! (emacs-lisp-mode + clojure-mode + common-lisp-mode + scheme-mode + lisp-mode) (yas-minor-mode -1) (parinfer-mode)) (setq parinfer-extensions diff --git a/modules/editor/parinfer/packages.el b/modules/editor/parinfer/packages.el new file mode 100644 index 000000000..56af803d7 --- /dev/null +++ b/modules/editor/parinfer/packages.el @@ -0,0 +1,4 @@ +;; -*- no-byte-compile: t; -*- +;;; editor/parinfer/packages.el + +(package! parinfer) diff --git a/modules/lang/emacs-lisp/config.el b/modules/lang/emacs-lisp/config.el index 20d7077e1..dc395d0e5 100644 --- a/modules/lang/emacs-lisp/config.el +++ b/modules/lang/emacs-lisp/config.el @@ -116,5 +116,3 @@ (def-project-mode! +emacs-lisp-ert-mode :modes (emacs-lisp-mode) :match "/test[/-].+\\.el$") - -(when (featurep! +parinfer) (load! "+parinfer")) diff --git a/modules/lang/emacs-lisp/packages.el b/modules/lang/emacs-lisp/packages.el index 07f484dd9..24b02c21b 100644 --- a/modules/lang/emacs-lisp/packages.el +++ b/modules/lang/emacs-lisp/packages.el @@ -9,6 +9,3 @@ (when (featurep! :feature syntax-checker) (package! flycheck-cask)) - -(when (featurep! +parinfer) - (package! parinfer)) From 3fec00a5341fdc0a4b3fc92cf06a7cc83e3aff3e Mon Sep 17 00:00:00 2001 From: Aria Edmonds Date: Mon, 11 Jun 2018 10:10:34 +1000 Subject: [PATCH 3/6] Swap from emacs-lisp-mode-map to parinfer-mode-map --- modules/editor/parinfer/config.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/editor/parinfer/config.el b/modules/editor/parinfer/config.el index 4da768520..b470da534 100644 --- a/modules/editor/parinfer/config.el +++ b/modules/editor/parinfer/config.el @@ -19,7 +19,7 @@ (if (featurep! :feature evil) (push 'evil parinfer-extensions)) :config - (map! :map emacs-lisp-mode-map + (map! :map parinfer-mode-map :i "" #'parinfer-smart-tab:dwim-right :i "" #'parinfer-smart-tab:dwim-left :localleader From db45248adfa31f9694c5727f6191854fa86de3ce Mon Sep 17 00:00:00 2001 From: Aria Edmonds Date: Mon, 11 Jun 2018 21:55:34 +1000 Subject: [PATCH 4/6] Add yasnippet back to parinfer --- modules/editor/parinfer/config.el | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/modules/editor/parinfer/config.el b/modules/editor/parinfer/config.el index b470da534..3142978e7 100644 --- a/modules/editor/parinfer/config.el +++ b/modules/editor/parinfer/config.el @@ -9,7 +9,6 @@ common-lisp-mode scheme-mode lisp-mode) - (yas-minor-mode -1) (parinfer-mode)) (setq parinfer-extensions '(defaults @@ -20,7 +19,7 @@ (push 'evil parinfer-extensions)) :config (map! :map parinfer-mode-map - :i "" #'parinfer-smart-tab:dwim-right + :i "" #'parinfer-smart-tab:dwim-right-or-complete :i "" #'parinfer-smart-tab:dwim-left :localleader :nv "m" #'parinfer-toggle-mode)) From 63552338ec98dbf3605601ac011bc7dcd254cbd4 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Tue, 12 Jun 2018 21:34:47 +0200 Subject: [PATCH 5/6] Conform editor/parinfer to Doom conventions + Use evil +everywhere flag for universal evil integration, + Use :hook instead of `add-hook!` and implicit lambda, + Fix path in header. --- modules/editor/parinfer/config.el | 21 +++++++-------------- 1 file changed, 7 insertions(+), 14 deletions(-) diff --git a/modules/editor/parinfer/config.el b/modules/editor/parinfer/config.el index 3142978e7..b7e2edb1f 100644 --- a/modules/editor/parinfer/config.el +++ b/modules/editor/parinfer/config.el @@ -1,22 +1,15 @@ -;;; lang/emacs-lisp/+parinfer.el -*- lexical-binding: t; -*- - +;;; editor/parinfer/config.el -*- lexical-binding: t; -*- (def-package! parinfer - :commands (parinfer-mode) + :hook ((emacs-lisp clojure-mode common-lisp scheme lisp) . parinfer-mode) :init - (add-hook! (emacs-lisp-mode - clojure-mode - common-lisp-mode - scheme-mode - lisp-mode) - (parinfer-mode)) (setq parinfer-extensions '(defaults - pretty-parens - smart-tab - smart-yank)) - (if (featurep! :feature evil) - (push 'evil parinfer-extensions)) + pretty-parens + smart-tab + smart-yank)) + (when (featurep! :feature evil +everywhere) + (push 'evil parinfer-extensions)) :config (map! :map parinfer-mode-map :i "" #'parinfer-smart-tab:dwim-right-or-complete From 5d79729c1596571afad15d02cf881898ff66cd80 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Tue, 12 Jun 2018 21:36:09 +0200 Subject: [PATCH 6/6] Move :editor to top; disable parinfer by default And shorten post-comment. --- init.example.el | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/init.example.el b/init.example.el index b57ab2566..46aba12e7 100644 --- a/init.example.el +++ b/init.example.el @@ -41,6 +41,9 @@ ;unicode ; extended unicode support for various languages vi-tilde-fringe ; fringe tildes to mark beyond EOB window-select ; visually switch windows + + :editor + ;parinfer ; turn lisp into python, sort of :emacs dired ; making dired pretty [functional] @@ -127,9 +130,6 @@ ;floobits ; peer programming for a price ;impatient-mode ; show off code over HTTP - :editor - parinfer ; A handy addon to sort of turn lisp into python - :config ;; For literate config users. This will tangle+compile a config.org ;; literate config in your `doom-private-dir' whenever it changes.