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, 云安全监控, 依赖注入, 前端工程化, 安全插件, 客户端加密, 开发工具, 模板校验, 生命周期钩子, 装饰器, 语法高亮, 重构, 静态分析