;;; -*- lexical-binding: t -*- ;; ;; this file: ;; https://dataswamp.org/~incal/emacs-init/ecat-incal.el (require 'cl-lib) (let ((ecat-dict '(("bike" ( ("cykel") ("hoj") )) ("Ghost reporting" (("Spöket rapporterar") ))))) (defun ecat-translate-all (s) (let ((hit (cl-find s ecat-dict :key #'car :test #'string=))) (when hit (cadr hit) ))) (declare-function ecat-translate-all nil) ) ;; (ecat-translate-all "bike") (let ((sentence-overlay)) (defun ecat-get-sentence () (when (overlayp sentence-overlay) (with-current-buffer (overlay-buffer sentence-overlay) (buffer-substring-no-properties (overlay-start sentence-overlay) (overlay-end sentence-overlay) )))) (declare-function ecat-get-sentence nil) (defun ecat-delete-overlay () (interactive) (when (overlayp sentence-overlay) (delete-overlay sentence-overlay) )) (declare-function ecat-delete-overlay nil) (defun ecat-highlight-sentence () (interactive) (let ((beg (forward-sentence)) (end (backward-sentence)) ) (if (overlayp sentence-overlay) (move-overlay sentence-overlay beg end) (let ((overlay (make-overlay beg end))) (overlay-put overlay 'face 'font-lock-comment-face) (setq sentence-overlay overlay) )))) (declare-function ecat-highlight-sentence nil) (defalias 'ecat-init #'ecat-highlight-sentence) (defun ecat-highlight-sentence-move (next) (if (overlayp sentence-overlay) (with-current-buffer (overlay-buffer sentence-overlay) (forward-sentence (if next 1 -1)) (ecat-highlight-sentence)) (ecat-highlight-sentence) )) (declare-function ecat-highlight-sentence-move nil) ) (defun ecat-highlight-sentence-next () (interactive) (ecat-highlight-sentence-move t) ) (defalias 'hsn #'ecat-highlight-sentence-next) (defun ecat-highlight-sentence-prev () (interactive) (ecat-highlight-sentence-move nil) ) (defalias 'hsp #'ecat-highlight-sentence-prev) (provide 'ecat-incal)