fix(server): hide hidden directories from cwd suggestions
This commit is contained in:
@@ -129,6 +129,17 @@ describe("searchHomeDirectories", () => {
|
|||||||
|
|
||||||
expect(results).toContain(path.join(homeDir, "projects"));
|
expect(results).toContain(path.join(homeDir, "projects"));
|
||||||
expect(results).toContain(path.join(homeDir, "documents"));
|
expect(results).toContain(path.join(homeDir, "documents"));
|
||||||
|
expect(results).not.toContain(path.join(homeDir, ".hidden"));
|
||||||
|
});
|
||||||
|
|
||||||
|
it("does not return hidden directories during tree search", async () => {
|
||||||
|
const results = await searchHomeDirectories({
|
||||||
|
homeDir,
|
||||||
|
query: "cache",
|
||||||
|
limit: 20,
|
||||||
|
});
|
||||||
|
|
||||||
|
expect(results).not.toContain(path.join(homeDir, ".hidden", "cache"));
|
||||||
});
|
});
|
||||||
|
|
||||||
it("does not return paths that escape home through symlinks", async () => {
|
it("does not return paths that escape home through symlinks", async () => {
|
||||||
|
|||||||
@@ -386,6 +386,9 @@ async function listChildDirectories(input: {
|
|||||||
);
|
);
|
||||||
const entries: ChildDirectoryEntry[] = [];
|
const entries: ChildDirectoryEntry[] = [];
|
||||||
for (const dirent of dirents) {
|
for (const dirent of dirents) {
|
||||||
|
if (isHiddenDirectoryName(dirent.name)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
if (!dirent.isDirectory() && !dirent.isSymbolicLink()) {
|
if (!dirent.isDirectory() && !dirent.isSymbolicLink()) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@@ -429,6 +432,10 @@ async function resolveDirectoryCandidate(input: {
|
|||||||
return resolved;
|
return resolved;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function isHiddenDirectoryName(name: string): boolean {
|
||||||
|
return name.startsWith(".");
|
||||||
|
}
|
||||||
|
|
||||||
function setDirectoryListCache(cacheKey: string, entry: DirectoryListCacheEntry): void {
|
function setDirectoryListCache(cacheKey: string, entry: DirectoryListCacheEntry): void {
|
||||||
directoryListCache.set(cacheKey, entry);
|
directoryListCache.set(cacheKey, entry);
|
||||||
pruneDirectoryListCache();
|
pruneDirectoryListCache();
|
||||||
|
|||||||
Reference in New Issue
Block a user