Current File : //proc/self/root/kunden/usr/share/emacs/27.2/lisp/progmodes/xref.elc |
;ELC
;;; Compiled
;;; in Emacs version 27.2
;;; with all optimizations.
;;; This file uses dynamic docstrings, first added in Emacs 19.29.
;;; This file does not contain utf-8 non-ASCII characters,
;;; and so can be loaded in Emacs versions earlier than 23.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(byte-code "\300\301!\210\300\302!\210\300\303!\210\300\304!\210\305\306\307\310\311\312\313\314&\210\315\316\317\320!\"\210\315\321\322\320!\"\210\315\323\321\"\210\324\323\325\312#\210\326\320\327\321#\330\320\307\211\331$\207" [require cl-lib eieio ring project custom-declare-group xref nil "Cross-referencing commands" :version "25.1" :group tools defalias xref-location-p eieio-make-class-predicate xref-location xref-location--eieio-childp eieio-make-child-predicate xref-location-child-p make-obsolete "use (cl-typep ... \\='xref-location) instead" define-symbol-prop cl-deftype-satisfies eieio-defclass-internal (:documentation "A location represents a position in a file or buffer.")] 8)
#@70 Create a new object of class type `xref-location'.
(fn &rest SLOTS)
(defalias 'xref-location #[128 "\300\301\302#\207" [apply make-instance xref-location] 5 (#$ . 1107)])
(byte-code "\300\301\302\303#\300\207" [function-put xref-location compiler-macro xref-location--anon-cmacro] 4)
#@26
(fn WHOLE &rest SLOTS)
(defalias 'xref-location--anon-cmacro #[385 "\211@;\204 \207\300\301\302@@#@\303@DABB\"\207" [macroexp--warn-and-return format "Obsolete name arg %S to constructor %S" identity] 7 (#$ . 1399)])
(byte-code "\300\301\302\301\303\304#\305#\210\300\306\302\306\307\304#\310#\210\300\311\302\311\312\304#\313#\210\314\311\304\312\304\315%\210\300\316\302\316\317\304#\320#\210\314\316\304\317\304\321%\210\322\323\324\325\326DD\327\330\331\332\333&\210\300\334\335\336!\"\210\300\337\340\336!\"\210\300\341\337\"\210\342\341\343\344#\210\345\336\346\337#\347\336\350\351\352$\210\314\353\304\354\304\355%\210\314\311\304\356\304\357%\207" [defalias xref-location-marker cl-generic-define (location) nil "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 the filename.\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" [abs] 1] "Style of file name display in *xref* buffers.\nIf the value is the symbol `abs', the default, show the file names\nin their full absolute form.\nIf `nondirectory', show only the nondirectory (a.k.a. \"base name\")\npart of the file name." :type (choice (const :tag "absolute file name" abs) (const :tag "nondirectory file name" nondirectory)) :version "27.1" xref-file-location-p eieio-make-class-predicate xref-file-location xref-file-location--eieio-childp eieio-make-child-predicate xref-file-location-child-p make-obsolete "use (cl-typep ... \\='xref-file-location) instead" "25.1" define-symbol-prop cl-deftype-satisfies eieio-defclass-internal (xref-location) ((file :type string :initarg :file) (line :type fixnum :initarg :line :reader xref-location-line) (column :type fixnum :initarg :column :reader xref-file-location-column)) (:documentation "A file location is a file/line/column triple.\nLine numbers start from 1 and columns from 0.") xref-file-location-column ((this xref-file-location)) #[257 "\300\301\"\207" [slot-value column] 4 "Access the slot `column' from object of class `xref-file-location'.\n\n(fn THIS)"] ((this xref-file-location)) #[257 "\300\301\"\207" [slot-value line] 4 "Access the slot `line' from object of class `xref-file-location'.\n\n(fn THIS)"]] 8)
#@75 Create a new object of class type `xref-file-location'.
(fn &rest SLOTS)
(defalias 'xref-file-location #[128 "\300\301\302#\207" [apply make-instance xref-file-location] 5 (#$ . 3991)])
(byte-code "\300\301\302\303#\300\207" [function-put xref-file-location compiler-macro xref-file-location--anon-cmacro] 4)
#@26
(fn WHOLE &rest SLOTS)
(defalias 'xref-file-location--anon-cmacro #[385 "\211@;\204 \207\300\301\302@@#@\303@DABB\"\207" [macroexp--warn-and-return format "Obsolete name arg %S to constructor %S" identity] 7 (#$ . 4308)])
#@70 Create and return a new `xref-file-location'.
(fn FILE LINE COLUMN)
(defalias 'xref-make-file-location #[771 "\300\301\302\303\304&\207" [make-instance xref-file-location :file :line :column] 11 (#$ . 4545)])
(byte-code "\300\301\302\303\302\304%\210\300\305\302\306\302\307%\210\310\311\312\313!\"\210\310\314\315\313!\"\210\310\316\314\"\210\317\316\320\321#\210\322\313\323\314#\324\313\325\326\302$\207" [cl-generic-define-method xref-location-marker nil ((l xref-file-location)) #[257 "\211r\301\302\303\"!\206 \304\305\302\303\"!)q\210\214~\210\212eb\210\30611 \307\302\310\"!\210\302\311\"u0\2025 \210\2026 \210\312 +\207" [find-file-suppress-same-file-warnings get-file-buffer slot-value file t find-file-noselect (error) beginning-of-line line column point-marker] 6 "\n\n(fn L)"] xref-location-group ((l xref-file-location)) #[257 "\301\267\202 \302\303\"\207\304\302\303\"!\207\305\306\307#\205 \310\207" [xref-file-name-display #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (abs 6 nondirectory 11)) eieio-oref file file-name-nondirectory error "cl-ecase failed: %s, %s" (abs nondirectory) nil] 5 "\n\n(fn L)"] defalias xref-buffer-location-p eieio-make-class-predicate xref-buffer-location xref-buffer-location--eieio-childp eieio-make-child-predicate xref-buffer-location-child-p make-obsolete "use (cl-typep ... \\='xref-buffer-location) instead" "25.1" define-symbol-prop cl-deftype-satisfies eieio-defclass-internal (xref-location) ((buffer :type buffer :initarg :buffer) (position :type fixnum :initarg :position))] 6)
#@77 Create a new object of class type `xref-buffer-location'.
(fn &rest SLOTS)
(defalias 'xref-buffer-location #[128 "\300\301\302#\207" [apply make-instance xref-buffer-location] 5 (#$ . 6145)])
(byte-code "\300\301\302\303#\300\207" [function-put xref-buffer-location compiler-macro xref-buffer-location--anon-cmacro] 4)
#@26
(fn WHOLE &rest SLOTS)
(defalias 'xref-buffer-location--anon-cmacro #[385 "\211@;\204 \207\300\301\302@@#@\303@DABB\"\207" [macroexp--warn-and-return format "Obsolete name arg %S to constructor %S" identity] 7 (#$ . 6472)])
#@71 Create and return a new `xref-buffer-location'.
(fn BUFFER POSITION)
(defalias 'xref-make-buffer-location #[514 "\300\301\302\303%\207" [make-instance xref-buffer-location :buffer :position] 8 (#$ . 6711)])
(byte-code "\300\301\302\303\302\304%\210\300\305\302\306\302\307%\210\310\311\312\313!\"\210\310\314\315\313!\"\210\310\316\314\"\210\317\316\320\321#\210\322\313\323\314#\324\313\325\326\327$\210\300\330\302\331\302\332%\207" [cl-generic-define-method xref-location-marker nil ((l xref-buffer-location)) #[257 "\211\300 \211\301\302\"\301\303\"\223\262\207" [make-marker slot-value position buffer] 8 "\n\n(fn L)"] xref-location-group ((l xref-buffer-location)) #[257 "\211\300\301\302\"!\206 \303\304\305\301\302\"!\"\207" [buffer-file-name slot-value buffer format "(buffer %s)" buffer-name] 8 "\n\n(fn L)"] defalias xref-bogus-location-p eieio-make-class-predicate xref-bogus-location xref-bogus-location--eieio-childp eieio-make-child-predicate xref-bogus-location-child-p make-obsolete "use (cl-typep ... \\='xref-bogus-location) instead" "25.1" define-symbol-prop cl-deftype-satisfies eieio-defclass-internal (xref-location) ((message :type string :initarg :message :reader xref-bogus-location-message)) (:documentation "Bogus locations are sometimes useful to\nindicate errors, e.g. when we know that a function exists but the\nactual location is not known.") xref-bogus-location-message ((this xref-bogus-location)) #[257 "\300\301\"\207" [slot-value message] 4 "Access the slot `message' from object of class `xref-bogus-location'.\n\n(fn THIS)"]] 7)
#@76 Create a new object of class type `xref-bogus-location'.
(fn &rest SLOTS)
(defalias 'xref-bogus-location #[128 "\300\301\302#\207" [apply make-instance xref-bogus-location] 5 (#$ . 8296)])
(byte-code "\300\301\302\303#\300\207" [function-put xref-bogus-location compiler-macro xref-bogus-location--anon-cmacro] 4)
#@26
(fn WHOLE &rest SLOTS)
(defalias 'xref-bogus-location--anon-cmacro #[385 "\211@;\204 \207\300\301\302@@#@\303@DABB\"\207" [macroexp--warn-and-return format "Obsolete name arg %S to constructor %S" identity] 7 (#$ . 8618)])
#@62 Create and return a new `xref-bogus-location'.
(fn MESSAGE)
(defalias 'xref-make-bogus-location #[257 "\300\301\302#\207" [make-instance xref-bogus-location :message] 5 (#$ . 8856)])
(byte-code "\300\301\302\303\302\304%\210\300\305\302\306\302\307%\210\310\311\312\313!\"\210\310\314\315\313!\"\210\310\316\314\"\210\317\316\320\321#\210\322\313\323\314#\324\313\302\325\326$\210\300\327\302\330\302\331%\210\300\332\302\333\302\334%\207" [cl-generic-define-method xref-location-marker nil ((l xref-bogus-location)) #[257 "\300\301\302\303\"\"\207" [user-error "%s" eieio-oref message] 6 "\n\n(fn L)"] xref-location-group ((_ xref-bogus-location)) #[257 "\300\207" ["(No location)"] 2 "\n\n(fn _)"] defalias xref-item-p eieio-make-class-predicate xref-item xref-item--eieio-childp eieio-make-child-predicate xref-item-child-p make-obsolete "use (cl-typep ... \\='xref-item) instead" "25.1" define-symbol-prop cl-deftype-satisfies eieio-defclass-internal ((summary :type string :initarg :summary :reader xref-item-summary :documentation "One line which will be displayed for\nthis item in the output buffer.") (location :initarg :location :reader xref-item-location :documentation "An object describing how to navigate\nto the reference's target.")) (:comment "An xref item describes a reference to a location\nsomewhere.") xref-item-location ((this xref-item)) #[257 "\300\301\"\207" [slot-value location] 4 "Access the slot `location' from object of class `xref-item'.\n\n(fn THIS)"] xref-item-summary ((this xref-item)) #[257 "\300\301\"\207" [slot-value summary] 4 "Access the slot `summary' from object of class `xref-item'.\n\n(fn THIS)"]] 7)
#@66 Create a new object of class type `xref-item'.
(fn &rest SLOTS)
(defalias 'xref-item #[128 "\300\301\302#\207" [apply make-instance xref-item] 5 (#$ . 10516)])
(byte-code "\300\301\302\303#\300\207" [function-put xref-item compiler-macro xref-item--anon-cmacro] 4)
#@26
(fn WHOLE &rest SLOTS)
(defalias 'xref-item--anon-cmacro #[385 "\211@;\204 \207\300\301\302@@#@\303@DABB\"\207" [macroexp--warn-and-return format "Obsolete name arg %S to constructor %S" identity] 7 (#$ . 10789)])
#@141 Create and return a new `xref-item'.
SUMMARY is a short string to describe the xref.
LOCATION is an `xref-location'.
(fn SUMMARY LOCATION)
(defalias 'xref-make #[514 "\300\301\302\303%\207" [make-instance xref-item :summary :location] 8 (#$ . 11019)])
(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$\210\320\321\315\322\315\323%\210\320\324\315\325\315\326%\210\320\327\315\330\315\331%\207" [defalias xref-match-item-p eieio-make-class-predicate xref-match-item xref-match-item--eieio-childp eieio-make-child-predicate xref-match-item-child-p make-obsolete "use (cl-typep ... \\='xref-match-item) instead" "25.1" define-symbol-prop cl-deftype-satisfies eieio-defclass-internal nil ((summary :type string :initarg :summary :reader xref-item-summary) (location :initarg :location :type xref-file-location :reader xref-item-location) (length :initarg :length :reader xref-match-length)) (:comment "A match xref item describes a search result.") cl-generic-define-method xref-match-length ((this xref-match-item)) #[257 "\300\301\"\207" [slot-value length] 4 "Access the slot `length' from object of class `xref-match-item'.\n\n(fn THIS)"] xref-item-location ((this xref-match-item)) #[257 "\300\301\"\207" [slot-value location] 4 "Access the slot `location' from object of class `xref-match-item'.\n\n(fn THIS)"] xref-item-summary ((this xref-match-item)) #[257 "\300\301\"\207" [slot-value summary] 4 "Access the slot `summary' from object of class `xref-match-item'.\n\n(fn THIS)"]] 7)
#@72 Create a new object of class type `xref-match-item'.
(fn &rest SLOTS)
(defalias 'xref-match-item #[128 "\300\301\302#\207" [apply make-instance xref-match-item] 5 (#$ . 12605)])
(byte-code "\300\301\302\303#\300\207" [function-put xref-match-item compiler-macro xref-match-item--anon-cmacro] 4)
#@26
(fn WHOLE &rest SLOTS)
(defalias 'xref-match-item--anon-cmacro #[385 "\211@;\204 \207\300\301\302@@#@\303@DABB\"\207" [macroexp--warn-and-return format "Obsolete name arg %S to constructor %S" identity] 7 (#$ . 12908)])
#@197 Create and return a new `xref-match-item'.
SUMMARY is a short string to describe the xref.
LOCATION is an `xref-location'.
LENGTH is the match length, in characters.
(fn SUMMARY LOCATION LENGTH)
(defalias 'xref-make-match #[771 "\300\301\302\303\304&\207" [make-instance xref-match-item :summary :location :length] 11 (#$ . 13144)])
#@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 (#$ . 13491))
(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\n`project-current' roots.\n\n(fn BACKEND IDENTIFIER)" cl-generic-define-method #[514 "\300\301\302\303\304\305!\306\"\307\310%\311\312!\313\314!\315!\"\262\"\207" [cl-mapcan make-byte-code 257 "\301\300\"\207" vconcat vector [xref-references-in-directory] 4 "\n\n(fn DIR)" project-current t append project-roots project-external-roots] 9 "\n\n(fn BACKEND IDENTIFIER)"] xref-backend-apropos (backend pattern) "Find all symbols that match regexp PATTERN.\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)
#@138 Partition the elements of LIST into an alist.
KEY extracts the key from an element and TEST is used to compare
keys.
(fn LIST KEY TEST)
(defalias 'xref--alistify #[771 "\300\211\2031 \211@!\301\302$\211\203 \211AB\241\210\202( CBB\262\266A\266\202\202 \210\303!\300\211\211:\203Y @\262\211A\262\242\262\303!BB\262A\262\2028 \211\237\266\204\207" [nil cl-assoc :test reverse] 12 (#$ . 16626)])
#@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 (#$ . 17056)])
#@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 (#$ . 17257)])
(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%\207" [custom-declare-variable xref-marker-ring-length funcall function #[0 "\300\207" [16] 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] "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] "Functions called after jumping to an xref." hook xref-after-return-hook #[0 "\300\207" [(xref-pulse-momentarily)] 1] "Functions called after returning to a pre-jump location."] 10)
#@48 Ring of markers to implement the marker stack.
(defvar xref--marker-ring (make-ring xref-marker-ring-length) (#$ . 19381))
#@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 (#$ . 19511)])
#@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 (#$ . 19784)])
#@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!\262\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 (#$ . 19998) nil])
(defvar xref--current-item nil)
(defalias 'xref-pulse-momentarily #[0 "\212\301!\211\205
``\\B\262\206'