aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitlab-ci.yml11
-rw-r--r--GNUmakefile17
-rw-r--r--oni-haml/Cask10
-rw-r--r--oni-haml/oni-haml.el54
-rw-r--r--oni-haml/snippets/haml-mode/faq12
5 files changed, 103 insertions, 1 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 8036db6..010ac69 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -36,6 +36,16 @@ package-oni-elisp:
paths:
- oni-elisp/dist/
+package-oni-haml:
+ stage: pre-package-multifile
+ before_script:
+ - rm -rf oni-elisp/dist
+ script:
+ - cask --path oni-haml package
+ artifacts:
+ paths:
+ - oni-haml/dist/
+
test-oni-alert:
stage: test
script: make test-oni-alert
@@ -83,6 +93,7 @@ package:
- package-oni-conf
- package-oni-css
- package-oni-elisp
+ - package-oni-haml
before_script:
- rm -rf bin/
- mkdir bin/
diff --git a/GNUmakefile b/GNUmakefile
index 6df8515..ce985ac 100644
--- a/GNUmakefile
+++ b/GNUmakefile
@@ -2,7 +2,8 @@ FILES := $(wildcard *.el)
PACKAGE_TARGETS := $(addprefix package-,$(FILES))
-package: $(PACKAGE_TARGETS) package-oni-conf package-oni-css package-oni-elisp
+package: $(PACKAGE_TARGETS) package-oni-conf package-oni-css package-oni-elisp \
+ package-oni-haml
package-%: %
emacs --batch \
@@ -28,6 +29,12 @@ package-oni-elisp:
--funcall package-initialize \
--eval "(package-upload-file (car (sort (file-expand-wildcards \"oni-elisp/dist/*tar\") #'string>)))"
+package-oni-haml:
+ emacs --batch \
+ --load oni-package.el \
+ --funcall package-initialize \
+ --eval "(package-upload-file (car (sort (file-expand-wildcards \"oni-haml/dist/*.tar\") #'string>)))"
+
install-%:
emacs --batch \
--load oni-package.el \
@@ -60,6 +67,14 @@ install-oni-elisp:
$(foreach DEP,$(DEPS),--eval "(package-install-file \"$(DEP).el\")") \
--eval "(package-install-file (car (sort (file-expand-wildcards \"oni-elisp/dist/*.tar\") #'string>)))"
+install-oni-haml:
+ emacs --batch \
+ --load oni-package.el \
+ --fluncall package-initialize \
+ --eval '(package-refresh-contents)' \
+ $(foreach DEP,$(DEPS),--eval "(package-install-file \"$(DEP).el\")") \
+ --eval "(package-install-file (car (sort (file-expand-wildcards \"oni-haml/dist/*.tar\") #'string>)))"
+
test-%: install-%
emacs --batch \
--load oni-package.el \
diff --git a/oni-haml/Cask b/oni-haml/Cask
new file mode 100644
index 0000000..a7bc65b
--- /dev/null
+++ b/oni-haml/Cask
@@ -0,0 +1,10 @@
+(source gnu)
+(source melpa)
+
+(package-file "./oni-haml.el")
+
+(depends-on "oni-yasnippet" :git "../" :files ("oni-yasnippet.el"))
+
+(files
+ "*.el"
+ ("snippets" "./snippets/*"))
diff --git a/oni-haml/oni-haml.el b/oni-haml/oni-haml.el
new file mode 100644
index 0000000..482ec93
--- /dev/null
+++ b/oni-haml/oni-haml.el
@@ -0,0 +1,54 @@
+;;; oni-haml.el --- HAML configuration -*- lexical-binding: t; -*-
+
+;; Copyright (C) 2019 Tom Willemse
+
+;; Author: Tom Willemse <tom@ryuslash.org>
+;; Keywords: local
+;; Version: 20190827215831
+;; Package-Requires: (oni-yasnippet)
+
+;; 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:
+
+;; My configuration for ‘haml-mode’.
+
+;;; Code:
+
+(require 'yasnippet)
+
+(defconst oni-haml-root
+ (file-name-directory
+ (or load-file-name
+ (buffer-file-name)))
+ "The directory where ‘oni-haml’ was loaded from.")
+
+(defconst oni-haml-snippets-dir
+ (expand-file-name "snippets" oni-haml-root)
+ "The directory where ‘oni-haml’ stores its snippets.")
+
+;;;###autoload
+(defun oni-haml-snippets-initialize ()
+ "Initialize the snippets for ‘oni-haml’."
+ (when (boundp 'yas-snippet-dirs)
+ (add-to-list 'yas-snippet-dirs oni-haml-snippets-dir t))
+ (yas-load-directory oni-haml-snippets-dir))
+
+;;;autoload
+(with-eval-after-load 'haml-mode
+ (with-eval-after-load 'yasnippet
+ (oni-haml-snippets-initialize)))
+
+(provide 'oni-haml)
+;;; oni-haml.el ends here
diff --git a/oni-haml/snippets/haml-mode/faq b/oni-haml/snippets/haml-mode/faq
new file mode 100644
index 0000000..4d1a9e2
--- /dev/null
+++ b/oni-haml/snippets/haml-mode/faq
@@ -0,0 +1,12 @@
+# -*- mode: snippet; require-final-newline: nil -*-
+# name: FAQ Question & Answer
+# key: faq
+# expand-env: ((yas-indent-line 'fixed))
+# --
+%dt
+ = link_to '#' do
+ .expand_icon
+ $1
+%dd
+ %p
+ $0 \ No newline at end of file