]> code.delx.au - gnu-emacs-elpa/blobdiff - company.el
company-pseudo-tooltip-guard: Handle wrapped lines
[gnu-emacs-elpa] / company.el
index 39c120b2ae85cf9da00eac68ab7fb38e8a7cf401..504fa0f496dc3ed54d4038d63c3d58ac19603b9c 100644 (file)
@@ -2446,11 +2446,15 @@ Returns a negative number if the tooltip should be displayed above point."
       (overlay-put ov 'window (selected-window)))))
 
 (defun company-pseudo-tooltip-guard ()
-  (list
+  (cons
    (save-excursion (beginning-of-visual-line))
-   (let ((ov company-pseudo-tooltip-overlay))
+   (let ((ov company-pseudo-tooltip-overlay)
+         (overhang (save-excursion (end-of-visual-line)
+                                   (- (line-end-position) (point)))))
      (when (>= (overlay-get ov 'company-height) 0)
-       (buffer-substring-no-properties (point) (overlay-start ov))))))
+       (cons
+        (buffer-substring-no-properties (point) (overlay-start ov))
+        (when (>= overhang 0) overhang))))))
 
 (defun company-pseudo-tooltip-frontend (command)
   "`company-mode' front-end similar to a tooltip but based on overlays."