Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>AS2 Language Support (FlashNight)New to Visual Studio Code? Get it now.
AS2 Language Support (FlashNight)

AS2 Language Support (FlashNight)

flash night

|
1 install
| (1) | Free
ActionScript 2.0 language support with Unicode/Chinese identifier support, #include expansion, diagnostics, and cross-file intellisense
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

AS2 Language Support (CrazyFlashNight Fork)

基于 admvx/as2-language-support 的 Fork 版本,针对大型 AS2 游戏项目(CrazyFlashNight / CF7)进行了大量增强。

功能

语法高亮

  • 完整的 ActionScript 2.0 语法高亮
  • Unicode/中文标识符支持 — 类名、方法名、变量名、import 路径、类型标注中的中文字符均可正确着色

LSP 功能

  • 自动补全 — . 触发的成员补全和环境符号补全
  • 悬停信息 — 显示类型信息和方法签名
  • 方法签名提示 — 在 ( 和 , 时显示参数提示
  • 跳转到定义 — Ctrl+Click / F12 跳转到类或成员的定义位置
  • 文档符号大纲 — 文件内的类、方法、属性结构大纲(Ctrl+Shift+O)
  • 查找所有引用 — 查找符号在工作区内的所有使用位置
  • 重命名 — 工作区范围内的符号重命名
  • 实时诊断 — 花括号不匹配、重复成员声明等错误提示

解析器能力

  • class、interface、extends、implements 声明
  • 方法和属性声明(public / private / static)
  • getter / setter 属性
  • 构造函数检测
  • 方法体内局部变量追踪
  • #include 指令展开,附带行号映射以保证 LSP 位置准确还原
  • 脚本文件支持 — 没有 class 声明的 .as 文件(帧脚本、#include 目标文件)也能获得完整的 LSP 支持,包括跨文件类型解析
  • 通配符 import 解析 — import org.package.* 自动解析为目录下所有类

工作区功能

  • 启动时自动索引工作区内所有 .as 文件
  • 分批索引(每批 20 个文件),避免大型项目内存压力
  • 内容变更防抖(150ms),减少频繁重解析
  • 基于 import 的跨文件类型解析
  • 从已注册的类文件自动推断 classpath 根目录

内置类定义

预置了 Flash Player 内置类定义,包括:

  • 核心:Object, Array, String, Number, Boolean, Date, Math, Function
  • 显示:MovieClip, TextField, Button
  • 媒体:Sound, Video, Camera, Microphone
  • 网络:XML, XMLSocket, XMLNode, LoadVars, SharedObject
  • 绘图:BitmapData, ExternalInterface
  • 滤镜:BlurFilter, ColorMatrixFilter, DropShadowFilter, GlowFilter 等
  • 几何:Point, Rectangle, Matrix, ColorTransform
  • 其他:Accessibility, Selection, Stage, Key, Mouse, System 等

已知限制

  • 解析器基于正则表达式(非完整 AST 解析器)—— 深层嵌套表达式和条件编译可能无法正确解析
  • with(target){} 作用域不追踪
  • prototype 链赋值(MyClass.prototype.foo = function(){})不被索引
  • 同一文件多个 class 只解析第一个
  • 复杂属性链的类型推断(this._root.someClip.someChild)可能无法完全解析
  • 脚本文件的跨文件解析需要等待工作区索引完成

后续计划

  • [ ] 补全内置类定义(从 Flash CS6 导入完整集合)
  • [ ] 可配置 classpath(目前仅自动检测)
  • [ ] 增强诊断(未定义变量警告、类型不匹配提示)
  • [ ] 注释感知解析(#42 — 块注释中的代码模式干扰解析器)
  • [ ] 多行方法签名支持(#37)
  • [ ] 针对 1000+ 文件工作区的性能优化

开发

环境要求

  • Node.js 16+(已在 20.x 测试通过)
  • npm

构建

npm install
npm run compile

测试

cd server && npx jest

调试

在 VSCode 中按 F5 启动 Extension Development Host。

原项目

基于 admvx 的 AS2 Language Support。原版更新日志见 changelog。

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