diff --git a/src/tools/lsp/directory-diagnostics.ts b/src/tools/lsp/directory-diagnostics.ts index 0ac3c754a..a99450fa8 100644 --- a/src/tools/lsp/directory-diagnostics.ts +++ b/src/tools/lsp/directory-diagnostics.ts @@ -84,6 +84,15 @@ export async function aggregateDiagnosticsForDirectory( const wasCapped = allFiles.length > maxFiles const filesToProcess = allFiles.slice(0, maxFiles) + if (filesToProcess.length === 0) { + return [ + `Directory: ${absDir}`, + `Extension: ${extension}`, + `Files scanned: 0`, + `No files found with extension "${extension}".`, + ].join("\n") + } + const root = findWorkspaceRoot(absDir) const allDiagnostics: Diagnostic[] = [] diff --git a/src/tools/lsp/lsp-client-wrapper.ts b/src/tools/lsp/lsp-client-wrapper.ts index 0b64e418e..b12a4c671 100644 --- a/src/tools/lsp/lsp-client-wrapper.ts +++ b/src/tools/lsp/lsp-client-wrapper.ts @@ -6,10 +6,21 @@ import { LSPClient, lspManager } from "./client" import { findServerForExtension } from "./config" import type { ServerLookupResult } from "./types" +export function isDirectoryPath(filePath: string): boolean { + if (!existsSync(filePath)) { + return false + } + return statSync(filePath).isDirectory() +} + +export function uriToPath(uri: string): string { + return fileURLToPath(uri) +} + export function findWorkspaceRoot(filePath: string): string { let dir = resolve(filePath) - if (!existsSync(dir) || !require("fs").statSync(dir).isDirectory()) { + if (!existsSync(dir) || !isDirectoryPath(dir)) { dir = require("path").dirname(dir) } @@ -29,17 +40,6 @@ export function findWorkspaceRoot(filePath: string): string { return require("path").dirname(resolve(filePath)) } -export function uriToPath(uri: string): string { - return fileURLToPath(uri) -} - -export function isDirectoryPath(filePath: string): boolean { - if (!existsSync(filePath)) { - return false - } - return statSync(filePath).isDirectory() -} - export function formatServerLookupError(result: Exclude): string { if (result.status === "not_installed") { const { server, installHint } = result