Author Topic: Code completion using LSP and clangd  (Read 187478 times)

Offline kakas

  • Multiple posting newcomer
  • *
  • Posts: 23
  • potatoes are tasty(not the raw ones)
Re: Code completion using LSP and clangd
« Reply #420 on: April 20, 2024, 09:02:48 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.
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?

Offline Pecan

  • Plugin developer
  • Lives here!
  • ****
  • Posts: 2780
Re: Code completion using LSP and clangd
« Reply #421 on: April 20, 2024, 10:39:08 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.
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?

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


Offline Pecan

  • Plugin developer
  • Lives here!
  • ****
  • Posts: 2780
Re: Code completion using LSP and clangd
« Reply #422 on: May 01, 2024, 05:28:21 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
Re: Fixed Clangd and parser not parsing when user cold starts CB via DDE. Commit rev 13515

Offline blauzahn

  • Almost regular
  • **
  • Posts: 168
Re: Code completion using LSP and clangd
« Reply #423 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'

Probably a missing #include

Cheers

Offline Pecan

  • Plugin developer
  • Lives here!
  • ****
  • Posts: 2780
Re: Code completion using LSP and clangd
« Reply #424 on: Today at 07:03:05 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'

Probably a missing #include

Cheers

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

Offline blauzahn

  • Almost regular
  • **
  • Posts: 168
Re: Code completion using LSP and clangd
« Reply #425 on: Today at 11:59:00 am »
Thank you.

I just compiled it on ubuntu linux without any compile-error. Arch I can do only in the evening. Since the configure args are the same and both use wxWidgets trunk, chances are, that the outcome will be the same on arch.

Offline blauzahn

  • Almost regular
  • **
  • Posts: 168
Re: Code completion using LSP and clangd
« Reply #426 on: Today at 07:24:00 pm »
Head svn13517 compiles again without compile-error on arch linux as well.