juanfranblanco / vscode-solidity

Visual Studio Code language support extension for Solidity smart contracts in Ethereum https://marketplace.visualstudio.com/items?itemName=JuanBlanco.solidity
MIT License
905 stars 193 forks source link

Weird formatting when hovering #467

Open ndavd opened 1 month ago

ndavd commented 1 month ago

I'm using nvim-lspconfig and I'm getting this weird behavior when hovering... This does not happen with any other LS I've tried.

image

juanfranblanco commented 1 month ago

Hi.. vscode has support for markdown when providing hovering info. I guess nvim doesn't.. I guess a setting for nvim could be put in place to avoid this.

ndavd commented 1 month ago

Hi, from what I've read, nvim just takes what the lsp gives it as is. I haven't come across this issue with the other Solidity LSPs, which were also made to work with vscode primarily. Here's a list of all the supported LSPs, just search for solidity in that file, https://github.com/neovim/nvim-lspconfig/blob/master/doc%2Fconfigs.md. Perhaps you could take a look at how the others are implemented and see what differs. 🙏🏻

justinmk commented 1 month ago

nvim just takes what the lsp gives it as is

Yes. There is no "issue" here except that the hover window is too narrow (that depends on the "parent" window where hover was invoked). And then text wraps. You can set nowrap in the hover window to disable wrapping. Maybe Nvim should do that by default, create an issue?

ndavd commented 1 month ago

There is no "issue" here except that the hover window is too narrow

I noticed that in the other LSPs the window size adapts fairly well, and I'm able to scroll, while here I am not

juanfranblanco commented 1 month ago

@ndavd I understand better the issue now (I was referring to the ###), I don't know what I can do about the wrapping.

ndavd commented 1 month ago

@ndavd I understand better the issue now (I was referring to the ###), I don't know what I can do about the wrapping.

Yeah for me the ### is okay, I think in other LSPs it's also shown like that. Hmm, perhaps let's leave this pending to see if it can be fixed on neovim's side or get some feedback from them.

juanfranblanco commented 1 month ago

Yes, I was going to suggest that, there might be something I need to send from the LSP. I made a new release a few days ago, I don't know if you have seen it, I would appreciate your feedback as I don't use nvim.

ndavd commented 1 month ago

Just updated the LSP to the latest version, the same issues remain, unfortunately. But otherwise it's really the most complete LSP for solidity out there, I'm really enjoying it. Apart from the things already mentioned, the only feedback I can provide for now would be to add support for textDocument/documentSymbol. It would be super useful in solidity, don't know how hard it would be to support it but it seems like it wouldn't be too hard since it just lists all symbols hierarchically.

juanfranblanco commented 1 month ago

Yes, that shouldn't be too hard as I already parse all the document, contracts, libraries, etc.. It won't be tomorrow, but in a few weeks.