Function: treemacs--do-apply-annotation--inliner

treemacs--do-apply-annotation--inliner is a function defined in treemacs-annotations.el.

Signature

(treemacs--do-apply-annotation--inliner INLINE--FORM BTN GIT-FACE)

Source Code

;; Defined in ~/.emacs.d/elpa/treemacs-20251226.1307/treemacs-annotations.el
;; Closure converted to defun by helpful.
(defun treemacs--do-apply-annotation--inliner
    (inline--form btn git-face)
  (ignore inline--form)
  (catch 'inline--just-use
    (let*
	((exp btn)
	 (btn
	  (if
	      (macroexp-copyable-p exp)
	      exp
	    (make-symbol "btn")))
	 (body
	  (let*
	      ((exp git-face)
	       (git-face
		(if
		    (macroexp-copyable-p exp)
		    exp
		  (make-symbol "git-face")))
	       (body
		(list 'let*
		      (list
		       (list 'path
			     (list 'treemacs-button-get btn :path))
		       (list 'ann
			     (list 'treemacs-get-annotation 'path))
		       (list 'btn-start
			     (list 'treemacs-button-start btn))
		       (list 'btn-end
			     (list 'treemacs-button-end btn)))
		      (list 'goto-char btn)
		      (list 'goto-char
			    (list 'or
				  (list 'next-single-property-change btn
					(list 'quote 'treemacs-suffix-annotation)
					(list 'current-buffer)
					(list 'line-end-position))
				  'btn-end))
		      (list 'delete-region
			    (list 'point)
			    (list 'line-end-position))
		      (list 'if
			    (list 'null 'ann)
			    (list 'when git-face
				  (list 'put-text-property 'btn-start 'btn-end
					(list 'quote 'face)
					git-face)
				  (list 'ht-set! 'treemacs--annotation-store 'path
					(list 'treemacs-annotation->create! :git-face git-face :face-value git-face)))
			    (list 'let
				  (list
				   (list 'face-value
					 (list 'treemacs-annotation->face-value 'ann))
				   (list 'suffix-value
					 (list 'treemacs-annotation->suffix-value 'ann))
				   (list 'faces
					 (list 'treemacs-annotation->face 'ann))
				   (list 'old-git-face
					 (list 'treemacs-annotation->git-face 'ann)))
				  (list 'let
					(list
					 (list 'new-face-value
					       (list 'or
						     (list 'cond
							   (list
							    (list 'and git-face
								  (list 'not
									(list 'equal git-face 'old-git-face)))
							    (list 'append
								  (list 'mapcar
									(list 'function 'cdr)
									'faces)
								  (list 'list git-face)))
							   (list
							    (list 'and 'old-git-face
								  (list 'null git-face))
							    (list 'mapcar
								  (list 'function 'cdr)
								  'faces))
							   (list t 'face-value))
						     (list 'treemacs-button-get btn :default-face))))
					(list 'setf
					      (list 'treemacs-annotation->face-value 'ann)
					      'new-face-value
					      (list 'treemacs-annotation->git-face 'ann)
					      git-face)
					(list 'put-text-property 'btn-start 'btn-end
					      (list 'quote 'face)
					      'new-face-value))
				  (list 'when 'suffix-value
					(list 'insert 'suffix-value)))))))
	    (if
		(eq git-face exp)
		body
	      (macroexp-let*
	       (list
		(list git-face exp))
	       body)))))
      (if
	  (eq btn exp)
	  body
	(macroexp-let*
	 (list
	  (list btn exp))
	 body)))))