Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Prevent parent window margins from being used in UI doc child frame. #773

Merged
merged 1 commit into from
Apr 21, 2024

Conversation

brownts
Copy link
Contributor

@brownts brownts commented Apr 20, 2024

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.

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.
Copy link
Member

@jcs090218 jcs090218 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Make sense to me. Thank you!

@jcs090218 jcs090218 merged commit 703fc51 into emacs-lsp:master Apr 21, 2024
9 of 12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants