TermiNexus a20c643b72 fix(vipeye): 递归发现嵌套子项目配置,修复 G4 等两级子目录导入失败
findViperProjectConfigsInChildDirs 原仅扫描一级子目录,TransPyC/Test/G4 等两级子项目的 project.json 不被发现,其 includes 未加入导入根,导致 Import g4node could not be resolved。

改为递归扫描:深度限制 6,跳过 .git/node_modules/__pycache__ 等常见非项目目录;直接子目录配置优先收集(保持主配置优先级不变),非项目目录再递归深入。
2026-08-08 11:53:53 +08:00
2026-07-24 17:08:39 +08:00
2026-07-24 17:08:39 +08:00
2026-07-24 17:08:39 +08:00
2026-07-24 17:08:39 +08:00
2026-07-24 17:08:39 +08:00
2026-07-24 17:08:39 +08:00
2026-07-24 17:08:39 +08:00
2026-07-24 17:08:39 +08:00
2026-07-24 17:08:39 +08:00

Vipeye

Static Type Checker for Viper

Vipeye is a full-featured, standards-based static type checker for Viper, written in TypeScript. It is designed for high performance and can be used with large Viper source bases.

Vipeye includes both a command-line tool and an extension for Visual Studio Code. It is built on the Pyright codebase, adapted from the ground up to Viper semantics (AOT compilation, C-style types, pointer and memory semantics), and no longer type-checks Python.

Packages

  • packages/vipeye-internal — Core analysis engine: parser, binder, type evaluator, checker, and language service. All logic lives here.
  • packages/vipeye — CLI wrapper. Bundles vipeye-internal into a distributable npm package with vipeye and vipeye-langserver entry points.
  • packages/vipeye-typeserver — Type server process for long-running editor sessions.
  • packages/vscode-vipeye — VS Code extension client (Vipeye LSP), with the Viper core source (packages/viper) bundled at build time.
  • packages/viper — Viper core source library: project (.vpj) management, toolchain, and the activity bar UI (Project / Toolchain / Settings).

Key Differences from Pyright

  • Viper dialect: viperconfig.json instead of pyrightconfig.json; config namespace viper.*.
  • Viper stdlib stubs bundled in vipeye-internal/vipershed-fallback.
  • Type semantics follow Viper rules: implicit conversions, pointer (CPtr/CArray), t.CTypedef/t.CDefine/t.CEnum, T | t.CPtr pointer folding, global-variable access rules, and more.
  • Semantic highlighting and diagnostics are tailored to Viper syntax.

Building and Testing

See docs/build-debug.md.

Documentation

Refer to the documentation for installation, configuration, and usage details.

Environment variables

If Vipeye fails to create a temporary directory (for example in remote/server environments where the OS temp directory doesn't exist or isn't writable), you can override the temp directory root:

  • VIPEYE_TMPDIR: Absolute path to a directory that Vipeye can use for temporary files/directories. Vipeye will create it if needed.

Vipeye otherwise relies on the platform temp directory (for example TMPDIR, TMP, TEMP, or the OS default).

License

MIT

S
Description
A thin wrapper layer for Viper LSP that reuses Pyright
Readme
29 MiB
0 Stars 1 Watchers 0 Forks
2026-08-27 10:28:15 +08:00
Languages
JSON-with-Comments 49.2%
TypeScript 48.9%
Python 1.5%
JavaScript 0.4%