Skip to content

Commit

Permalink
Merge pull request #4252 from bstaletic/sig_help_wrap
Browse files Browse the repository at this point in the history
Allow soft-wrapping of lines in the signature help window
  • Loading branch information
mergify[bot] authored Dec 16, 2024
2 parents f56c0cb + 05f688c commit 131b182
Showing 1 changed file with 11 additions and 1 deletion.
12 changes: 11 additions & 1 deletion python/ycm/signature_help.py
Original file line number Diff line number Diff line change
Expand Up @@ -159,6 +159,15 @@ def UpdateSignatureHelp( state, signature_info ): # noqa
# inserting the char ?
col = int( screen_pos[ 'curscol' ] ) - 2

# Vim stops shifting the popup to the left if we turn on soft-wrapping.
# Instead, we want to first shift the popup to the left and then
# and then turn on wrapping.
max_line_length = max( len( item[ 'text' ] ) for item in buf_lines )
vim_width = vimsupport.GetIntValue( '&columns' )
line_available = vim_width - max( col, 1 )
if max_line_length > line_available:
col = vim_width - max_line_length

if col <= 0:
col = 1

Expand All @@ -172,6 +181,7 @@ def UpdateSignatureHelp( state, signature_info ): # noqa
# cursorline. So instead, we manually set 'cursorline' in the popup window
# and enable syntax based on the current file syntax)
"flip": 1,
"fixed": 1,
"padding": [ 0, 1, 0, 1 ], # Pad 1 char in X axis to match completion menu
"hidden": int( state.state == SignatureHelpState.ACTIVE_SUPPRESSED )
}
Expand All @@ -196,7 +206,7 @@ def UpdateSignatureHelp( state, signature_info ): # noqa

active_signature = int( signature_info.get( 'activeSignature', 0 ) )
vim.eval( f"win_execute( { state.popup_win_id }, "
f"'set syntax={ syntax } cursorline | "
f"'set syntax={ syntax } cursorline wrap | "
f"call cursor( [ { active_signature + 1 }, 1 ] )' )" )

return state

0 comments on commit 131b182

Please sign in to comment.