@lcap/nasl 4.0.0-beta.10 → 4.0.0-beta.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"rule-assign-local-variable-in-playground.d.ts","sourceRoot":"","sources":["../../../../src/service/autofix/rules/rule-assign-local-variable-in-playground.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AA2BvC,eAAO,MAAM,mCAAmC,EAAE,WAwBjD,CAAC"}
1
+ {"version":3,"file":"rule-assign-local-variable-in-playground.d.ts","sourceRoot":"","sources":["../../../../src/service/autofix/rules/rule-assign-local-variable-in-playground.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAgCvC,eAAO,MAAM,mCAAmC,EAAE,WAwCjD,CAAC"}
@@ -1,28 +1,30 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ruleAssignLocalVariableInPlayground = void 0;
4
- const nasl_concepts_1 = require("@lcap/nasl-concepts");
5
- const supportFixErrorReg = /必须赋值有返回值的内容。/;
6
- const supportFixErrorReg2 = /未设置类型或未赋值。直接赋值系统可以自动推断类型。/;
4
+ const nasl_language_server_core_1 = require("@lcap/nasl-language-server-core");
7
5
  function resolveAssignmentTargetType(node) {
8
6
  if (!node) {
9
7
  return null;
10
8
  }
11
- if ((nasl_concepts_1.asserts.isVariable(node) || nasl_concepts_1.asserts.isReturn(node)) && node?.logic?.playground) {
12
- const playground = node.logic.playground;
13
- for (const item of playground) {
14
- if (nasl_concepts_1.asserts.isAssignment(item) && item.left && item.left.name === node.name) {
15
- // 修复策略:如果满足条件的赋值语句右边节点没有赋值类型,则直接推断为不可修复。不再计算后面的节点。
16
- if (!item.right || !item.right.__TypeAnnotation) {
17
- return null;
18
- }
19
- if (item.right && item.right.__TypeAnnotation) {
20
- return item.right.__TypeAnnotation;
21
- }
22
- }
23
- }
9
+ // @ts-expect-error __v_raw vue 的私有属性
10
+ const nd = node.__v_raw ?? node;
11
+ if (nd.typeAnnotation) {
12
+ return null;
13
+ }
14
+ // 非草稿区已经推导出来
15
+ if ((0, nasl_language_server_core_1.isResolvedUserTy)(nd.__TypeAnnotation)) {
16
+ return null;
17
+ }
18
+ // @ts-expect-error __v_raw 是 vue 的私有属性
19
+ const app = nd.app?.__v_raw ?? nd.app;
20
+ if (!app) {
21
+ return null;
22
+ }
23
+ const candidateType = app.naslServer?.semEnv?.varCandidateTypes?.get(nd);
24
+ if (!candidateType) {
25
+ return null;
24
26
  }
25
- return null;
27
+ return candidateType;
26
28
  }
27
29
  exports.ruleAssignLocalVariableInPlayground = {
28
30
  title: '自动修复草稿区赋值给局部变量,局部变量缺少类型声明问题',
@@ -32,15 +34,25 @@ exports.ruleAssignLocalVariableInPlayground = {
32
34
  if (!message) {
33
35
  return false;
34
36
  }
35
- const match = supportFixErrorReg.test(message) || supportFixErrorReg2.test(message);
36
- const node = diagnostic.node;
37
- if (match) {
38
- const typeAnnotation = resolveAssignmentTargetType(node);
39
- if (typeAnnotation) {
40
- return { hint: `一键设置为 “${typeAnnotation.typeTitle}” 类型` };
41
- }
37
+ // @ts-expect-error __v_raw vue 的私有属性
38
+ const nd = diagnostic.node?.__v_raw ?? diagnostic.node;
39
+ if (nd.typeAnnotation) {
40
+ return false;
41
+ }
42
+ // 非草稿区已经推导出来
43
+ if ((0, nasl_language_server_core_1.isResolvedUserTy)(nd.__TypeAnnotation)) {
44
+ return false;
45
+ }
46
+ // @ts-expect-error __v_raw 是 vue 的私有属性
47
+ const app = nd.app?.__v_raw ?? nd.app;
48
+ if (!app) {
49
+ return false;
50
+ }
51
+ const candidateType = app.naslServer?.semEnv?.varCandidateTypes?.get(nd);
52
+ if (!candidateType) {
53
+ return false;
42
54
  }
43
- return false;
55
+ return { hint: `一键设置为 “${candidateType.typeTitle}” 类型` };
44
56
  },
45
57
  commitFix(node) {
46
58
  const typeAnnotation = resolveAssignmentTargetType(node);
@@ -1 +1 @@
1
- {"version":3,"file":"rule-assign-local-variable-in-playground.js","sourceRoot":"","sources":["../../../../src/service/autofix/rules/rule-assign-local-variable-in-playground.ts"],"names":[],"mappings":";;;AAAA,uDAAwD;AAGxD,MAAM,kBAAkB,GAAG,cAAc,CAAC;AAE1C,MAAM,mBAAmB,GAAG,2BAA2B,CAAA;AAEvD,SAAS,2BAA2B,CAAC,IAAc;IACjD,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC,uBAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,uBAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;QACpF,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;QACzC,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;YAC9B,IAAI,uBAAO,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;gBAC5E,mDAAmD;gBACnD,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC;oBAChD,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC;oBAC9C,OAAO,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC;gBACrC,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAEY,QAAA,mCAAmC,GAAgB;IAC9D,KAAK,EAAE,6BAA6B;IACpC,eAAe,EAAE,IAAI;IACrB,SAAS,CAAC,UAAU;QAClB,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;QACnC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpF,MAAM,IAAI,GAAG,UAAU,CAAC,IAAgB,CAAC;QACzC,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,cAAc,GAAG,2BAA2B,CAAC,IAAI,CAAC,CAAC;YACzD,IAAI,cAAc,EAAE,CAAC;gBACnB,OAAO,EAAE,IAAI,EAAE,UAAU,cAAc,CAAC,SAAS,MAAM,EAAE,CAAC;YAC5D,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,SAAS,CAAC,IAAI;QACZ,MAAM,cAAc,GAAG,2BAA2B,CAAC,IAAI,CAAC,CAAC;QACzD,IAAI,cAAc,EAAE,CAAC;YACnB,IAAI,CAAC,MAAM,CAAC,EAAE,cAAc,EAAE,cAAc,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"rule-assign-local-variable-in-playground.js","sourceRoot":"","sources":["../../../../src/service/autofix/rules/rule-assign-local-variable-in-playground.ts"],"names":[],"mappings":";;;AAEA,+EAAmE;AAEnE,SAAS,2BAA2B,CAAC,IAAc;IACjD,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,IAAI,CAAC;IACd,CAAC;IAED,uCAAuC;IACvC,MAAM,EAAE,GAAsB,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC;IACnD,IAAI,EAAE,CAAC,cAAc,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,aAAa;IACb,IAAI,IAAA,4CAAgB,EAAC,EAAE,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,uCAAuC;IACvC,MAAM,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,OAAO,IAAI,EAAE,CAAC,GAAG,CAAC;IACtC,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,aAAa,GAAG,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,iBAAiB,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IACzE,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,aAAa,CAAC;AACvB,CAAC;AAEY,QAAA,mCAAmC,GAAgB;IAC9D,KAAK,EAAE,6BAA6B;IACpC,eAAe,EAAE,IAAI;IACrB,SAAS,CAAC,UAAU;QAClB,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;QACnC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,KAAK,CAAC;QACf,CAAC;QAGD,uCAAuC;QACvC,MAAM,EAAE,GAAsB,UAAU,CAAC,IAAI,EAAE,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC;QAC1E,IAAI,EAAE,CAAC,cAAc,EAAE,CAAC;YACtB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,aAAa;QACb,IAAI,IAAA,4CAAgB,EAAC,EAAE,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAC1C,OAAO,KAAK,CAAC;QACf,CAAC;QAED,uCAAuC;QACvC,MAAM,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,OAAO,IAAI,EAAE,CAAC,GAAG,CAAC;QACtC,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,aAAa,GAAG,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,iBAAiB,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QACzE,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,EAAE,IAAI,EAAE,UAAU,aAAa,CAAC,SAAS,MAAM,EAAE,CAAA;IAC1D,CAAC;IACD,SAAS,CAAC,IAAI;QACZ,MAAM,cAAc,GAAG,2BAA2B,CAAC,IAAI,CAAC,CAAC;QACzD,IAAI,cAAc,EAAE,CAAC;YACnB,IAAI,CAAC,MAAM,CAAC,EAAE,cAAc,EAAE,cAAc,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;CACF,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@lcap/nasl",
3
3
  "description": "NetEase Application Specific Language",
4
- "version": "4.0.0-beta.10",
4
+ "version": "4.0.0-beta.11",
5
5
  "author": "Forrest <rainforest92@126.com>",
6
6
  "main": "./out",
7
7
  "types": "./out/index.d.ts",
@@ -77,15 +77,15 @@
77
77
  "uuid": "8.3.2",
78
78
  "vue": "3.4.33",
79
79
  "vue-template-compiler": "2.6.14",
80
- "@lcap/nasl-breakpoint": "4.0.0-beta.10",
81
- "@lcap/nasl-language-server-core": "4.0.0-beta.10",
82
- "@lcap/nasl-log": "4.0.0-beta.10",
83
- "@lcap/nasl-concepts": "4.0.0-beta.10",
84
- "@lcap/nasl-sentry": "4.0.0-beta.10",
85
- "@lcap/nasl-translator": "4.0.0-beta.10",
86
- "@lcap/nasl-types": "4.0.0-beta.10",
87
- "@lcap/nasl-utils": "4.0.0-beta.10",
88
- "@lcap/nasl-unified-frontend-generator": "4.0.0-beta.10"
80
+ "@lcap/nasl-breakpoint": "4.0.0-beta.11",
81
+ "@lcap/nasl-concepts": "4.0.0-beta.11",
82
+ "@lcap/nasl-language-server-core": "4.0.0-beta.11",
83
+ "@lcap/nasl-translator": "4.0.0-beta.11",
84
+ "@lcap/nasl-sentry": "4.0.0-beta.11",
85
+ "@lcap/nasl-log": "4.0.0-beta.11",
86
+ "@lcap/nasl-types": "4.0.0-beta.11",
87
+ "@lcap/nasl-unified-frontend-generator": "4.0.0-beta.11",
88
+ "@lcap/nasl-utils": "4.0.0-beta.11"
89
89
  },
90
90
  "devDependencies": {
91
91
  "@types/babel__core": "7.20.1",