<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/155047>155047</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [clangd] header insertion mappings
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          yshui
      </td>
    </tr>
</table>

<pre>
    When writing OpenGL programs that use libepoxy, clangd really wants to include `epoxy/gl_generated.h` for any OpenGL API calls I use. But the correct way to use libepoxy is to include `epoxy/gl.h` ([source](https://github.com/anholt/libepoxy?tab=readme-ov-file#switching-your-code-to-using-epoxy)).

Is there a way I can tell which header is the correct one to include. Maybe we can have a header mapping option, like:

```
Completion:
  HeaderMap:
 "epoxy/gl_generated.h": epoxy/gl.h
    ...
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJx8U81unDAQfhpzGYEcs7Bw4LDJattIjdpbj5WxZ7FbYyPbLOXtKxOSbg-phIRkz3w_M595CHqwiB2pHkl1zvgclfPdGtSss97Jtfuu0MLiddR2gK8T2k9fYPJu8HwMEBWPMAcEo3uc3O-VsCcQhttBgkduzAoLtzFAdKCtMLNEIDXdSy-D-TGgRc8jykKRmsLVeeB2fSM6fXsGwY0J8JxoCnicI0SFIJz3KCIsfE3Y9xJAf0z3SkJYQ6rH4GYvkFRnwhoV4xRIeSLskup0VHNfCDcSduFWORMJu7xbLC-R96Q8e-RyxNzd8qs2SFgZFh2F0nbIVzf7XDiJeXT5HNLRLqIlrC0IPRF6ek7zQ4_ANxvJqYWIxsCitFCgkEv0m507x87inb0CXvjaIyy4dSt-S3B758inKW3NTVE7m1Zj9C9MNjd-UtP9o6cnN04Gt7LtGuDzhvHCp_2AMPbB2hgj5Qn-GXICACiK4p4mk10p27LlGXYPx6pqaU3rY6Y67BvatDVtr6IWsmkOnDKBvG4kk0Ieykx3jLKKNoyx8vBAj4WsKqQlFS3211JQQQ4UR65NYcxtLJwfMh3CjN1DVdHDMTO8RxO2jDNmcYHtNgmvzpnvUlPez0MgB2p0iOEvTNTRbI_jNdSkOr-vxQb0aWBvYw7Z7E33nyQl0P2XT979RJFitUkJhF12rbeO_QkAAP__J2IqMw">