From e77c57b9984e15087cc718f54ab9a6ef70ec06f0 Mon Sep 17 00:00:00 2001 From: Tom Willemse Date: Tue, 14 Jan 2020 22:02:08 -0800 Subject: [PATCH] =?UTF-8?q?Add=20=E2=80=98smartparens=E2=80=99=20to=20?= =?UTF-8?q?=E2=80=98oni-sh=E2=80=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- oni-sh.el | 6 ++--- oni-smartparens.el | 38 +++++++++++++++++++++++++++ test/integration/oni-smartparens.bats | 11 ++++++++ 3 files changed, 52 insertions(+), 3 deletions(-) create mode 100644 oni-smartparens.el create mode 100644 test/integration/oni-smartparens.bats 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 ;; 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 +;; 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 . + +;;; Commentary: + +;; Configuration for ‘smartparens-mode’. + +;;; Code: + +(require 'smartparens-config) + +(define-key smartparens-mode-map (kbd "C-") 'sp-slurp-hybrid-sexp) +(define-key smartparens-mode-map (kbd "C-") 'sp-forward-barf-sexp) +(define-key smartparens-mode-map (kbd "C-M-") '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" ] +}