;;; genderassign.el --- minor mode for correcting attribute value for gender in gt_dict files ;; Contains key bindings for keys m, f, n, and x ;; x moves to the end of a "gen="xxx" string ;; the other keys replace the string "xxx" by the chosen tag ;;; $Id: declensionassign.el 4997 2010-11-05 11:11:38Z ciprian $ (define-derived-mode declensionassign-mode text-mode "Declensionassign mode" "Major mode for correcting declension. \\{declensionassign-mode-map}" (setq case-fold-search nil)) (define-key declensionassign-mode-map "q" '(lambda () (interactive) (insert-markup "q"))) (define-key declensionassign-mode-map "w" '(lambda () (interactive) (insert-markup "w"))) (define-key declensionassign-mode-map "e" '(lambda () (interactive) (insert-markup "e"))) (define-key declensionassign-mode-map "r" '(lambda () (interactive) (insert-markup "r"))) (define-key declensionassign-mode-map "t" '(lambda () (interactive) (insert-markup "t"))) (define-key declensionassign-mode-map "x" '(lambda ()(interactive)(search-next-declension 1))) (defun insert-markup (tag) "Insert markup tag" (interactive "p") (if (search-backward "yyy" (- (point) 3) t) (delete-char 3)) (insert tag) (search-next-declension 1)) (defun search-next-declension (tag) "Move to the next declension attribute with value yyy" (interactive "p") (if (re-search-forward "decl=\"yyy" nil t) (skip-chars-backward " ;") (goto-char (end-of-line))))