aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitlab-ci.yml7
-rw-r--r--oni-fish.el43
-rw-r--r--test/integration/oni-fish.bats11
3 files changed, 61 insertions, 0 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 3d22a74..02cd3e7 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -283,6 +283,13 @@ integration-test-oni-docker:
- package
script: make integration-test-oni-docker TEST_ARCHIVE=$(realpath bin/)
+integration-test-oni-fish:
+ stage: integration-test
+ image: registry.gitlab.com/ryuslash/emacs-config
+ dependencies:
+ - package
+ script: make integration-test-oni-fish TEST_ARCHIVE=$(realpath bin/)
+
integration-test-oni-haskell:
stage: integration-test
image: registry.gitlab.com/ryuslash/emacs-config
diff --git a/oni-fish.el b/oni-fish.el
new file mode 100644
index 0000000..c211198
--- /dev/null
+++ b/oni-fish.el
@@ -0,0 +1,43 @@
+;;; oni-fish.el --- Configuration for fish scripts -*- lexical-binding: t; -*-
+
+;; Copyright (C) 2020 Tom Willemse
+
+;; Author: Tom Willemse <tom@ryuslash.org>
+;; Keywords: local
+;; Version: 2020.0408.000443
+;; Package-Requires: (fish-mode reformatter)
+
+;; 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 writing Fish shell scripts.
+;;
+;; Defines a formatter using the ‘fish_indent’ executable.
+
+;;; Code:
+
+(require 'reformatter)
+
+(reformatter-define oni-fish-fish-indent
+ :program "fish_indent"
+ :lighter ""
+ :group 'oni-fish)
+
+(add-hook 'fish-mode-hook 'oni-fish-fish-indent-on-save-mode)
+
+;;;###autoload(with-eval-after-load 'fish-mode (require 'oni-fish))
+
+(provide 'oni-fish)
+;;; oni-fish.el ends here
diff --git a/test/integration/oni-fish.bats b/test/integration/oni-fish.bats
new file mode 100644
index 0000000..4d7be1d
--- /dev/null
+++ b/test/integration/oni-fish.bats
@@ -0,0 +1,11 @@
+#!/usr/bin/env bats
+
+@test "Opening a .fish file loads oni-fish" {
+ run emacs -batch -l package -f package-initialize \
+ -visit test.fish \
+ -eval "(prin1 (featurep 'oni-fish))"
+
+ echo "$output"
+
+ [[ "$output" == *"t" ]]
+}