Developer forums (C::B DEVELOPMENT STRICTLY!) > Plugins development

Code completion using LSP and clangd

<< < (85/86) > >>

kakas:

--- Quote from: kakas on April 20, 2024, 08:51:21 pm ---
--- Quote from: Pecan on April 18, 2024, 11:16:15 pm ---After testing and tracing clangd_client and the miniAudio source I believe it will not be possible to pass that 4meg miniAudio.h file to clangd.

I have a relatively fast system, but clangd never finished parsing the header file before it crashed attempting to create a response file which would have been many times the size of the source file (about 24meg or more) after it formatted a response containing line/col/symbol/diagnostics/fix suggestions, etc.
If it didn't give out of memory, it sure would have caused Clangd_client to.

That header file will have to be broken up into multiple headers in order for clangd to handle it.

Note from opinionated self: I really do not consider creating a 4meg header file as acceptable software design. It's just going to create grief for anyone using it. If not now, certainly in the future.

--- End quote ---
yea that makes sense I guess. I think I'll have to break the miniaudio.h in like miniaudio1.h miniaudio2.h miniaudio3.h... for the plugin to not crash, no?

--- End quote ---

Pecan:

--- Quote from: kakas on April 20, 2024, 09:02:48 pm ---
--- Quote from: kakas on April 20, 2024, 08:51:21 pm ---
--- Quote from: Pecan on April 18, 2024, 11:16:15 pm ---After testing and tracing clangd_client and the miniAudio source I believe it will not be possible to pass that 4meg miniAudio.h file to clangd.

I have a relatively fast system, but clangd never finished parsing the header file before it crashed attempting to create a response file which would have been many times the size of the source file (about 24meg or more) after it formatted a response containing line/col/symbol/diagnostics/fix suggestions, etc.
If it didn't give out of memory, it sure would have caused Clangd_client to.

That header file will have to be broken up into multiple headers in order for clangd to handle it.

Note from opinionated self: I really do not consider creating a 4meg header file as acceptable software design. It's just going to create grief for anyone using it. If not now, certainly in the future.

--- End quote ---
yea that makes sense I guess. I think I'll have to break the miniaudio.h in like miniaudio1.h miniaudio2.h miniaudio3.h... for the plugin to not crash, no?

--- End quote ---

--- End quote ---

Yes, breaking up that huge header into multiple headers should do the trick.

Pecan:

--- Quote from: garwin on March 15, 2024, 09:37:41 pm ---On Windows 11 opening the project file itself in Windows (not directly through Codeblocks) does not parse the project on opening. Reparsing is needed to be done manually. Doing so through Codeblocks works fine.
Steps to reproduce:
1. Codeblocks not running
2. Double-click on any project file *.cbp

On Plugin wiki https://wiki.codeblocks.org/index.php/CB_Clangd_Client the first link to the plugin repository page is not working.

For information, there is a discussion of doxygen support for Clangd - https://github.com/clangd/clangd/issues/529

--- End quote ---
Re: Fixed Clangd and parser not parsing when user cold starts CB via DDE. Commit rev 13515

blauzahn:
svn13516 does not compile on my arch linux using wxWidgets trunk:


--- Quote ---src/plugins/contrib/clangd_client/src/LSPclient/lspdiagresultslog.cpp:97:12: error: invalid use of incomplete type 'class wxListCtrl'
--- End quote ---

Probably a missing #include

Cheers

Pecan:

--- Quote from: blauzahn on Today at 06:47:11 am ---svn13516 does not compile on my arch linux using wxWidgets trunk:


--- Quote ---src/plugins/contrib/clangd_client/src/LSPclient/lspdiagresultslog.cpp:97:12: error: invalid use of incomplete type 'class wxListCtrl'
--- End quote ---

Probably a missing #include

Cheers

--- End quote ---

Thanks, corrected (I think) Head r13517.
Please test, because I have no access to Arch linux.

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version