;ELC ;;; Compiled ;;; in Emacs version 28.0.50 ;;; with all optimizations. (byte-code "\300\301!\210\300\302!\210\300\303!\207" [require s widget dash] 2) #@37 Determine the location of python 3. (defalias 'treemacs--find-python3 #[0 "\301\302!\211\203\207\303=\205o\3041l\305\306\307\310\311!!!\312\305\211\211\203e\211A\262\242\262\262\211\262\203e\313!\203X\314\315\316\317\320\321\322\307\310\323 !\324P!!#\"\"\203X\305\262\203e\262\262T\262\202\266\211\2620\207\305\262\207" [system-type executable-find "python3" windows-nt (error) nil s-lines s-trim shell-command-to-string "where python" 0 file-exists-p version<= "3" s-left 1 s-replace "Python " "" shell-quote-argument " --version"] 18 (#$ . 167)]) (byte-code "\301\302\303\304\305\306\307\310&\210\301\311\303\304\305\306\307\312&\210\301\313\303\304\305\306\307\314&\210\301\315\303\304\305\306\307\316&\210\317\320\321\322\323\320\324\325&\210\317\326\321\327\323\320\323\330\324\325\331\332& \210\317\333\321\334\323\320\324\325\331\335& \210\317\336\321\337\323\320\324\325\331\340& \210\317\341\321\342\323\320\324\325\331\343& \210\317\344\321\345\323\320\324\325\331\346& \210\347\350\351\352\353DD\354\307\355\323\320&\210\347\356\351\352\357DD\360\307\361\323\320&\210\347\362\351\352\363DD\364\307\365\323\320&\210\347\366\351\352\367DD\370\307\371\323\320&\210\347\372\351\352\373DD\374\307\371\323\320&\210\347\375\351\352\376DD\377\307\201@\323\320&\210\347\201A\351\352\201BDD\201C\307\371\323\320&\210\347\201D\351\352\201EDD\201F\307\371\323\320&\210\347\201G\351\352\201HDD\201I\307\201J\323\320&\210\347\201K\351\352\201LDD\201M\307\201N\323\320&\210\347\201O\351\352\201PDD\201Q\307\302\323\320&\210\347\201R\351\352\201SDD\201T\307\201U\323\320&\210\347\201V\351\352\201WDD\201X\307\201Y\323\320&\210\347\201Z\351\352\201[DD\201\\\307\201]\323\320&\210\347\201^\351\352\201_DD\201`\307\201a\323\320&\210\347\201b\351\352\201cDD\201d\307\361\323\320&\210\347\201e\351\352\201fDD\201g\307\361\323\320&\210\347\201h\351\352\201iDD\201j\307\201k\323\320&\210\347\201l\351\352\201mDD\201n\307\201k\323\320&\210\347\201o\351\352\201pDD\201q\307\201k\323\320&\210\347\201r\351\352\201sDD\201t\307\371\323\320&\210\347\201u\351\352\201vDD\201w\307\371\323\320&\210\347\201x\351\352\201yDD\201z\307\371\323\320&\210\347\201{\351\352\201|DD\201}\307\371\323\320&\210\347\201~\351\352\201DD\201\200\307\371\323\320&\210\347\201\201\351\352\201\202DD\201\203\307\201\204\323\320&\210\347\201\205\351\352\201\206DD\201\207\307\201\210\323\320&\210\347\201\211\351\352\201\212DD\201\213\307\371\323\320&\210\347\201\214\351\352\201\215DD\201\216\307\371\323\320&\210\347\201\217\351\352\201\220DD\201\221\307\201\222\323\320&\210\347\201\223\351\352\201\224DD\201\225\307\201\226\323\320&\210\347\201\227\351\352\201\230DD\201\231\323\320\307\201@&\210\347\201\232\351\352\201\233DD\201\234\323\320\307\201@&\210\347\201\235\351\352\201\236DD\201\237\307\201\240\323\320&\210\347\201\241\351\352\201\242DD\201\243\307\371\323\320&\210\347\201\244\351\352\201\245DD\201\246\307\371\323\320&\210\347\201\247\351\352\201\250DD\201\251\307\201\252\201\253\201\254\201\255\300!\205\230\205\230\201\256\201\257\"#\323\320&\210\347\201\260\351\352\201\261DD\201\262\307\371\323\320&\210\347\201\263\351\352\201\264DD\201\265\307\352\323\320&\210\347\201\266\351\352\201\267DD\201\270\307\352\323\320&\210\201\271\201\272\201\217\201\273#\210\347\201\272\351\352\201\274DD\201\275\307\201\222\323\341&\210\347\201\276\351\352\201\277DD\201\300\307\371\323\341&\210\347\201\301\351\352\201\302DD\201\303\307\201\304\323\341&\210\347\201\305\351\352\201\306DD\201\307\307\201\304\323\341&\210\347\201\310\351\352\201\311DD\201\312\307\371\323\341&\210\347\201\313\351\352\201\314DD\201\315\307\201\316\323\341&\210\347\201\317\351\352\201\320DD\201\321\307\201\322\323\341&\210\347\201\323\351\352\201\324DD\201\325\307\371\323\341&\210\347\201\326\351\352\201\327DD\201\330\307\201\304\323\333&\210\347\201\331\351\352\201\332DD\201\333\307\201\304\323\333&\210\347\201\334\351\352\201\335DD\201\336\307\201@\323\333&\210\347\201\337\351\352\201\340DD\201\341\307\201@\323\333&\210\347\201\342\351\352\201\343DD\201\344\307\371\323\344&\210\347\201\345\351\352\201\346DD\201\347\307\371\323\344&\210\347\201\350\351\352\201\351DD\201\352\307\201\353\323\344&\210\347\201\354\351\352\201\355DD\201\356\307\201k\323\344&\210\347\201\357\351\352\201\360DD\201\361\307\371\323\344&\210\347\201\362\351\352\201\363DD\201\364\307\371\323\344&\210\347\201\365\351\352\201\366DD\201\367\307\201@\323\344&\210\347\201\370\351\352\201\371DD\201\372\307\201\373\323\320&\210\347\201\374\351\352\201\375DD\201\376\307\201\377\323\336&\210\347\201\351\352\201DD\201\307\201\377\323\336&\210\347\201\351\352\201DD\201\307\201\377\323\336&\210\347\201\351\352\201DD\201\307\201\377\323\336&\210\347\201 \351\352\201\nDD\201 \307\201\377\323\336&\210\347\201\f\351\352\201 DD\201\307\201\377\323\336&\210\347\201\351\352\201DD\201\307\201\377\323\336&\210\347\201\351\352\201DD\201\307\201\377\323\336&\210\347\201\351\352\201DD\201\307\201\377\323\336&\210\347\201\351\352\201DD\201\307\201\377\323\336&\210\347\201\351\352\201DD\201\307\201\377\323\336&\210\347\201\351\352\201DD\201 \307\201\377\323\336&\210\347\201!\351\352\201\"DD\201#\307\201\377\323\336&\210\347\201$\351\352\201%DD\201&\307\201@\323\320&\210\347\201'\351\352\201(DD\201)\307\201\377\323\336&\210\347\201*\351\352\201+DD\201,\307\201\377\323\336&\210\347\201-\351\352\201.DD\201/\307\201\377\323\336&\210\347\2010\351\352\2011DD\2012\307\201\377\323\336&\210\2013\2014\2015\321#\210\2016\211\203\201\211@\2014N\203z\2015N\204z\2017\2015\2014N#\210A\266\202\202V\210\201\271\2014\2015\2018#\210\347\2015\351\352\2019DD\201:\307\201\377\323\336&\210\347\201;\351\352\201<DD\201=\307\201\377\323\336&\207" [fringe-bitmaps define-widget treemacs-default-action lazy "Treemacs button action" :format "%v" :type (choice :tag #1="Action" (const :tag #2="Visit node without splitting" treemacs-visit-node-no-split) (const :tag #3="Visit node in a vertical split" treemacs-visit-node-vertical-split) (const :tag #4="Visit node in a horizontal split" treemacs-visit-node-horizontal-split) (const :tag #5="Visit node with Ace" treemacs-visit-node-ace) (const :tag #6="Visit node with Ace in a horizontal split" treemacs-visit-node-ace-horizontal-split) (const :tag #7="Visit node with Ace in a vertical split" treemacs-visit-node-ace-vertical-split) (const :tag #8="Visit node in the most recently used window" treemacs-visit-node-in-most-recently-used-window) (const :tag #9="Toggle node" treemacs-toggle-node) (const :tag #10="Toggle node (prefer tag visit)" treemacs-toggle-node-prefer-tag-visit) (function :tag #11="Custom function")) treemacs-ret-action (choice :tag #1# (const :tag #12="Default visit action" treemacs-visit-node-default) (const :tag #13="Same as TAB" treemacs-TAB-action) (const :tag #2# treemacs-visit-node-no-split) (const :tag #3# treemacs-visit-node-vertical-split) (const :tag #4# treemacs-visit-node-horizontal-split) (const :tag #5# treemacs-visit-node-ace) (const :tag #6# treemacs-visit-node-ace-horizontal-split) (const :tag #7# treemacs-visit-node-ace-vertical-split) (const :tag #8# treemacs-visit-node-in-most-recently-used-window) (const :tag #9# treemacs-toggle-node) (const :tag #10# treemacs-toggle-node-prefer-tag-visit) (function :tag #11#)) treemacs-tab-action (choice :tag #1# (const :tag #12# treemacs-visit-node-default) (const :tag #14="Same as RET" treemacs-RET-action) (const :tag #2# treemacs-visit-node-no-split) (const :tag #3# treemacs-visit-node-vertical-split) (const :tag #4# treemacs-visit-node-horizontal-split) (const :tag #5# treemacs-visit-node-ace) (const :tag #6# treemacs-visit-node-ace-horizontal-split) (const :tag #7# treemacs-visit-node-ace-vertical-split) (const :tag #8# treemacs-visit-node-in-most-recently-used-window) (const :tag #9# treemacs-toggle-node) (const :tag #10# treemacs-toggle-node-prefer-tag-visit) (function :tag #11#)) treemacs-mouse-action (choice :tag #1# (const :tag #12# treemacs-visit-node-default) (const :tag #13# treemacs-TAB-action) (const :tag #14# treemacs-RET-action) (const :tag #2# treemacs-visit-node-no-split) (const :tag #3# treemacs-visit-node-vertical-split) (const :tag #4# treemacs-visit-node-horizontal-split) (const :tag #5# treemacs-visit-node-ace) (const :tag #6# treemacs-visit-node-ace-horizontal-split) (const :tag #7# treemacs-visit-node-ace-vertical-split) (const :tag #8# treemacs-visit-node-in-most-recently-used-window) (const :tag #9# treemacs-toggle-node) (const :tag #10# treemacs-toggle-node-prefer-tag-visit) (function :tag #11#)) custom-declare-group treemacs nil "Treemacs configuration options." :group :prefix "treemacs-" treemacs-faces "Faces for treemacs' syntax highlighting." faces :link (url-link :tag "Repository" "https://github.com/Alexander-Miller/treemacs") treemacs-git "Customisations for treemacs' git integration." (url-link :tag "Repository" "https://github.com/Alexander-Miller/treemacs") treemacs-hooks "Hooks provided by treemacs." (url-link :tag "Repository" "https://github.com/Alexander-Miller/treemacs") treemacs-follow "Customisations for the behaviour of the treemacs' file and tag following." (url-link :tag "Repository" "https://github.com/Alexander-Miller/treemacs") treemacs-window "Customisations for the behaviour of the treemacs window." (url-link :tag "Repository" "https://github.com/Alexander-Miller/treemacs") custom-declare-variable treemacs-indentation funcall function #[0 "\300\207" [2] 1] "The number of spaces or pixels each level is indented in the file tree.\nIf the value is integer, indentation is created by repeating\n`treemacs-indentation-string'. If the value is a list of form '(INTEGER px),\nindentation will be a space INTEGER pixels wide." (choice (integer :tag "Spaces" :value 2) (list :tag "Pixels" (integer :tag "Pixels" :value 16) (const :tag #17="" px))) treemacs-litter-directories #[0 "\300\207" [("/node_modules" "/.venv" "/.cask")] 1] "List of directories affected by `treemacs-cleanup-litter'.\nEvery item in the list is a regular expression, to be recognised a directory\nmust be matched with `string-match-p'.\n\nRegexp-quoting the items in this list is *not* necessary, the quoting will\nhappen automatically when needed." list treemacs-read-string-input #[0 "\300\207" [from-child-frame] 1] "The function treemacs uses to read user input.\nOnly applies to plaintext input, like when renaming a project, file or\nworkspace.\n\nThere are 2 options:\n - `from-child-frame': will use the `cfrs' package to read input from a small\n child frame pop-up. Only available in GUI frames, otherwise the default\n minibuffer input is used.\n - `from-minibuffer': will read input from the minibuffer, same as baseline\n Emacs." (choice (const :tag "With Child Frame Popup" 'from-child-frame) (const :tag "From the Minibuffer (Emacs Default)" 'from-minibuffer)) treemacs-move-forward-on-expand #[0 "\300\207" [nil] 1] "When non-nil treemacs will move to the first child of an expanded node." boolean treemacs-eldoc-display #[0 "\300\207" [t] 1] "Enables eldoc display of the file path at point.\nRequires eldoc mode to be enabled." treemacs-indentation-string #[0 "\300\207" [#15=" "] 1 #15#] "The string that is for indentation in the file tree.\nIndentation is created by repeating this string `treemacs-indentation' many\ntimes. If `treemacs-indentation' is specified in pixels, this value is only\nused when there is no windowing system available." string treemacs-show-hidden-files #[0 "\300\207" [t] 1] "Dotfiles will be shown if this is set to t and be hidden otherwise." treemacs-show-edit-workspace-help #[0 "\300\207" [t] 1] "When non-nil the workspace-edit buffer will display a short help greeting.\nSee also `treemacs-edit-workspaces'." treemacs-TAB-actions-config #[0 "\300\207" [((root-node-open . treemacs-toggle-node) (root-node-closed . treemacs-toggle-node) (dir-node-open . treemacs-toggle-node) (dir-node-closed . treemacs-toggle-node) (file-node-open . treemacs-toggle-node) (file-node-closed . treemacs-toggle-node) (tag-node-open . treemacs-toggle-node) (tag-node-closed . treemacs-toggle-node) (tag-node . treemacs-visit-node-default))] 1] "Defines the behaviour of `treemacs-TAB-action'.\n\nSee the doc string of `treemacs-RET-actions-config' for a detailed description\nof how this config works and how to modify it." (alist :key-type symbol :value-type treemacs-tab-action) treemacs-doubleclick-actions-config #[0 "\300\207" [((root-node-open . treemacs-toggle-node) (root-node-closed . treemacs-toggle-node) (dir-node-open . treemacs-toggle-node) (dir-node-closed . treemacs-toggle-node) (file-node-open . treemacs-visit-node-default) (file-node-closed . treemacs-visit-node-default) (tag-node-open . treemacs-toggle-node) (tag-node-closed . treemacs-toggle-node) (tag-node . treemacs-visit-node-default))] 1] "Defines the behaviour of `treemacs-doubleclick-action'.\n\nSee the doc string of `treemacs-RET-actions-config' for a detailed description\nof how this config works and how to modify it." (alist :key-type symbol :value-type treemacs-mouse-action) treemacs-default-visit-action #[0 "\300\207" [treemacs-visit-node-no-split] 1] "Defines the behaviour of `treemacs-visit-node-default'." treemacs-RET-actions-config #[0 "\300\207" [((root-node-open . treemacs-toggle-node) (root-node-closed . treemacs-toggle-node) (dir-node-open . treemacs-toggle-node) (dir-node-closed . treemacs-toggle-node) (file-node-open . treemacs-visit-node-default) (file-node-closed . treemacs-visit-node-default) (tag-node-open . treemacs-toggle-node-prefer-tag-visit) (tag-node-closed . treemacs-toggle-node-prefer-tag-visit) (tag-node . treemacs-visit-node-default))] 1] "Defines the behaviour of `treemacs-RET-action'.\n\nEach alist element maps from a button state to the function that should be used\nfor that state. The list of all possible button states is defined in\n`treemacs-valid-button-states'. Possible values are all treemacs-visit-node-*\nfunctions as well as `treemacs-toggle-node' for simple open/close actions,\nthough in general you can use any function that accepts the prefix arg as its\nsingle argument.\n\nTo keep the alist clean changes should not be made directly, but with\n`treemacs-define-RET-action', for example like this:\n(treemacs-define-RET-action 'file-node-closed #'treemacs-visit-node-ace)" (alist :key-type symbol :value-type treemacs-ret-action) treemacs-COLLAPSE-actions-config #[0 "\300\207" [((root-node-open . treemacs-toggle-node) (root-node-closed . treemacs-goto-parent-node) (dir-node-open . treemacs-toggle-node) (dir-node-closed . treemacs-goto-parent-node) (file-node-open . treemacs-toggle-node) (file-node-closed . treemacs-goto-parent-node) (tag-node-open . treemacs-toggle-node) (tag-node-closed . treemacs-goto-parent-node) (tag-node . treemacs-goto-parent-node))] 1] "Defines the behaviour of `treemacs-COLLAPSE-action'.\n\nSee the doc string of `treemacs-RET-actions-config' for a detailed description\nof how this config works and how to modify it." (alist :key-type symbol :value-type treemacs-collapse-action) treemacs-dotfiles-regex #[0 "\300\207" [#16="^\\..+"] 1 #16#] "Files matching this regular expression count as dotfiles." regexp treemacs-sorting #[0 "\300\207" [alphabetic-asc] 1] "Indicates how treemacs will sort its files and directories.\nFiles will still always be shown after directories.\n\nValid values are:\n * `alphabetic-asc',\n * `alphabetic-desc',\n * `alphabetic-case-insensitive-asc',\n * `alphabetic-case-insensitive-desc',\n * `size-asc',\n * `size-desc',\n * `mod-time-asc',\n * `mod-time-desc'\n * a custom function\n\nIn the latter case it must be a function that can be passed to `sort' to sort\nabsolute filepaths. For an example see `treemacs--sort-alphabetic-asc'\n\nNote about performance:\nTreemacs does its best to optimise its performance critical path, it does so\nby doing as little work as possible and producing as little garbage as possible.\nDeciding on the order in which its nodes are inserted is a part of this path.\nAs such certain trade-offs need to be accounted far.\n\nIn plaintext: some sort settings are much slower than others. Alphabetic\nsorting (the default) is fastest and causes no additional overhead (even when\ncompared against foregoing sorting altogether).\n\nModification time sorting takes the middle, being ca. 4x slower than\nalphabetic. Sorting by size is slowest, being ca. 5-6x slower than alphabetic.\nIt also produces the most garbage, making it more like for you to run into a\ngarbage collection pause.\n\nLest these numbers scare you off keep in mind that they will likely have little\nto no effect on your usage of treemacs until you begin frequently refreshing\ntreemacs views containing hundreds or even thousands of nodes." (choice (const alphabetic-asc) (const alphabetic-desc) (const alphabetic-case-insensitive-asc) (const alphabetic-case-insensitive-desc) (const size-asc) (const size-desc) (const mod-time-asc) (const mod-time-desc)) treemacs-ignored-file-predicates #[0 "\301=\203\302\207\303\207" [system-type darwin (treemacs--std-ignore-file-predicate treemacs--mac-ignore-file-predicate) (treemacs--std-ignore-file-predicate)] 2] "List of predicates to test for files and directories ignored by Emacs.\n\nIgnored files will *never* be shown in the treemacs buffer (unlike dotfiles)\nwhose presence is controlled by `treemacs-show-hidden-files').\n\nEach predicate is a function that takes 2 arguments: a file's name and its\nabsolute path and returns t if the file should be ignored and nil otherwise. A\nfile which returns t for *any* function in this list counts as ignored.\n\nBy default this list contains `treemacs--std-ignore-file-predicate' which\nfilters out '.', '..', Emacs' lock files as well temp files created by flycheck,\nand therefore should not be directly overwritten, but added to and removed from\ninstead.\nAdditionally `treemacs--mac-ignore-file-predicate' is also included on\nMac-derived operating systems (when `system-type' is `darwin')." treemacs-pre-file-insert-predicates #[0 "\300\207" [nil] 1] "List of predicates to test for files and directories that shouldn't be shown.\nThe difference between this and `treemacs-ignored-file-predicates' is that the\nfunctions in this list will be called on files just before they would be\nrendered, when the files' git status information is now available. This for\nexample allows to make files ignored by git invisible.\nThe functions in this list are therefore expected to have a different signature:\nThey must take two arguments - a file's absolute path and a hash table that maps\nfiles to their git status. The files' paths are the table's keys, its values\nare characters (and not strings) indicating the file's git condition. The chars\nmap map as follows: (the pattern is derived from 'git status --porcelain')\n\n * M - file is modified\n * U - file is in conflict\n * ? - file is untracked\n * ! - file is ignored\n * A - file is added to index\n * other - file is unchanged\n\nOtherwise the behaviour is the same as `treemacs-ignored-file-predicates', in\nthat any one function returning t for a file means that this file will not\nbe rendered.\n\nSince removing files ignored by git is the most likely use-case treemacs offers\n`treemacs-is-file-git-ignored?' to quickly make this possible." treemacs-file-event-delay #[0 "\300\207" [5000] 1] "How long (in milliseconds) to collect file events before refreshing.\nWhen treemacs receives a file change notification it doesn't immediately refresh\nand instead waits `treemacs-file-event-delay' milliseconds to collect further\nfile change events. This is done so as to avoid refreshing multiple times in a\nshort time.\nSee also `treemacs-filewatch-mode'." integer treemacs-goto-tag-strategy #[0 "\300\207" [refetch-index] 1] "Indicates how to move to a tag when its buffer is dead.\nThe tags in the treemacs view store their position as markers (or overlays if\nsemantic mode is on) pointing to a buffer. If that buffer is killed, or has\nnever really been open, as treemacs kills buffer after fetching their tags if\nthey did no exist before, the stored positions become stale, and treemacs needs\nto use a different method to move to that tag. This variable sets that method.\n\nIts possible values are:\n\n * refetch-index\n Call up the file's imenu index again and use its information to jump.\n * call-xref\n Call `xref-find-definitions' to find the tag.\n * issue-warning\n Just issue a warning that the tag's position pointer is invalid." treemacs-collapse-dirs #[0 "\300\207" [0] 1] "When > 0 treemacs will collapse directories into one when possible.\nA directory is collapsible when its content consists of nothing but another\ndirectory.\n\nThe value determines how many directories can be collapsed at once, both as a\nperformance cap and to prevent too long directory names in the treemacs view.\n\nTo minimise this option's impact on display performance the search for\ndirectories to collapse is done asynchronously in a python script and will thus\nonly work when python installed. The script should work both on python 2 and 3." treemacs-silent-refresh #[0 "\300\207" [nil] 1] "When non-nil a completed refresh will not be announced with a message.\nThis applies to refreshing both manual as well as automatic (due to e.g.\n`treemacs-filewatch-mode').\nTo only disable messages from refreshes induced by filewatch mode use\n`treemacs-silent-filewatch'." treemacs-silent-filewatch #[0 "\300\207" [nil] 1] "When non-nil a refresh due to filewatch mode will cause no log message.\nTo disable all refresh messages use `treemacs-silent-refresh'." treemacs-no-png-images #[0 "\300\207" [nil] 1] "When non-nil treemacs will use TUI string icons even when running in a GUI.\nThe change will apply the next time a treemacs buffer is created." treemacs-expand-after-init #[0 "\300\207" [t] 1] "When non-nil expand the first project after treemacs is first initialised.\nMight be superseded by `treemacs-follow-after-init'." treemacs-expand-added-projects #[0 "\300\207" [t] 1] "When non-nil newly added projects will be expanded." treemacs-recenter-after-project-jump #[0 "\300\207" [always] 1] "Decides when to recenter view after moving between projects.\nSpecifically applies to calling `treemacs-next-project' and\n`treemacs-previous-project'.\n\nPossible values are:\n * nil: never recenter\n * 'always: always recenter\n * 'on-distance: recenter based on `treemacs-recenter-distance'" (choice (const :tag "Always" always) (const :tag "Based on Distance" on-distance) (const :tag "Never" nil)) treemacs-recenter-after-project-expand #[0 "\300\207" [on-visibility] 1] "Decides when to recenter view after expanding a project root node.\n\nPossible values are:\n * nil: never recenter\n * 'always: always recenter\n * 'on-distance: recenter based on `treemacs-recenter-distance'\n * 'on-visibility: recenter only when the newly rendered lines don't fit the\n current screen" (choice (const :tag "Always" always) (const :tag "Based on Distance" on-distance) (const :tag "Based on Visibility" on-visibility) (const :tag "Never" nil)) treemacs-pulse-on-success #[0 "\300\207" [t] 1] "When non-nil treemacs will pulse the current line as a success indicator.\nThis applies to actions like `treemacs-copy-relative-path-at-point'." treemacs-pulse-on-failure #[0 "\300\207" [t] 1] "When non-nil treemacs will pulse the current line as a failure indicator.\nThis applies to actions like treemacs not finding any tags it can show when\n`treemacs-toggle-node' is called on a file node." treemacs-recenter-distance #[0 "\300\207" [0.1] 1] "Minimum distance from a window's top/bottom for treemacs to call `recenter'.\nThis value will apply when any one of the following options is set to\n`on-distance':\n\n * treemacs-recenter-after-tag-follow\n * treemacs-recenter-after-file-follow\n * treemacs-recenter-after-project-jump\n * treemacs-recenter-after-project-expand\n\nIn that case a call to `recenter' will be made when the distance between point\nand the top/bottom of the treemacs window is less then this many lines. The\nvalue is not an absolute line count, but a relative floating-point percentage,\nwith 0.0 being 0% and 1.0 being 100%.\nThis means that, for example, when this variable is set to 0.1 `recenter' will\nbe called within a 10% distance of the treemacs window's top/bottom. For a\nwindow height of 40 lines that means point being within the first or last 4\nlines of the treemacs window.\n\nNote that this does *not* take `scroll-margin' into account." float treemacs-elisp-imenu-expression #[0 "\300\301\302BB\303\304\305BB\306\307\310BB\311\312\313BB\314\315\316BB\314\317\320BB\321\322\323BB\324\325\326BB\327\330\331BB\257 \207" ["Functions" "^\\s-*(\\(?:cl-\\)?\\(?:def\\(?:advice\\|generic\\|method\\|un\\)\\)[[:space:]]+'?\\(?2:\\_<\\(?:\\sw\\|\\s_\\)+\\_>\\)" (2) "Dependencies" "^\\s-*(require[[:space:]]+'?\\(?2:\\_<\\(?:\\sw\\|\\s_\\)+\\_>\\)" (2) "Inline Functions" "^\\s-*(\\(?:cl-\\)?\\(?:def\\(?:ine-inline\\|subst\\)\\)[[:space:]]+'?\\(?2:\\_<\\(?:\\sw\\|\\s_\\)+\\_>\\)" (2) "Customizations" "^\\s-*(defcustom[[:space:]]+'?\\(?2:\\_<\\(?:\\sw\\|\\s_\\)+\\_>\\)" (2) "Types" "\\(?1:\\(?:cl-\\)?defstruct[[:space:]]+\\(?:([[:space:]]*\\)?\\)\\(?2:\\_<\\(?:\\sw\\|\\s_\\)+\\_>\\)" (2) "^\\s-*(\\(?1:\\(?:cl-\\)?defstruct\\(?: (\\)?\\|defclass\\|deftype\\|defgroup\\|define-widget\\|deferror\\)[[:space:]]+'?\\(?2:\\_<\\(?:\\sw\\|\\s_\\)+\\_>\\)" (2) "Variables" "^\\s-*(\\(?:def\\(?:const\\(?:-mode-local\\)?\\|var\\(?:-local\\)?\\)\\)[[:space:]]+'?\\(?2:\\_<\\(?:\\sw\\|\\s_\\)+\\_>\\)" (2) "Macros" "^\\s-*(\\(?:cl-\\)?\\(?:def\\(?:\\(?:ine-compiler-\\)?macro\\)\\)[[:space:]]+'?\\(?2:\\_<\\(?:\\sw\\|\\s_\\)+\\_>\\)" (2) "Faces" "^\\s-*(defface[[:space:]]+'?\\(?2:\\_<\\(?:\\sw\\|\\s_\\)+\\_>\\)" (2)] 11] "The value for `imenu-generic-expression' treemacs uses in elisp buffers.\nMore discriminating than the default as it distinguishes between functions,\ninline functions, macros, faces, variables, customisations and types.\n\nCan be set to nil to use the default value." alist treemacs-persist-file #[0 "\301\302\"\207" [user-emacs-directory expand-file-name ".cache/treemacs-persist"] 3] "Path to the file treemacs uses to persist its state." treemacs-last-error-persist-file #[0 "\301\302\"\207" [user-emacs-directory expand-file-name ".cache/treemacs-persist-at-last-error"] 3] "File that stores the treemacs state as it was during the last load error." treemacs-missing-project-action #[0 "\300\207" [ask] 1] "Action to perform when a persisted project is not found on the disk.\nIf the project is not found, the project can either be kept in the project list,\nor removed from it. If the project is removed, when projects are persisted, the\nmissing project will not appear in the project list next time Emacs is started." (choice (const :tag "Ask whether to remove" ask) (const :tag "Remove without asking" remove) (const :tag "Keep without asking" keep)) treemacs-space-between-root-nodes #[0 "\300\207" [t] 1] "When non-nil treemacs will separate root nodes with an empty line." treemacs-wrap-around #[0 "\300\207" [t] 1] "When non-nil treemacs will wrap around buffer edges when moving between lines." treemacs--fringe-indicator-bitmap #[0 "\300\301!\203\301\302\303\304\305\"\"\207\306\207" [fboundp define-fringe-bitmap treemacs--fringe-indicator-bitmap-default make-vector 200 7 vertical-bar] 5] "The fringe bitmap used by the fringe-indicator minor mode." append (choice) ((const treemacs--fringe-indicator-bitmap-default)) boundp mapcar #[257 "\300D\207" [const] 3 "\n\n(fn SYM)"] treemacs-show-cursor #[0 "\300\207" [nil] 1] "When non-nil treemacs the cursor will remain visible in the treemacs buffer." treemacs-directory-name-transformer #[0 "\300\207" [identity] 1] "Transformer to apply to directory names before rendering for cosmetic effect." treemacs-file-name-transformer #[0 "\300\207" [identity] 1] "Transformer to apply to file names before rendering for cosmetic effect." make-obsolete-variable treemacs-follow-recenter-distance "v2.5" #[0 "\300\207" [0.1] 1] "Minimum distance from the top/bottom for (tag-)follow mode to recenter.\nTreemacs will be calling `recenter' after following a file/tag if the distance\nbetween point and the top/bottom of the treemacs window is less then this many\nlines. The value is not an absolute line count, but a percentage, with 0.0\nbeing 0% and 1.0 being 100%. This means that when this variable is set to 0.1\n`recenter' will be called within a 10% distance of the window top/bottom. For a\nwindow height of 40 lines that means point being within the first or last 4\nlines of the treemacs window.\nWill only take effect if `treemacs-recenter-after-tag-follow' and/or\n`treemacs-recenter-after-file-follow' is non-nil.\n\nNote that this does *not* take `scroll-margin' into account." treemacs-follow-after-init #[0 "\300\207" [nil] 1] "When non-nil find the current file in treemacs after it is first initialised.\nMight supersede `treemacs-expand-after-init'." treemacs-file-follow-delay #[0 "\300\207" [0.2] 1] "Delay in seconds of idle time for treemacs to follow the selected window." number treemacs-tag-follow-delay #[0 "\300\207" [1.5] 1] "Delay in seconds of inactivity for `treemacs-tag-follow-mode' to trigger." treemacs-tag-follow-cleanup #[0 "\300\207" [t] 1] "When non-nil `treemacs-tag-follow-mode' will close file nodes it is leaving.\nWhen jumping between different files this can prevent the view from being\nflooded with their tags." treemacs-recenter-after-file-follow #[0 "\300\207" [nil] 1] "Decides when to recenter view after following a file.\nPossible values are:\n * nil: never recenter\n * 'always: always recenter\n * 'on-distance: recenter based on `treemacs-recenter-distance'" (choice (const :tag "Always" always) (const :tag "Based on Distance" on-distance) (const :tag "Never" nil)) treemacs-recenter-after-tag-follow #[0 "\300\207" [nil] 1] "Decides when to recenter view after following a tag.\nPossible values are:\n * nil: never recenter\n * 'always: always recenter\n * 'on-distance: recenter based on `treemacs-recenter-distance'" (choice (const :tag "Always" always) (const :tag "Based on Distance" on-distance) (const :tag "Never" nil)) treemacs-project-follow-cleanup #[0 "\300\207" [nil] 1] "When non-nil `treemacs-follow-mode' will close projects it is leaving.\nThis means that treemacs will make sure that only the currently followed project\nis expanded while all others will remain collapsed.\n\nSetting this to t might lead to noticeable slowdowns, at least when\n`treemacs-git-mode' is enabled, since constantly expanding an entire project is\nfairly expensive." treemacs-deferred-git-apply-delay #[0 "\300\207" [0.5] 1] "Delay in seconds of idle time before git fontification is applied.\nThis is only relevant when using the deferred variant of git-mode." treemacs-max-git-entries #[0 "\300\207" [5000] 1] "Maximum number of git status entries treemacs will process.\nInformation for entries that number will be silently ignored. The 'entries'\nrefer to the lines output by `git status --porcelain --ignored'. The limit does\nnot apply to the simple `treemacs-git-mode.'" treemacs-python-executable #[0 "\300 \207" [treemacs--find-python3] 1] "The python executable used by treemacs.\nAn asynchronous python process is used in two optional features:\n`treemacs-collapse-dirs' and the extended variant of `treemacs-git-mode'.\n\nThere is generally only one reason to change this value: an extended\n`treemacs-git-mode' requires python3 to work. If the default python executable\nis pointing to python2 this config variable can be used to direct treemacs to\nthe python3 binary." treemacs-git-command-pipe #[0 "\300\207" [#17#] 1 #17#] "Text to be appended to treemacs' git command.\nWith `treemacs-git-mode' the command `git status --porcelain --ignored .' is\nrun to fetch a directory's git information. The content of this variable will\nbe appended to this git command. This might be useful in cases when the output\nproduced by git is so large that it leads to palpable delays, while setting\n`treemacs-max-git-entries' leads to loss of information. In such a scenario an\nadditional filter statement (for example `| grep -v \"/vendor_dir/\"') can be\nused to reduce the size of the output to a manageable volume for treemacs." treemacs-is-never-other-window #[0 "\300\207" [nil] 1] "When non-nil treemacs will use the `no-other-window' parameter.\n\nIn practice it means that treemacs will become invisible to commands like\n`other-window' or `evil-window-left'." treemacs-width-is-initially-locked #[0 "\300\207" [t] 1] "Indicates whether the width of the treemacs window is initially locked.\nA locked width means that changes it is only possible with the commands\n`treemacs-set-width' or `treemacs-toggle-fixed-width'." treemacs-window-background-color #[0 "\300\207" [nil] 1] "Custom background colours for the treemacs window.\nValue must be a cons cell consisting of two colours: first the background of the\ntreemacs window proper, then a second colour for treemacs' `hl-line' overlay\nmarking the selected line." (cons color color) treemacs-width #[0 "\300\207" [35] 1] "Width of the treemacs window." treemacs-display-in-side-window #[0 "\300\207" [t] 1] "When non-nil treemacs will use a dedicated side-window.\nOn the one hand this will alleviate issues of unequally sized window splits when\ntreemacs is visible (since Emacs does not quite understand that treemacs has\nfixed window size). On the other hand it may lead to issues with other packages\nlike shell-pop, as making treemacs a side-window renders it un-splittable." treemacs-no-delete-other-windows #[0 "\300\207" [t] 1] "When non-nil treemacs will have the `no-delete-other-windows' parameter.\nThis parameter prevents the treemacs window from closing when calling\n`delete-other-windows' or when a command like `magit-status' would launch a new\nfull-screen buffer.\nNote that treemacs has its own delete-windows command with\n`treemacs-delete-other-windows' that behaves the same as `delete-other-windows',\nbut won't close treemacs itself.\nThis parameter was only introduced in Emacs 26. On Emacs 25 its effect is\nincluded in `treemacs-display-in-side-window'." treemacs-user-header-line-format #[0 "\300\207" [nil] 1] "The header line used in the treemacs window.\nCan be set either to `treemacs-header-buttons-format' or any one of its\nconstituent parts, or any other value acceptable for `header-line-format'." treemacs-position #[0 "\300\207" [left] 1] "Position of treemacs buffer.\n\nValid values are\n * left,\n * right." (choice (const left) (const right)) treemacs-create-project-functions #[0 "\300\207" [nil] 1] "Hooks to run whenever a project is created.\nWill be called with the new project as the sole argument." hook treemacs-create-file-functions #[0 "\300\207" [nil] 1] "Hooks to run whenever a file or directory is created.\nApplies only when using `treemacs-create-file' or `treemacs-create-dir'.\nWill be called with the created file's or dir's path as the sole argument." treemacs-delete-file-functions #[0 "\300\207" [nil] 1] "Hooks to run whenever a file or directory is deleted.\nApplies only when using `treemacs-delete'. Will be called with the created\nfile's or dir's path as the sole argument." treemacs-rename-file-functions #[0 "\300\207" [nil] 1] "Hooks to run whenever a file or directory is renamed.\n\nApplies only when using `treemacs-rename'. Will be called with 2 arguments: the\nfile's old name, and the file's new name, both as absolute paths." treemacs-move-file-functions #[0 "\300\207" [nil] 1] "Hooks to run whenever a file or directory is moved.\n\nApplies only when using `treemacs-move-file'. Will be called with 2 arguments:\nthe file's old location, and the file's new location, both as absolute paths." treemacs-copy-file-functions #[0 "\300\207" [nil] 1] "Hooks to run whenever a file or directory is copied.\n\nApplies only when using `treemacs-copy-file'. Will be called with 2 arguments:\nthe original file's location, and the copy's location, both as absolute paths." treemacs-delete-project-functions #[0 "\300\207" [nil] 1] "Hooks to run whenever a project is deleted.\nWill be called with the deleted project as the sole argument *after* it has been\ndeleted." treemacs-rename-project-functions #[0 "\300\207" [nil] 1] "Hooks to run whenever a project is renamed.\nWill be called with the renamed project and the old name as its arguments." treemacs-create-workspace-functions #[0 "\300\207" [nil] 1] "Hooks to run whenever a workspace is created.\nWill be called with the new workspace as the sole argument." treemacs-delete-workspace-functions #[0 "\300\207" [nil] 1] "Hooks to run whenever a workspace is deleted.\nWill be called with the deleted workspace as the sole argument *after* it has\nbeen deleted." treemacs-rename-workspace-functions #[0 "\300\207" [nil] 1] "Hooks to run whenever a workspace is renamed.\nWill be called with the renamed workspace and the old name as its arguments." treemacs-switch-workspace-hook #[0 "\300\207" [nil] 1] "Hooks to run whenever the workspace is changed.\nThe current workspace will be available as `treemacs-current-workspace'." treemacs-workspace-edit-hook #[0 "\300\207" [nil] 1] "Hooks to run whenever the entire workspace layout has been rebuilt.\nThis hook runs after `treemacs-finish-edit' has been called. After such an edit\nany number (including zero) of workspaces and projects may have been changed or\ncreated or deleted." treemacs-bookmark-title-template #[0 "\300\207" [#18="Treemacs - ${project}: ${label}"] 1 #18#] "Template for default bookmark titles.\n\nThe following replacements are available:\n * ${project}: The label of the project.\n * ${label}: Label of the current button.\n * ${label:N} Label of the Nth parent.\n If the parent does not exist, an empty string.\n * ${label-path}: Label path of the button.\n For example, \"Project/directory/file.txt\"\n * ${label-path:N}: Last N components of the label path.\n * ${file-path}: Absolute file-system path of the node.\n If the node is a top-level extension node, this expands to an empty string.\n If the node is a directory or or project extension, the path of its parent.\n * ${file-path:N}: Last N components of the filesystem path." treemacs-pre-refresh-hook #[0 "\300\207" [nil] 1] "Hooks to run right before the refresh process for a project kicks off.\nDuring the refresh the project is effectively collapsed and then expanded again.\nThis hook runs *before* that happens. It runs with treemacs as the\n`current-buffer' and receives as its arguments all the information that treemacs\ncollects for its refresh process:\n * The project being refreshed (might be 'all)\n * The current screen-line number (can be nil).\n * The current button. Might be nil if point is on the header line.\n * The current button's state. See also `treemacs-valid-button-states'. Is nil\n if the current button is nil.\n * The nearest file path, as collected with `treemacs--nearest-path'. Is nil if\n point is on the header.\n * The current button's tag path. Is nil if the current button is nil." treemacs-post-refresh-hook #[0 "\300\207" [nil] 1] "Hooks to run right before the refresh process is finished off.\nDuring the refresh the project is effectively collapsed and then expanded again.\nThis hook runs *after* that has happened. It runs with treemacs as the\n`current-buffer' and receives as its arguments all the information that treemacs\ncollects for its refresh process. Note that these values were collected at the\nstart of the refresh, and may now be longer valid (for example the current\nbutton's position will be wrong, even if it wasn't deleted outright):\n * The project being refreshed (might be 'all)\n * The current screen-line number (can be nil).\n * The current button. Might be nil if point was on the header line.\n * The current button's state. See also `treemacs-valid-button-states'. Is nil\n if the current button is nil.\n * The nearest file path, as collected with `treemacs--nearest-path'. Is nil if\n point was on the header.\n * The current button's tag path. Is nil if the current button is nil." treemacs-quit-hook #[0 "\300\207" [nil] 1] "Hooks to run when `treemacs-quit' is called.\nThe hooks will be run *after* the treemacs buffer was buried." treemacs-kill-hook #[0 "\300\207" [nil] 1] "Hooks to run when `treemacs-kill-buffer' is called.\nThe hooks will be run *after* the treemacs buffer was destroyed." defvaralias treemacs-select-hook treemacs-select-functions (saved-value saved-variable-comment) put "2.9" #[0 "\300\207" [nil] 1] "Hooks to run when the treemacs window is selected.\nThe hook should accept one argument which is a symbol describing treemacs'\nvisibility before the select was invoked, as it would have been returned by\n`treemacs-current-visibility'.\n\nThis hook only applies to commands like `treemacs' or `treemacs-select-window',\nnot general window selection commands like `other-window'." treemacs-workspace-first-found-functions #[0 "\300\207" [nil] 1] "Hooks that run when treemacs finds a workspace for the first time.\nHooks are expected to take 2 arguments: the workspace that was found and the\ncurrent scope (frame or perspective) it was found for."] 12) (defconst treemacs-last-period-regex-value "\\.[^.]*\\'") (defconst treemacs-first-period-regex-value "\\.") (byte-code "\302\303\304\305\306DD\307\310\311\312\313\314\315\316F\314\315\317 FE&\210\302\320\304\305\321DD\322\312\323\310\311&\210\302\324\304\305\325DD\326\312\327\310\311&\210\302\330\304\305\331DD\332\312\333\310\311&\210\334\335!\207" [treemacs-first-period-regex-value treemacs-last-period-regex-value custom-declare-variable treemacs-file-extension-regex funcall function #[0 "\207" [treemacs-last-period-regex-value] 1] "Decides how treemacs determines a file's extension.\nThere are 2 options:\n - An extension should be everything past the *last* period of the file name.\n In this case this should be set to `treemacs-last-period-regex-value'\n - An extension should be everything past the *first* period of the file name.\n In this case this should be set to `treemacs-first-period-regex-value'" :group treemacs :type choice const :tag "Text after first period" "Text after last period" treemacs-user-mode-line-format #[0 "\300\207" [nil] 1] "Custom mode line format to be used in `treemacs-mode'.\n\nIf nil treemacs will look for default value provided by `spaceline', `moody'\nor `doom-modeline' in that order. Finally, if none of these packages is\navailable \"Treemacs\" text will be displayed.\n\nSetting this to `none' will disable the modeline.\n\nFor more specific information about formatting mode line check\n`mode-line-format'." sexp treemacs-workspace-switch-cleanup #[0 "\300\207" [nil] 1] "Indicates which, if any, buffers should be deleted on a workspace switch.\nOnly applies when interactively calling `treemacs-switch-workspace'.\n\nValid values are\n - nil to do nothing\n - `files' to delete buffers visiting files\n - `all' to delete all buffers other than treemacs and the scratch buffer\n\nIn any case treemacs itself and the scratch and messages buffer will be\nunaffected." (choice (const :tag "All Buffers" all) (const :tag "Only File Buffers" files) (const :tag "None" nil)) treemacs-imenu-scope #[0 "\300\207" [everything] 1] "Determines which items treemacs' imenu function will collect.\nThere are 2 options:\n - `everything' will collect entries from every project in the workspace.\n - `current-project' will only gather the index for the project at point." (choice (const :tag "Everything" everything) (const :tag "Current Project Only" current-project)) provide treemacs-customization] 13)