mclaughlinconnor/ts_inspector
GitHub: mclaughlinconnor/ts_inspector
这是一个专为 Angular 与 Pug 混合开发环境设计的静态分析器及语言服务器,用于提升代码质量和开发效率。
Stars: 1 | Forks: 0
# TS Inspector
一个用于解析、分析和操作 TypeScript 项目的静态分析器和 LSP 服务器,专注于支持使用 Pug 模板的 Angular 项目。
## 功能
### 分析 + 诊断
TS Inspector 会分析你的代码以发现潜在问题。
#### Angular
- 非法装饰器组合:检测类是否被同时非法装饰了 `@Component` 和 `@Module`。
- 未包含 Implements 子句的生命周期钩子:检测组件是否使用了 Angular 生命周期钩子(如 `ngOnInit` 等),但类上缺少相应的 `implements` 子句。
- 异步生命周期钩子:检测生命周期钩子是否非法地成为异步函数。
- 错误的私有 Angular 属性:检测 `@Input`、`@Output` 等属性在应当为 public 时是否被标记为 private。
- 未使用的 Angular 属性:检测 `@Input`、`@Output` 等属性是否未被使用。
- 递归模板:当组件在其模板中递归使用自身时进行高亮显示。
- 模板中使用的 Getter:当在组件模板中使用 getter 时,高亮显示潜在的性能问题。
- 类型检查的 Pug 模板:检测绑定时是否使用了错误的类型,例如试图将 `string` 传递给 `number` 类型的绑定。
#### TypeScript
- 仅限构造函数的属性:当构造函数参数被不必要地转换为类属性时进行高亮显示。
- 不必要的公共属性:检测类属性是否不必要地设为 public。
- 非法的模块声明:检测 Angular 模块是否非法声明了另一个 Angular 模块。
- 不可达代码:通过控制流图分析高亮显示代码中不可达的部分。
### 代码操作
提供代码操作以进行重构和执行任务。
- 生命周期钩子骨架:向当前类添加骨架式 Angular 生命周期钩子实现(如 `OnInit`、`OnDestroy` 等),包括类的 `implements` 子句和导入。
- 依赖注入迁移:将 `@Inject(token) public prop: type` 属性转换为 `public prop: type = inject(token)`,包括更新导入。
- 添加组件销毁 Observable:添加一个 `_destroyed$` observable,可用于 RxJS 管道中,在组件销毁时停止订阅。
- 使外围函数变为异步:使用 `Promise` 返回类型和 `async` 关键字将外围函数/方法/箭头函数变为异步。
- 重新排列类:重新排列类中的方法和属性。
- 转到声明模块:导航到声明当前组件的 Angular 模块(如果存在)。
- 计算所有 Provider:打印当前组件可用的所有 provider 列表。如果有从 provider 解析的配置选项,此功能非常有用。
### 转到定义
支持从模板中的标签转到其组件类定义,以及模板文件中 Angular 绑定里的属性。
### 查找引用
从模板中,通过选择器查找组件的所有使用位置。
### 代码补全
支持组件选择器、`[input]`、`(output)`、类属性 + 方法的上下文感知补全。
### 悬停提示
显示相关且有用的信息,例如在模板中悬停标签名称时显示 `[input]`、`(output)` 和声明类,以及 Angular 绑定中属性的类型信息。
标签:Angular, Diagnostics, Grype, IDE 插件, LSP, Pug, Refactoring, SOC Prime, Type-checked, TypeScript, 云安全监控, 依赖注入, 前端工程化, 安全插件, 客户端加密, 开发工具, 模板校验, 生命周期钩子, 装饰器, 语法高亮, 重构, 静态分析