Developer forums (C::B DEVELOPMENT STRICTLY!) > Plugins development
Code completion using LSP and clangd
MaxGaspa:
@pecan
I'm observing another issue using the clangd plugin.
Using a std::vector the list of functions shown are listed in alphabetical order but it seems there is a maximum number of list members. Look at the attached images, all the functions after max_size() are not listed. For example push_back() is not listed but if I write "push" after the dot the plugin is correctly suggesting push_back (look at the attached images).
So it seems that the plugin knows the function push_back() exists but is not showing in the full list.
Is there a way to increase the number of items in the list? Is that limitation intentional?
ollydbg:
--- Quote from: ollydbg on October 04, 2022, 09:11:14 am ---I did some extra test of how to show the comments.
Here is the log file from CBclangd_client-xxxxx.log:
--- Code: ---...
15:07:41.524 >>> readJson() len:240:
{"id":"textDocument/hover","jsonrpc":"2.0","result":{"contents":{"kind":"plaintext","value":"variable m_TcpFile\n\nType: int\nTCP鎺ユ敹鐨勬暟鎹甛n\nint m_TcpFile"},"range":{"end":{"character":13,"line":1},"start":{"character":4,"line":1}}}}
--- End code ---
--- End quote ---
The log file shows the wrong Chinese words.
--- Code: --- int\nTCP鎺ユ敹鐨勬暟鎹甛n\n
--- End code ---
The following patch solves this issue:
--- Code: --- clangd_client/src/LSPclient/client.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/clangd_client/src/LSPclient/client.cpp b/clangd_client/src/LSPclient/client.cpp
index c4a7729..76d19ca 100644
--- a/clangd_client/src/LSPclient/client.cpp
+++ b/clangd_client/src/LSPclient/client.cpp
@@ -1020,7 +1020,7 @@ bool ProcessLanguageClient::readJson(json &json)
m_MutexInputBufGuard.Unlock();
if (stdStrInputbuf.size())
- writeClientLog(wxString::Format(">>> readJson() len:%d:\n%s", length, stdStrInputbuf.c_str()) );
+ writeClientLog(wxString::Format(">>> readJson() len:%d:\n%s", length, GetwxUTF8Str(stdStrInputbuf.c_str()).wx_str()) );
// remove any invalid utf8 chars
bool validData = DoValidateUTF8data(stdStrInputbuf);
--- End code ---
ollydbg:
--- Quote from: ollydbg on October 04, 2022, 01:21:01 pm ---I created a patch which can show the "doxygen comments".
...
--- End quote ---
I think it again, and I think using the original text from the hover message is good enough. I think we don't need to "cut the chaff".
wxString hoverString = contentsValue;
Just show this, and I tested this method, and it works fine.
MaxGaspa:
@pecan
About my replay #203....
I read the message in which you said you are unable to replicate the issue. I was about to create a test project but it seems that your messagewas deleted. Do you replicated the issue?
Pecan:
--- Quote from: MaxGaspa on October 09, 2022, 11:40:42 pm ---@pecan
About my replay #203....
I read the message in which you said you are unable to replicate the issue. I was about to create a test project but it seems that your messagewas deleted. Do you replicated the issue?
--- End quote ---
Yes, I was finally able to replicate the issue and fix it in the new Nightly 221008.
https://forums.codeblocks.org/index.php/topic,25130.msg171351/topicseen.html#msg171351
To change the number of matched completions displayed use Settings/Editor/clangd_client/Maximum allowed code-completion matches.
I suggest you be conservative since the matches are cached, ie., taking up memory until new completions are requested.
Thanks for catching this and for testing.
Navigation
[0] Message Index
[#] Next page
[*] Previous page
Go to full version