1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-06-01 10:38:13 +00:00
serenity/Userland
Itamar 5c19a48b95 CppLanguageServer: Cache declarations from headers in every document
Previously, to get the globally available declarations in a document
(including declarations from headers), we would have to recursively
walk the #include tree and get the declarations of each included
document.

To improve upon this, we now store a HashTable of globally available
declaration from included header files in each document, and populate
it when we first process the document.

Before this, invoking simple autocomplete actions in code documents
that had a very large #include tree (e.g when <LibGUI/Widget.h> was
included) hang the CppLanguageServer process and used 100% CPU until
the process ran out of memory.

Now, the autocomplete request in that situation returns immediately :^)
2021-05-09 20:58:27 +02:00
..
Applets AK: Rename adopt() to adopt_ref() 2021-04-23 16:46:57 +02:00
Applications AnalogClock: New analog clock application (#6760) 2021-05-09 15:51:36 +02:00
Demos Demos: Implement basic Lambertian lighting for the GLTeapot 2021-05-09 16:14:15 +01:00
DevTools CppLanguageServer: Cache declarations from headers in every document 2021-05-09 20:58:27 +02:00
DynamicLoader DynamicLoader: Remove math functionality in favor of -lgcc 2021-05-07 15:35:50 +02:00
Games Chess+Help: Remove erroneous ampersand from app name 2021-05-07 20:37:28 +01:00
Libraries LibCpp: Rename m_definitions=>m_preprocessor_definitions 2021-05-09 20:58:27 +02:00
Services Userland: Preserve keyboard mapping preference on reboot (#6955) 2021-05-09 15:56:03 +02:00
Shell Shell: Convert StringBuilder::appendf() => AK::Format 2021-05-07 21:12:09 +02:00
Utilities Userland: Preserve keyboard mapping preference on reboot (#6955) 2021-05-09 15:56:03 +02:00
CMakeLists.txt Tests: Establish root Tests directory, move Userland/Tests there 2021-05-06 17:54:28 +02:00