;ELC ;;; Compiled ;;; in Emacs version 28.0.50 ;;; with all optimizations. (byte-code "\300\301!\210\302\303\304\"\210\302\305\306\"\210\302\307\310\"\210\302\311\312\"\210\302\313\314\"\210\302\315\316\"\210\302\317\320\"\210\302\321\304\"\210\302\322\323\"\210\302\324\325\"\210\302\326\327\"\210\302\330\331\"\210\302\332\333\"\210\302\334\335\"\210\336\337!\203X\302\340\337\"\210\202]\302\340\341\"\210\342\343\344\345\346\347%\210\350\351\352\353\346\343%\210\350\354\355\356\346\343%\210\350\357\360\361\346\343%\210\350\362\363\364\346\343%\210\302\365\366\367!\"\210\302\370\371\367!\"\210\302\372\370\"\210\373\372\374\375#\210\376\367\377\370#\201@\367\344\201A\201B$\207" [require matlab-compat defalias linemark-overlay-live-p overlay-buffer linemark-make-overlay make-overlay linemark-overlay-put overlay-put linemark-overlay-get overlay-get linemark-delete-overlay delete-overlay linemark-overlays-at overlays-at linemark-overlays-in overlays-in linemark-overlay-buffer linemark-overlay-start overlay-start linemark-overlay-end overlay-end linemark-next-overlay-change next-overlay-change linemark-previous-overlay-change previous-overlay-change linemark-overlay-lists overlay-lists linemark-overlay-p overlayp fboundp eieio-object-name-string linemark-object-name-string object-name-string custom-declare-group linemark nil "Line marking/highlighting." :group tools custom-declare-face linemark-stop-face ((((class color) (background light)) (:background "#ff8888")) (((class color) (background dark)) (:background "red3"))) "*Face used to indicate a STOP type line." linemark-caution-face ((((class color) (background light)) (:background "yellow")) (((class color) (background dark)) (:background "yellow4"))) "*Face used to indicate a CAUTION type line." linemark-go-face ((((class color) (background light)) (:background "#88ff88")) (((class color) (background dark)) (:background "green4"))) "*Face used to indicate a GO, or OK type line." linemark-funny-face ((((class color) (background light)) (:background "cyan")) (((class color) (background dark)) (:background "blue3"))) "*Face used for elements with no particular criticality." linemark-entry-p eieio-make-class-predicate linemark-entry linemark-entry--eieio-childp eieio-make-child-predicate linemark-entry-child-p make-obsolete "use (cl-typep ... \\='linemark-entry) instead" "25.1" define-symbol-prop cl-deftype-satisfies eieio-defclass-internal ((filename :initarg :filename :type string :documentation "File name for this mark.") (line :initarg :line :type number :documentation "Line number where the mark is.") (face :initarg :face :initform linemark-caution-face :documentation "The face to use for display.") (parent :documentation "The parent `linemark-group' containing this." :type linemark-group) (overlay :documentation "Overlay created to show this mark." :type (or linemark-overlay null) :initform nil :protection protected)) (:documentation "Track a file/line associations with overlays used for display.")] 6) #@53 Create a new object of class type `linemark-entry'. (defalias 'linemark-entry #[(&rest slots) "\301\302\303#\207" [slots apply make-instance linemark-entry] 4 (#$ . 3024)]) (byte-code "\300\301\302\303#\300\207" [function-put linemark-entry compiler-macro linemark-entry--anon-cmacro] 4) (defalias 'linemark-entry--anon-cmacro #[(whole &rest slots) "@;\204 \207\302\303\304@ @# @\305@DABB\"\207" [slots whole macroexp-warn-and-return format "Obsolete name arg %S to constructor %S" identity] 5]) (byte-code "\300\301\302\303!\"\210\300\304\305\303!\"\210\300\306\304\"\210\307\306\310\311#\210\312\303\313\304#\314\303\315\316\317$\207" [defalias linemark-group-p eieio-make-class-predicate linemark-group linemark-group--eieio-childp eieio-make-child-predicate linemark-group-child-p make-obsolete "use (cl-typep ... \\='linemark-group) instead" "25.1" define-symbol-prop cl-deftype-satisfies eieio-defclass-internal nil ((marks :initarg :marks :type list :initform nil :documentation "List of `linemark-entries'.") (face :initarg :face :initform linemark-funny-face :documentation "Default face used to create new `linemark-entries'.") (active :initarg :active :type boolean :initform t :documentation "Track if these marks are active or not.")) (:documentation "Track a common group of `linemark-entries'.")] 6) #@53 Create a new object of class type `linemark-group'. (defalias 'linemark-group #[(&rest slots) "\301\302\303#\207" [slots apply make-instance linemark-group] 4 (#$ . 4352)]) (byte-code "\300\301\302\303#\300\207" [function-put linemark-group compiler-macro linemark-group--anon-cmacro] 4) (defalias 'linemark-group--anon-cmacro #[(whole &rest slots) "@;\204 \207\302\303\304@ @# @\305@DABB\"\207" [slots whole macroexp-warn-and-return format "Obsolete name arg %S to constructor %S" identity] 5]) #@34 List of groups we need to track. (defvar linemark-groups nil (#$ . 4861)) #@180 *Obsolete*. Create a group object for tracking linemark entries. Do not permit multiple groups with the same NAME. Optional argument DEFAULTFACE is the :face slot for the object. (defalias 'linemark-create-group #[(name &optional defaultface) "\302\303\304 $\207" [name defaultface linemark-new-group linemark-group :face] 5 (#$ . -4942)]) #@134 Create a new linemark group based on the linemark CLASS. Give this group NAME. ARGS are slot/value pairs for the new instantiation. (defalias 'linemark-new-group #[(class name &rest args) "\306\211\n\204 \203 \f\307 @!\230\203 @ A\202\n\203)\n\2025\310\311 \f\n$\211B +\207" [linemark-groups lmg foundgroup newgroup name class nil linemark-object-name-string apply make-instance args] 6 (#$ . 5290)]) #@170 Return the current variable `linemark-entry' at point. Optional POS is the position to check which defaults to point. If GROUP, then make sure it also belongs to GROUP. (defalias 'linemark-at-point #[(&optional pos group) "\204`\305!\306\n\203< \204<\307\n@\310\"\211\2035\311 !\2035 \f\2035\f\312 \313\"=\2045\306\nA)\202\f *\207" [pos found o og group linemark-overlays-at nil linemark-overlay-get obj linemark-entry-child-p eieio-oref parent] 5 (#$ . 5719)]) #@195 Return the next mark in this buffer belonging to GROUP. If ARG, then find that manu marks forward or backward. Optional WRAP argument indicates that we should wrap around the end of the buffer. (defalias 'linemark-next-in-buffer #[(group &optional arg wrap) "\204\306\307` \"\211\203!\310W\203\311\n!\202\"\312\n!\202\"`\310W\203-\306\202.\313\310V\2039\314\202:\315\310W\203Ee\202Fd\316\3172\230\212\n?\205\226\310U?\205\226 !\307 \"\211\204\207 eU\204t dU\203\207\204\201\320\317\321\"\210\202\207\316\n\203O\fZ\311\n!\202O)0\210\n-\207" [arg group entry nc dir ofun 1 linemark-at-point 0 linemark-end linemark-begin -1 linemark-previous-overlay-change linemark-next-overlay-change nil moose throw t bounds wrap] 4 (#$ . 6206)]) (byte-code "\300\301\302\303\302\304%\210\300\305\302\306\302\307%\210\300\310\302\311\302\312%\210\300\310\302\313\302\314%\210\300\315\302\316\302\317%\210\300\315\302\320\302\321%\210\300\322\302\323\302\324%\210\300\325\302\326\302\327%\207" [cl-generic-define-method linemark-add-entry nil ((g linemark-group) &rest args) #[(g &rest args) "\306\307\"\306\310\"\306\311\"\211\204$\312 \211\203!\313 !\202$\314 \n\2044\315e`\"n\2034\nT\316\307 #\316\310\n#\317\320\f#\321 \322\f#\210\321 \301 \206W\323\f\301\"#\210\321\f\324 \323\f\324\"B#\210\323\f\325\"\203y\3261x\327 \330\"0\210\202y\210 ,\207" [args face line file g new-entry plist-get :filename :line :face buffer-file-name expand-file-name buffer-name count-lines plist-put apply linemark-new-entry eieio-oset parent eieio-oref marks active (error) linemark-display t] 8 "Add a `linemark-entry' to G.\nIt will be at location specified by :filename and :line, and :face\nwhich are property list entries in ARGS.\nCall the new entrie's activate method.\n\n(fn G &rest ARGS)"] linemark-new-entry ((g linemark-group) &rest args) #[(g &rest args) "\303\304\"\303\305\"\306\307\310\311\n ##*\207" [args l f plist-get :filename :line apply linemark-entry format "%s %d"] 6 "Create a new entry for G using init ARGS.\n\n(fn G &rest ARGS)"] linemark-display ((g linemark-group) active-p) #[(g active-p) "\302\303\304\305\"\"\210\306\307 #\207" [g active-p mapc #[(g) "\302 \"\207" [g active-p linemark-display] 3] eieio-oref marks eieio-oset active] 5 "Set object G to be active or inactive."] ((e linemark-entry) active-p) #[(e active-p) "\203o \306 \307\"?\205m\310\311\312\n\313\"!\203#\311\312\n\313\"!\202*\314\312\n\313\"! \205lr q\210\212eb\210\306 \315\"Sy\210\316 \307\317`\212\310\210`)p##\210 \320\312\f\307\"\321\306 \321\"#\210\320\312\f\307\"\322 #\210\320\312\f\307\"\323\324#+))\207 \312 \307\"\205\215\3251\207\326\312 \307\"!0\210\202\210\210\316 \307\310#)\207" [active-p e #:object buffer #:object #:object eieio-oref overlay nil get-file-buffer slot-value filename get-buffer line eieio-oset linemark-make-overlay linemark-overlay-put face obj tag linemark (error) linemark-delete-overlay] 7 "Set object E to be active or inactive."] linemark-delete ((g linemark-group)) #[(g) "\302\303\304\305\"\"\210\306 \"\211\207" [g linemark-groups mapc linemark-delete eieio-oref marks delete] 5 "Remove group G from linemark tracking."] ((e linemark-entry)) #[(e) "\302\303 \304\"\305\306\307\303 \304\"\305\"\"#\210\310\311\")\207" [e #:object eieio-oset slot-value parent marks delq eieio-oref linemark-display nil] 9 "Remove entry E from it's parent group."] linemark-begin ((e linemark-entry)) #[(e) "\302\303 \304\"!)\207" [e #:object linemark-overlay-start slot-value overlay] 4 "Position at the start of the entry E."] linemark-end ((e linemark-entry)) #[(e) "\302\303 \304\"!)\207" [e #:object linemark-overlay-end slot-value overlay] 4 "Position at the end of the entry E."]] 6) #@60 Activate all marks which can benifit from this new buffer. (defalias 'linemark-find-file-hook #[nil "\301\302\"\207" [linemark-groups mapcar #[(g) "\3011\n\302\303\"0\207\210\304\207" [g (error) linemark-display t nil] 3]] 3 (#$ . 10008)]) #@47 Deactivate all entries in the current buffer. (defalias 'linemark-kill-buffer-hook #[nil "\302ed\"\303\211\205(\304 @\305\"\211\203 \306!\203 \307\303\"\210 A\211\204 \303*\207" [to o linemark-overlays-in nil linemark-overlay-get obj linemark-entry-child-p linemark-display] 4 (#$ . 10257)]) (byte-code "\300\301\302\"\210\300\303\304\"\207" [add-hook find-file-hook linemark-find-file-hook kill-buffer-hook linemark-kill-buffer-hook] 3) #@33 The VISS bookmark group object. (defvar viss-bookmark-group (linemark-new-group 'linemark-group "viss") (#$ . 10711)) #@40 Toggle a bookmark on the current line. (defalias 'viss-bookmark-toggle #[nil "\302`\"\211\203\303 !\202\304!)\207" [viss-bookmark-group ce linemark-at-point linemark-delete linemark-add-entry] 4 (#$ . 10835) nil]) #@43 Move to the next bookmark in this buffer. (defalias 'viss-bookmark-next-buffer #[nil "\302\303\304#\211\203eb\210\305 \306\"Sy\202\307 )\207" [viss-bookmark-group n linemark-next-in-buffer 1 t eieio-oref line ding] 5 (#$ . 11062) nil]) #@43 Move to the next bookmark in this buffer. (defalias 'viss-bookmark-prev-buffer #[nil "\302\303\304#\211\203eb\210\305 \306\"Sy\202\307 )\207" [viss-bookmark-group n linemark-next-in-buffer -1 t eieio-oref line ding] 5 (#$ . 11310) nil]) #@37 Clear all bookmarks in this buffer. (defalias 'viss-bookmark-clear-all-buffer #[nil "\301\302\303\304\"\"\207" [viss-bookmark-group mapcar #[(e) "\301\302\"\303 \230\204\301\302\"\304 \230\205\305!\207" [e eieio-oref filename buffer-file-name buffer-name linemark-delete] 3] eieio-oref marks] 5 (#$ . 11559) nil]) #@312 Bind the viss bookmark functions to F2 related keys. \ \[viss-bookmark-toggle] - To=ggle a bookmark on this line. \[viss-bookmark-next-buffer] - Move to the next bookmark. \[viss-bookmark-prev-buffer] - Move to the previous bookmark. \[viss-bookmark-clear-all-buffer] - Clear all bookmarks. (defalias 'enable-visual-studio-bookmarks #[nil "\301\302\303#\210\301\304\305#\210\301\306\307#\210\301\310\311#\207" [global-map define-key [(f2)] viss-bookmark-toggle [(shift f2)] viss-bookmark-prev-buffer [(control f2)] viss-bookmark-next-buffer [(control shift f2)] viss-bookmark-clear-all-buffer] 4 (#$ . 11888) nil]) (provide 'linemark)