;;; 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 . ;; Authors: Maciej Barć ;; Created: 27 Feb 2023 ;; Version: 2.2.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 "2.2.0" "Ebuild-Snippets version.") ;; Customization (defgroup ebuild-snippets nil "Customization for Ebuild-Snippets." :group 'ebuild) (defcustom ebuild-snippets-directory (expand-file-name "snippets" ;; This is a hack, "or" will take 1st non nil value, ;; we use this to overwrite this value in system-wide ;; install, see the emacs-ebuild-snippets ebuild. (or nil ;; changeme (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) ;;;###autoload (add-hook 'nxml-mode-hook 'ebuild-snippets-initialize) (provide 'ebuild-snippets) ;;; ebuild-snippets.el ends here