403Webshell
Server IP : 217.160.0.212  /  Your IP : 216.73.216.141
Web Server : Apache
System : Linux www 6.18.51-i1-ampere #1196 SMP Fri Sep 11 20:43:55 CEST 2026 aarch64
User : sws1073854427 ( 1073854427)
PHP Version : 8.4.23
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /usr/share/emacs/28.2/lisp/progmodes/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/share/emacs/28.2/lisp/progmodes/xref.elc
;ELC
;;; Compiled
;;; in Emacs version 28.2
;;; with all optimizations.



(byte-code "\302\303!\210\302\304!\210\302\305!\210\306\307\"\203\302\310!\210\311	\312\211\313\314%\210\315\316\312\317\320\321\322\323&\210\324\325\326\325\327\312#\330#\210\324\331\326\331\332\312#\333#\210\324\334\326\334\335\312#\336#\210\337\334\312\335\312\340%\210\324\341\326\341\342\312#\343#\210\337\341\312\342\312\344%\210\345\346\347\350\351DD\352\353\354\320\355&\207" [emacs-version xref-location require cl-lib ring project version< "28" eieio defclass nil :documentation "(Obsolete) location represents a position in a file or buffer." custom-declare-group xref "Cross-referencing commands." :version "25.1" :group tools defalias xref-location-marker cl-generic-define (location) "Return the marker for LOCATION.\n\n(fn LOCATION)" xref-location-group (location) "Return a string used to group a set of locations.\nThis is typically a file name, but can also be a package name, or\nsome other label.\n\nWhen it is a file name, it should be the \"expanded\" version.\n\n(fn LOCATION)" xref-location-line (_location) "Return the line number corresponding to the location.\n\n(fn LOCATION)" cl-generic-define-method #[257 "\300\207" [nil] 2 "\n\n(fn LOCATION)"] xref-match-length (_item) "Return the length of the match.\n\n(fn ITEM)" #[257 "\300\207" [nil] 2 "\n\n(fn ITEM)"] custom-declare-variable xref-file-name-display funcall function #[0 "\300\207" [project-relative] 1 ""] "Style of file name display in *xref* buffers.\n\nIf the value is the symbol `abs', show the file names in their\nfull absolute form.\n\nIf `nondirectory', show only the nondirectory (a.k.a. \"base name\")\npart of the file name.\n\nIf `project-relative', the default, show only the file name\nrelative to the current project root.  If there is no current\nproject, or if the file resides outside of its root, show that\nparticular file name in its full absolute form." :type (choice (const :tag "absolute file name" abs) (const :tag "nondirectory file name" nondirectory) (const :tag "relative to project root" project-relative)) "27.1"] 8)
#@77 compiler-macro for inlining `xref-file-location-p'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'xref-file-location-p--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block xref-file-location-p (and (memq (type-of cl-x) cl-struct-xref-file-location-tags) t)) nil] 9 (#$ . 2126)])
(put 'xref-file-location-p 'compiler-macro 'xref-file-location-p--cmacro)
#@13 

(fn CL-X)
(defalias 'xref-file-location-p #[257 "\301!>\205	\302\207" [cl-struct-xref-file-location-tags type-of t] 3 (#$ . 2508)])
(byte-code "\300\301\302\303#\304\305\306\301#\207" [function-put xref-file-location-p side-effect-free error-free put xref-file-location cl-deftype-satisfies] 5)
#@80 compiler-macro for inlining `xref-file-location-file'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'xref-file-location-file--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block xref-file-location-file (progn (or (xref-file-location-p cl-x) (signal 'wrong-type-argument (list 'xref-file-location cl-x))) (aref cl-x 1))) nil] 9 (#$ . 2814)])
(put 'xref-file-location-file 'compiler-macro 'xref-file-location-file--cmacro)
#@68 Access slot "file" of `xref-file-location' struct CL-X.

(fn CL-X)
(defalias 'xref-file-location-file #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-xref-file-location-tags type-of signal wrong-type-argument xref-file-location 1] 5 (#$ . 3264)])
(byte-code "\300\301\302\303#\300\207" [function-put xref-file-location-file side-effect-free t] 4)
#@80 compiler-macro for inlining `xref-file-location-line'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'xref-file-location-line--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block xref-file-location-line (progn (or (xref-file-location-p cl-x) (signal 'wrong-type-argument (list 'xref-file-location cl-x))) (aref cl-x 2))) nil] 9 (#$ . 3636)])
(put 'xref-file-location-line 'compiler-macro 'xref-file-location-line--cmacro)
#@68 Access slot "line" of `xref-file-location' struct CL-X.

(fn CL-X)
(defalias 'xref-file-location-line #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-xref-file-location-tags type-of signal wrong-type-argument xref-file-location 2] 5 (#$ . 4086)])
(byte-code "\300\301\302\303#\300\207" [function-put xref-file-location-line side-effect-free t] 4)
#@82 compiler-macro for inlining `xref-file-location-column'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'xref-file-location-column--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block xref-file-location-column (progn (or (xref-file-location-p cl-x) (signal 'wrong-type-argument (list 'xref-file-location cl-x))) (aref cl-x 3))) nil] 9 (#$ . 4458)])
(put 'xref-file-location-column 'compiler-macro 'xref-file-location-column--cmacro)
#@70 Access slot "column" of `xref-file-location' struct CL-X.

(fn CL-X)
(defalias 'xref-file-location-column #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-xref-file-location-tags type-of signal wrong-type-argument xref-file-location 3] 5 (#$ . 4918)])
(byte-code "\300\301\302\303#\304\305\306\"\207" [function-put xref-file-location-column side-effect-free t defalias copy-xref-file-location copy-sequence] 4)
#@103 compiler-macro for inlining `make-xref-file-location'.

(fn CL-WHOLE &cl-quote &key FILE LINE COLUMN)
(defalias 'make-xref-file-location--cmacro #[385 "\300\301\"A@\300\302\"A@\300\303\"A@\211\203=\211@\304>\203&\211AA\262\202\305>A@\2034\306\262\202\307\310@\"\210\202\210\311\312\313\306\306&\207" [plist-member :file :line :column (:file :line :column :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:file :line :column)" cl--defsubst-expand (file line column) (cl-block make-xref-file-location (record 'xref-file-location file line column))] 14 (#$ . 5354)])
(put 'make-xref-file-location 'compiler-macro 'make-xref-file-location--cmacro)
#@83 Constructor for objects of type `xref-file-location'.

(fn &key FILE LINE COLUMN)
(defalias 'make-xref-file-location #[128 "\300\301\"A@\300\302\"A@\300\303\"A@\211\203=\211@\304>\203&\211AA\262\202\305>A@\2034\306\262\202\307\310@\"\210\202\210\311\312$\207" [plist-member :file :line :column (:file :line :column :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:file :line :column)" record xref-file-location] 9 (#$ . 6061)])
(byte-code "\300\301\302\303#\300\207" [function-put make-xref-file-location side-effect-free t] 4)
#@92 compiler-macro for inlining `xref-make-file-location'.

(fn CL-WHOLE-ARG FILE LINE COLUMN)
(defalias 'xref-make-file-location--cmacro #[1028 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (file line column) (cl-block xref-make-file-location (record 'xref-file-location file line column)) nil] 13 (#$ . 6647)])
(put 'xref-make-file-location 'compiler-macro 'xref-make-file-location--cmacro)
#@78 Constructor for objects of type `xref-file-location'.

(fn FILE LINE COLUMN)
(defalias 'xref-make-file-location #[771 "\300\301$\207" [record xref-file-location] 8 (#$ . 7056)])
(byte-code "\300\301\302\303#\304\305\306\307\310\311\312\313\305\303&	\210\314\315\311\316\311\317%\210\314\320\311\321\311\322%\210\314\323\311\324\311\325%\207" [function-put xref-make-file-location side-effect-free t cl-struct-define xref-file-location "A file location is a file/line/column triple.\nLine numbers start from 1 and columns from 0." cl-structure-object record nil ((cl-tag-slot) (file) (line) (column)) cl-struct-xref-file-location-tags cl-generic-define-method xref-location-group ((l xref-file-location)) #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-xref-file-location-tags type-of signal wrong-type-argument xref-file-location 1] 5 "\n\n(fn L)"] xref-location-line ((l xref-file-location)) #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-xref-file-location-tags type-of signal wrong-type-argument xref-file-location 2] 5 "\n\n(fn L)"] xref-location-marker ((l xref-file-location)) #[257 "\302!>\210\211\303H\304H\305Hr\306!\206\307\310!)q\210\214~\210\212eb\210\31114\312!\210\211u0\210\2025\210\313 +\207" [cl-struct-xref-file-location-tags find-file-suppress-same-file-warnings type-of 1 2 3 get-file-buffer t find-file-noselect (error) beginning-of-line point-marker] 6 "\n\n(fn L)"]] 11)
#@79 compiler-macro for inlining `xref-buffer-location-p'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'xref-buffer-location-p--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block xref-buffer-location-p (and (memq (type-of cl-x) cl-struct-xref-buffer-location-tags) t)) nil] 9 (#$ . 8510)])
(put 'xref-buffer-location-p 'compiler-macro 'xref-buffer-location-p--cmacro)
#@13 

(fn CL-X)
(defalias 'xref-buffer-location-p #[257 "\301!>\205	\302\207" [cl-struct-xref-buffer-location-tags type-of t] 3 (#$ . 8904)])
(byte-code "\300\301\302\303#\304\305\306\301#\207" [function-put xref-buffer-location-p side-effect-free error-free put xref-buffer-location cl-deftype-satisfies] 5)
#@84 compiler-macro for inlining `xref-buffer-location-buffer'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'xref-buffer-location-buffer--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block xref-buffer-location-buffer (progn (or (xref-buffer-location-p cl-x) (signal 'wrong-type-argument (list 'xref-buffer-location cl-x))) (aref cl-x 1))) nil] 9 (#$ . 9218)])
(put 'xref-buffer-location-buffer 'compiler-macro 'xref-buffer-location-buffer--cmacro)
#@72 Access slot "buffer" of `xref-buffer-location' struct CL-X.

(fn CL-X)
(defalias 'xref-buffer-location-buffer #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-xref-buffer-location-tags type-of signal wrong-type-argument xref-buffer-location 1] 5 (#$ . 9692)])
(byte-code "\300\301\302\303#\300\207" [function-put xref-buffer-location-buffer side-effect-free t] 4)
#@86 compiler-macro for inlining `xref-buffer-location-position'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'xref-buffer-location-position--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block xref-buffer-location-position (progn (or (xref-buffer-location-p cl-x) (signal 'wrong-type-argument (list 'xref-buffer-location cl-x))) (aref cl-x 2))) nil] 9 (#$ . 10080)])
(put 'xref-buffer-location-position 'compiler-macro 'xref-buffer-location-position--cmacro)
#@74 Access slot "position" of `xref-buffer-location' struct CL-X.

(fn CL-X)
(defalias 'xref-buffer-location-position #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-xref-buffer-location-tags type-of signal wrong-type-argument xref-buffer-location 2] 5 (#$ . 10565)])
(byte-code "\300\301\302\303#\304\305\306\"\207" [function-put xref-buffer-location-position side-effect-free t defalias copy-xref-buffer-location copy-sequence] 4)
#@104 compiler-macro for inlining `make-xref-buffer-location'.

(fn CL-WHOLE &cl-quote &key BUFFER POSITION)
(defalias 'make-xref-buffer-location--cmacro #[385 "\300\301\"A@\300\302\"A@\211\2037\211@\303>\203 \211AA\262\202
\304>A@\203.\305\262\202
\306\307@\"\210\202
\210\310\311\312\305\305&\207" [plist-member :buffer :position (:buffer :position :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:buffer :position)" cl--defsubst-expand (buffer position) (cl-block make-xref-buffer-location (record 'xref-buffer-location buffer position))] 12 (#$ . 11020)])
(put 'make-xref-buffer-location 'compiler-macro 'make-xref-buffer-location--cmacro)
#@84 Constructor for objects of type `xref-buffer-location'.

(fn &key BUFFER POSITION)
(defalias 'make-xref-buffer-location #[128 "\300\301\"A@\300\302\"A@\211\2037\211@\303>\203 \211AA\262\202
\304>A@\203.\305\262\202
\306\307@\"\210\202
\210\310\311#\207" [plist-member :buffer :position (:buffer :position :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:buffer :position)" record xref-buffer-location] 7 (#$ . 11716)])
(byte-code "\300\301\302\303#\300\207" [function-put make-xref-buffer-location side-effect-free t] 4)
#@93 compiler-macro for inlining `xref-make-buffer-location'.

(fn CL-WHOLE-ARG BUFFER POSITION)
(defalias 'xref-make-buffer-location--cmacro #[771 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (buffer position) (cl-block xref-make-buffer-location (record 'xref-buffer-location buffer position)) nil] 11 (#$ . 12290)])
(put 'xref-make-buffer-location 'compiler-macro 'xref-make-buffer-location--cmacro)
#@79 Constructor for objects of type `xref-buffer-location'.

(fn BUFFER POSITION)
(defalias 'xref-make-buffer-location #[514 "\300\301#\207" [record xref-buffer-location] 6 (#$ . 12706)])
(byte-code "\300\301\302\303#\304\305\306\307\310\306\311\312\305\303&	\210\313\314\306\315\306\316%\210\313\317\306\320\306\321%\207" [function-put xref-make-buffer-location side-effect-free t cl-struct-define xref-buffer-location nil cl-structure-object record ((cl-tag-slot) (buffer) (position)) cl-struct-xref-buffer-location-tags cl-generic-define-method xref-location-marker ((l xref-buffer-location)) #[257 "\301!>\210\211\302H\303H\304 \211\223\207" [cl-struct-xref-buffer-location-tags type-of 1 2 make-marker] 7 "\n\n(fn L)"] xref-location-group ((l xref-buffer-location)) #[257 "\301!>\210\211\302H\303!\206\304\305\306!\"\207" [cl-struct-xref-buffer-location-tags type-of 1 buffer-file-name format "(buffer %s)" buffer-name] 6 "\n\n(fn L)"]] 11)
#@78 compiler-macro for inlining `xref-bogus-location-p'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'xref-bogus-location-p--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block xref-bogus-location-p (and (memq (type-of cl-x) cl-struct-xref-bogus-location-tags) t)) nil] 9 (#$ . 13667)])
(put 'xref-bogus-location-p 'compiler-macro 'xref-bogus-location-p--cmacro)
#@13 

(fn CL-X)
(defalias 'xref-bogus-location-p #[257 "\301!>\205	\302\207" [cl-struct-xref-bogus-location-tags type-of t] 3 (#$ . 14056)])
(byte-code "\300\301\302\303#\304\305\306\301#\207" [function-put xref-bogus-location-p side-effect-free error-free put xref-bogus-location cl-deftype-satisfies] 5)
#@84 compiler-macro for inlining `xref-bogus-location-message'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'xref-bogus-location-message--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block xref-bogus-location-message (progn (or (xref-bogus-location-p cl-x) (signal 'wrong-type-argument (list 'xref-bogus-location cl-x))) (aref cl-x 1))) nil] 9 (#$ . 14367)])
(put 'xref-bogus-location-message 'compiler-macro 'xref-bogus-location-message--cmacro)
#@72 Access slot "message" of `xref-bogus-location' struct CL-X.

(fn CL-X)
(defalias 'xref-bogus-location-message #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-xref-bogus-location-tags type-of signal wrong-type-argument xref-bogus-location 1] 5 (#$ . 14840)])
(byte-code "\300\301\302\303#\304\305\306\"\207" [function-put xref-bogus-location-message side-effect-free t defalias copy-xref-bogus-location copy-sequence] 4)
#@95 compiler-macro for inlining `make-xref-bogus-location'.

(fn CL-WHOLE &cl-quote &key MESSAGE)
(defalias 'make-xref-bogus-location--cmacro #[385 "\300\301\"A@\211\2031\211@\302>\203\211AA\262\202\303>A@\203(\304\262\202\305\306@\"\210\202\210\307\310\311\304\304&\207" [plist-member :message (:message :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:message)" cl--defsubst-expand (message) (cl-block make-xref-bogus-location (record 'xref-bogus-location message))] 10 (#$ . 15285)])
(put 'make-xref-bogus-location 'compiler-macro 'make-xref-bogus-location--cmacro)
#@75 Constructor for objects of type `xref-bogus-location'.

(fn &key MESSAGE)
(defalias 'make-xref-bogus-location #[128 "\300\301\"A@\211\2031\211@\302>\203\211AA\262\202\303>A@\203(\304\262\202\305\306@\"\210\202\210\307\310\"\207" [plist-member :message (:message :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:message)" record xref-bogus-location] 6 (#$ . 15909)])
(byte-code "\300\301\302\303#\300\207" [function-put make-xref-bogus-location side-effect-free t] 4)
#@84 compiler-macro for inlining `xref-make-bogus-location'.

(fn CL-WHOLE-ARG MESSAGE)
(defalias 'xref-make-bogus-location--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (message) (cl-block xref-make-bogus-location (record 'xref-bogus-location message)) nil] 9 (#$ . 16431)])
(put 'xref-make-bogus-location 'compiler-macro 'xref-make-bogus-location--cmacro)
#@70 Constructor for objects of type `xref-bogus-location'.

(fn MESSAGE)
(defalias 'xref-make-bogus-location #[257 "\300\301\"\207" [record xref-bogus-location] 4 (#$ . 16814)])
(byte-code "\300\301\302\303#\304\305\306\307\310\311\312\313\305\303&	\210\314\315\311\316\311\317%\210\314\320\311\321\311\322%\207" [function-put xref-make-bogus-location side-effect-free t cl-struct-define xref-bogus-location "Bogus locations are sometimes useful to indicate errors,\ne.g. when we know that a function exists but the actual location\nis not known." cl-structure-object record nil ((cl-tag-slot) (message)) cl-struct-xref-bogus-location-tags cl-generic-define-method xref-location-marker ((l xref-bogus-location)) #[257 "\301\302\303!>\204\304\305\306D\"\210\307H\"\207" [cl-struct-xref-bogus-location-tags user-error "%s" type-of signal wrong-type-argument xref-bogus-location 1] 7 "\n\n(fn L)"] xref-location-group ((_ xref-bogus-location)) #[257 "\300\207" ["(No location)"] 2 "\n\n(fn _)"]] 11)
#@13 

(fn CL-X)
(defalias 'xref-item-p #[257 "\301!>\205	\302\207" [cl-struct-xref-item-tags type-of t] 3 (#$ . 17820)])
(byte-code "\300\301\302\303#\304\305\306\301#\207" [function-put xref-item-p side-effect-free error-free put xref-item cl-deftype-satisfies] 5)
#@617 Access slot "summary" of `xref-item' struct CL-X.
String which describes the location.

When `xref-location-line' returns non-nil (a number), the summary
is implied to be the contents of a file or buffer line containing
the location.  When multiple locations in a row report the same
line, in the same group (corresponding to the case of multiple
locations on one line), the summaries are concatenated in the
Xref output buffer.  Consequently, any code that creates xref
values should take care to slice the summary values when several
locations point to the same line.

This behavior is new in Emacs 28.

(fn CL-X)
(defalias 'xref-item-summary #[257 "\300!\204
\301\302\303D\"\210\211\304H\207" [xref-item-p signal wrong-type-argument xref-item 1] 5 (#$ . 18092)])
(byte-code "\300\301\302\303#\300\207" [function-put xref-item-summary side-effect-free t] 4)
#@17 

(fn VAL CL-X)
(defalias '\(setf\ xref-item-summary\) #[514 "\300!\204
\301\302\303D\"\210\211\304I\207" [xref-item-p signal wrong-type-argument xref-item 1] 6 (#$ . 18961)])
#@63 Access slot "location" of `xref-item' struct CL-X.

(fn CL-X)
(defalias 'xref-item-location #[257 "\300!\204
\301\302\303D\"\210\211\304H\207" [xref-item-p signal wrong-type-argument xref-item 2] 5 (#$ . 19147)])
(byte-code "\300\301\302\303#\300\207" [function-put xref-item-location side-effect-free t] 4)
#@17 

(fn VAL CL-X)
(defalias '\(setf\ xref-item-location\) #[514 "\300!\204
\301\302\303D\"\210\211\304I\207" [xref-item-p signal wrong-type-argument xref-item 2] 6 (#$ . 19464)])
(defalias 'copy-xref-item 'copy-sequence)
#@74 Constructor for objects of type `xref-item'.

(fn &key SUMMARY LOCATION)
(defalias 'make-xref-item #[128 "\300\301\"A@\300\302\"A@\211\2037\211@\303>\203 \211AA\262\202
\304>A@\203.\305\262\202
\306\307@\"\210\202
\210\310\311#\207" [plist-member :summary :location (:summary :location :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:summary :location)" record xref-item] 7 (#$ . 19693)])
(byte-code "\300\301\302\303#\300\207" [function-put make-xref-item side-effect-free t] 4)
#@69 Constructor for objects of type `xref-item'.

(fn SUMMARY LOCATION)
(defalias 'xref-make #[514 "\300\301#\207" [record xref-item] 6 (#$ . 20227)])
(byte-code "\300\301\302\303#\304\305\306\307\310\311\312\313\305\303&	\207" [function-put xref-make side-effect-free t cl-struct-define xref-item "An xref item describes a reference to a location somewhere." cl-structure-object record nil ((cl-tag-slot) (summary nil :documentation "String which describes the location.\n\nWhen `xref-location-line' returns non-nil (a number), the summary\nis implied to be the contents of a file or buffer line containing\nthe location.  When multiple locations in a row report the same\nline, in the same group (corresponding to the case of multiple\nlocations on one line), the summaries are concatenated in the\nXref output buffer.  Consequently, any code that creates xref\nvalues should take care to slice the summary values when several\nlocations point to the same line.\n\nThis behavior is new in Emacs 28.") (location)) cl-struct-xref-item-tags] 11)
#@13 

(fn CL-X)
(defalias 'xref-match-item-p #[257 "\301!>\205	\302\207" [cl-struct-xref-match-item-tags type-of t] 3 (#$ . 21276)])
(byte-code "\300\301\302\303#\304\305\306\301#\207" [function-put xref-match-item-p side-effect-free error-free put xref-match-item cl-deftype-satisfies] 5)
#@623 Access slot "summary" of `xref-match-item' struct CL-X.
String which describes the location.

When `xref-location-line' returns non-nil (a number), the summary
is implied to be the contents of a file or buffer line containing
the location.  When multiple locations in a row report the same
line, in the same group (corresponding to the case of multiple
locations on one line), the summaries are concatenated in the
Xref output buffer.  Consequently, any code that creates xref
values should take care to slice the summary values when several
locations point to the same line.

This behavior is new in Emacs 28.

(fn CL-X)
(defalias 'xref-match-item-summary #[257 "\300!\204
\301\302\303D\"\210\211\304H\207" [xref-match-item-p signal wrong-type-argument xref-match-item 1] 5 (#$ . 21572)])
(byte-code "\300\301\302\303#\300\207" [function-put xref-match-item-summary side-effect-free t] 4)
#@17 

(fn VAL CL-X)
(defalias '\(setf\ xref-match-item-summary\) #[514 "\300!\204
\301\302\303D\"\210\211\304I\207" [xref-match-item-p signal wrong-type-argument xref-match-item 1] 6 (#$ . 22471)])
#@69 Access slot "location" of `xref-match-item' struct CL-X.

(fn CL-X)
(defalias 'xref-match-item-location #[257 "\300!\204
\301\302\303D\"\210\211\304H\207" [xref-match-item-p signal wrong-type-argument xref-match-item 2] 5 (#$ . 22675)])
(byte-code "\300\301\302\303#\300\207" [function-put xref-match-item-location side-effect-free t] 4)
#@17 

(fn VAL CL-X)
(defalias '\(setf\ xref-match-item-location\) #[514 "\300!\204
\301\302\303D\"\210\211\304I\207" [xref-match-item-p signal wrong-type-argument xref-match-item 2] 6 (#$ . 23022)])
#@67 Access slot "length" of `xref-match-item' struct CL-X.

(fn CL-X)
(defalias 'xref-match-item-length #[257 "\300!\204
\301\302\303D\"\210\211\304H\207" [xref-match-item-p signal wrong-type-argument xref-match-item 3] 5 (#$ . 23227)])
(byte-code "\300\301\302\303#\300\207" [function-put xref-match-item-length side-effect-free t] 4)
#@17 

(fn VAL CL-X)
(defalias '\(setf\ xref-match-item-length\) #[514 "\300!\204
\301\302\303D\"\210\211\304I\207" [xref-match-item-p signal wrong-type-argument xref-match-item 3] 6 (#$ . 23568)])
(defalias 'copy-xref-match-item 'copy-sequence)
#@87 Constructor for objects of type `xref-match-item'.

(fn &key SUMMARY LOCATION LENGTH)
(defalias 'make-xref-match-item #[128 "\300\301\"A@\300\302\"A@\300\303\"A@\211\203=\211@\304>\203&\211AA\262\202\305>A@\2034\306\262\202\307\310@\"\210\202\210\311\312$\207" [plist-member :summary :location :length (:summary :location :length :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:summary :location :length)" record xref-match-item] 9 (#$ . 23819)])
(byte-code "\300\301\302\303#\300\207" [function-put make-xref-match-item side-effect-free t] 4)
#@82 Constructor for objects of type `xref-match-item'.

(fn SUMMARY LOCATION LENGTH)
(defalias 'xref-make-match #[771 "\300\301$\207" [record xref-match-item] 8 (#$ . 24422)])
(byte-code "\300\301\302\303#\304\305\306\307\310\311\312\313\305\303&	\210\314\315\316\315\317\311#\320#\210\321\315\311\317\311\322%\207" [function-put xref-make-match side-effect-free t cl-struct-define xref-match-item "A match xref item describes a search result." xref-item record nil ((cl-tag-slot) (summary nil :documentation "String which describes the location.\n\nWhen `xref-location-line' returns non-nil (a number), the summary\nis implied to be the contents of a file or buffer line containing\nthe location.  When multiple locations in a row report the same\nline, in the same group (corresponding to the case of multiple\nlocations on one line), the summaries are concatenated in the\nXref output buffer.  Consequently, any code that creates xref\nvalues should take care to slice the summary values when several\nlocations point to the same line.\n\nThis behavior is new in Emacs 28.") (location nil) (length)) cl-struct-xref-match-item-tags defalias xref-match-length cl-generic-define ((item xref-match-item)) "Return the length of the match.\n\n(fn (ITEM xref-match-item))" cl-generic-define-method #[257 "\300!\207" [xref-match-item-length] 3 "\n\n(fn ITEM)"]] 11)
#@275 Special hook to find the xref backend for the current context.
Each function on this hook is called in turn with no arguments,
and should return either nil to mean that it is not applicable,
or an xref backend, which is a value to be used to dispatch the
generic functions.
(defvar xref-backend-functions nil (#$ . 25790))
(add-hook 'xref-backend-functions 'etags--xref-backend t)
(defalias 'xref-find-backend #[0 "\300\301!\207" [run-hook-with-args-until-success xref-backend-functions] 2])
(byte-code "\300\301\302\301\303\304#\305#\210\300\306\302\306\307\304#\310#\210\311\306\304\307\304\312%\210\300\313\302\313\314\304#\315#\210\300\316\302\316\317\304#\320#\210\311\316\304\317\304\321%\210\300\322\302\322\323\304#\324#\210\300\325\302\325\326\304#\327#\210\311\325\304\326\304\330%\207" [defalias xref-backend-definitions cl-generic-define (backend identifier) nil "Find definitions of IDENTIFIER.\n\nThe result must be a list of xref objects.  If IDENTIFIER\ncontains sufficient information to determine a unique definition,\nreturn only that definition.  If there are multiple possible\ndefinitions, return all of them.  If no definitions can be found,\nreturn nil.\n\nIDENTIFIER can be any string returned by\n`xref-backend-identifier-at-point', or from the table returned by\n`xref-backend-identifier-completion-table'.\n\nTo create an xref object, call `xref-make'.\n\n(fn BACKEND IDENTIFIER)" xref-backend-references (_backend identifier) "Find references of IDENTIFIER.\nThe result must be a list of xref objects.  If no references can\nbe found, return nil.\n\nThe default implementation uses `semantic-symref-tool-alist' to\nfind a search tool; by default, this uses \"find | grep\" in the\ncurrent project's main and external roots.\n\n(fn BACKEND IDENTIFIER)" cl-generic-define-method #[514 "\300\301\302\"\303\304!\305!\306!B\262\"\207" [mapcan make-closure #[257 "\301\302\"\210\303 \210\304\300\"\301\305\"\210\207" [V0 message "Searching %s..." redisplay xref-references-in-directory "Searching %s... done"] 5 "\n\n(fn DIR)"] project-current t xref--project-root project-external-roots] 8 "\n\n(fn BACKEND IDENTIFIER)"] xref-backend-apropos (backend pattern) "Find all symbols that match PATTERN string.\nThe second argument has the same meaning as in `apropos'.\n\nIf BACKEND is implemented in Lisp, it can use\n`xref-apropos-regexp' to convert the pattern to regexp.\n\n(fn BACKEND PATTERN)" xref-backend-identifier-at-point (_backend) "Return the relevant identifier at point.\n\nThe return value must be a string, or nil meaning no identifier\nat point found.\n\nIf it's hard to determine the identifier precisely (e.g., because\nit's a method call on unknown type), the implementation can\nreturn a simple string (such as symbol at point) marked with a\nspecial text property which e.g. `xref-backend-definitions' would\nrecognize and then delegate the work to an external process.\n\n(fn BACKEND)" #[257 "\300\301!\211\205\n\302!\207" [thing-at-point symbol substring-no-properties] 4 "\n\n(fn BACKEND)"] xref-backend-identifier-completion-table (backend) "Return the completion table for identifiers.\n\n(fn BACKEND)" xref-backend-identifier-completion-ignore-case (_backend) "Return t if case is not significant in identifier completion.\n\n(fn BACKEND)" #[257 "\207" [completion-ignore-case] 2 "\n\n(fn BACKEND)"]] 6)
#@100 Partition the elements of LIST into an alist.
KEY extracts the key from an element.

(fn LIST KEY)
(defalias 'xref--alistify #[514 "\300\301\302\"\211\2033\211@!\303\"\211\203#\304B#\266\202,\304C#\266A\266\202\202\210\305C\306\307\310\"\"\210\211\242\237\207" [make-hash-table :test equal gethash puthash nil maphash make-closure #[514 "\300\237B\300\242B\240\207" [V0] 5 "\n\n(fn KEY VALUE)"]] 11 (#$ . 29159)])
#@70 Insert STRINGS with text properties PROPS.

(fn PROPS &rest STRINGS)
(defalias 'xref--insert-propertized #[385 "`\300\301\"\210\302`#\207" [apply insert add-text-properties] 7 (#$ . 29605)])
#@175 Search the next text range where text property PROPERTY is non-nil.
Return the value of PROPERTY.  If BACKWARD is non-nil, search
backward.

(fn PROPERTY &optional BACKWARD)
(defalias 'xref--search-property #[513 "\211\203\300\202	\301`\302`\"b\210\303`\"\211\262\204%m\204%o\203\211\206-b\210\302\207" [previous-single-char-property-change next-single-char-property-change nil get-text-property] 8 (#$ . 29806)])
(byte-code "\300\301\302\303\304DD\305\306\307\310\311\312\313&	\210\300\314\302\303\315DD\316\306\317%\210\300\320\302\303\321DD\322\306\323%\210\300\324\302\303\325DD\326\306\323%\210\300\327\302\303\330DD\331\306\323\332\333\334\335&	\210\300\336\302\303\337DD\340\306\341\332\333\334\342&	\210\300\343\302\303\344DD\345\306\346\332\333\334\347&	\207" [custom-declare-variable xref-marker-ring-length funcall function #[0 "\300\207" [16] 1 #1=""] "Length of the xref marker ring.\nIf this variable is not set through Customize, you must call\n`xref-set-marker-ring-length' for changes to take effect." :type integer :initialize custom-initialize-default :set xref-set-marker-ring-length xref-prompt-for-identifier #[0 "\300\207" [(not xref-find-definitions xref-find-definitions-other-window xref-find-definitions-other-frame)] 1 #1#] "If non-nil, prompt for the identifier to find.\n\nWhen t, always prompt for the identifier name.\n\nWhen nil, prompt only when there's no value at point we can use,\nor when the command has been called with the prefix argument.\n\nOtherwise, it's a list of xref commands which will always prompt,\nwith the identifier at point, if any, used as the default.\nIf the list starts with `not', the meaning of the rest of the\nelements is negated: these commands will NOT prompt." (choice (const :tag "Always prompt for identifier" t) (const :tag "Prompt if no identifier at point" nil) (set :menu-tag "Prompt according to command" :tag "Prompt according to command" :value (not) (const :tag "Except for commands listed below" not) (repeat :inline t (symbol :tag "command")))) xref-after-jump-hook #[0 "\300\207" [(recenter xref-pulse-momentarily)] 1 #1#] "Functions called after jumping to an xref." hook xref-after-return-hook #[0 "\300\207" [(xref-pulse-momentarily)] 1 #1#] "Functions called after returning to a pre-jump location." xref-after-update-hook #[0 "\300\207" [nil] 1 #1#] "Functions called after the xref buffer is updated." :version "28.1" :package-version (xref . "1.0.4") xref-auto-jump-to-first-definition #[0 "\300\207" [nil] 1 #1#] "If t, `xref-find-definitions' always jumps to the first result.\n`show' means to show the first result's location, but keep the\nfocus on the Xref buffer's window.\n`move' means to only move point to the first result.\nThis variable also affects the variants of `xref-find-definitions',\nsuch as `xref-find-definitions-other-window'." (choice (const :tag "Jump" t) (const :tag "Show" show) (const :tag "Move point only" move) (const :tag "No auto-jump" nil)) (xref . "1.2.0") xref-auto-jump-to-first-xref #[0 "\300\207" [nil] 1 #1#] "If t, `xref-find-references' always jumps to the first result.\n`show' means to show the first result's location, but keep the\nfocus on the Xref buffer's window.\n`move' means to only move point to the first result.\nThis variable also affects commands similar to `xref-find-references',\nsuch as `xref-find-references-at-mouse', `xref-find-apropos',\nand `project-find-regexp'.\n\nPlease be careful when changing the value if you are using Emacs 27\nor earlier: it can break `dired-do-find-regexp-and-replace'." (choice (const :tag "Jump" t) (const :tag "Show" show) (const :tag "Move point only" move) (const :tag "No auto-jump" nil)) (xref . "1.2.0")] 10)
#@48 Ring of markers to implement the marker stack.
(defvar xref--marker-ring (make-ring xref-marker-ring-length) (#$ . 33523))
#@116 Set `xref-marker-ring-length'.
VAR is the symbol `xref-marker-ring-length' and VAL is the new
value.

(fn VAR VAL)
(defalias 'xref-set-marker-ring-length #[514 "\301\"\210\302!\205\303\"\207" [xref--marker-ring set-default ring-p ring-resize] 5 (#$ . 33653)])
#@81 Add point M (defaults to `point-marker') to the marker stack.

(fn &optional M)
(defalias 'xref-push-marker-stack #[256 "\301\206\302 \"\207" [xref--marker-ring ring-insert point-marker] 4 (#$ . 33926)])
#@62 Pop back to where \[xref-find-definitions] was last invoked.
(defalias 'xref-pop-marker-stack #[0 "\301!\203\302\303!\210\304\305\"\306\307!\206\302\310!!\210\311!b\210\211\312\211\223\210\313\314!\207" [xref--marker-ring ring-empty-p user-error "Marker stack is empty" ring-remove 0 switch-to-buffer marker-buffer "The marked buffer has been deleted" marker-position nil run-hooks xref-after-return-hook] 5 (#$ . 34140) nil])
(defvar xref--current-item nil)
(defalias 'xref-pulse-momentarily #[0 "\212\301!\211\205
``\\B\262\206'\302 \206'l\203#\303 `TB\202'`\304 B)\211\242\243\305\306#\207" [xref--current-item xref-match-length back-to-indentation line-beginning-position line-end-position pulse-momentary-highlight-region next-error] 7])
#@44 Discard all markers from the marker stack.
(defalias 'xref-clear-marker-stack #[0 "\301!?\205\302!\211\303\211\223\266\202\207" [xref--marker-ring ring-empty-p ring-remove nil] 5 (#$ . 34909)])
#@55 Return t if the marker stack is empty; nil otherwise.
(defalias 'xref-marker-stack-empty-p #[0 "\301!\207" [xref--marker-ring ring-empty-p] 2 (#$ . 35117)])
#@12 

(fn POS)
(defalias 'xref--goto-char #[257 "eX\203\f\211dX\204\203~\210\202\301\302!\210\211b\207" [widen-automatically user-error "Position is outside accessible part of buffer"] 3 (#$ . 35281)])
#@76 Set buffer and point according to `xref-location' LOCATION.

(fn LOCATION)
(defalias 'xref--goto-location #[257 "\300!\301!q\210\302!\207" [xref-location-marker marker-buffer xref--goto-char] 4 (#$ . 35494)])
#@295 Go to the location of ITEM and display the buffer.
ACTION controls how the buffer is displayed:
  nil      -- `switch-to-buffer'
  `window' -- `pop-to-buffer' (other window)
  `frame'  -- `pop-to-buffer' (other frame)
If SELECT is non-nil, select the target window.

(fn ITEM &optional ACTION)
(defalias 'xref-pop-to-location #[513 "\212\302\303!!)\304!\204\305!\210\2024\306\267\202.\307\310\"\210\2024\310\307\310\"\210)\2024\311\312\313#\210\314!\266\315\316!)\207" [pop-up-frames xref--current-item xref-location-marker xref-item-location marker-buffer switch-to-buffer #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (window 27 frame 35)) pop-to-buffer t error "cl-ecase failed: %s, %s" (nil window frame) xref--goto-char run-hooks xref-after-jump-hook] 8 (#$ . 35713)])
#@39 The name of the buffer to show xrefs.
(defconst xref-buffer-name "*xref*" (#$ . 36551))
(byte-code "\300\301\302\303\304\305%\210\300\306\307\310\304\305%\210\300\311\312\313\304\305%\207" [custom-declare-face xref-file-header ((t :inherit compilation-info)) "Face used to highlight file header in the xref buffer." :version "27.1" xref-line-number ((t :inherit compilation-line-number)) "Face for displaying line numbers in the xref buffer." xref-match ((t :inherit match)) "Face used to highlight matches in the xref buffer."] 6)
#@19 

(fn &rest BODY)
(defalias 'xref--with-dedicated-window '(macro . #[128 "\300\301\302\303\304BB\305BBE\207" [let* ((xref-w (get-buffer-window xref-buffer-name)) (xref-w-dedicated (window-dedicated-p xref-w))) unwind-protect progn (when xref-w (set-window-dedicated-p xref-w 'soft)) ((when xref-w (set-window-dedicated-p xref-w xref-w-dedicated)))] 7 (#$ . 37089)]))
#@63 Original window-switching intent before xref buffer creation.
(defvar xref--original-window-intent nil (#$ . 37463))
(make-variable-buffer-local 'xref--original-window-intent)
#@56 The original window this xref buffer was created from.
(defvar xref--original-window nil (#$ . 37645))
(make-variable-buffer-local 'xref--original-window)
#@59 The original function to call to fetch the list of xrefs.
(defvar xref--fetcher nil (#$ . 37806))
(make-variable-buffer-local 'xref--fetcher)
#@168 Goto and display position POS of buffer BUF in a window.
Honor `xref--original-window-intent', run `xref-after-jump-hook'
and finally return the window.

(fn POS BUF)
(defalias 'xref--show-pos-in-buf #[514 "\303=\206	\304\267\202\305\2023\306\307\nBD\2023\310\n!\2053\311\n!\203.\312\n!=\2053\313\307\nBD\314\315\"!r\316\317\"\216\320@\321\"\210\322!\210\323\324!\210\325 *\262)\207" [xref--original-window-intent pop-up-frames xref--original-window frame #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (frame 14 window 18)) t (xref--display-buffer-in-other-window) window window-live-p window-dedicated-p window-buffer (xref--display-buffer-in-window) internal--before-with-selected-window display-buffer make-closure #[0 "\301\300!\207" [V0 internal--after-with-selected-window] 2] select-window norecord xref--goto-char run-hooks xref-after-jump-hook selected-window] 7 (#$ . 37955)])
#@21 

(fn BUFFER ALIST)
(defalias 'xref--display-buffer-in-other-window #[514 "\301\302\"\211\204\f\303\302!\210\304!\305!\306\307#\216\203!\310\311\"\210\312!r\306\313\"\216\314@\315\"\210\316\317\"*\262)\207" [xref-buffer-name assoc-default window cl--assertion-failed get-buffer-window window-dedicated-p make-closure #[0 "\300\205\302\300\301\"\207" [V0 V1 set-window-dedicated-p] 3] set-window-dedicated-p soft internal--before-with-selected-window #[0 "\301\300!\207" [V0 internal--after-with-selected-window] 2] select-window norecord display-buffer t] 9 (#$ . 38906)])
#@21 

(fn BUFFER ALIST)
(defalias 'xref--display-buffer-in-window #[514 "\300\301\"\211\204\f\302\301!\210\303!r\304\305\"\216\306@\307\"\210\310\311\"*\207" [assoc-default window cl--assertion-failed internal--before-with-selected-window make-closure #[0 "\301\300!\207" [V0 internal--after-with-selected-window] 2] select-window norecord display-buffer (display-buffer-same-window)] 7 (#$ . 39502)])
#@200 Help `xref-show-xref' and `xref-goto-xref' do their job.
Go to LOCATION and if SELECT is non-nil select its window.  If
SELECT is `quit', also quit the *xref* window.

(fn LOCATION &optional SELECT)
(defalias 'xref--show-location #[513 "\3011W\302!\303!p\203*\304=\203\305\306\211\"\210\307rq\210\310\")!\266\203\202U\311 r\312\313\"\216\314!\315!\312\316#\216\203G\317\320\"\210\310\")\266\202*\262\266\2030\207\321\322!!\207" [xref-buffer-name (user-error) xref-location-marker marker-buffer quit quit-window nil select-window xref--show-pos-in-buf internal--before-save-selected-window make-closure #[0 "\301\300!\207" [V0 internal--after-save-selected-window] 2] get-buffer-window window-dedicated-p #[0 "\300\205\302\300\301\"\207" [V0 V1 set-window-dedicated-p] 3] set-window-dedicated-p soft message error-message-string] 12 (#$ . 39913)])
#@45 Set the overlay arrow at the line at point.
(defalias 'xref--set-arrow #[0 "\206\301 \302 \303\223\211\207" [overlay-arrow-position make-marker line-beginning-position nil] 3 (#$ . 40794)])
#@72 Display the source of xref at point in the appropriate window, if any.
(defalias 'xref-show-location-at-point #[0 "\301 \211\211\205\302 \210\303\304!!)\207" [xref--current-item xref--item-at-point xref--set-arrow xref--show-location xref-item-location] 4 (#$ . 40994) nil])
#@53 Move to the next xref but don't display its source.
(defalias 'xref-next-line-no-show #[0 "\300\301!\207" [xref--search-property xref-item] 2 (#$ . 41279) nil])
#@73 Move to the next xref and display its source in the appropriate window.
(defalias 'xref-next-line #[0 "\300 \210\301 \207" [xref-next-line-no-show xref-show-location-at-point] 1 (#$ . 41446) nil])
#@57 Move to the previous xref but don't display its source.
(defalias 'xref-prev-line-no-show #[0 "\300\301\302\"\207" [xref--search-property xref-item t] 3 (#$ . 41649) nil])
#@77 Move to the previous xref and display its source in the appropriate window.
(defalias 'xref-prev-line #[0 "\300 \210\301 \207" [xref-prev-line-no-show xref-show-location-at-point] 1 (#$ . 41827) nil])
#@71 Move to the first item of the next xref group and display its source.
(defalias 'xref-next-group #[0 "\300\301!\210\300\302!\210\303 \207" [xref--search-property xref-group xref-item xref-show-location-at-point] 2 (#$ . 42034) nil])
#@75 Move to the first item of the previous xref group and display its source.
(defalias 'xref-prev-group #[0 "\300\301`!\302\"\204\303\302\304\"\210\303\302\304\"\210\303\305!\210\306 \207" [plist-member text-properties-at xref-group xref--search-property t xref-item xref-show-location-at-point] 3 (#$ . 42273) nil])
(defalias 'xref--item-at-point #[0 "\300l\203\n`S\202`\301\"\207" [get-text-property xref-item] 3])
#@169 Jump to the xref on the current line and select its window.
If QUIT is non-nil (interactively, with prefix argument), also
quit the *xref* buffer.

(fn &optional QUIT)
(defalias 'xref-goto-xref #[256 "p\302 \206	\303\304!\211\305 \210\306\307!\203\310\202\311\"\210\312\313!\203*\313p\"\202-\211)\207" [xref--current-item next-error-last-buffer xref--item-at-point user-error "Choose a reference to visit" xref--set-arrow xref--show-location xref-item-location quit t fboundp next-error-found] 6 (#$ . 42699) "P"])
#@56 Quit *xref* buffer, then jump to xref on current line.
(defalias 'xref-quit-and-goto-xref #[0 "\300\301!\207" [xref-goto-xref t] 2 (#$ . 43233) nil])
#@53 Quit *xref* buffer, then pop the xref marker stack.
(defalias 'xref-quit-and-pop-marker-stack #[0 "\300 \210\301 \207" [quit-window xref-pop-marker-stack] 1 (#$ . 43389) nil])
#@432 Perform interactive replacement of FROM with TO in all displayed xrefs.

This command interactively replaces FROM with TO in the names of the
references displayed in the current *xref* buffer.

As each match is found, the user must type a character saying
what to do with it.  Type SPC or `y' to replace the match,
DEL or `n' to skip and go to the next match.  For more directions,
type \[help-command] at that time.

(fn FROM TO)
(defalias 'xref-query-replace-in-results #[514 "\300\211\211C\212\301\302!\211\262\203\303!\203B\262\202)\304\305\"\216eb\210\211\306\237!\240\210\307\242#)\207" [nil xref--search-property xref-item xref-match-length make-closure #[0 "\300\242\301!\207" [V0 :cleanup] 2] xref--buf-pairs-iterator xref--query-replace-1] 9 (#$ . 43572) (byte-code "\300\301\302\"\211\300\303\304\"!D\207" [read-regexp "Xref query-replace (regexp)" ".*" format "Xref query-replace (regexp) %s with: "] 6)])
#@14 

(fn XREFS)
(defalias 'xref--buf-pairs-iterator #[257 "\211C\300C\300C\300C\300C\300C\300C\301\302&\207" [nil make-closure #[257 "\211\307\267\202\311\300\242\204\303\242\205\312\301\310\240\210\303\242\203+\304\311\303\242@!\240\210\305\303\242C\240\210\303\310\240\210\301\242\204\246\302\300\242\300\211\242A\240\210\242\240\203\246\212\312\302\242!\313!\314 \315\302\242!\\\311!\223B\306\306\242B\240\210\316!\210\317\302\242!\203o\320\321!\266\202\242\304\242\204\205\304\311!\240\210\305\305\242B\240\266\202\242\304\242\311!\232\203\231\305\305\242B\240\266\202\242\301\322\240\210\303\240\266)\202+\304\242\305\242\237B\207\306\242\211\205\310\211@\211@\310\211\223\210\211A\310\211\223\210A\266\202\202\257\207\310\207" [V0 V1 V2 V3 V4 V5 V6 #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (:next 6 :cleanup 173)) nil marker-buffer xref-item-location xref-location-marker make-marker xref-match-length xref--goto-location xref--outdated-p message "Search result out of date, skipping" t] 8 "\n\n(fn ACTION)"]] 17 (#$ . 44513)])
#@106 Check that the match location at current position is up-to-date.
ITEMS is an xref item which 

(fn ITEM)
(defalias 'xref--outdated-p #[257 "\300!\301\211!\302 \303\211\"\206$`\304 G\\W\205$\212\305y\210\211\")?\207" [xref-item-summary #[257 "\300\301\"\203
\302\303\304#\207\207" [string-match "
\\'" substring-no-properties 0 -1] 5 "\n\n(fn S)"] line-end-position #[514 "`G\\Y\205\300`\"\232\207" [buffer-substring-no-properties] 7 "\n\n(fn STRIPPED-SUMMARY LENDPOS)"] line-beginning-position 0] 9 (#$ . 45643)])
#@21 

(fn FROM TO ITER)
(defalias 'xref--query-replace-1 #[771 "\305\306\305\211\211C\305C\305C\307\310#\307\311$\203i\312!\211\262\203i\2032\313@!\210\202S\314!\315!\307\316#\216\203G\317\320\"\210\321@!\210)\266\306\262A\240\210\322		\306\211\305\211\f&\262\202\204q\323\324!\210\205}?\205}\325\326!+\207" [query-replace-lazy-highlight isearch-filter-predicate replace-re-search-function xref-buffer-name multi-query-replace-map nil t make-closure #[514 "\300\242\205\300\242Y\205\211\301\242X\207" [V0 V1] 4 "\n\n(fn BEG END)"] #[769 "\303\211\2043\300\242\2033\300\242\300\211\242A\240\210\242\262\301@\240\210\302A\240\210\301\242b\210\304\302\242#\203\305\262\202\207" [V0 V1 V2 nil re-search-forward t] 9 "\n\n(fn FROM &optional BOUND NOERROR)"] :next switch-to-buffer get-buffer-window window-dedicated-p #[0 "\300\205\302\300\301\"\207" [V0 V1 set-window-dedicated-p] 3] set-window-dedicated-p soft pop-to-buffer perform-replace user-error "No suitable matches here" message "All results processed"] 17 (#$ . 46182)])
(defvar xref--xref-buffer-mode-map (byte-code "\300 \301\302\303#\210\301\304\305#\210\301\306\307#\210\301\310\311#\210\301\312\313#\210\301\314\315#\210\301\316\317#\210\301\320\321#\210\301\322\303#\210\301\323\305#\210\301\324\325#\210\301\326\327#\210\207" [make-sparse-keymap define-key "n" xref-next-line "p" xref-prev-line "N" xref-next-group "P" xref-prev-group "r" xref-query-replace-in-results "
" xref-goto-xref "	" xref-quit-and-goto-xref "" xref-show-location-at-point "." "," "g" xref-revert-buffer [134217772] xref-quit-and-pop-marker-stack] 5))
(defvar xref--xref-buffer-mode-hook nil)
(byte-code "\300\301N\204\f\302\300\301\303#\210\304\305!\204\302\305\306\307#\210\300\207" [xref--xref-buffer-mode-hook variable-documentation put "Hook run after entering XREF mode.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it.  (This is true for all hook variables.)" boundp xref--xref-buffer-mode-map definition-name xref--xref-buffer-mode] 4)
(defvar xref--xref-buffer-mode-map (make-sparse-keymap))
(byte-code "\301\302N\204\303\301\302\304\305!#\210\306\307!\204\303\307\310\311#\210\312\313 !\210\307\302N\204-\303\307\302\304\314!#\210\306\300!\204B\303\300\310\311#\210\315\316\300\317\"\210!\210\300\302N\204P\303\300\302\304\320!#\210\303\311\321\322#\207" [xref--xref-buffer-mode-abbrev-table xref--xref-buffer-mode-map variable-documentation put purecopy "Keymap for `xref--xref-buffer-mode'." boundp xref--xref-buffer-mode-syntax-table definition-name xref--xref-buffer-mode (lambda (#1=#:def-tmp-var) (defvar xref--xref-buffer-mode-syntax-table #1#)) make-syntax-table "Syntax table for `xref--xref-buffer-mode'." (lambda (#1#) (defvar xref--xref-buffer-mode-abbrev-table #1#)) define-abbrev-table nil "Abbrev table for `xref--xref-buffer-mode'." derived-mode-parent special-mode] 5)
#@254 Mode for displaying cross-references.

In addition to any hooks its parent mode `special-mode' might have
run, this mode runs the hook `xref--xref-buffer-mode-hook', as the
final or penultimate step during initialization.

\{xref--xref-buffer-mode-map}
(defalias 'xref--xref-buffer-mode #[0 "\306\300!\210\307\310 \210\311\312\310\313N\203\314\311\313\310\313N#\210\315!\204'\316\317 \"\210\320\f!\211\2035\211\321 =\203;\322\f\323 \"\210\210\324
\325\"\204R
=\204R\326
\325C#\210\327!\210\330\f!\210
\307\331 p!\332\"\333#)\334\335!\207" [delay-mode-hooks major-mode mode-name xref--xref-buffer-mode-map xref--xref-buffer-mode-syntax-table xref--xref-buffer-mode-abbrev-table make-local-variable t special-mode xref--xref-buffer-mode "XREF" mode-class put keymap-parent set-keymap-parent current-local-map char-table-parent standard-syntax-table set-char-table-parent syntax-table abbrev-table-get :parents abbrev-table-put use-local-map set-syntax-table xref--next-error-function xref--imenu-prev-index-position xref--imenu-extract-index-name run-mode-hooks xref--xref-buffer-mode-hook local-abbrev-table buffer-read-only next-error-function next-error-last-buffer imenu-prev-index-position-function imenu-extract-index-name-function] 5 (#$ . 49144) nil])
(defvar xref--transient-buffer-mode-map (byte-code "\301 \302\303\304#\210\305\"\210\207" [xref--xref-buffer-mode-map make-sparse-keymap define-key "
" xref-quit-and-goto-xref set-keymap-parent] 5))
(defvar xref--transient-buffer-mode-hook nil)
(byte-code "\300\301N\204\f\302\300\301\303#\210\304\305!\204\302\305\306\307#\210\300\207" [xref--transient-buffer-mode-hook variable-documentation put "Hook run after entering XREF Transient mode.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it.  (This is true for all hook variables.)" boundp xref--transient-buffer-mode-map definition-name xref--transient-buffer-mode] 4)
(defvar xref--transient-buffer-mode-map (make-sparse-keymap))
(byte-code "\301\302N\204\303\301\302\304\305!#\210\306\307!\204\303\307\310\311#\210\312\313 !\210\307\302N\204-\303\307\302\304\314!#\210\306\300!\204B\303\300\310\311#\210\315\316\300\317\"\210!\210\300\302N\204P\303\300\302\304\320!#\210\303\311\321\322#\207" [xref--transient-buffer-mode-abbrev-table xref--transient-buffer-mode-map variable-documentation put purecopy "Keymap for `xref--transient-buffer-mode'." boundp xref--transient-buffer-mode-syntax-table definition-name xref--transient-buffer-mode (lambda (#1=#:def-tmp-var) (defvar xref--transient-buffer-mode-syntax-table #1#)) make-syntax-table "Syntax table for `xref--transient-buffer-mode'." (lambda (#1#) (defvar xref--transient-buffer-mode-abbrev-table #1#)) define-abbrev-table nil "Abbrev table for `xref--transient-buffer-mode'." derived-mode-parent xref--xref-buffer-mode] 5)
#@587 Major mode derived from `xref--xref-buffer-mode' by `define-derived-mode'.
It inherits all of the parent's attributes, but has its own keymap,
abbrev table and syntax table:

  `xref--transient-buffer-mode-map',
`xref--transient-buffer-mode-abbrev-table' and
`xref--transient-buffer-mode-syntax-table'

which more-or-less shadow xref--xref-buffer-mode's corresponding tables.

In addition to any hooks its parent mode might have run, this mode
runs the hook `xref--transient-buffer-mode-hook', as the final or
penultimate step during initialization.

\{xref--transient-buffer-mode-map}
(defalias 'xref--transient-buffer-mode #[0 "\306\300!\210\307\310 \210\311\312\310\313N\203\314\311\313\310\313N#\210\315!\204'\316\317 \"\210\320\f!\211\2035\211\321 =\203;\322\f\323 \"\210\210\324
\325\"\204R
=\204R\326
\325C#\210\327!\210\330\f!\210
)\331\332!\207" [delay-mode-hooks major-mode mode-name xref--transient-buffer-mode-map xref--transient-buffer-mode-syntax-table xref--transient-buffer-mode-abbrev-table make-local-variable t xref--xref-buffer-mode xref--transient-buffer-mode "XREF Transient" mode-class put keymap-parent set-keymap-parent current-local-map char-table-parent standard-syntax-table set-char-table-parent syntax-table abbrev-table-get :parents abbrev-table-put use-local-map set-syntax-table run-mode-hooks xref--transient-buffer-mode-hook local-abbrev-table] 5 (#$ . 52019) nil])
#@122 Move point to previous line in `xref' buffer.
This function is used as a value for
`imenu-prev-index-position-function'.
(defalias 'xref--imenu-prev-index-position #[0 "o?\205	\300\301\302\"\207" [xref--search-property xref-group t] 3 (#$ . 53446)])
#@159 Return imenu name for line at point.
This function is used as a value for
`imenu-extract-index-name-function'.  Point should be at the
beginning of the line.
(defalias 'xref--imenu-extract-index-name #[0 "\300\301 \302 \"\207" [buffer-substring-no-properties line-beginning-position line-end-position] 3 (#$ . 53704)])
#@20 

(fn N RESET\=\?)
(defalias 'xref--next-error-function #[514 "\211\203eb\210\301W\302!\303\301U\203\304`\305\"\262\2025\301\211W\2034\303\306\305\"\262\210\211T\262\202\210\211\203S\307p!\211\203E\310`\"\210\210\311 \210\211\312\313!\314\")\207\315\316\203]\317\202^\320\"\207" [xref--current-item 0 abs nil get-text-property xref-item xref--search-property get-buffer-window set-window-point xref--set-arrow xref--show-location xref-item-location t error "No %s xref" "previous" "next"] 10 (#$ . 54029)])
(defvar xref--button-map (byte-code "\300 \301\302\303#\210\301\304\305#\210\207" [make-sparse-keymap define-key [mouse-1] xref-goto-xref [mouse-2] xref-select-and-show-xref] 5))
#@121 Move point to the button and show the xref definition.
The window showing the xref buffer will be selected.

(fn EVENT)
(defalias 'xref-select-and-show-xref #[257 "\300!\210\301y\210\302`\303\"\204\304\303!\210\305 \207" [mouse-set-point 0 get-text-property xref-item xref--search-property xref-show-location-at-point] 4 (#$ . 54749) "e"])
(byte-code "\300\301\302\303#\210\304\301\302\305#\210\306\307\310\311\312DD\313\314\315%\207" [defalias xref--mouse-2 xref-select-and-show-xref nil make-obsolete "28.1" custom-declare-variable xref-truncation-width funcall function #[0 "\300\207" [400] 1 ""] "The column to visually \"truncate\" each Xref buffer line to." :type (choice (integer :tag "Number of columns") (const :tag "Disable truncation" nil))] 6)
(defalias 'xref--apply-truncation #[0 "\302 \303 \304\305\211	\205\224Z	V\205\224\306S\307\"\204$\306\307\"\203+\306`\307\"\205\224\306\310\"\311=\203;\312\310\"\202<\262`Z	W\203Z	\\\262\313\314#\210\315\307\316$\202\224`Z	W\203v	Z\262\313\317#\210\315\307\316$\202\224`	\320\245Z\262\315\307\316$\210\313\211	\\\321#\210\315	\\\307\316$)\207" [inhibit-read-only xref-truncation-width line-beginning-position line-end-position t nil get-text-property invisible face xref-line-number next-single-char-property-change remove-text-properties (invisible) put-text-property ellipsis (invisible) 2 (invisible)] 10])
#@196 Insert XREF-ALIST in the current buffer.
XREF-ALIST is of the form ((GROUP . (XREF ...)) ...), where
GROUP is a string for decoration purposes and XREF is an
`xref-item' object.

(fn XREF-ALIST)
(defalias 'xref--insert-xrefs #[257 "\301\302!\210\211\303\211\211\211\304\305\306\307\310\257\303\211\211:\203\347@\262\211A\262	\242\262\303\211:\203P@\262\311\312!!\203F]\266\202\202I\211\266\202A\262\202,\266\202\262\205c\313\314\315\316	\317\"!T\"\262\320\321\322#\210\211\203\330\211@\323!\210\211\324H\325H\311!\211\204\211\326\202\245\211\232\203\234\f\232\203\234\327\202\245\330\313\"\331\332#
\232\203\273\203\270\232\204\273\322c\210\320\333D\244#\210\262\f\262	\266A\266\202\202n\210\322c\210A\262	\303\262\202\266	\334\335!\210\212eb\210\324y\336U\203\376\337 \210\202\361)\340\341!\207" [xref--button-map require compile nil mouse-face highlight keymap help-echo "mouse-2: display in another window, RET or mouse-1: follow reference" xref-location-line xref-item-location format "%%%dd: " floor log 10 xref--insert-propertized (face xref-file-header xref-group t) "\n" xref-item-p 1 2 "  " "" propertize face xref-line-number xref-item add-to-invisibility-spec (ellipsis . t) 0 xref--apply-truncation run-hooks xref-after-update-hook] 20 (#$ . 56166)])
#@258 Return GROUP formatted in the preferred style.

The style is determined by the value of `xref-file-name-display'.
If GROUP looks like a file name, its value is formatted according
to that style.  Otherwise it is returned unchanged.

(fn GROUP PROJECT-ROOT)
(defalias 'xref--group-name-for-display #[514 "\302\267\2021\207\303\304\305\306#)\266\203\203\307!\207\207\211\203/\310\"\203/G\304O\207\207\311\312\313#\205:\304\207" [xref-file-name-display inhibit-changing-match-data #s(hash-table size 3 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (abs 6 nondirectory 8 project-relative 30)) "\\`~?/" nil t string-match file-name-nondirectory string-prefix-p error "cl-ecase failed: %s, %s" (abs nondirectory project-relative)] 9 (#$ . 57518)])
#@121 Find common groups in XREFS and format group names.
Return an alist of the form ((GROUP . (XREF ...)) ...).

(fn XREFS)
(defalias 'xref--analyze #[257 "\301\302\"\303=\205\f\304 \211\205\305\306!!\307\310\311\"\"\207" [xref-file-name-display xref--alistify #[257 "\300\301!!\207" [xref-location-group xref-item-location] 4 "\n\n(fn X)"] project-relative project-current expand-file-name xref--project-root mapcar make-closure #[257 "\301@\300\"AB\207" [V0 xref--group-name-for-display] 4 "\n\n(fn PAIR)"]] 8 (#$ . 58306)])
#@22 

(fn FETCHER ALIST)
(defalias 'xref--show-xref-buffer #[514 "\302!\204\n\303\304!\210\305\306\"\206 \307!\310r\311	!q\210\312 \210\313#\210\314p!\210p\262)\315\305\316\"\"\210\207" [default-directory xref-buffer-name functionp cl--assertion-failed (functionp fetcher) assoc-default fetched-xrefs xref--analyze nil get-buffer-create xref--xref-buffer-mode xref--show-common-initialize pop-to-buffer xref--auto-jump-first auto-jump] 11 (#$ . 58846)])
#@16 

(fn PROJECT)
(defalias 'xref--project-root #[257 "\300\301!\203\n\301!\207\302!@\207" [fboundp project-root project-roots] 3 (#$ . 59321)])
#@33 

(fn XREF-ALIST FETCHER ALIST)
(defalias 'xref--show-common-initialize #[771 "\306\307\211\211\310 \210\306\311!\210\312\313\314\306\307$\210eb\210\315\316\"\315\317\"\211+\207" [buffer-undo-list inhibit-modification-hooks inhibit-read-only overlay-arrow-position xref--original-window xref--original-window-intent nil t erase-buffer xref--insert-xrefs add-hook post-command-hook xref--apply-truncation assoc-default window display-action xref--fetcher] 8 (#$ . 59472)])
#@51 Refresh the search results in the current buffer.
(defalias 'xref-revert-buffer #[0 "\304\211\211\212\3051\306 !\307 \210\310!\2620\202(\307 \210\311\312!\313\314#c\262,\207" [inhibit-modification-hooks buffer-undo-list inhibit-read-only xref--fetcher t (user-error) xref--analyze erase-buffer xref--insert-xrefs propertize error-message-string face error] 5 (#$ . 59963) nil])
#@18 

(fn BUF VALUE)
(defalias 'xref--auto-jump-first #[514 "\211\203
\300\301!!\210eb\210\211\302\267\202\303 \210\304 \207\305 \207\306y\207\307\207" [select-window get-buffer-window #s(hash-table size 3 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (t 19 show 25 move 28)) xref-next-line-no-show xref-goto-xref xref-next-line 1 nil] 5 (#$ . 60358)])
#@132 Show the definitions list in a regular window.

When only one definition found, jump to it right away instead.

(fn FETCHER ALIST)
(defalias 'xref-show-definitions-buffer #[514 " \300A\204\301@\302\303\"\"\207\304\305BB\"\262\306\302\307\"\"\210\207" [nil xref-pop-to-location assoc-default display-action xref--show-xref-buffer fetched-xrefs xref--auto-jump-first auto-jump] 9 (#$ . 60736)])
(byte-code "\300\301\302\303#\210\304\301\302\305#\207" [defalias xref--show-defs-buffer xref-show-definitions-buffer nil make-obsolete "28.1"] 4)
#@263 Show the definitions list in a window at the bottom.

When there is more than one definition, split the selected window
and show the list in a small window at the bottom.  And use a
local keymap that binds `RET' to `xref-quit-and-goto-xref'.

(fn FETCHER ALIST)
(defalias 'xref-show-definitions-buffer-at-bottom #[514 " \302 \303\245\304\305\"\306A\204\307@\310\311	\"\"\207r\312	!q\210\313 \210\314\315!#\210\316p\317\320\302BE\"\210p\262)\321\310\322	\"\"\210\207" [default-directory xref-buffer-name window-height 2 make-closure #[257 "\301\300\"\207" [V0 fit-window-to-buffer] 4 "\n\n(fn WINDOW)"] nil xref-pop-to-location assoc-default display-action get-buffer-create xref--transient-buffer-mode xref--show-common-initialize xref--analyze pop-to-buffer display-buffer-in-direction (direction . below) xref--auto-jump-first auto-jump] 13 (#$ . 61297)])
(byte-code "\300\301\302\303#\210\304\301\302\305#\207" [defalias xref--show-defs-buffer-at-bottom xref-show-definitions-buffer-at-bottom nil make-obsolete "28.1"] 4)
#@87 Return group title of candidate CAND or TRANSFORM the candidate.

(fn CAND TRANSFORM)
(defalias 'xref--completing-read-group #[514 "\211\203\300\301\302#T\303O\207\304\301\302#\207" [next-single-property-change 0 xref--group nil get-text-property] 7 (#$ . 62350)])
#@199 Let the user choose the target definition with completion.

When there is more than one definition, let the user choose
between them by typing in the minibuffer with completion.

(fn FETCHER ALIST)
(defalias 'xref-show-definitions-completing-read #[514 " \300!\301\211\302\303\"\211G\304V\203\305!G\202\304\262\301\211\211:\203\217\262\211A\262\242\262\211A\262\242\262\301\211:\203\206\262\211A\262\242\262\306!\307!\310!\211\203_\311\312\"\202`\303\f\301O\313\314\315\316%\311\317	$\211BB\262\266A\262\202;\266A\262\202 \266A\204\233@\202\266\320!\321\322\"@@\323\324\325\301\326\301\211&\"A\266\203\262\327\330\331	\"\"\207" [xref--analyze nil try-completion "" 0 file-name-directory xref-item-summary xref-item-location xref-location-line format #("%d:" 0 2 (face xref-line-number)) propertize face xref-file-header xref--group "%s:%s%s" reverse make-closure #[771 "\211\301=\203
\301\302\303\304BE\207\305\300$\207" [V0 metadata (category . xref-location) group-function xref--completing-read-group complete-with-action] 8 "\n\n(fn STRING PRED ACTION)"] assoc completing-read "Choose definition: " t xref-pop-to-location assoc-default display-action] 25 (#$ . 62627)])
(byte-code "\300\301\302\303#\210\304\301\302\305#\210\306\307\310\311\312DD\313\314\311%\210\306\315\310\311\316DD\317\314\320%\207" [defalias xref--show-defs-minibuffer xref-show-definitions-completing-read nil make-obsolete "28.1" custom-declare-variable xref-show-xrefs-function funcall function #[0 "\300\207" [xref--show-xref-buffer] 1 #1=""] "Function to display a list of search results.\n\nIt should accept two arguments: FETCHER and ALIST.\n\nFETCHER is a function of no arguments that returns a list of xref\nvalues.  It must not depend on the current buffer or selected\nwindow.\n\nALIST can include, but limited to, the following keys:\n\nWINDOW for the window that was selected before the current\ncommand was called.\n\nDISPLAY-ACTION indicates where the target location should be\ndisplayed.  The possible values are nil, `window' meaning the\nother window, or `frame' meaning the other frame." :type xref-show-definitions-function #[0 "\300\207" [xref-show-definitions-buffer] 1 #1#] "Function to handle the definition search results.\n\nAccepts the same arguments as `xref-show-xrefs-function'.\n\nGenerally, it is expected to jump to the definition if there's\nonly one, and otherwise provide some way to choose among the\ndefinitions." (choice (const :tag "Show a regular list of locations" xref-show-definitions-buffer) (const :tag "Show a \"transient\" list at the bottom of the window" xref-show-definitions-buffer-at-bottom) (const :tag "Choose the definition with completion" xref-show-definitions-completing-read) (function :tag "Custom function"))] 6)
(defvar xref--read-identifier-history nil)
(defvar xref--read-pattern-history nil)
#@58 

(fn FETCHER DISPLAY-ACTION &optional ALWAYS-SHOW-LIST)
(defalias 'xref--show-xrefs #[770 "\302 \210\303!\204C\304\305\"\262\210\306\307 B\310B\311	BE\"\207" [xref-show-xrefs-function xref-auto-jump-to-first-xref xref--push-markers functionp make-closure #[0 "\300\242\301=\203\302\303!\207\300\242\300\301\240\210\207" [V0 called-already user-error "Refresh is not supported"] 3] window selected-window display-action auto-jump] 9 (#$ . 65544)])
#@29 

(fn XREFS DISPLAY-ACTION)
(defalias 'xref--show-defs #[514 "\302 \210\303\304 B\305B\306	BE\"\207" [xref-show-definitions-function xref-auto-jump-to-first-definition xref--push-markers window selected-window display-action auto-jump] 8 (#$ . 66009)])
(defalias 'xref--push-markers #[0 "\300 \204\n\301\302\303\"\210\304 \207" [region-active-p push-mark nil t xref-push-marker-stack] 3])
#@16 

(fn COMMAND)
(defalias 'xref--prompt-p #[257 "\301=\206@\302=\203\211A>?\207\211>\207" [xref-prompt-for-identifier t not] 3 (#$ . 66408)])
#@77 Return the identifier at point or read it from the minibuffer.

(fn PROMPT)
(defalias 'xref--read-identifier #[257 "\303 \304!\305!	\204\211\203\306\n!\203M\307\203+\310\311\312\313\314	\"O#\202,\315!\316\211\211\317&\211\320\232\203G\206H\321\322!\202H\211\262\202N\211)\207" [completion-ignore-case current-prefix-arg this-command xref-find-backend xref-backend-identifier-at-point xref-backend-identifier-completion-ignore-case xref--prompt-p completing-read format "%s (default %s): " 0 string-match "[ :]+\\'" xref-backend-identifier-completion-table nil xref--read-identifier-history "" user-error "There is no default identifier"] 11 (#$ . 66563)])
#@38 

(fn INPUT KIND ARG DISPLAY-ACTION)
(defalias 'xref--find-xrefs #[1028 "\300\301#\"\207" [xref--show-xrefs xref--create-fetcher] 9 (#$ . 67250)])
#@26 

(fn ID DISPLAY-ACTION)
(defalias 'xref--find-definitions #[514 "\300\301\302#\"\207" [xref--show-defs xref--create-fetcher definitions] 7 (#$ . 67407)])
#@191 Return an xref list fetcher function.

It revisits the saved position and delegates the finding logic to
the xref backend method indicated by KIND and passes ARG to it.

(fn INPUT KIND ARG)
(defalias 'xref--create-fetcher #[771 "p`\300 \301\302\303\"!\304\305&\207" [xref-find-backend intern format "xref-backend-%s" make-closure #[0 "\212\307\303!\203\303q\210\3101\304b0\210\202\210\306\305\302\"\211\204#\311\301\300\"\210\211\262)\207" [V0 V1 V2 V3 V4 V5 V6 buffer-live-p (error) xref--not-found-error] 4]] 16 (#$ . 67572)])
#@19 

(fn KIND INPUT)
(defalias 'xref--not-found-error #[514 "\300\301\302!#\207" [user-error "No %s found for: %s" symbol-name] 6 (#$ . 68132)])
#@455 Find the definition of the identifier at point.
With prefix argument or when there's no identifier at point,
prompt for it.

If sufficient information is available to determine a unique
definition for IDENTIFIER, display it in the selected window.
Otherwise, display the list of the possible definitions in a
buffer where the user can select from the list.

Use \[xref-pop-marker-stack] to return back to where you invoked this command.

(fn IDENTIFIER)
(defalias 'xref-find-definitions #[257 "\300\301\"\207" [xref--find-definitions nil] 4 (#$ . 68283) (byte-code "\300\301!C\207" [xref--read-identifier "Find definitions of: "] 2)])
#@79 Like `xref-find-definitions' but switch to the other window.

(fn IDENTIFIER)
(defalias 'xref-find-definitions-other-window #[257 "\300\301\"\207" [xref--find-definitions window] 4 (#$ . 68925) (byte-code "\300\301!C\207" [xref--read-identifier "Find definitions of: "] 2)])
#@78 Like `xref-find-definitions' but switch to the other frame.

(fn IDENTIFIER)
(defalias 'xref-find-definitions-other-frame #[257 "\300\301\"\207" [xref--find-definitions frame] 4 (#$ . 69207) (byte-code "\300\301!C\207" [xref--read-identifier "Find definitions of: "] 2)])
#@359 Find references to the identifier at point.
This command might prompt for the identifier as needed, perhaps
offering the symbol at point as the default.
With prefix argument, or if `xref-prompt-for-identifier' is t,
always prompt for the identifier.  If `xref-prompt-for-identifier'
is nil, prompt only if there's no usable symbol at point.

(fn IDENTIFIER)
(defalias 'xref-find-references #[257 "\300\301\302$\207" [xref--find-xrefs references nil] 6 (#$ . 69487) (byte-code "\300\301!C\207" [xref--read-identifier "Find references of: "] 2)])
#@128 Find the definition of identifier at or around mouse click.
This command is intended to be bound to a mouse event.

(fn EVENT)
(defalias 'xref-find-definitions-at-mouse #[257 "\212\300!\210\301\302 !)\211\203\303!\207\304\305!\207" [mouse-set-point xref-backend-identifier-at-point xref-find-backend xref-find-definitions user-error "No identifier here"] 4 (#$ . 70041) "e"])
#@128 Find references to the identifier at or around mouse click.
This command is intended to be bound to a mouse event.

(fn EVENT)
(defalias 'xref-find-references-at-mouse #[257 "\212\301!\210\302\303 !)\211\203\304\305!)\207\306\307!\207" [xref-prompt-for-identifier mouse-set-point xref-backend-identifier-at-point xref-find-backend nil xref-find-references user-error "No identifier here"] 4 (#$ . 70428) "e"])
#@225 Find all meaningful symbols that match PATTERN.
The argument has the same meaning as in `apropos'.
See `tags-apropos-additional-actions' for how to augment the
output of this command when the backend is etags.

(fn PATTERN)
(defalias 'xref-find-apropos #[257 "\301\302!\210\303\304\"\203\305 \306>\203\307!\202\211\310\302\311$\207" [emacs-version require apropos version< "28.0.50" xref-find-backend (elisp etags) xref-apropos-regexp xref--find-xrefs nil] 7 (#$ . 70850) (byte-code "\300\301\302\303\304\305 !$C\207" [read-string "Search for pattern (word list or regexp): " nil xref--read-pattern-history xref-backend-identifier-at-point xref-find-backend] 6)])
#@73 Return an Emacs regexp from PATTERN similar to `apropos'.

(fn PATTERN)
(defalias 'xref-apropos-regexp #[257 "\300\301!\230\203\302\303\304#\206\305\306!\202!\207" [apropos-parse-pattern regexp-quote split-string "[ 	]+" t user-error "No word list given"] 6 (#$ . 71530)])
(defvar xref-etags-mode--saved nil)
#@99 Non-nil if Xref-Etags mode is enabled.
Use the command `xref-etags-mode' to change this variable.
(defvar xref-etags-mode nil (#$ . 71855))
(make-variable-buffer-local 'xref-etags-mode)
#@744 Minor mode to make xref use etags again.

This is a minor mode.  If called interactively, toggle the `Xref-Etags
mode' mode.  If the prefix argument is positive, enable the mode, and
if it is zero or negative, disable the mode.

If called from Lisp, toggle the mode if ARG is `toggle'.  Enable the
mode if ARG is nil, omitted, or is a positive number.  Disable the
mode if ARG is a negative number.

To check whether the minor mode is enabled in the current buffer,
evaluate `xref-etags-mode'.

The mode's hook is called both when the mode is enabled and when it is
disabled.

Certain major modes install their own mechanisms for listing
identifiers and navigation.  Turn this on to undo those settings
and just use etags.

(fn &optional ARG)
(defalias 'xref-etags-mode #[256 "\304 \305=\203
?\202\247\203\306W\203\307\202\310\311\301!\2031\312\300	\"\2031\300	B\203>\n\313\302!\210\202D\314\302!\210\315\316\203N\317\202O\320\"\210\321\322!\203q\304 \203c\211\304 \232\203q\323\324\203m\325\202n\326\327#\210\210\330 \210\207" [xref-etags-mode local-minor-modes xref-backend-functions xref-etags-mode--saved current-message toggle 1 nil t boundp delq kill-local-variable make-local-variable run-hooks xref-etags-mode-hook xref-etags-mode-on-hook xref-etags-mode-off-hook called-interactively-p any message "Xref-Etags mode %sabled%s" "en" "dis" " in current buffer" force-mode-line-update] 6 (#$ . 72048) (byte-code "\203\n\301!\202\302C\207" [current-prefix-arg prefix-numeric-value toggle] 2)])
(defvar xref-etags-mode-hook nil)
(byte-code "\301\302N\204\f\303\301\302\304#\210\303\301\305\306#\210\303\301\307\310C#\210\311\312\313\314\300!\205#\310\211%\207" [xref-etags-mode-map xref-etags-mode-hook variable-documentation put "Hook run after entering or leaving `xref-etags-mode'.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it.  (This is true for all hook variables.)" custom-type hook standard-value nil add-minor-mode xref-etags-mode "" boundp] 6)
#@231 Find all references to SYMBOL in directory DIR.
Return a list of xref values.

This function uses the Semantic Symbol Reference API, see
`semantic-symref-tool-alist' for details on which tools are used,
and when.

(fn SYMBOL DIR)
(defalias 'xref-references-in-directory #[514 "\304!\204\n\305\306!\210\307\310!\210\311\211\312\311\313\314\315\316\317\320\321\322&\323\324!\325\326\327!\"\",\207" [ede-minor-mode default-directory semantic-symref-tool case-fold-search directory-name-p cl--assertion-failed (directory-name-p dir) require semantic/symref nil detect semantic-symref-instantiate :searchfor :searchtype symbol :searchscope subdirs :resulttype line-and-text xref--convert-hits semantic-symref-perform-search format "\\_<%s\\_>" regexp-quote] 11 (#$ . 74095)])
(byte-code "\300\301\302\303#\210\304\301\302\305#\207" [defalias xref-collect-references xref-references-in-directory nil make-obsolete "27.1"] 4)
#@290 Find all matches for REGEXP in directory DIR.
Return a list of xref values.
Only files matching some of FILES and none of IGNORES are searched.
FILES is a string with glob patterns separated by spaces.
IGNORES is a list of glob patterns for files to ignore.

(fn REGEXP FILES DIR IGNORES)
(defalias 'xref-matches-in-directory #[1028 "\305 \210\306\307\310\311\211%\312\313\314!\315$\316\317\320!!\312\211?\205\"\n\317!\211\211?\205.\n\321\322\317!\")\266\202\203L\211G\323U\203F\324\202J\211\323\312O\262\325!P)\266\203!\326\327!@\211\242\243\211\242\243\211\242\312\211rq\210\330 \210\f\331\312\311#\262eb\210edU\204\220\332!\204\220\333\334\335 #\210\336\312\311#\203\265\337\340!!\n\340!\341\312OP\342`\343 \"EB\262\202\220)\344\237\"\266\202\262\266\204*\207" [grep-find-template grep-highlight-matches file-name-handler-alist grep-regexp-alist default-directory grep-compute-defaults replace-regexp-in-string "<C>" "<C> -E" t nil xref--rgrep-command xref--regexp-to-extended "." directory-file-name file-local-name expand-file-name string-prefix-p "/:" 2 "/" file-remote-p get-buffer-create " *xref-grep*" erase-buffer process-file-shell-command looking-at user-error "Search failed with status %d: %s" buffer-string re-search-forward string-to-number match-string 1 buffer-substring-no-properties line-end-position xref--convert-hits] 20 (#$ . 75032)])
(byte-code "\300\301\302\303#\210\304\301\302\305#\210\306\307\310\311\312DD\313\314\315\316\317\320\321&	\210\306\322\310\311\323DD\324\314\325\316\317\320\326&	\207" [defalias xref-collect-matches xref-matches-in-directory nil make-obsolete "27.1" custom-declare-variable xref-search-program-alist funcall function #[0 "\300\207" [((grep . "xargs -0 grep <C> --null -snHE -e <R>") (ripgrep . "xargs -0 rg <C> --null -nH --no-heading --no-messages -g '!*/' -e <R>"))] 1 #1=""] "Associative list mapping program identifiers to command templates.\n\nProgram identifier should be a symbol, named after the search program.\n\nThe command template must be a shell command (or usually a\npipeline) that will search the files based on the list of file\nnames that is piped from stdin, separated by null characters.\nThe template should have the following fields:\n\n  <C> for extra arguments such as -i and --color\n  <R> for the regexp itself (in Extended format)" :type (repeat (cons (symbol :tag "Program identifier") (string :tag "Command template"))) :version "28.1" :package-version (xref . "1.0.4") xref-search-program #[0 "\300\207" [grep] 1 #1#] "The program to use for regexp search inside files.\n\nThis must reference a corresponding entry in `xref-search-program-alist'.\n\nThis variable is used in `xref-matches-in-files', which is the\nutility function used by commands like `dired-do-find-regexp' and\n`project-find-regexp'." (choice (const :tag "Use Grep" grep) (const :tag "Use ripgrep" ripgrep) (symbol :tag "User defined")) (xref . "1.0.4")] 10)
#@258 Find all matches for REGEXP in FILES.
Return a list of xref values.
FILES must be a list of absolute file names.

See `xref-search-program' and `xref-search-program-alist' for how
to control which program to use when looking for matches.

(fn REGEXP FILES)
(defalias 'xref-matches-in-files #[514 "\211:\204	\306\307!\210\310\311!\210\312\313!@\211\242\243\211\242\243\211\242\314\211\315\n@!\316!\314\317\320\n\"\2064\321\322\n\"A\323!\"\203S\310\324!\210\325\326!\203M\327\202N\330\"\262
\f@\314\211?\205]\f\331\332\330!\")\266\202\203q\325\333\"\262
rq\210\334 \210\335\336\337\"r\211q\210\340\341\"\216\342\343\344#c\210\345ed1\3142&\262*\210eb\210edU\204\302\346\n!\204\302\346\347!\204\302\321\350e\351 {#\210\352\n\314\337#\203\342\353\354!!\354	!\355`\351 \"EB\262\202\302)\356\237\357\"\262\360\")\207" [grep-regexp-alist grep-highlight-matches xref-search-program xref-search-program-alist file-name-handler-alist default-directory cl--assertion-failed (consp files) require grep get-buffer-create " *project grep output*" nil file-name-directory file-remote-p grep-expand-template assoc user-error "Unknown search program `%s'" xref--regexp-to-extended tramp mapcar tramp-tramp-file-p tramp-file-local-name file-local-name string-prefix-p "/:" file-name-unquote erase-buffer generate-new-buffer " *temp*" t make-closure #[0 "\301\300!\205	\302\300!\207" [V0 buffer-name kill-buffer] 2] mapconcat identity "" xref--process-file-region looking-at "Binary file .* matches" "Search failed with status %d: %s" line-end-position re-search-forward string-to-number match-string buffer-substring-no-properties sort #[514 "A@A@\231\207" [] 4 "\n\n(fn H1 H2)"] xref--convert-hits shell-file-name shell-command-switch] 23 (#$ . 78007)])
#@62 

(fn START END PROGRAM &optional BUFFER DISPLAY &rest ARGS)
(defalias 'xref--process-file-region #[1411 "\301!\204\302\303\304&\207\305\306!\307\310\"\216\311\304\312%\210\302\313&)\207" [default-directory file-remote-p apply call-process-region nil make-temp-file "ppfr" make-closure #[0 "\301\300!\207" [V0 delete-file] 2] write-region silent process-file] 15 (#$ . 79812)])
#@33 

(fn REGEXP FILES DIR IGNORES)
(defalias 'xref--rgrep-command #[1028 "\303\304!\210\305\306\307\310#)\266\203\203\311\312!\210\313	\314\315!\316\n\316\317\314\320\f!\321\n\316Q#\316\314\322!\260\314!\323\"%\207" [inhibit-changing-match-data grep-find-template find-name-arg require find-dired #1="\\`~" nil t string-match cl--assertion-failed (not (string-match-p #1# dir)) grep-expand-template shell-quote-argument "(" " " mapconcat split-string " -o " ")" xref--find-ignores-arguments] 17 (#$ . 80228)])
#@183 Convert IGNORES and DIR to a list of arguments for 'find'.
IGNORES is a list of glob patterns.  DIR is an absolute
directory, used as the root of the ignore globs.

(fn IGNORES DIR)
(defalias 'xref--find-ignores-arguments #[514 "\211C\301\242\302\303\304#)\266\203\203\305\306!\210\204\307\207\211\310\242!\240\210\311\312!\313\314\315\316\"\317#\320\311\321!\322\260\207" [inhibit-changing-match-data #1="\\`~" nil t string-match cl--assertion-failed (not (string-match-p #1# dir)) "" file-name-as-directory shell-quote-argument "(" " -path " mapconcat make-closure #[257 "\302\303\304\305#)\266\203\203\211\306P\262\307\305\310\"\203'\311\300\242\304\211$\2025\312\306\"\2032\2025\313P!\207" [V0 inhibit-changing-match-data "/\\'" nil t string-match "*" shell-quote-argument "\\`\\./" replace-match string-prefix-p "*/"] 8 "\n\n(fn IGNORE)"] " -o -path " " " ")" " -prune -o "] 10 (#$ . 80758)])
#@12 

(fn STR)
(defalias 'xref--regexp-to-extended #[257 "\300\301\302\303\211%\207" [replace-regexp-in-string "\\(?:\\\\\\\\\\)*\\(?:\\\\[][]\\)?\\(?:\\[.+?\\]\\|\\(\\\\?[(){}|]\\)\\)" #[257 "\300\224\204\207\301\300\"G\302=\203\211\303\300\224O\301\300\"\300\302OP\207\211\303\300\224O\304\301\300\"Q\207" [1 match-string 2 0 "\\"] 6 "\n\n(fn STR)"] t] 7 (#$ . 81694)])
#@135 Return non-nil when STR depends on the buffer's syntax.
Such as the current syntax table and the applied syntax properties.

(fn STR)
(defalias 'xref--regexp-syntax-dependent-p #[257 "\302\303\302\304\305#)\266\203)\207" [case-fold-search inhibit-changing-match-data nil "\\(?:\\`\\|[^\\]\\)\\\\\\{2\\}*\\\\[<>BSW_bsw]" t string-match] 8 (#$ . 82077)])
(defvar xref--last-file-buffer nil)
(defvar xref--temp-buffer-file-name nil)
#@20 

(fn HITS REGEXP)
(defalias 'xref--convert-hits #[514 "\302\303\304!\305!\306!\307\310\"\216\311\307\312%\"*\207" [default-directory xref--last-file-buffer nil generate-new-buffer " *xref-temp*" file-remote-p xref--regexp-syntax-dependent-p make-closure #[0 "\301\300!\207" [V0 kill-buffer] 2] mapcan #[257 "\304\300\301\302\303%\207" [V0 V1 V2 V3 xref--collect-matches] 7 "\n\n(fn HIT)"]] 13 (#$ . 82519)])
#@54 

(fn HIT REGEXP TMP-BUFFER REMOTE-ID SYNTAX-NEEDED)
(defalias 'xref--collect-matches #[1285 "\242\243\211\242\243\211\242\243\205P\306!\307\211\203?r\211q\210\212\214~\210eb\210Sy\210\310\f\n\311 \312 &+\202\217r\nq\210\313 \210\203|	\232\204|\314\315\316\317$\210\307\315\3201k\321\307!0\210\202l\210+\322\301!\210\322\305!\210\307\313 \210c\210eb\210\310\f\n`d&))\207" [inhibit-modification-hooks xref--temp-buffer-file-name message-log-max inhibit-message buffer-file-name inhibit-read-only xref--find-file-buffer t xref--collect-matches-1 line-beginning-position line-end-position erase-buffer insert-file-contents nil 0 200 (error) set-auto-mode make-local-variable] 20 (#$ . 82950)])
#@57 

(fn REGEXP FILE LINE LINE-BEG LINE-END SYNTAX-NEEDED)
(defalias 'xref--collect-matches-1 #[1542 "\300\211\211\211\211\211\211\203\301	!\210\204\213\203!\302\"\2049\303
\n\304#\2039\305\224\262\305\225\262\262\202@\304\262\262\203\202\nZZ\203U\202W\211{\306\307$\310ZZ\311\304%\210\312Z#\fB\262\f\266\262\262\202\237\207" [nil syntax-propertize eql re-search-forward t 0 record xref-file-location add-face-text-property xref-match xref-make-match] 24 (#$ . 83692)])
#@13 

(fn FILE)
(defalias 'xref--find-file-buffer #[257 "@\232\204
\211\301!BA\207" [xref--last-file-buffer get-file-buffer] 4 (#$ . 84235)])
(provide 'xref)

Youez - 2016 - github.com/yon3zu
LinuXploit