Function: treemacs--create-branch--inliner

treemacs--create-branch--inliner is a function defined in treemacs-rendering.el.

Signature

(treemacs--create-branch--inliner INLINE--FORM ROOT DEPTH GIT-FUTURE FLATTEN-FUTURE &optional PARENT)

Source Code

;; Defined in ~/.emacs.d/elpa/treemacs-20251226.1307/treemacs-rendering.el
;; Closure converted to defun by helpful.
(defun treemacs--create-branch--inliner
    (inline--form root depth git-future flatten-future &optional parent)
  (ignore inline--form)
  (catch 'inline--just-use
    (let*
	((exp root)
	 (root
	  (if
	      (macroexp-copyable-p exp)
	      exp
	    (make-symbol "root")))
	 (body
	  (let*
	      ((exp depth)
	       (depth
		(if
		    (macroexp-copyable-p exp)
		    exp
		  (make-symbol "depth")))
	       (body
		(let*
		    ((exp git-future)
		     (git-future
		      (if
			  (macroexp-copyable-p exp)
			  exp
			(make-symbol "git-future")))
		     (body
		      (let*
			  ((exp flatten-future)
			   (flatten-future
			    (if
				(macroexp-copyable-p exp)
				exp
			      (make-symbol "flatten-future")))
			   (body
			    (let*
				((exp parent)
				 (parent
				  (if
				      (macroexp-copyable-p exp)
				      exp
				    (make-symbol "parent")))
				 (body
				  (list 'save-excursion
					(list 'let*
					      (list
					       (list 'dirs-and-files
						     (list 'treemacs--get-dir-content root))
					       (list 'dirs
						     (list 'car 'dirs-and-files))
					       (list 'files
						     (list 'cadr 'dirs-and-files))
					       (list 'parent-node
						     (list 'treemacs-find-in-dom root))
					       (list 'dir-dom-nodes)
					       (list 'file-dom-nodes)
					       (list 'git-info)
					       (list 'file-strings)
					       (list 'dir-strings))
					      (list 'setq 'dir-strings
						    (list 'treemacs--create-buttons :nodes 'dirs :depth depth :node-name 'node :node-action
							  (list 'treemacs--create-dir-button-strings 'node 'prefix parent depth)))
					      (list 'setq 'file-strings
						    (list 'treemacs--create-buttons :nodes 'files :depth depth :node-name 'node :node-action
							  (list 'treemacs--create-file-button-strings 'node 'prefix parent depth)))
					      (list 'end-of-line)
					      (list 'pcase 'treemacs--git-mode
						    (list
						     (list 'or
							   (list 'quote 'simple)
							   (list 'quote 'extended))
						     (list 'setf 'git-info
							   (list 'treemacs--get-or-parse-git-result git-future))
						     (list 'ht-set! 'treemacs--git-cache root 'git-info))
						    (list
						     (list 'quote 'deferred)
						     (list 'setf 'git-info
							   (list 'or
								 (list 'ht-get 'treemacs--git-cache root)
								 'treemacs--empty-table)))
						    (list '_
							  (list 'setf 'git-info 'treemacs--empty-table)))
					      (list 'run-with-timer 0.5 nil
						    (list 'function 'treemacs--apply-annotations-deferred)
						    parent root
						    (list 'current-buffer)
						    git-future)
					      (list 'if 'treemacs-pre-file-insert-predicates
						    (list 'progn
							  (list '-let
								[result nil]
								(list 'while 'file-strings
								      (list 'let*
									    (list
									     (list 'prefix
										   (list 'car 'file-strings))
									     (list 'icon
										   (list 'cadr 'file-strings))
									     (list 'filename
										   (list 'caddr 'file-strings))
									     (list 'filepath
										   (list 'concat root "/" 'filename)))
									    (list 'unless
										  (list '--any?
											(list 'funcall 'it 'filepath 'git-info)
											'treemacs-pre-file-insert-predicates)
										  (list 'setq 'result
											(list 'cons 'filename
											      (list 'cons 'icon
												    (list 'cons 'prefix 'result))))
										  (list 'push
											(list 'treemacs-dom-node->create! :parent 'parent-node :key 'filepath)
											'file-dom-nodes)))
								      (list 'setq 'file-strings
									    (list 'cdddr 'file-strings)))
								(list 'setq 'file-strings
								      (list 'nreverse 'result)))
							  (list '-let
								[result nil]
								(list 'while 'dir-strings
								      (list 'let*
									    (list
									     (list 'prefix
										   (list 'car 'dir-strings))
									     (list 'icon
										   (list 'cadr 'dir-strings))
									     (list 'dirname
										   (list 'caddr 'dir-strings))
									     (list 'dirpath
										   (list 'concat root "/" 'dirname)))
									    (list 'unless
										  (list '--any?
											(list 'funcall 'it 'dirpath 'git-info)
											'treemacs-pre-file-insert-predicates)
										  (list 'setq 'result
											(list 'cons 'dirname
											      (list 'cons 'icon
												    (list 'cons 'prefix 'result))))
										  (list 'push
											(list 'treemacs-dom-node->create! :parent 'parent-node :key 'dirpath)
											'dir-dom-nodes)))
								      (list 'setq 'dir-strings
									    (list 'cdddr 'dir-strings)))
								(list 'setq 'dir-strings
								      (list 'nreverse 'result))))
						    (list 'setf 'file-dom-nodes
							  (list '--map
								(list 'treemacs-dom-node->create! :parent 'parent-node :key 'it)
								'files)
							  'dir-dom-nodes
							  (list '--map
								(list 'treemacs-dom-node->create! :parent 'parent-node :key 'it)
								'dirs)))
					      (list 'setf
						    (list 'treemacs-dom-node->children 'parent-node)
						    (list 'nconc 'dir-dom-nodes 'file-dom-nodes
							  (list 'treemacs-dom-node->children 'parent-node)))
					      (list 'dolist
						    (list 'it
							  (list 'treemacs-dom-node->children 'parent-node))
						    (list 'treemacs-dom-node->insert-into-dom! 'it))
					      (list 'setf 'dir-strings
						    (list 'treemacs--inplace-map-when-unrolled 'dir-strings 3
							  (list '-if-let*
								(list
								 (list 'ann
								       (list 'treemacs-get-annotation
									     (list 'concat root "/" 'it)))
								 (list 'face
								       (list 'treemacs-annotation->face-value 'ann)))
								(list 'progn
								      (list 'put-text-property 0
									    (list 'length 'it)
									    (list 'quote 'face)
									    'face 'it)
								      (list 'concat 'it
									    (list 'treemacs-annotation->suffix-value 'ann)))
								(list 'put-text-property 0
								      (list 'length 'it)
								      (list 'quote 'face)
								      (list 'quote 'treemacs-directory-face)
								      'it)
								'it)))
					      (list 'insert
						    (list 'apply
							  (list 'function 'concat)
							  'dir-strings))
					      (list 'end-of-line)
					      (list 'setf 'file-strings
						    (list 'treemacs--inplace-map-when-unrolled 'file-strings 3
							  (list '-if-let*
								(list
								 (list 'ann
								       (list 'treemacs-get-annotation
									     (list 'concat root "/" 'it)))
								 (list 'face
								       (list 'treemacs-annotation->face-value 'ann)))
								(list 'progn
								      (list 'put-text-property 0
									    (list 'length 'it)
									    (list 'quote 'face)
									    'face 'it)
								      (list 'concat 'it
									    (list 'treemacs-annotation->suffix-value 'ann)))
								(list 'put-text-property 0
								      (list 'length 'it)
								      (list 'quote 'face)
								      (list 'quote 'treemacs-git-unmodified-face)
								      'it)
								'it)))
					      (list 'insert
						    (list 'apply
							  (list 'function 'concat)
							  'file-strings))
					      (list 'save-excursion
						    (list 'treemacs--flatten-dirs
							  (list 'treemacs--parse-flattened-dirs root flatten-future))
						    (list 'treemacs--reentry root git-future flatten-future))
					      (list 'with-no-warnings
						    (list 'line-end-position))))))
			      (if
				  (eq parent exp)
				  body
				(macroexp-let*
				 (list
				  (list parent exp))
				 body)))))
			(if
			    (eq flatten-future exp)
			    body
			  (macroexp-let*
			   (list
			    (list flatten-future exp))
			   body)))))
		  (if
		      (eq git-future exp)
		      body
		    (macroexp-let*
		     (list
		      (list git-future exp))
		     body)))))
	    (if
		(eq depth exp)
		body
	      (macroexp-let*
	       (list
		(list depth exp))
	       body)))))
      (if
	  (eq root exp)
	  body
	(macroexp-let*
	 (list
	  (list root exp))
	 body)))))