Skip to content

Commit 703fc51

Browse files
authored
Prevent parent window margins from being used in UI doc child frame. (#773)
When margins are used in the main window (such as Flymake/Flycheck diagnostic indicators in the margin instead of the fringe), causing `left-margin-width` and/or `right-margin-width` in the parent to be non-zero, the child frame was seeing those margins and text was being wrapped incorrectly. The child frame is sized to handle the amount of text on a line (up to `lsp-ui-doc-max-width`) and then `fill-region` is used to hard-wrap the text. The computation of the size of the frame assumes there are no fringes or margins which consume part of this frame. However, when the margin was visible in the child frame, it was causing text to be soft-wrapped prior to the hard-wrap. This change sets the margin sizes to 0 in the buffer of the child frame and then forces the window of the child frame to utilize these settings, preventing parent margins from being displayed in the child frame.
1 parent 9f53ea2 commit 703fc51

File tree

1 file changed

+7
-0
lines changed

1 file changed

+7
-0
lines changed

lsp-ui-doc.el

+7
Original file line numberDiff line numberDiff line change
@@ -265,6 +265,8 @@ Because some variables are buffer local.")
265265
(buffer-list-update-hook nil))
266266
(with-current-buffer (get-buffer-create (lsp-ui-doc--make-buffer-name))
267267
(setq lsp-ui-doc--parent-vars parent-vars)
268+
(setq left-margin-width 0)
269+
(setq right-margin-width 0)
268270
(prog1 (let ((buffer-read-only nil)
269271
(inhibit-modification-hooks t)
270272
(inhibit-redisplay t))
@@ -591,6 +593,11 @@ FRAME just below the symbol at point."
591593
(left-fringe . 0)))
592594
;; Insert hr lines after width is computed
593595
(lsp-ui-doc--fix-hr-props)
596+
;; Force window to use buffer's margin settings instead of the
597+
;; parent window's settings.
598+
(let ((window (frame-root-window frame))
599+
(buffer (get-buffer (lsp-ui-doc--make-buffer-name))))
600+
(set-window-buffer window buffer))
594601
(unless (frame-visible-p frame)
595602
(make-frame-visible frame))))
596603

0 commit comments

Comments
 (0)