%PDF- %PDF-
Direktori : /usr/local/share/emacs/27.2/lisp/progmodes/ |
Current File : //usr/local/share/emacs/27.2/lisp/progmodes/project.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. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (require 'cl-generic) #@231 Special hook to find the project containing a given directory. Each functions on this hook is called in turn with one argument (the directory) and should return either nil to mean that it is not applicable, or a project instance. (defvar project-find-functions (list 'project-try-vc) (#$ . 431)) #@320 Return the project instance in DIR or `default-directory'. When no project found in DIR, and MAYBE-PROMPT is non-nil, ask the user for a different directory to look in. If that directory is not a part of a detectable project either, return a `transient' project instance rooted in it. (fn &optional MAYBE-PROMPT DIR) (defalias 'project-current #[512 "\211\204 \262\301!\211\204- \203- \302\303\304\305$\262\301!\262\211\204- \306\307\"\210\310B\262\211\207" [default-directory project--find-in-directory read-directory-name "Choose the project directory: " nil t message "Using `%s' as a transient project root" transient] 8 (#$ . 734)]) #@12 (fn DIR) (defalias 'project--find-in-directory #[257 "\300\301\"\207" [run-hook-with-args-until-success project-find-functions] 4 (#$ . 1392)]) (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\311\313\304\314\304\316%\207" [defalias project-roots cl-generic-define (project) nil "Return the list of directory roots of the current project.\n\nMost often it's just one directory which contains the project\nbuild file and everything else in the project. But in more\nadvanced configurations, a project can span multiple directories.\n\nThe directory names should be absolute.\n\n(fn PROJECT)" project-external-roots (_project) "Return the list of external roots for PROJECT.\n\nIt's the list of directories outside of the project that are\nstill related to it. If the project deals with source code then,\ndepending on the languages used, this list should include the\nheaders search path, load path, class path, and so on.\n\nThe rule of thumb for whether to include a directory here, and\nnot in `project-roots', is whether its contents are meant to be\nedited together with the rest of the project.\n\n(fn PROJECT)" cl-generic-define-method #[257 "\300\207" [nil] 2 "\n\n(fn PROJECT)"] project-ignores (_project _dir) "Return the list of glob patterns to ignore inside DIR.\nPatterns can match both regular files and directories.\nTo root an entry, start it with `./'. To match directories only,\nend it with `/'. DIR must be one of `project-roots' or\n`project-external-roots'.\n\n(fn PROJECT DIR)" #[514 "\302\303!\210\304\305\" \244\207" [vc-directory-exclusion-list grep-find-ignored-files require grep mapcar #[257 "\211\300P\207" ["/"] 3 "\n\n(fn DIR)"]] 5 "\n\n(fn PROJECT DIR)"]] 6) #@18 (fn ALL-FILES) (defalias 'project--file-completion-table #[257 "\300\301\302\303\304!\305\"\306\307%\207" [make-byte-code 771 "\211\301=\203 \302\207\303\300$\207" vconcat vector [metadata (metadata (category . project-file)) complete-with-action] 8 "\n\n(fn STRING PRED ACTION)"] 7 (#$ . 3193)]) (byte-code "\300\301\302\303\302\304%\210\305\306\307\306\310\302#\311#\210\300\306\302\310\302\312%\207" [cl-generic-define-method project-roots nil ((project (head transient))) #[257 "\211AC\207" [] 2 "\n\n(fn PROJECT)"] defalias project-files cl-generic-define (project &optional dirs) "Return a list of files in directories DIRS in PROJECT.\nDIRS is a list of absolute directories; it should be some\nsubset of the project roots and external roots.\n\nThe default implementation uses `find-program'. PROJECT is used\nto find the list of ignores for each directory.\n\n(fn PROJECT &optional DIRS)" #[513 "\300\301\302\303\304\305!\306\"\307\310%\206 \311!\"\207" [cl-mapcan make-byte-code 257 "\301\302\300\"\"\207" vconcat vector [project--files-in-directory project--dir-ignores] 6 "\n\n(fn DIR)" project-roots] 9 "\n\n(fn PROJECT &optional DIRS)"]] 6) #@36 (fn DIR IGNORES &optional FILES) (defalias 'project--files-in-directory #[770 "\303\304!\210\303\305!\210\306\307!!\310\311 \312\"\2038 \313\314!\315\n\315\316\313\317 !\320\n\315Q#\315\313\321!\260\2029 \322%\323\324\317\325!\326\327#\330\"!)\207" [default-directory find-program find-name-arg require find-dired xref file-local-name expand-file-name format "%s %s %s -type f %s -print0" xref--find-ignores-arguments shell-quote-argument "(" " " mapconcat split-string " -o " ")" "" project--remote-file-names sort shell-command-to-string "