TermiNexus ac08b01baa feat(vipeye-internal): extern/export 支持直接声明形式 extern A(...)
- extern/export 后跟标识符时按函数声明解析(等价 extern def A),
  def 形式保留(extern def A / export def A 均可用)
- extern/export 声明均可省略函数体(无冒号无 pass)
- checker 对 extern/export 声明跳过缺失返回值检查
- TextMate 高亮与缩进规则支持 extern/export 直接声明
- viperGenericTypeVarCall 11/11 测试通过
2026-08-17 10:35:46 +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%