From 6be4d9c52631c8a06c3d7d589caa6975ff82cc35 Mon Sep 17 00:00:00 2001 From: Tom Willemse Date: Fri, 27 Mar 2020 16:00:55 -0700 Subject: [PATCH] Add json configuration --- .gitlab-ci.yml | 7 +++++++ oni-json.el | 35 ++++++++++++++++++++++++++++++++++ test/integration/oni-json.bats | 11 +++++++++++ 3 files changed, 53 insertions(+) create mode 100644 oni-json.el create mode 100644 test/integration/oni-json.bats 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 +;; 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 . + +;;; 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" ]] +}