Handle vc-display-status being nil.
				
					
				
			This commit is contained in:
		
							parent
							
								
									58e85c8150
								
							
						
					
					
						commit
						b1028ce61a
					
				
							
								
								
									
										76
									
								
								mood-line.el
									
									
									
									
									
								
							
							
						
						
									
										76
									
								
								mood-line.el
									
									
									
									
									
								
							| @ -434,43 +434,55 @@ Modal modes checked, in order: `evil-mode', `meow-mode', `god-mode'." | ||||
| 
 | ||||
| (defvar-local mood-line--vc-text nil) | ||||
| 
 | ||||
| (defun mood-line--vc-branch () | ||||
|   "Return the current vc branch or nil." | ||||
|   (when vc-display-status | ||||
|     (let ((backend (vc-backend buffer-file-name))) | ||||
|       (substring-no-properties vc-mode | ||||
|                                (+ (if (eq backend 'Hg) 2 3) | ||||
|                                   2))))) | ||||
| 
 | ||||
| (defun mood-line--vc-glyph () | ||||
|   "Get the glyph to use for the buffer's vc state." | ||||
|   (mood-line--get-glyph | ||||
|    (alist-get (vc-state buffer-file-name | ||||
|                         (vc-backend buffer-file-name)) | ||||
|               '((added . :vc-added) | ||||
|                 (edited . :vc-added) | ||||
|                 (needs-merge . :vc-needs-merge) | ||||
|                 (needs-update . :vc-needs-update) | ||||
|                 (removed . :vc-conflict) | ||||
|                 (conflict . :vc-conflict) | ||||
|                 (unregistered . :vc-conflict)) | ||||
|               :vc-good))) | ||||
| 
 | ||||
| (defun mood-line--vc-face () | ||||
|   "Get the face to use for the buffer's vc state." | ||||
|   (alist-get (vc-state buffer-file-name | ||||
|                        (vc-backend buffer-file-name)) | ||||
|              '((added . mood-line-status-info) | ||||
|                (edited . mood-line-status-info) | ||||
|                (needs-merge . mood-line-status-warning) | ||||
|                (needs-update . mood-line-status-warning) | ||||
|                (removed . mood-line-status-error) | ||||
|                (conflict . mood-line-status-error) | ||||
|                (unregistered . mood-line-status-error)) | ||||
|              'mood-line-status-neutral)) | ||||
| 
 | ||||
| (defun mood-line--vc-update-segment (&rest _) | ||||
|   "Update `mood-line--vc-text' against the current VCS state." | ||||
|   (setq mood-line--vc-text | ||||
|         (when (and vc-mode | ||||
|                    buffer-file-name) | ||||
|           (let* ((backend (vc-backend buffer-file-name)) | ||||
|                  (branch (substring-no-properties vc-mode | ||||
|                                                   (+ (if (eq backend 'Hg) 2 3) | ||||
|                                                      2))) | ||||
|                  (state (vc-state buffer-file-name | ||||
|                                   (vc-backend buffer-file-name)))) | ||||
|             (cond | ||||
|              ((memq state '(edited added)) | ||||
|               (format #("%s %s  " | ||||
|                         0 2 (face mood-line-status-info)) | ||||
|                       (mood-line--get-glyph :vc-added) | ||||
|                       branch)) | ||||
|              ((eq state 'needs-merge) | ||||
|               (format #("%s %s  " | ||||
|                         0 2 (face mood-line-status-warning)) | ||||
|                       (mood-line--get-glyph :vc-needs-merge) | ||||
|                       branch)) | ||||
|              ((eq state 'needs-update) | ||||
|               (format #("%s %s  " | ||||
|                         0 2 (face mood-line-status-warning)) | ||||
|                       (mood-line--get-glyph :vc-needs-update) | ||||
|                       branch)) | ||||
|              ((memq state '(removed conflict unregistered)) | ||||
|               (format #("%s %s  " | ||||
|                         0 2 (face mood-line-status-error)) | ||||
|                       (mood-line--get-glyph :vc-conflict) | ||||
|                       branch)) | ||||
|              (t | ||||
|               (format #("%s %s  " | ||||
|                         0 5 (face mood-line-status-neutral)) | ||||
|                       (mood-line--get-glyph :vc-good) | ||||
|                       branch))))))) | ||||
|           (let ((branch (mood-line--vc-branch)) | ||||
|                 (glyph (mood-line--vc-glyph)) | ||||
|                 (face (mood-line--vc-face))) | ||||
|             (if branch | ||||
|                 (format #("%s %s  " 0 2 (face face)) | ||||
|                         glyph | ||||
|                         branch) | ||||
|               (format #("%s  " 0 2 (face face)) | ||||
|                       glyph)))))) | ||||
| 
 | ||||
| ;; ---------------------------------- ;; | ||||
| ;; Segment function | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Seth Ladygo
						Seth Ladygo