aboutsummaryrefslogtreecommitdiff
blob: 91a3f0e27a55b7b99392104c437842ab53906236 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
;;; ebuild-snippets.el --- Yasnippets for editing ebuilds and eclasses -*- lexical-binding: t -*-



;; Copyright 2023 Gentoo Authors


;; This file 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 2 of the License, or
;; (at your option) any later version.

;; This file 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 GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.


;; Authors: Maciej Barć <xgqt@gentoo.org>
;; Created: 27 Feb 2023
;; Version: 1.0.0
;; Keywords: languages
;; Homepage: https://gitweb.gentoo.org/proj/emacs-ebuild-snippets.git
;; Package-Requires: ((emacs "24"))
;; SPDX-License-Identifier: GPL-2.0-or-later



;;; Commentary:


;; Yasnippets for editing ebuilds and eclasses.

;; To use this you will also need the ebuild-mode package installed.

;; To enable ebuild-snippets you will have to call
;; `ebuild-snippets-initialize' somewhere in your "init.el" file, for example:
;; (eval-after-load 'yasnippet
;;  '(ebuild-snippets-initialize))



;;; Code:


(require 'yasnippet)


(defconst ebuild-snippets-version "1.0.0"
  "Ebuild-Snippets version.")


;; Customization

(defgroup ebuild-snippets nil
  "Customization for Ebuild-Snippets."
  :group 'ebuild)

(defcustom ebuild-snippets-directory
  (expand-file-name "snippets" (file-name-directory load-file-name))
  "Location of yasnippets from Ebuild-Snippets."
  :safe 'stringp
  :type 'file
  :group 'ebuild-snippets)


;; Main provided features

;;;###autoload
(defun ebuild-snippets-initialize ()
  "Ebuild-Snippets initialization."
  (add-to-list 'yas-snippet-dirs ebuild-snippets-directory t)
  (yas-load-directory ebuild-snippets-directory))

;;;###autoload
(add-hook 'ebuild-mode-hook 'ebuild-snippets-initialize)


(provide 'ebuild-snippets)



;;; ebuild-snippets.el ends here