[clang-tools-extra] [wip][clangd] Introduce --skip-preamble-build command line option (PR #189284)
Aleksandr Platonov via cfe-commits
cfe-commits at lists.llvm.org
Mon Mar 30 01:00:39 PDT 2026
ArcsinX wrote:
> The simplest example can't work
>
> <img alt="image" width="1896" height="570" src="https://private-user-images.githubusercontent.com/68680648/571178386-7e6d9dc0-3751-4803-828b-3a219f0b4ccc.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzQ4NTc0ODMsIm5iZiI6MTc3NDg1NzE4MywicGF0aCI6Ii82ODY4MDY0OC81NzExNzgzODYtN2U2ZDlkYzAtMzc1MS00ODAzLTgyOGItM2EyMTlmMGI0Y2NjLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjAzMzAlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwMzMwVDA3NTMwM1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTg5ZjVkYWM0ZTU0ZTZmMGFhZjdkODJhNGZjZmM1YjJmMmVlZDA1ODUyZWMxNjkxY2YxMzhlMGU1YjU4MzUzNGMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.IT45rVF83EPtGQ2hjETklpZJO3LYdxVVddw0fAiBBFM">
> ```
> [
> {
> "directory": "/disk2/workspace.xuchuanqi/llvm-project-for-work/llvm-project-for-work/build/clangd_example",
> "file": "m.cppm",
> "command": "clang++ -std=c++20 -c m.cppm"
> }
> ]
> ```
>
> > With this patch preamble is empty, in general it doesn't matter can it be reused it or not, because all includes are in the file body and not a part of preamble.
>
> The question is, when the included header changes, how can clangd detect that?
Oh, now I see the problem.
- mm doesn't show correct value if we are using hove in m.cppm,
- but mm shows correct value if we are in a source file which imports m.
But, as I can say, if I make
m.cppm to be
```cpp
module;
export module M;
#include "header.h"
export constexpr int mm = vvv;
```
This also doesn't work as you expect. So, I think this is is not a problem of this patch.
https://github.com/llvm/llvm-project/pull/189284
More information about the cfe-commits
mailing list