]> gitweb.factorcode.org Git - factor.git/blob - misc/fuel/fuel-base.el
Merge branch 'master' of git://tiodante.com/git/factor
[factor.git] / misc / fuel / fuel-base.el
1 ;;; fuel-base.el --- Basic FUEL support code
2
3 ;; Copyright (C) 2008  Jose Antonio Ortega Ruiz
4 ;; See http://factorcode.org/license.txt for BSD license.
5
6 ;; Author: Jose Antonio Ortega Ruiz <jao@gnu.org>
7 ;; Keywords: languages
8
9 ;;; Commentary:
10
11 ;; Basic definitions likely to be used by all FUEL modules.
12
13 ;;; Code:
14
15 (defconst fuel-version "1.0")
16
17 ;;;###autoload
18 (defsubst fuel-version ()
19   "Echoes FUEL's version."
20   (interactive)
21   (message "FUEL %s" fuel-version))
22
23 \f
24 ;;; Customization:
25
26 ;;;###autoload
27 (defgroup fuel nil
28   "Factor's Ultimate Emacs Library"
29   :group 'language)
30
31 \f
32 ;;; Emacs compatibility:
33
34 (eval-after-load "ring"
35   '(when (not (fboundp 'ring-member))
36      (defun ring-member (ring item)
37        (catch 'found
38          (dotimes (ind (ring-length ring) nil)
39            (when (equal item (ring-ref ring ind))
40              (throw 'found ind)))))))
41
42 \f
43 ;;; Utilities
44
45 (defun fuel--shorten-str (str len)
46   (let ((sl (length str)))
47     (if (<= sl len) str
48       (let* ((sep " ... ")
49              (sepl (length sep))
50              (segl (/ (- len sepl) 2)))
51         (format "%s%s%s"
52                 (substring str 0 segl)
53                 sep
54                 (substring str (- sl segl)))))))
55
56 (defun fuel--shorten-region (begin end len)
57   (fuel--shorten-str (mapconcat 'identity
58                                 (split-string (buffer-substring begin end) nil t)
59                                 " ")
60                      len))
61
62 (provide 'fuel-base)
63 ;;; fuel-base.el ends here