| 
					
				 | 
			
			
				@@ -22496,15 +22496,25 @@ non-nil." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 (defun org-insert-comment () 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   "Insert an empty comment above current line. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-If the line is empty, insert comment at its beginning." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  (if (org-in-src-block-p t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+If the line is empty, insert comment at its beginning.  When 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+point is within a source block, comment according to the related 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+major mode." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  (if (let ((element (org-element-at-point))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	(and (eq (org-element-type element) 'src-block) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	     (< (save-excursion 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		  (goto-char (org-element-property :post-affiliated element)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		  (line-end-position)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		(point)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	     (> (save-excursion 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		  (goto-char (org-element-property :end element)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		  (skip-chars-backward " \r\t\n") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		  (line-beginning-position)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		(point)))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       (progn 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	(require 'ob-core) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	(org-babel-do-in-edit-buffer 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	 (call-interactively #'comment-dwim))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	(org-babel-do-in-edit-buffer (call-interactively #'comment-dwim))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     (beginning-of-line) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    (if (looking-at "\\s-*$") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	(delete-region (point) (point-at-eol)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    (if (looking-at "\\s-*$") (delete-region (point) (point-at-eol)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       (open-line 1)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     (org-indent-line) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     (insert "# "))) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -22513,70 +22523,70 @@ If the line is empty, insert comment at its beginning." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 (defun org-comment-or-uncomment-region (beg end &rest ignore) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   "Comment or uncomment each non-blank line in the region. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 Uncomment each non-blank line between BEG and END if it only 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-contains commented lines.  Otherwise, comment them." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  (let* ((pt (point-marker)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	 (head (and (org-in-src-block-p t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		    (require 'ob-core) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		    (org-babel-where-is-src-block-head))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	 (foot (and head 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		    (save-excursion 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		      (goto-char head) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		      (looking-at org-babel-src-block-regexp) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		      (goto-char (match-end 0)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		      (point-at-bol))))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    (if (and head foot 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	     (> beg head) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	     (< end foot)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	(org-babel-do-in-edit-buffer 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	 (call-interactively #'comment-dwim)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      (save-restriction 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	;; Restrict region 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	(narrow-to-region (save-excursion (goto-char beg) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					  (skip-chars-forward " \r\t\n" end) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					  (line-beginning-position)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			  (save-excursion (goto-char end) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					  (skip-chars-backward " \r\t\n" beg) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					  (line-end-position))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	(let ((uncommentp 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	       ;; UNCOMMENTP is non-nil when every non blank line between 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	       ;; BEG and END is a comment. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	       (save-excursion 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		 (goto-char (point-min)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		 (while (and (not (eobp)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			     (let ((element (org-element-at-point))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			       (and (eq (org-element-type element) 'comment) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				    (goto-char (min (point-max) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						    (org-element-property 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						     :end element))))))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		 (eobp)))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	  (if uncommentp 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	      ;; Only blank lines and comments in region: uncomment it. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	      (save-excursion 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		(goto-char (point-min)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		(while (not (eobp)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		  (when (looking-at "[ \t]*\\(#\\(?: \\|$\\)\\)") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		    (replace-match "" nil nil nil 1)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		  (forward-line))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	    ;; Comment each line in region. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	    (let ((min-indent (point-max))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	      ;; First find the minimum indentation across all lines. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	      (save-excursion 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		(goto-char (point-min)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		(while (and (not (eobp)) (not (zerop min-indent))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		  (unless (looking-at "[ \t]*$") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		    (setq min-indent (min min-indent (current-indentation)))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		  (forward-line))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	      ;; Then loop over all lines. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	      (save-excursion 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		(goto-char (point-min)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		(while (not (eobp)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		  (unless (and (not comment-empty-lines) (looking-at "[ \t]*$")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		    ;; Don't get fooled by invisible text (e.g. link path) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		    ;; when moving to column MIN-INDENT. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		    (let ((buffer-invisibility-spec nil)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		      (org-move-to-column min-indent t)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		    (insert comment-start)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		  (forward-line)))))))))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+contains commented lines.  Otherwise, comment them.  If region is 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+strictly within a source block, use appropriate comment syntax." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  (if (let ((element (org-element-at-point))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	(and (eq (org-element-type element) 'src-block) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	     (< (save-excursion 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		  (goto-char (org-element-property :post-affiliated element)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		  (line-end-position)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		beg) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	     (>= (save-excursion 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		   (goto-char (org-element-property :end element)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		   (skip-chars-backward " \r\t\n") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		   (line-beginning-position)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		 end))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      (progn 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	(require 'ob-core) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	(org-babel-do-in-edit-buffer (call-interactively #'comment-dwim))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    (save-restriction 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      ;; Restrict region 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      (narrow-to-region (save-excursion (goto-char beg) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					(skip-chars-forward " \r\t\n" end) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					(line-beginning-position)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			(save-excursion (goto-char end) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					(skip-chars-backward " \r\t\n" beg) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					(line-end-position))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      (let ((uncommentp 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	     ;; UNCOMMENTP is non-nil when every non blank line between 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	     ;; BEG and END is a comment. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	     (save-excursion 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	       (goto-char (point-min)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	       (while (and (not (eobp)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			   (let ((element (org-element-at-point))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			     (and (eq (org-element-type element) 'comment) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				  (goto-char (min (point-max) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						  (org-element-property 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						   :end element))))))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	       (eobp)))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	(if uncommentp 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	    ;; Only blank lines and comments in region: uncomment it. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	    (save-excursion 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	      (goto-char (point-min)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	      (while (not (eobp)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		(when (looking-at "[ \t]*\\(#\\(?: \\|$\\)\\)") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		  (replace-match "" nil nil nil 1)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		(forward-line))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	  ;; Comment each line in region. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	  (let ((min-indent (point-max))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	    ;; First find the minimum indentation across all lines. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	    (save-excursion 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	      (goto-char (point-min)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	      (while (and (not (eobp)) (not (zerop min-indent))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		(unless (looking-at "[ \t]*$") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		  (setq min-indent (min min-indent (current-indentation)))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		(forward-line))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	    ;; Then loop over all lines. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	    (save-excursion 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	      (goto-char (point-min)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	      (while (not (eobp)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		(unless (and (not comment-empty-lines) (looking-at "[ \t]*$")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		  ;; Don't get fooled by invisible text (e.g. link path) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		  ;; when moving to column MIN-INDENT. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		  (let ((buffer-invisibility-spec nil)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		    (org-move-to-column min-indent t)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		  (insert comment-start)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		(forward-line))))))))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ;;; Planning 
			 |