override fun handle()

in src/main/kotlin/org/jetbrains/mcpserverplugin/general/fileTools.kt [42:61]


    override fun handle(project: Project, args: ListDirectoryTreeInFolderArgs): Response {
        val projectDir = project.guessProjectDir()?.toNioPathOrNull()
            ?: return Response(error = "can't find project dir")

        return runReadAction {
            try {
                val targetDir = projectDir.resolveRel(args.pathInProject)

                if (!targetDir.exists()) {
                    return@runReadAction Response(error = "directory not found")
                }

                val entryTree = buildDirectoryTree(projectDir, targetDir, args.maxDepth)
                val jsonTree = entryTreeToJson(entryTree)
                Response(jsonTree)
            } catch (e: Exception) {
                Response(error = "Error creating directory tree: ${e.message}")
            }
        }
    }