;ELC   
;;; Compiled
;;; in Emacs version 29.3
;;; with all optimizations.



(byte-code "\300\301!\210\302\303\304\305\306\307\310\311&\210\312\313\314\315\316DD\317\320\321\306\303&\210\312\322\314\315\323DD\324\320\325\306\303&\210\312\326\314\315\327DD\330\320\325\306\303&\207" [require doom-modeline-core custom-declare-group doom-modeline-env nil "The environment parser for `doom-modeline'." :group doom-modeline :link (url-link :tag "Homepage" "https://github.com/seagle0128/doom-modeline") custom-declare-variable doom-modeline-env-load-string funcall function #[0 "\207" [doom-modeline-ellipsis] 1 #1=""] "What to display as the version while a new one is being loaded." :type string doom-modeline-before-update-env-hook #[0 "\300\207" [nil] 1 #1#] "Hooks that run before the modeline version string is updated." hook doom-modeline-after-update-env-hook #[0 "\300\207" [nil] 1 #1#] "Hooks that run after the modeline version string is updated."] 8)#@71 The version to display with major-mode in mode-line.
Example: "2.6.0"
(defvar doom-modeline-env--version nil (#$ . 970))
(make-variable-buffer-local 'doom-modeline-env--version)#@83 A program that we're looking to extract version information from.
Example: "ruby"
(defvar doom-modeline-env--command nil (#$ . 1153))
(make-variable-buffer-local 'doom-modeline-env--command)#@92 A list of arguments for the command to extract the version from.
Example: \='("--version")
(defvar doom-modeline-env--command-args nil (#$ . 1349))
(make-variable-buffer-local 'doom-modeline-env--command-args)#@115 A function that returns version number from a command --version (or similar).
Example: \='doom-modeline-env--ruby
(defvar doom-modeline-env--parser nil (#$ . 1565))
(make-variable-buffer-local 'doom-modeline-env--parser)#@39 Update environment info on mode-line.
(defalias 'doom-modeline-update-env #[0 "\205- 	\205- \306	!\205- \n\205- \205- \307 p\310\311!\210\312	\n\313\314\"#)\266\202\207" [doom-modeline-env-version doom-modeline-env--command doom-modeline-env--command-args doom-modeline-env--parser default-directory doom-modeline-env-load-string executable-find doom-modeline-project-root run-hooks doom-modeline-before-update-env-hook doom-modeline-env--get make-closure #[257 "r\300q\210	!\303\304!)\207" [V0 doom-modeline-env--parser doom-modeline-env--version run-hooks doom-modeline-after-update-env-hook] 3 "\n\n(fn PROG-VERSION)"] doom-modeline-env--version] 8 (#$ . 1791)])
(byte-code "\300\301\302\"\210\303\304!\203 \305\306\307\310B\311\312$\210\202 \300\313\302\"\210\312\207" [add-hook find-file-hook doom-modeline-update-env boundp after-focus-change-function advice--add-function :after #[0 "\300\301!\207" [default-value after-focus-change-function] 2] #[257 "\300\301\"\207" [set-default after-focus-change-function] 4 "\n\n(fn GV--VAL)"] #[0 "\300 \205 \301 \207" [frame-focus-state doom-modeline-update-env] 1] nil focus-in-hook] 5)#@358 Start a sub process using PROG and apply the ARGS to the sub process.
Once it receives information from STDOUT, it closes off the subprocess and
passes on the information into the CALLBACK.
Example:
  (doom-modeline-env--get
     "ruby"
     \='("--version")
     (lambda (line)
        (message (doom-modeline-parser--ruby line)))

(fn PROG ARGS CALLBACK)
(defalias 'doom-modeline-env--get #[771 "\3001 \301\302\303\304\305E\"\"0\202 \210\305\211\205 \211\205% \306\307\310\"\"\207" [(error) apply start-process append "doom-modeline-env" nil set-process-filter make-closure #[514 "\3011	 \300!0\207\210\302\207" [V0 (error) nil] 4 "\n\n(fn PROC LINE)"]] 10 (#$ . 2947)])#@490 Define a handler for updating & displaying a version string for a language.

NAME is an unquoted symbol representing the handler's unique ID.
HOOKS is a list of hook symbols where this handler should be triggered.
COMMAND should be a function that returns a shell command and its arguments (as
  a list). It is run on HOOKS. It takes no arguments.
PARSER should be a function for parsing COMMAND's output line-by-line, to
  extract the version string.

(fn NAME &key HOOKS COMMAND PARSER)
(defalias 'doom-modeline-def-env '(macro . #[385 "\300\301\"A@\300\302\"A@\300\303\"A@\211\203H \211@\304>\2031 \211A\204) \305\306@\"\210\211AA\262\202 \307>A@\203? \310\262\202 \305\311@\"\210\202 \210\203U \203U \211\204[ \305\312\"\210\313\314\315\"!\313\314\316\"!\313\314\317	\"!\313\314\320\n\"!\313\314\321\"!\313\314\322\f\"!\313\314\323\"!\313\314\324\"!\325\326\327\314\330\"\331BBBB\332\333D\334F\332\333D\314\335\n\"F\326\310\314\336\"\337BBBB\340\333D\314\341\333D\333DFF\340\333D\314\342\333D\333DFF\340\333D\343\310\344\345\346\347\350D\351BBBCFE\314\352\333DEF\340\333D\343\310\353\354\355\356DD\357B\360\361\362\363\364\365\257\366BBBEE\314\367\333DEF\370\371\333\372!DDC\373\374\346\375\350DEEE\257	!\207" [plist-member :hooks :command :parser (:hooks :command :parser :allow-other-keys) error "Missing argument for %s" :allow-other-keys nil "Keyword argument %s not one of (:hooks :command :parser)" "'%s' env is missing either :hooks, :command or :parser" intern format "doom-modeline-env--%s-parse" "doom-modeline-env--%s-args" "doom-modeline-env-setup-%s" "doom-modeline-env-update-%s" "doom-modeline-env-enable-%s" "doom-modeline-env-%s-command" "doom-modeline-env-%s-parser-fn" "doom-modeline-env-%s-executable" macroexp-progn defcustom t "Whether to display the version string for %s buffers." (:type 'boolean :group 'doom-modeline-env) defvar quote "A function that returns the shell command and arguments (as a list) to\nproduce a version string." "The function to parse each line of `%s''s output." "What executable to use for the version indicator in %s buffers.\n\nIf nil, the default binary for this language is used." (:type 'string :group 'doom-modeline-env) defalias "The line parser for %s buffers.\n\nUsed by `%s'." "The command resolver for %s buffers.\n\nUsed by `%s'." lambda if enable-local-variables add-hook 'hack-local-variables-hook function (nil t) "Prepares the modeline to later display the %s version string." when when-let* command-list funcall ((exe (executable-find (car command-list)))) setq doom-modeline-env--command exe doom-modeline-env--command-args (cdr command-list) doom-modeline-env--parser ((doom-modeline-update-env)) "Updates the %s version string in the modeline." let hooks eval dolist (hook (if (listp hooks) hooks (list hooks))) hook] 36 (#$ . 3636)]))
(byte-code "\300\301\302\303#\304\305\306\307\310DD\311\312\313\314\315&\207" [function-put doom-modeline-def-env lisp-indent-function defun custom-declare-variable doom-modeline-env-enable-python funcall function #[0 "\300\207" [t] 1 ""] "Whether to display the version string for python buffers." :type boolean :group doom-modeline-env] 9)#@98 A function that returns the shell command and arguments (as a list) to
produce a version string.
(defvar doom-modeline-env-python-command 'doom-modeline-env--python-args (#$ . 6876))#@81 The function to parse each line of `doom-modeline-env-python-command''s output.
(defvar doom-modeline-env-python-parser-fn 'doom-modeline-env--python-parse (#$ . 7064))
(byte-code "\300\301\302\303\304DD\305\306\307\310\311&\210\312\313\314\315\316\317\320##\210\312\321\322\315\323\317\320##\210\312\324\325\315\326\317\"#\210\312\320\327\315\330\317\"#\210\331\211<\203? \211\202A \211C\211\203S \211@\332\324\"\210A\266\202\202A \266\300\333\302\303\334DD\335\306\336\310\311&\207" [custom-declare-variable doom-modeline-env-python-executable funcall function #[0 "\300\207" [nil] 1 #1=""] "What executable to use for the version indicator in python buffers.\n\nIf nil, the default binary for this language is used." :type string :group doom-modeline-env defalias doom-modeline-env--python-parse #[257 "\300!\301\302\"\203 \211A@\207\211@\207" [split-string length> 1] 5 "\n\n(fn LINE)"] format "The line parser for %s buffers.\n\nUsed by `%s'." python doom-modeline-env-update-python doom-modeline-env--python-args #[0 "\303\304!\203 \305\306\"\203 \304\307	\206 \n\206 \310\311F\207\303\312!\203% \312\313D\207\303\314!\203E \305\315\"\203E \316\317\320\321\322!	\206B \n\206B \310#E\207	\206N \n\206N \310\311D\207" [default-directory doom-modeline-env-python-executable python-shell-interpreter executable-find "pipenv" locate-dominating-file "Pipfile" "run" "python" "--version" "pyenv" "version-name" "direnv" ".envrc" "bash" "-c" format "direnv exec %s %s --version 2>/dev/null" file-truename] 6] "The command resolver for %s buffers.\n\nUsed by `%s'." doom-modeline-env-setup-python #[0 "\203 \301\302\303\304\305$\207\303 \207" [enable-local-variables add-hook hack-local-variables-hook doom-modeline-env-update-python nil t] 5] "Prepares the modeline to later display the %s version string." #[0 "\205 	 \211\205 \306@!\211\205 \211A\f\307 \266\202\207" [doom-modeline-env-enable-python doom-modeline-env-python-command doom-modeline-env--command doom-modeline-env--command-args doom-modeline-env-python-parser-fn doom-modeline-env--parser executable-find doom-modeline-update-env] 3] "Updates the %s version string in the modeline." (python-mode-hook python-ts-mode-hook) add-hook doom-modeline-env-enable-ruby #[0 "\300\207" [t] 1 #1#] "Whether to display the version string for ruby buffers." boolean] 8)#@98 A function that returns the shell command and arguments (as a list) to
produce a version string.
(defvar doom-modeline-env-ruby-command 'doom-modeline-env--ruby-args (#$ . 9416))#@79 The function to parse each line of `doom-modeline-env-ruby-command''s output.
(defvar doom-modeline-env-ruby-parser-fn 'doom-modeline-env--ruby-parse (#$ . 9600))
(byte-code "\300\301\302\303\304DD\305\306\307\310\311&\210\312\313\314\315\316\317\320##\210\312\321\322\315\323\317\320##\210\312\324\325\315\326\317\"#\210\312\320\327\315\330\317\"#\210\331\211<\203? \211\202A \211C\211\203S \211@\332\324\"\210A\266\202\202A \266\300\333\302\303\334DD\335\306\336\310\311&\207" [custom-declare-variable doom-modeline-env-ruby-executable funcall function #[0 "\300\207" [nil] 1 #1=""] "What executable to use for the version indicator in ruby buffers.\n\nIf nil, the default binary for this language is used." :type string :group doom-modeline-env defalias doom-modeline-env--ruby-parse #[257 "\300\211!A@\301\"@\207" [split-string "p"] 4 "\n\n(fn LINE)"] format "The line parser for %s buffers.\n\nUsed by `%s'." ruby doom-modeline-env-update-ruby doom-modeline-env--ruby-args #[0 "\206 \301\302D\207" [doom-modeline-env-ruby-executable "ruby" "--version"] 2] "The command resolver for %s buffers.\n\nUsed by `%s'." doom-modeline-env-setup-ruby #[0 "\203 \301\302\303\304\305$\207\303 \207" [enable-local-variables add-hook hack-local-variables-hook doom-modeline-env-update-ruby nil t] 5] "Prepares the modeline to later display the %s version string." #[0 "\205 	 \211\205 \306@!\211\205 \211A\f\307 \266\202\207" [doom-modeline-env-enable-ruby doom-modeline-env-ruby-command doom-modeline-env--command doom-modeline-env--command-args doom-modeline-env-ruby-parser-fn doom-modeline-env--parser executable-find doom-modeline-update-env] 3] "Updates the %s version string in the modeline." (ruby-mode-hook ruby-ts-mode-hook enh-ruby-mode-hook) add-hook doom-modeline-env-enable-perl #[0 "\300\207" [t] 1 #1#] "Whether to display the version string for perl buffers." boolean] 8)#@98 A function that returns the shell command and arguments (as a list) to
produce a version string.
(defvar doom-modeline-env-perl-command 'doom-modeline-env--perl-args (#$ . 11504))#@79 The function to parse each line of `doom-modeline-env-perl-command''s output.
(defvar doom-modeline-env-perl-parser-fn 'doom-modeline-env--perl-parse (#$ . 11689))
(byte-code "\300\301\302\303\304DD\305\306\307\310\311&\210\312\313\314\315\316\317\320##\210\312\321\322\315\323\317\320##\210\312\324\325\315\326\317\"#\210\312\320\327\315\330\317\"#\210\331C\211\203I \211@\332\324\"\210A\266\202\2027 \210\300\333\302\303\334DD\335\306\336\310\311&\207" [custom-declare-variable doom-modeline-env-perl-executable funcall function #[0 "\300\207" [nil] 1 #1=""] "What executable to use for the version indicator in perl buffers.\n\nIf nil, the default binary for this language is used." :type string :group doom-modeline-env defalias doom-modeline-env--perl-parse #[257 "\300\211\211\301\"A@\302\"@\303\"A@\207" [split-string "(" ")" "v"] 6 "\n\n(fn LINE)"] format "The line parser for %s buffers.\n\nUsed by `%s'." perl doom-modeline-env-update-perl doom-modeline-env--perl-args #[0 "\206 \301\302D\207" [doom-modeline-env-perl-executable "perl" "--version"] 2] "The command resolver for %s buffers.\n\nUsed by `%s'." doom-modeline-env-setup-perl #[0 "\203 \301\302\303\304\305$\207\303 \207" [enable-local-variables add-hook hack-local-variables-hook doom-modeline-env-update-perl nil t] 5] "Prepares the modeline to later display the %s version string." #[0 "\205 	 \211\205 \306@!\211\205 \211A\f\307 \266\202\207" [doom-modeline-env-enable-perl doom-modeline-env-perl-command doom-modeline-env--command doom-modeline-env--command-args doom-modeline-env-perl-parser-fn doom-modeline-env--parser executable-find doom-modeline-update-env] 3] "Updates the %s version string in the modeline." perl-mode-hook add-hook doom-modeline-env-enable-go #[0 "\300\207" [t] 1 #1#] "Whether to display the version string for go buffers." boolean] 8)#@98 A function that returns the shell command and arguments (as a list) to
produce a version string.
(defvar doom-modeline-env-go-command 'doom-modeline-env--go-args (#$ . 13550))#@77 The function to parse each line of `doom-modeline-env-go-command''s output.
(defvar doom-modeline-env-go-parser-fn 'doom-modeline-env--go-parse (#$ . 13731))
(byte-code "\300\301\302\303\304DD\305\306\307\310\311&\210\312\313\314\315\316\317\320##\210\312\321\322\315\323\317\320##\210\312\324\325\315\326\317\"#\210\312\320\327\315\330\317\"#\210\331\211<\203? \211\202A \211C\211\203S \211@\332\324\"\210A\266\202\202A \266\300\333\302\303\334DD\335\306\336\310\311&\207" [custom-declare-variable doom-modeline-env-go-executable funcall function #[0 "\300\207" [nil] 1 #1=""] "What executable to use for the version indicator in go buffers.\n\nIf nil, the default binary for this language is used." :type string :group doom-modeline-env defalias doom-modeline-env--go-parse #[257 "\300\211!AA@\301\"A@\207" [split-string "go"] 4 "\n\n(fn LINE)"] format "The line parser for %s buffers.\n\nUsed by `%s'." go doom-modeline-env-update-go doom-modeline-env--go-args #[0 "\206 \301\302D\207" [doom-modeline-env-go-executable "go" "version"] 2] "The command resolver for %s buffers.\n\nUsed by `%s'." doom-modeline-env-setup-go #[0 "\203 \301\302\303\304\305$\207\303 \207" [enable-local-variables add-hook hack-local-variables-hook doom-modeline-env-update-go nil t] 5] "Prepares the modeline to later display the %s version string." #[0 "\205 	 \211\205 \306@!\211\205 \211A\f\307 \266\202\207" [doom-modeline-env-enable-go doom-modeline-env-go-command doom-modeline-env--command doom-modeline-env--command-args doom-modeline-env-go-parser-fn doom-modeline-env--parser executable-find doom-modeline-update-env] 3] "Updates the %s version string in the modeline." (go-mode-hook go-ts-mode-hook) add-hook doom-modeline-env-enable-elixir #[0 "\300\207" [t] 1 #1#] "Whether to display the version string for elixir buffers." boolean] 8)#@98 A function that returns the shell command and arguments (as a list) to
produce a version string.
(defvar doom-modeline-env-elixir-command 'doom-modeline-env--elixir-args (#$ . 15586))#@81 The function to parse each line of `doom-modeline-env-elixir-command''s output.
(defvar doom-modeline-env-elixir-parser-fn 'doom-modeline-env--elixir-parse (#$ . 15775))
(byte-code "\300\301\302\303\304DD\305\306\307\310\311&\210\312\313\314\315\316\317\320##\210\312\321\322\315\323\317\320##\210\312\324\325\315\326\317\"#\210\312\320\327\315\330\317\"#\210\331\211<\203? \211\202A \211C\211\203S \211@\332\324\"\210A\266\202\202A \266\300\333\302\303\334DD\335\306\336\310\311&\207" [custom-declare-variable doom-modeline-env-elixir-executable funcall function #[0 "\300\207" [nil] 1 #1=""] "What executable to use for the version indicator in elixir buffers.\n\nIf nil, the default binary for this language is used." :type string :group doom-modeline-env defalias doom-modeline-env--elixir-parse #[257 "\300\301\"\205 \302\303\304\305\"\304\306\"#\207" [string-match "Elixir[[:space:]]+\\([^[:space:]]+\\).*Erlang/OTP[[:space:]]+\\([0-9]+\\)" format "%s/OTP%s" match-string 1 2] 7 "\n\n(fn LINE)"] format "The line parser for %s buffers.\n\nUsed by `%s'." elixir doom-modeline-env-update-elixir doom-modeline-env--elixir-args #[0 "\206 \301\302D\207" [doom-modeline-env-elixir-executable "elixir" "--version"] 2] "The command resolver for %s buffers.\n\nUsed by `%s'." doom-modeline-env-setup-elixir #[0 "\203 \301\302\303\304\305$\207\303 \207" [enable-local-variables add-hook hack-local-variables-hook doom-modeline-env-update-elixir nil t] 5] "Prepares the modeline to later display the %s version string." #[0 "\205 	 \211\205 \306@!\211\205 \211A\f\307 \266\202\207" [doom-modeline-env-enable-elixir doom-modeline-env-elixir-command doom-modeline-env--command doom-modeline-env--command-args doom-modeline-env-elixir-parser-fn doom-modeline-env--parser executable-find doom-modeline-update-env] 3] "Updates the %s version string in the modeline." (elixir-mode-hook elixir-ts-mode-hook) add-hook doom-modeline-env-enable-rust #[0 "\300\207" [t] 1 #1#] "Whether to display the version string for rust buffers." boolean] 8)#@98 A function that returns the shell command and arguments (as a list) to
produce a version string.
(defvar doom-modeline-env-rust-command 'doom-modeline-env--rust-args (#$ . 17833))#@79 The function to parse each line of `doom-modeline-env-rust-command''s output.
(defvar doom-modeline-env-rust-parser-fn 'doom-modeline-env--rust-parse (#$ . 18018))
(byte-code "\300\301\302\303\304DD\305\306\307\310\311&\210\312\313\314\315\316\317\320##\210\312\321\322\315\323\317\320##\210\312\324\325\315\326\317\"#\210\312\320\327\315\330\317\"#\210\331\211<\203? \211\202A \211C\211\203S \211@\332\324\"\210A\266\202\202A \266\333\311!\207" [custom-declare-variable doom-modeline-env-rust-executable funcall function #[0 "\300\207" [nil] 1 ""] "What executable to use for the version indicator in rust buffers.\n\nIf nil, the default binary for this language is used." :type string :group doom-modeline-env defalias doom-modeline-env--rust-parse #[257 "\300\211!A@\301\"@\207" [split-string "-"] 4 "\n\n(fn LINE)"] format "The line parser for %s buffers.\n\nUsed by `%s'." rust doom-modeline-env-update-rust doom-modeline-env--rust-args #[0 "\206 \301\302D\207" [doom-modeline-env-rust-executable "rustc" "--version"] 2] "The command resolver for %s buffers.\n\nUsed by `%s'." doom-modeline-env-setup-rust #[0 "\203 \301\302\303\304\305$\207\303 \207" [enable-local-variables add-hook hack-local-variables-hook doom-modeline-env-update-rust nil t] 5] "Prepares the modeline to later display the %s version string." #[0 "\205 	 \211\205 \306@!\211\205 \211A\f\307 \266\202\207" [doom-modeline-env-enable-rust doom-modeline-env-rust-command doom-modeline-env--command doom-modeline-env--command-args doom-modeline-env-rust-parser-fn doom-modeline-env--parser executable-find doom-modeline-update-env] 3] "Updates the %s version string in the modeline." (rust-mode-hook rust-ts-mode-hook) add-hook provide] 8)
