add doc-comment
This commit is contained in:
		
							parent
							
								
									670bf2781b
								
							
						
					
					
						commit
						aa1dec6d9e
					
				
							
								
								
									
										28
									
								
								.emacs
								
								
								
								
							
							
						
						
									
										28
									
								
								.emacs
								
								
								
								
							| 
						 | 
					@ -117,6 +117,33 @@
 | 
				
			||||||
                  (point))))
 | 
					                  (point))))
 | 
				
			||||||
    (comment-or-uncomment-region start end)))
 | 
					    (comment-or-uncomment-region start end)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defun camel-case-to-spaces (string)
 | 
				
			||||||
 | 
					  "Convert a camel-cased STRING to a string with spaces between words and capitalize only the first word."
 | 
				
			||||||
 | 
					  (let* ((case-fold-search nil)  ; Ensure case-sensitive matching
 | 
				
			||||||
 | 
						 (words (split-string (replace-regexp-in-string "\\([a-z]\\)\\([A-Z]\\)" "\\1 \\2" string) " "))
 | 
				
			||||||
 | 
						 (first-word (car words))
 | 
				
			||||||
 | 
						 (rest-words (mapcar 'downcase (cdr words)))
 | 
				
			||||||
 | 
						 (result (concat (capitalize first-word) " " (mapconcat 'identity rest-words " "))))
 | 
				
			||||||
 | 
					    result))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defun doc-comment ()
 | 
				
			||||||
 | 
					  (interactive)
 | 
				
			||||||
 | 
					  "Insert a CPP documentation comment, at the beginning of the current line
 | 
				
			||||||
 | 
					and position the cursor inside the comment. Additionally insert the word under the cursor since most of our comments are just the name of the function anyways."
 | 
				
			||||||
 | 
					  (princ "doc-comment")
 | 
				
			||||||
 | 
					  (let* ((bounds (bounds-of-thing-at-point 'word))
 | 
				
			||||||
 | 
						 (word (buffer-substring-no-properties (car bounds) (cdr bounds))))
 | 
				
			||||||
 | 
					    (beginning-of-line)
 | 
				
			||||||
 | 
					    (open-line 1)
 | 
				
			||||||
 | 
					    (indent-according-to-mode)
 | 
				
			||||||
 | 
					    (let* ((indentation (current-column)))
 | 
				
			||||||
 | 
						(insert "/**\n")
 | 
				
			||||||
 | 
						(indent-to indentation)
 | 
				
			||||||
 | 
						(insert (concat " * " (camel-case-to-spaces word) ".\n"))
 | 
				
			||||||
 | 
						(indent-to indentation)
 | 
				
			||||||
 | 
						(insert " */")
 | 
				
			||||||
 | 
						(end-of-line 0))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(use-package evil
 | 
					(use-package evil
 | 
				
			||||||
  :ensure t
 | 
					  :ensure t
 | 
				
			||||||
  :init
 | 
					  :init
 | 
				
			||||||
| 
						 | 
					@ -140,6 +167,7 @@
 | 
				
			||||||
  (define-key evil-normal-state-map (kbd "C-x l") 'list-buffers)
 | 
					  (define-key evil-normal-state-map (kbd "C-x l") 'list-buffers)
 | 
				
			||||||
  (define-key evil-normal-state-map (kbd "C-M-u") 'eval-buffer)
 | 
					  (define-key evil-normal-state-map (kbd "C-M-u") 'eval-buffer)
 | 
				
			||||||
  (define-key evil-normal-state-map (kbd "C-M-p") 'compile)
 | 
					  (define-key evil-normal-state-map (kbd "C-M-p") 'compile)
 | 
				
			||||||
 | 
					  (define-key evil-normal-state-map (kbd "C-M-k") 'compile)
 | 
				
			||||||
  (define-key evil-normal-state-map (kbd "M-/") 'dabbrev-expand)
 | 
					  (define-key evil-normal-state-map (kbd "M-/") 'dabbrev-expand)
 | 
				
			||||||
  (define-key evil-normal-state-map (kbd "C-,") 'move-to-previous-window)
 | 
					  (define-key evil-normal-state-map (kbd "C-,") 'move-to-previous-window)
 | 
				
			||||||
  (define-key evil-normal-state-map (kbd "C-.") 'move-to-next-window)
 | 
					  (define-key evil-normal-state-map (kbd "C-.") 'move-to-next-window)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue