;ELC ;;; Compiled ;;; in Emacs version 26.3 ;;; with all optimizations. ;;; This file uses dynamic docstrings, first added in Emacs 19.29. ;;; This file does not contain utf-8 non-ASCII characters, ;;; and so can be loaded in Emacs versions earlier than 23. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (byte-code "\300\301!\210\300\302!\210\300\303!\210\304\305\306\307\310DD\311\312\313\314\315\316\317& \210\320\305\321\322#\210\323\324\325\326\312\313%\207" [require custom cl-lib eieio custom-declare-variable rudel-overlay-author-display funcall function #[0 "\300\207" [t] 1] "Indicate authorship by setting text color to user color." :group rudel :type boolean :set #[514 "\300\"\210\301\302!\205 \303 \207" [set-default featurep rudel-overlay rudel-overlay-options-changed] 5 "\n\n(fn SYMBOL VALUE)"] put safe-local-variable t custom-declare-face rudel-author-overlay-face ((default (:background "black"))) "Face used to highlight contributions according to their authors.\nAttributes involving color are not applied literally. Instead the\ncolor is replaced with the color associated with the respective\nauthor."] 10) #@54 Non-nil if OVERLAY is a Rudel overlay. (fn OVERLAY) (defalias 'rudel-overlay-p #[257 "\300\301\"\207" [overlay-get :rudel] 4 (#$ . 1237)]) #@58 Distance between end and start of OVERLAY. (fn OVERLAY) (defalias 'rudel-overlay-length #[257 "\300!\301!Z\207" [overlay-end overlay-start] 4 (#$ . 1384)]) #@50 User object associated to OVERLAY. (fn OVERLAY) (defalias 'rudel-overlay-user #[257 "\300\301\"\207" [overlay-get :user] 4 (#$ . 1549)]) #@214 Return a list of Rudel-related overlays or overlays satisfying PREDICATE. If PREDICATE is non-nil returned overlays satisfy PREDICATES; Otherwise all Rudel-related overlays are returned. (fn &optional PREDICATE) (defalias 'rudel-overlays #[256 "\211\204\300\262\301 \302@A\"\303\"\207" [rudel-overlay-p overlay-lists append cl-remove-if-not] 6 (#$ . 1695)]) #@202 Return a list of Rudel-related overlays at POSITION. If PREDICATE is non-nil returned overlays satisfy PREDICATES; Otherwise all Rudel-related overlays are returned. (fn POSITION &optional PREDICATE) (defalias 'rudel-overlays-at #[513 "\211\204\300\262\301\302!\"\207" [rudel-overlay-p cl-remove-if-not overlays-at] 6 (#$ . 2068)]) #@217 Return a list of Rudel-related overlays in the range START to END. If PREDICATE is non-nil returned overlays satisfy PREDICATES; Otherwise all Rudel-related overlays are returned. (fn START END &optional PREDICATE) (defalias 'rudel-overlays-in #[770 "\211\204\300\262\301\302\"\"\207" [rudel-overlay-p cl-remove-if-not overlays-in] 8 (#$ . 2413)]) #@52 Remove all Rudel overlays from the current buffer. (defalias 'rudel-overlays-remove-all #[0 "\300\301\302 \"\207" [mapc delete-overlay rudel-overlays] 3 (#$ . 2774)]) #@46 Predicate for author overlays. (fn OVERLAY) (defalias 'rudel-author-overlay-p #[257 "\300\301\"\302=\207" [overlay-get :rudel author] 4 (#$ . 2947)]) #@59 Return the list of author overlays in the current buffer. (defalias 'rudel-author-overlays #[0 "\300\301!\207" [rudel-overlays rudel-author-overlay-p] 2 (#$ . 3105)]) #@34 (fn POSITION &optional AUTHOR) (defalias 'rudel-author-overlay-at #[513 "\300\301\"\211\205\203\302@!=\205\211@\207" [rudel-overlays-at rudel-author-overlay-p rudel-overlay-user] 5 (#$ . 3278)]) #@35 (fn START END &optional AUTHOR) (defalias 'rudel-author-overlays-in #[770 "\300\301\302\303\304\305!\306\"\307\310%#\207" [rudel-overlays-in make-byte-code 257 "\301!\205\300?\206\302!\300=\207" vconcat vector [rudel-overlay-p rudel-overlay-user] 3 "\n\n(fn OVERLAY)"] 12 (#$ . 3491)]) #@182 Make and return an overlay for the range FROM to TO in BUFFER suitable for contributions by AUTHOR. AUTHOR has to be an object of type rudel-user-child. (fn BUFFER FROM TO AUTHOR) (defalias 'rudel-make-author-overlay #[1028 "\300\301$\302\"\210\211\207" [make-overlay t rudel-overlay-author-set-properties] 9 (#$ . 3796)]) #@131 Set properties of OVERLAY according to slots of AUTHOR. AUTHOR has to be an object of type rudel-user-child. (fn OVERLAY AUTHOR) (defalias 'rudel-overlay-author-set-properties #[514 "\211\301\302\303#\210\301\304#\210\301\305\205$\306\307\303\310\311\"\"\312\310\313\"##\210\301\314\2055\315\316\310\311\"\"#\207" [rudel-overlay-author-display overlay-put :rudel author :user face rudel-overlay-make-face rudel-overlay-make-face-symbol slot-value :object-name rudel-author-overlay-face color help-echo format "Written by %s"] 12 (#$ . 4133)]) #@75 Update properties of OVERLAY from its attached user object. (fn OVERLAY) (defalias 'rudel-overlay-author-update #[257 "\300!\301\"\207" [rudel-overlay-user rudel-overlay-author-set-properties] 5 (#$ . 4698)]) #@238 Update author overlays in BUFFER to incorporate an insertion of length LENGTH at POSITION by AUTHOR. POSITION refers to an Emacs buffer position. AUTHOR has to be an object of type rudel-author-child. (fn BUFFER POSITION LENGTH AUTHOR) (defalias 'rudel-update-author-overlay-after-insert #[1028 "\211\205\304rq\210\\\300V\205\301S\"\301!dW\205$\301T\"\203}\302!=?\205\301\303!U\304!SU?\205N\211\203K\202N\305!?\205T\203a\306\303! #\210\211\203n\306 \304!#\210\307\f\f\n\f$\266\204\202\301\203\231\211\203\231\304!\310!\210\306\303!#\262\202\301\203\250\306\303!#\202\301\211\203\267\306\304!#\202\301\307$\266\204)\207" [1 rudel-author-overlay-at rudel-overlay-user overlay-start overlay-end copy-overlay move-overlay rudel-make-author-overlay delete-overlay] 17 (#$ . 4918)]) #@236 Update author overlays in BUFFER to incorporate a deletion of length LENGTH at POSITION by AUTHOR. POSITION refers to an Emacs buffer position. AUTHOR has to be an object of type rudel-author-child. (fn BUFFER POSITION LENGTH AUTHOR) (defalias 'rudel-update-author-overlay-after-delete #[1028 "rq\210\300\301\302\211\"\")\207" [mapc #[257 "\300!\301U\205 \302!\207" [rudel-overlay-length 0 delete-overlay] 3 "\n\n(fn OVERLAY)"] rudel-author-overlays-in] 9 (#$ . 5783)]) #@73 Allocate a symbol for a face for CATEGORY and NAME. (fn CATEGORY NAME) (defalias 'rudel-overlay-make-face-symbol #[514 "\300\301\302;\203\f\202\303!#!\207" [intern format "rudel-%s-overlay-%s-face" symbol-name] 7 (#$ . 6265)]) #@193 Copy TEMPLATE to FACE and replace color attributes with COLOR. TEMPLATE has to be a face. FACE can be nil or a face. In the latter case, FACE is returned unmodified. (fn FACE TEMPLATE COLOR) (defalias 'rudel-overlay-make-face #[771 "\300!\204\301!\210\302\"\210\303\"\210\207" [facep make-face copy-face rudel-overlay-set-face-attributes] 6 (#$ . 6507)]) #@78 Set color-related attributes of FACE with respect to COLOR. (fn FACE COLOR) (defalias 'rudel-overlay-set-face-attributes #[514 "\300!\205'\301\211\205%\211@\302\"\303=\204\304\305$\210A\266\202\202\262\207" [facep (:foreground :background :underline :overline) face-attribute unspecified set-face-attribute nil] 9 (#$ . 6878)]) #@64 Update Rudel overlays after a change of customization options. (defalias 'rudel-overlay-options-changed #[0 "\300 \211\205\211@r\211q\210\301\302\303 \"\210)A\266\202\202\207" [buffer-list mapc rudel-overlay-author-update rudel-author-overlays] 5 (#$ . 7228)]) (provide 'rudel-overlay)