;ELC ;;; Compiled ;;; in Emacs version 26.3 ;;; with all optimizations. ;;; This file uses dynamic docstrings, first added in Emacs 19.29. ;;; This file does not contain utf-8 non-ASCII characters, ;;; and so can be loaded in Emacs versions earlier than 23. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (byte-code "\300\301!\210\300\302!\210\300\303!\207" [require cl-lib files project] 2) #@98 Regexp matching uniqufied file name. Match 1 is the filename, match 2 is the relative directory. (defconst uniq-file--regexp "^\\(.*\\)<\\([^>]*\\)>?$" (#$ . 495)) #@53 Subroutine of `uniq-file-uniquify'. (fn CONFLICTS) (defalias 'uniq-file-conflicts #[257 "\300\301@!\301A@!\"CAA\242\203*\211\203*\300\242\301\211A\262\242!\"\240\210\202\210\211\242\203T\211\242GS\211\302V\203J\242H\303U\204J\211S\262\2024\211\242\302TO\240\266\304\305\306\307\310\311!\312\"\313\314%\"\207" [fill-common-string-prefix file-name-directory 0 47 cl-mapcar make-byte-code 257 "\301!\302\303!\300\242G\304O\305RB\207" vconcat vector [file-name-nondirectory "<" file-name-directory nil ">"] 6 "\n\n(fn NAME)"] 9 (#$ . 665)]) #@190 Return an alist of uniquified names built from NAMES. NAMES is a list containing absolute file names. The result contains file basenames with partial directory paths appended. (fn NAMES) (defalias 'uniq-file-uniquify #[257 "\302\211\303\304\"\262\203W\211A\262\242C\262\2035\305@!\305@!\230\2035\211A\262\242B\262\202\211G\306U\203L\305@!\260@BB\262\202 \307\310!\"\262\202 )\207" [completion-ignore-case case-fold-search nil sort #[514 "\300!\300!\231\207" [file-name-nondirectory] 5 "\n\n(fn A B)"] file-name-nondirectory 1 append uniq-file-conflicts] 7 (#$ . 1238)]) #@87 Return a pcm pattern that matches STRING (a uniquified file name). (fn STRING POINT) (defalias 'uniq-file--pcm-pat #[514 "\302\303Q\304GW\203\211GSH\305U\203\304\306O\202\307\310\"\311\312\"\211\262\203pGSW\203p\307\211\203l\211A\262\242\262\211B\262\211\312\232\2037\211A\262\242\262\211\313=\203d\314B\262\2027\211B\262\2027\237\266\203)\207" [completion-pcm-word-delimiters completion-pcm--delim-wild-regex "[" "<>*]" 0 60 -1 nil completion-pcm--string->pattern string-match "<" any-delim any] 9 (#$ . 1851)]) #@167 Return a pcm pattern that is the merged completion of STRING in ALL. ALL must be a list of uniquified file names. Pattern is in reverse order. (fn STRING ALL POINT) (defalias 'uniq-file--pcm-merged-pat #[771 "\300\"\301\"\207" [uniq-file--pcm-pat completion-pcm--merge-completions] 7 (#$ . 2411)]) #@93 Implement `completion-try-completion' for uniquify-file. (fn USER-STRING TABLE PRED POINT) (defalias 'uniq-file-try-completion #[1028 "\300\211\211\301!\203N\302$\262\204#\300\262\303\262\202aG\304U\203H\303\262@\230\203;\303\262\202a@\262\211GB\262\202a\300\262\202a\204[\300\262\303\262\202a\262\300\262\211\203i\202\220\305#\306>\206\203\307>\206\203\310>\206\203\211\311!G\311\237!\211B\266\204\207" [nil functionp uniq-file-all-completions t 1 uniq-file--pcm-merged-pat point any star completion-pcm--pattern->string] 13 (#$ . 2720)]) #@308 Apply face text properties to each element of ALL. STRING is the current user input. ALL is a list of strings in user format. POINT is the position of point in STRING. Returns new list. Adds the face `completions-first-difference' to the first character after each completion field. (fn STRING ALL POINT) (defalias 'uniq-file--hilit #[771 "\300#\237\301C\302\303\"\211\203%\211@\211;\204\211\242T\240\210A\266\202\202 \210\304\305\306\307\310\311\"\312\"\313\314%\"\207" [uniq-file--pcm-merged-pat 0 completion-pcm--pattern->regex (any star any-delim point) mapcar make-byte-code 257 "\302\303G\304$\210\305\301\"\203;\306\300\242X\2039\224\2032\224TGX\2032\307\224\224T\310\311%\210T\262\202\266\207" vconcat vector [remove-text-properties 0 (face completions-first-difference) string-match 1 put-text-property face completions-first-difference] 9 "\n\n(fn STR)"] 14 (#$ . 3326)]) #@89 Implement `completion-all-completions' for uniquify-file. (fn STRING TABLE PRED POINT) (defalias 'uniq-file-all-completions #[1028 "\300#\211\205\301#\207" [all-completions uniq-file--hilit] 9 (#$ . 4254)]) #@216 Implement a completion table for uniquified file names in FILES. FILES is an alist of (UNIQIFIED-NAME . ABS-NAME). Completion is done on UNIQIFIED-NAME, PRED is called with ABS-NAME. (fn FILES STRING PRED ACTION) (defalias 'uniq-file-completion-table #[1028 "\211\302=\203\f\303\"A\207\211\242\304=\203\304\305AGBB\207\211\306=\203&\306\307CB\207\211\310>\205\211\311\312\211G\"!\313\211\203a\211@\314@\"\203Z\203TA!\203Z\211@B\262A\266\202\2029\210\204n\315\"\202\206\316=\203\317#\202\206\320=\205\206\211)\266\203\207" [completion-ignore-case case-fold-search alist assoc boundaries 0 metadata (category . uniquify-file) (nil lambda t) completion-pcm--pattern->regex uniq-file--pcm-pat nil string-match try-completion lambda test-completion t] 12 (#$ . 4477)]) (add-to-list 'completion-styles-alist '(uniquify-file uniq-file-try-completion uniq-file-all-completions "display uniquified file names.")) #@96 For `project-read-file-name-function'. (fn PROMPT ALL-FILES &optional PREDICATE HIST DEFAULT) (defalias 'uniq-file-read #[1282 "\300!\301\302\"\303%\304\"A\207" [uniq-file-uniquify apply-partially uniq-file-completion-table project--completing-read-strict assoc] 13 (#$ . 5436)]) (byte-code "\300\301\302\"\210\303\304!\207" [set-default project-read-file-name-function uniq-file-read provide uniquify-files] 3)