Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>FishToolsNew to Visual Studio Code? Get it now.
FishTools

FishTools

peter_cao

| (0) | Free
Theme-aware highlighting for Itasca fish data files — PFC 6.0 supported, PFC 7.0 preview.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

FishTools

FishTools 是面向 Itasca PFC 数据文件的 VS Code 语言扩展。它为 fish 代码提供随编辑器主题变化的高亮、导航和基础补全,不需要联网或配置颜色。

源码、完整说明与问题反馈:GitHub — FishTools。

安装与开始使用

从 VS Code 扩展市场安装后,打开 .fis、.fish、.p2dat、.p3dat 或 .dat 文件即可自动启用。也可以在右下角语言模式中手动选择 fish。

本扩展包可作为 .vsix 离线安装;运行时只含编译后的扩展代码、语法文件、语言配置和图标,不依赖开发环境中的 node_modules。

版本选择

在设置中搜索 fishtools.docsVersion,选择目标 PFC 版本:

  • PFC 6.0:正式支持,使用 PFC 6.0 的命令和 fish 内置接口词典。
  • PFC 7.0:已测试预览,使用独立词典;适合试用,但仍建议在实际工程中确认结果。

切换版本后,高亮、补全和内置函数名称提示都会使用对应的本地词典。FLAC3D、3DEC 与其他 Itasca 产品暂不支持。

编辑功能

主题跟随高亮

扩展只识别语言成分的类别,不指定任何颜色,因此浅色、深色和自定义 VS Code 主题都会决定最终配色。

类别 示例
PFC 命令和参数 model、ball、call、radius
fish 语句和块 define、local、if、loop、endloop
内置接口 ball.mass、contact.list、math.cos
用户函数和变量 define settle、@settle、local stress
字面量和注释 3.5e-4、字符串、以 ; 开始的注释

科学计数法会作为一个完整数值处理;注释中的括号和方括号保持注释色。call "file.fis" 中的文件名被当作一个整体,不会出现常驻下划线。

导航、结构与补全

  • 使用 F12 或 Cmd/Ctrl+单击跳转到当前文件或工作区中的 def / define 函数;@函数名 也可跳转。
  • call "file.fis" 可跳转到存在的本地数据文件;目标不存在时不会创建无效链接。
  • 大纲显示自定义函数和 global 变量;引用查找会优先扫描当前文档,再受限扫描工作区。
  • if、loop、command 等块结构可折叠和匹配,命令面板提供跳转到配对块的命令。
  • Ctrl+Space 提供命令、内置接口、控制语句、已定义函数与基础函数骨架补全。

性能与稳定性

语义高亮按文档版本缓存;切回未改动标签不会重新分析。工作区函数索引只在真正使用跳转、引用或补全时读取,且对文件数量、文件大小、行长度和令牌数均有限制。超过 5,000 行的文件自动回退到轻量语法高亮,以避免长文件或复杂主题造成卡顿。

局限性

  • 仅支持 PFC 6.0 和已测试预览的 PFC 7.0;不能将其用于 FLAC3D、3DEC 或其他版本的兼容性保证。
  • 不提供诊断、格式化、调试、重构、系统函数源码或完整签名查询。
  • 复杂命令参数不会完整解析;少数同名词在特定位置可能按命令类别显示。
  • 这不是完整语言服务器。补全与导航是面向 fish 编辑的轻量辅助,不能取代官方文档或运行时验证。

开发与发布

以下命令均在包含 package.json 的 FishTools 项目根目录运行:

npm ci                  # 按 package-lock.json 安装开发依赖
npm run compile         # 将 TypeScript 源码编译到 out/
npm run package         # 编译并在项目根目录生成 VSIX

发布前应先更新 package.json 的版本号,并在完整的本地开发副本中完成测试和人工验收。打包不会自动发布,仍需由开发者明确上传到 GitHub 或 VS Code Marketplace。

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft