ray-x / lsp_signature.nvim

LSP signature hint as you type
Apache License 2.0
1.98k stars 53 forks source link

lsp_signature triggered on empty line #205

Closed Pilgrim1379 closed 1 year ago

Pilgrim1379 commented 2 years ago

When I enter a new line without typing anything, lsp_signature gets triggered and displays a bunch of unknown text in the window.

Screenshot 2022-07-21 at 09 45 11

From the attached screenshot, I'm on line 18 and as you can see, there's nothing on the line and yet lsp_signature is trying to provide assistance.

The only code I have in my config for lsp_signature aside from use "ray-x/lsp_signature.nvim" is require('lsp_signature').setup { bind = true, handler_opts = { border = 'single' } }

ray-x commented 1 year ago

what LSP you are using?

Pilgrim1379 commented 1 year ago

what LSP you are using?

It's pyright

ray-x commented 1 year ago

What is the function when you see this info? I need to check the logs to see what pyright send to lsp_signature. Also you can setup the windows height e.g to 4 and it might be helpful. You can scroll up/down inside the floating windows.

Pilgrim1379 commented 1 year ago

What is the function when you see this info? I need to check the logs to see what pyright send to lsp_signature.

The content of the whole file is as below:

import datetime as dt

import plotly.graph_objects as go

class CandlePlot:
    def __init__(self, df):
        self.df_plot = df.copy()

    def create_candle_fig(self):
        self.fig = go.Figure()
        self.fig.add_trace(
            go.Candlestick(
                x=self.df_plot.sTime,
                open=self.df_plot.mid_o,
                high=self.df_plot.mid_h,
                low=self.df_plot.mid_l,
                close=self.df_plot.mid_c,
                line=dict(witdh=1),
                opacity=1,
                increasing_fillcolor="",
            )
        )

With the cursor in the argument list, bracket for go.Candlestick function, when I open a new line this happens.

ray-x commented 1 year ago

I think the pyright response is huge for your function signature. This is the response from pyright.

arg: Unknown = None
close: Unknown = None
closesrc: Unknown = None
customdata: Unknown = None
customdatasrc: Unknown = None
decreasing: Unknown = None
high: Unknown = None
highsrc: Unknown = None
hoverinfo: Unknown = None
hoverinfosrc: Unknown = None
hoverlabel: Unknown = None
hovertext: Unknown = None
hovertextsrc: Unknown = None
ids: Unknown = None
idssrc: Unknown = None
increasing: Unknown = None
legendgroup: Unknown = None
legendgrouptitle: Unknown = None
legendrank: Unknown = None
line: Unknown = None
low: Unknown = None
lowsrc: Unknown = None
meta: Unknown = None
metasrc: Unknown = None
name: Unknown = None
opacity: Unknown = None
open: Unknown = None
opensrc: Unknown = None
selectedpoints: Unknown = None
showlegend: Unknown = None
stream: Unknown = None
text: Unknown = None
textsrc: Unknown = None
uid: Unknown = None
uirevision: Unknown = None
visible: Unknown = None
whiskerwidth: Unknown = None
x: Unknown = None
xaxis: Unknown = None
xcalendar: Unknown = None
xhoverformat: Unknown = None
xperiod: Unknown = None
xperiod0: Unknown = None
xperiodalignment: Unknown = None
xsrc: Unknown = None
yaxis: Unknown = None
yhoverformat: Unknown = None
**kwargs: Unknown) -> None"
"```"
"Construct a new Candlestick object"
""
"The candlestick is a style of financial chart describing open,"
"high
low and close for a given `x` coordinate (most likely"
"time). The boxes represent the spread between the `open` and"
"`close` values and the lines represent the spread between the"
"`low` and `high` values Sample points where the close value is"
"higher (lower) then the open value are called increasing"
"(decreasing). By default
increasing candles are drawn in green"
"whereas decreasing are drawn in red."
""
"Parameters"
"----------"
"arg\\"
" ; ; ; ;dict of properties compatible with this constructor or"
"an instance of `plotly.graph_objs.Candlestick`\\"
"close\\"
" ; ; ; ;Sets the close values.\\"
"closesrc\\"
" ; ; ; ;Sets the source reference on Chart Studio Cloud for"
"`close`.\\"
"customdata\\"
" ; ; ; ;Assigns extra data each datum. This may be useful when"
"listening to hover
click and selection events. Note"
'that
"scatter" traces also appends customdata items in'
"the markers DOM elements\\"
"customdatasrc\\"
" ; ; ; ;Sets the source reference on Chart Studio Cloud for"
"`customdata`.\\"
"decreasing\\"
" ; ; ; ;`plotly.graph_objects.candlestick.Decreasing`"
"instance or dict with compatible properties\\"
"high\\"
" ; ; ; ;Sets the high values.\\"
"highsrc\\"
" ; ; ; ;Sets the source reference on Chart Studio Cloud for"
"`high`.\\"
"hoverinfo\\"
" ; ; ; ;Determines which trace information appear on hover. If"
"`none` or `skip` are set
no information is displayed"
"upon hovering. But
if `none` is set
click and hover"
"events are still fired.\\"
"hoverinfosrc\\"
" ; ; ; ;Sets the source reference on Chart Studio Cloud for"
"`hoverinfo`.\\"
"hoverlabel\\"
" ; ; ; ;`plotly.graph_objects.candlestick.Hoverlabel`"
"instance or dict with compatible properties\\"
"hovertext\\"
" ; ; ; ;Same as `text`.\\"
"hovertextsrc\\"
" ; ; ; ;Sets the source reference on Chart Studio Cloud for"
"`hovertext`.\\"
"ids\\"
" ; ; ; ;Assigns id labels to each datum. These ids for object"
"constancy of data points during animation. Should be an"
"array of strings
not numbers or any other type.\\"
"idssrc\\"
" ; ; ; ;Sets the source reference on Chart Studio Cloud for"
"`ids`.\\"
"increasing\\"
" ; ; ; ;`plotly.graph_objects.candlestick.Increasing`"
"instance or dict with compatible properties\\"
"legendgroup\\"
" ; ; ; ;Sets the legend group for this trace. Traces part of"
"the same legend group hide/show at the same time when"
"toggling legend items.\\"
"legendgrouptitle\\"
" ; ; ; ;`plotly.graph_objects.candlestick.Legendgrouptit"
"le` instance or dict with compatible properties\\"
"legendrank\\"
" ; ; ; ;Sets the legend rank for this trace. Items and groups"
"with smaller ranks are presented on top/left side while"
"with `*reversed* `legend.traceorder` they are on"
"bottom/right side. The default legendrank is 1000
so"
"that you can use ranks less than 1000 to place certain"
"items before all unranked items
and ranks greater than"
"1000 to go after all unranked items.\\"
"line\\"
" ; ; ; ;`plotly.graph\\_objects.candlestick.Line` instance"
"or dict with compatible properties\\"
"low\\"
" ; ; ; ;Sets the low values.\\"
"lowsrc\\"
" ; ; ; ;Sets the source reference on Chart Studio Cloud for"
"`low`.\\"
"meta\\"
" ; ; ; ;Assigns extra meta information associated with this"
"trace that can be used in various text attributes."
"Attributes such as trace `name`
graph
axis and"
"colorbar `title.text`
annotation `text`"
"`rangeselector`
`updatemenues` and `sliders` `label`"
"text all support `meta`. To access the trace `meta`"
"values in an attribute in the same trace
simply use"
"`%{meta\\[i\\]}` where `i` is the index or key of the"
"`meta` item in question. To access trace `meta` in"
"layout attributes
use `%{data\\[n\\[.meta\\[i\\]}` where `i`"
"is the index or key of the `meta` and `n` is the trace"
"index.\\"
"metasrc\\"
" ; ; ; ;Sets the source reference on Chart Studio Cloud for"
"`meta`.\\"
"name\\"
" ; ; ; ;Sets the trace name. The trace name appear as the"
"legend item and on hover.\\"
"opacity\\"
" ; ; ; ;Sets the opacity of the trace.\\"
"open\\"
" ; ; ; ;Sets the open values.\\"
"opensrc\\"
" ; ; ; ;Sets the source reference on Chart Studio Cloud for"
"`open`.\\"
"selectedpoints\\"
" ; ; ; ;Array containing integer indices of selected points."
"Has an effect only for traces that support selections."
"Note that an empty array means an empty selection where"
"the `unselected` are turned on for all points
whereas,"
"any other non-array values means no selection all where"
"the `selected` and `unselected` styles have no effect.\\"
"showlegend\\"
" ; ; ; ;Determines whether or not an item corresponding to this"
"trace is shown in the legend.\\"
"stream\\"
" ; ; ; ;`plotly.graph\\_objects.candlestick.Stream`"
"instance or dict with compatible properties\\"
"text\\"
" ; ; ; ;Sets hover text elements associated with each sample"
"point. If a single string
the same string appears over"
"all the data points. If an array of string
the items"
"are mapped in order to this trace's sample points.\\"
"textsrc\\"
" ; ; ; ;Sets the source reference on Chart Studio Cloud for"
"`text`.\\"
"uid\\"
" ; ; ; ;Assign an id to this trace
Use this to provide object"
"constancy between traces during animations and"
"transitions.\\"
"uirevision\\"
" ; ; ; ;Controls persistence of some user-driven changes to the"
"trace: `constraintrange` in `parcoords` traces
as well"
"as some `editable: true` modifications such as `name`"
"and `colorbar.title`. Defaults to `layout.uirevision`."
"Note that other user-driven trace attribute changes are"
"controlled by `layout` attributes: `trace.visible` is"
"controlled by `layout.legend.uirevision`,"
"`selectedpoints` is controlled by"
"`layout.selectionrevision`
and `colorbar.(x|y)`"
"(accessible with `config: {editable: true}`) is"
"controlled by `layout.editrevision`. Trace changes are"
"tracked by `uid`
which only falls back on trace index"
"if no `uid` is provided. So if your app can add/remove"
"traces before the end of the `data` array
such that"
"the same trace has a different index
you can still"
"preserve user-driven changes if you give each trace a"
"`uid` that stays with it as it moves.\\"
"visible\\"
" ; ; ; ;Determines whether or not this trace is visible. If"
'"legendonly"
the trace is not drawn
but can appear as'
"a legend item (provided that the legend itself is"
"visible).\\"
"whiskerwidth\\"
" ; ; ; ;Sets the width of the whiskers relative to the box'"
"width. For example
with 1
the whiskers are as wide as"
"the box(es).\\"
"x\\"
" ; ; ; ;Sets the x coordinates. If absent
linear coordinate"
"will be generated.\\"
"xaxis\\"
" ; ; ; ;Sets a reference between this trace's x coordinates and"
'a 2D cartesian x axis. If "x" (the default value)
the'
'x coordinates refer to `layout.xaxis`. If "x2"
the x'
"coordinates refer to `layout.xaxis2`
and so on.\\"
"xcalendar\\"
" ; ; ; ;Sets the calendar system to use with `x` date data.\\"
"xhoverformat\\"
" ; ; ; ;Sets the hover text formatting rulefor `x`  using d3"
"formatting mini-languages which are very similar to"
"those in Python. For numbers
see:"
"https://github.com/d3/d3-format/tree/v1.4.5#d3-format."
"And for dates see: https://github.com/d3/d3-time-"
"format/tree/v2.2.3#locale_format. We add two items to"
"d3's date formatter: \"%h\" for half of the year as a"
'decimal number as well as "%{n}f" for fractional'
"seconds with n digits. For example
*2016-10-13"
'09:15:23.456* with tickformat "%H~%M~%S.%2f" would'
"display *09~15~23.46*By default the values are"
"formatted using `xaxis.hoverformat`.\\"
"xperiod\\"
' ; ; ; ;Only relevant when the axis `type` is "date". Sets the'
'period positioning in milliseconds or "M<n>" on the x'
'axis. Special values in the form of "M<n>" could be'
"used to declare the number of months. In this case `n`"
"must be a positive integer.\\"
"xperiod0\\"
' ; ; ; ;Only relevant when the axis `type` is "date". Sets the'
"base for period positioning in milliseconds or date"
"string on the x0 axis. When `x0period` is round number"
"of weeks
the `x0period0` by default would be on a"
"Sunday i.e. 2000-01-02
otherwise it would be at"
"2000-01-01.\\"
"xperiodalignment\\"
' ; ; ; ;Only relevant when the axis `type` is "date". Sets the'
"alignment of data points on the x axis.\\"
"xsrc\\"
" ; ; ; ;Sets the source reference on Chart Studio Cloud for"
"`x`.\\"
"yaxis\\"
" ; ; ; ;Sets a reference between this trace's y coordinates and"
'a 2D cartesian y axis. If "y" (the default value)
the'
'y coordinates refer to `layout.yaxis`. If "y2"
the y'
"coordinates refer to `layout.yaxis2`
and so on.\\"
"yhoverformat\\"
" ; ; ; ;Sets the hover text formatting rulefor `y`  using d3"
"formatting mini-languages which are very similar to"
"those in Python. For numbers
see:"
"https://github.com/d3/d3-format/tree/v1.4.5#d3-format."
"And for dates see: https://github.com/d3/d3-time-"
"format/tree/v2.2.3#locale_format. We add two items to"
"d3's date formatter: \"%h\" for half of the year as a"
'decimal number as well as "%{n}f" for fractional'
"seconds with n digits. For example
*2016-10-13"
'09:15:23.456* with tickformat "%H~%M~%S.%2f" would'
"display *09~15~23.46*By default the values are"
"formatted using `yaxis.hoverformat`."
""
"Returns"
"-------"
Candlestick
ray-x commented 1 year ago

Will close as expected behaviour.

Pilgrim1379 commented 1 year ago

I think the pyright response is huge for your function signature. OMG that's a lot!. I've reduced the window height to 4 as you suggested so at least it doesn't cover all of the current function. Thanks for taking the time to look into this.