llvmbot wrote:

<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-clangd

Author: Duncan Ogilvie (mrexodia)

<details>
<summary>Changes</summary>

This solves a common issue where users have to manually add the 
`.cache/clangd/index/` folder to their `.gitignore`. I got this idea from 
[ruff](https://github.com/astral-sh/ruff), which creates 
`.ruff_cache/.gitignore` and it would greatly improve the user experience for 
everyone without requiring per-computer configurations and without any 
significant cost.

---
Full diff: https://github.com/llvm/llvm-project/pull/170003.diff


1 Files Affected:

- (modified) clang-tools-extra/clangd/index/BackgroundIndexStorage.cpp (+14) 


``````````diff
diff --git a/clang-tools-extra/clangd/index/BackgroundIndexStorage.cpp 
b/clang-tools-extra/clangd/index/BackgroundIndexStorage.cpp
index d887b09482a95..1dff0b55f82cd 100644
--- a/clang-tools-extra/clangd/index/BackgroundIndexStorage.cpp
+++ b/clang-tools-extra/clangd/index/BackgroundIndexStorage.cpp
@@ -45,6 +45,20 @@ class DiskBackedIndexStorage : public BackgroundIndexStorage 
{
     if (EC != OK) {
       elog("Failed to create directory {0} for index storage: {1}",
            DiskShardRoot, EC.message());
+    } else {
+      // Create a .gitignore file in the directory to ignore all files.
+      llvm::SmallString<128> GitignorePath(DiskShardRoot);
+      llvm::sys::path::append(GitignorePath, ".gitignore");
+      if (!llvm::sys::fs::exists(GitignorePath)) {
+        llvm::raw_fd_ostream GitignoreFile(GitignorePath, EC,
+                                          llvm::sys::fs::OF_None);
+        if (EC == OK) {
+          GitignoreFile << "*\n";
+        } else {
+          elog("Failed to create .gitignore in {0}: {1}", DiskShardRoot,
+              EC.message());
+        }
+      }
     }
   }
 

``````````

</details>


https://github.com/llvm/llvm-project/pull/170003
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to