SuperAPI AI 工具集

eel

编程与开发

查看项目

更新于 10-15 23:31

技能介绍

用途:EEL 是 IntelliJ 平台的统一 API,使代码在本地、WSL 和 Docker 环境中透明工作,替代分散的 WSL 检查、java.io.File、System.getenv、ProcessBuilder 和 SystemInfo。完整文档位于 community/platform/eel/docs/,从 README.md 开始。

主要能力与规则:使用 nio.Path 而非 java.io.File,NIO 文件操作会通过 EEL 文件系统提供程序透明路由,Files.readString(path)、Files.walk(path) 等在远程环境(WSL、Docker)中无需额外代码即可正确工作。使用 EelApi.exec 执行进程而非 ProcessBuilder,确保进程在正确环境中运行。使用 EelPlatform 检测操作系统而非 SystemInfo,后者反映 IDE 宿主机而非目标环境。localEel 是始终代表 IDE 宿主机的单例,仅在明确需要本地环境时使用;项目相关工作应从项目或路径获取描述符。

获取 EelDescriptor:从项目(最常见)project.getEelDescriptor();从路径 Path.of("\wsl.localhost\Ubuntu\home\user").getEelDescriptor();本地环境单例 localEel。

运行进程:通过 descriptor.toEelApi() 获取 eelApi,使用 eelApi.exec.spawnProcess("git").args("--version").eelIt(),再读取 exitCode 与 stdout。路径转换使用 nioPath.asEelPath() 与 eelPath.asNioPath(),环境感知转换用 descriptor.asEelPath(project.basePath)。平台检测通过 eelApi.platform.isPosix、isWindows、isMac。

核心概念:EelDescriptor 是轻量、持久的基于路径的环境访问标记,用于大多数操作;EelMachine 是物理主机实例,管理共享资源(连接池等)时用作缓存键,多个描述符可解析到同一机器。EelApi 子系统包括 exec(进程执行)、tunnels(网络操作)、archive(归档/tar 操作)、platform(平台检测)、userInfo(用户信息)。

最佳实践:编写环境无关代码,避免检查 LocalEelDescriptor,统一使用 EEL API;优先使用 toEelApi() 而非 toEelApiBlocking(),使用挂起版本避免阻塞线程;使用 asEelPath() 辅助方法,避免手动 WSL 路径转换;跨描述符管理共享资源时按 EelMachine 缓存;正确关闭 tunnels、archive 操作和长连接。

限制:资料未提供收费、价格、平台支持范围或具体效果数据。