Add customizable eldoc-box-offset
* eldoc-box.el (eldoc-box-offset): New option. (eldoc-box--default-upper-corner-position-function): Use eldoc-box-position-function
This commit is contained in:
		
							parent
							
								
									13d207d408
								
							
						
					
					
						commit
						3efb59ab78
					
				
							
								
								
									
										20
									
								
								eldoc-box.el
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								eldoc-box.el
									
									
									
									
									
								
							| @ -115,6 +115,14 @@ Set it to a function with no argument | |||||||
| if you want to dynamically change the maximum height." | if you want to dynamically change the maximum height." | ||||||
|   :type 'number) |   :type 'number) | ||||||
| 
 | 
 | ||||||
|  | (defcustom eldoc-box-offset '(16 16 16) | ||||||
|  |   "Sets left, right & top offset of the doc childframe. | ||||||
|  | Its value should be a list: (left right top)" | ||||||
|  |   :type '(list | ||||||
|  |           (integer :tag "Left") | ||||||
|  |           (integer :tag "Right") | ||||||
|  |           (integer :tag "Top"))) | ||||||
|  | 
 | ||||||
| (defvar eldoc-box-position-function #'eldoc-box--default-upper-corner-position-function | (defvar eldoc-box-position-function #'eldoc-box--default-upper-corner-position-function | ||||||
|   "Eldoc-box uses this function to set childframe's position. |   "Eldoc-box uses this function to set childframe's position. | ||||||
| This should be a function that returns a (X . Y) cons cell. | This should be a function that returns a (X . Y) cons cell. | ||||||
| @ -207,13 +215,15 @@ Intended for internal use." | |||||||
|   "The default function to set childframe position. |   "The default function to set childframe position. | ||||||
| Used by `eldoc-box-position-function'. | Used by `eldoc-box-position-function'. | ||||||
| Position is calculated base on WIDTH and HEIGHT of childframe text window" | Position is calculated base on WIDTH and HEIGHT of childframe text window" | ||||||
|   (cons (pcase (eldoc-box--window-side) ; x position + a little padding (16) |   (pcase-let ((`(,offset-l ,offset-r ,offset-t) eldoc-box-offset)) | ||||||
|  |     (cons (pcase (eldoc-box--window-side) ; x position + offset | ||||||
|             ;; display doc on right |             ;; display doc on right | ||||||
|           ('left (- (frame-outer-width (selected-frame)) width 16)) |             ('left (- (frame-outer-width (selected-frame)) width offset-r)) | ||||||
|             ;; display doc on left |             ;; display doc on left | ||||||
|           ('right 16)) |             ('right offset-l)) | ||||||
|         ;; y position + a little padding (16) |           ;; y position + v-offset | ||||||
|         16)) |           offset-t) | ||||||
|  |     )) | ||||||
| 
 | 
 | ||||||
| (defun eldoc-box--point-position-relative-to-native-frame (&optional point window) | (defun eldoc-box--point-position-relative-to-native-frame (&optional point window) | ||||||
|   "Return (X . Y) as the coordinate of POINT in WINDOW. |   "Return (X . Y) as the coordinate of POINT in WINDOW. | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Trevor Richards
						Trevor Richards