aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitlab-ci.yml7
-rw-r--r--oni-json.el35
-rw-r--r--test/integration/oni-json.bats11
3 files changed, 53 insertions, 0 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 06a979d..d1cd2cc 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -267,6 +267,13 @@ integration-test-oni-docker:
- package
script: make integration-test-oni-docker TEST_ARCHIVE=$(realpath bin/)
+integration-test-oni-json:
+ stage: integration-test
+ image: registry.gitlab.com/ryuslash/emacs-config
+ dependencies:
+ - package
+ script: make integration-test-oni-json TEST_ARCHIVE=$(realpath bin/)
+
integration-test-oni-prescient:
stage: integration-test
image: registry.gitlab.com/ryuslash/emacs-config
diff --git a/oni-json.el b/oni-json.el
new file mode 100644
index 0000000..b8527bb
--- /dev/null
+++ b/oni-json.el
@@ -0,0 +1,35 @@
+;;; oni-json.el --- JSON configuration -*- lexical-binding: t; -*-
+
+;; Copyright (C) 2020 Tom Willemse
+
+;; Author: Tom Willemse <tom@ryuslash.org>
+;; Keywords: local
+;; Version: 2020.0326.153836
+;; Package-Requires: (json-mode)
+
+;; 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 ‘.json’ files. Uses ‘json-mode’ to edit JSON files.
+
+;;; Code:
+
+(add-hook 'json-mode-hook 'electric-pair-local-mode)
+(add-hook 'json-mode-hook 'electric-indent-local-mode)
+
+;;;###autoload(with-eval-after-load 'json-mode (require 'oni-json))
+
+(provide 'oni-json)
+;;; oni-json.el ends here
diff --git a/test/integration/oni-json.bats b/test/integration/oni-json.bats
new file mode 100644
index 0000000..a5fa98e
--- /dev/null
+++ b/test/integration/oni-json.bats
@@ -0,0 +1,11 @@
+#!/usr/bin/env bats
+
+@test "Opening a .json file loads oni-json" {
+ run emacs -batch -l package -f package-initialize \
+ -visit test.json \
+ -eval "(prin1 (featurep 'oni-json))"
+
+ echo "$output"
+
+ [[ "$output" == "t" ]]
+}