> Le 1 sept. 2020 à 03:38, Jeff King <peff@xxxxxxxx> a écrit : > > On Sun, Aug 30, 2020 at 09:24:03PM -0700, Junio C Hamano wrote: > >> "brian m. carlson" <sandals@xxxxxxxxxxxxxxxxxxxx> writes: >> >>> On 2020-08-30 at 19:28:27, Philippe Blain via GitGitGadget wrote: >>>> From: Philippe Blain <levraiphilippeblain@xxxxxxxxx> >>>> >>>> Tools based on LibClang [1] can make use of a 'JSON Compilation >>>> Database' [2] that keeps track of the exact options used to compile a set >>>> of source files. >>> >>> For additional context why this is valuable, clangd, which is a C >>> language server protocol implementation, can use these files to >>> determine the flags needed to compile a file so it can provide proper >>> editor integration. As a result, editors supporting the language server >>> protocol (such as VS Code, or Vim with a suitable plugin) can provide >>> better searching, integration, and refactoring tools. >> >> I found that the proposed commit log was very weak to sell the >> change; some of what you gave above should definitely help strenthen >> it. > > Likewise. Looking at the output, I'm confused how it would help with > things like searching and refactoring. It might be nice to spell it out > for those of us exposed to it for the first time (I tried following the > links but remained unenlightened). OK, I'll improve the commit message. I'm not at all an expert in this subject, I just had to generate a compilation database myself to use the Sourcetrail source explorer [1] with Git so I figured I'd share what I had done. Further exploration of the topic are in [2] and [3]. Note that I did try some of the tools listed in [2] before resorting to modifying the Makefile, but these tools either did not work at all or produced wrong output (ex. strings in the JSON were not properly quoted, etc.) > I'd also be curious to hear what advantages it gives to add a new > Makefile knob rather than just letting interested parties add -MJ to > their CFLAGS. Is it just a convenience to create the concatenated form? Unfortunately this would not work because the '-MJ' flag needs a file name to know where to put the JSON fragment. Thanks, Philippe. [1] www.sourcetrail.com [2] https://sarcasm.github.io/notes/dev/compilation-database.html [3] https://eli.thegreenplace.net/2014/05/21/compilation-databases-for-clang-based-tools