aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--oni-sh.el6
-rw-r--r--oni-smartparens.el38
-rw-r--r--test/integration/oni-smartparens.bats11
3 files changed, 52 insertions, 3 deletions
diff --git a/oni-sh.el b/oni-sh.el
index a5ef1c5..d1f826a 100644
--- a/oni-sh.el
+++ b/oni-sh.el
@@ -4,8 +4,8 @@
;; Author: Tom Willemse <tom@ryuslash.org>
;; Keywords: local
-;; Version: 2019.1125.232102
-;; Package-Requires: (reformatter oni-flycheck oni-fci)
+;; Version: 2020.0114.220149
+;; Package-Requires: (reformatter oni-flycheck oni-fci oni-smartparens)
;; 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
@@ -44,10 +44,10 @@
:group 'shfmt)
(add-hook 'sh-mode-hook 'electric-indent-local-mode)
-(add-hook 'sh-mode-hook 'electric-pair-local-mode)
(add-hook 'sh-mode-hook 'fci-mode)
(add-hook 'sh-mode-hook 'flycheck-mode)
(add-hook 'sh-mode-hook 'shfmt-on-save-mode)
+(add-hook 'sh-mode-hook 'smartparens-mode)
;;;###autoload
(add-to-list 'auto-mode-alist '("PKGBUILD\\'" . sh-mode))
diff --git a/oni-smartparens.el b/oni-smartparens.el
new file mode 100644
index 0000000..08ce275
--- /dev/null
+++ b/oni-smartparens.el
@@ -0,0 +1,38 @@
+;;; oni-smartparens.el --- Smartparens configuration -*- lexical-binding: t; -*-
+
+;; Copyright (C) 2020 Tom Willemse
+
+;; Author: Tom Willemse <tom@ryuslash.org>
+;; Keywords: local
+;; Version: 2020.0114.220117
+;; Package-Requires: (smartparens)
+
+;; 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 <https://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; Configuration for ‘smartparens-mode’.
+
+;;; Code:
+
+(require 'smartparens-config)
+
+(define-key smartparens-mode-map (kbd "C-<right>") 'sp-slurp-hybrid-sexp)
+(define-key smartparens-mode-map (kbd "C-<left>") 'sp-forward-barf-sexp)
+(define-key smartparens-mode-map (kbd "C-M-<right>") 'sp-backward-barf-sexp)
+
+;;;###autoload(with-eval-after-load 'smartparens (require 'oni-smartparens))
+
+(provide 'oni-smartparens)
+;;; oni-smartparens.el ends here
diff --git a/test/integration/oni-smartparens.bats b/test/integration/oni-smartparens.bats
new file mode 100644
index 0000000..019e0f0
--- /dev/null
+++ b/test/integration/oni-smartparens.bats
@@ -0,0 +1,11 @@
+#!/usr/bin/env bats
+
+@test "Loading smartparens loads oni-smartparens" {
+ run emacs -batch -l package -f package-initialize \
+ -l smartparens \
+ -eval "(prin1 (featurep 'oni-smartparens))"
+
+ echo "$output"
+
+ [ "$output" = "t" ]
+}