zenstack 1.0.0-alpha.32 → 1.0.0-alpha.33

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.
package/README.md CHANGED
@@ -89,6 +89,10 @@ const MyPosts = () => {
89
89
  };
90
90
  ```
91
91
 
92
+ The following diagram gives a high-level overview of how it works.
93
+
94
+ ![Architecture](https://zenstack.dev/img/architecture-light.png)
95
+
92
96
  ## Links
93
97
 
94
98
  - [Home](https://zenstack.dev)
@@ -10,3 +10,6 @@ export declare const SCALAR_TYPES: string[];
10
10
  * Name of standard library module
11
11
  */
12
12
  export declare const STD_LIB_MODULE_NAME = "stdlib.zmodel";
13
+ export declare enum IssueCodes {
14
+ MissingOppositeRelation = "miss-opposite-relation"
15
+ }
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.STD_LIB_MODULE_NAME = exports.SCALAR_TYPES = exports.SUPPORTED_PROVIDERS = void 0;
3
+ exports.IssueCodes = exports.STD_LIB_MODULE_NAME = exports.SCALAR_TYPES = exports.SUPPORTED_PROVIDERS = void 0;
4
4
  /**
5
5
  * Supported Prisma db providers
6
6
  */
@@ -13,4 +13,8 @@ exports.SCALAR_TYPES = ['String', 'Int', 'Float', 'Decimal', 'BigInt', 'Boolean'
13
13
  * Name of standard library module
14
14
  */
15
15
  exports.STD_LIB_MODULE_NAME = 'stdlib.zmodel';
16
+ var IssueCodes;
17
+ (function (IssueCodes) {
18
+ IssueCodes["MissingOppositeRelation"] = "miss-opposite-relation";
19
+ })(IssueCodes = exports.IssueCodes || (exports.IssueCodes = {}));
16
20
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/language-server/constants.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACU,QAAA,mBAAmB,GAAG,CAAC,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC;AAEjG;;GAEG;AACU,QAAA,YAAY,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;AAE5G;;GAEG;AACU,QAAA,mBAAmB,GAAG,eAAe,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/language-server/constants.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACU,QAAA,mBAAmB,GAAG,CAAC,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC;AAEjG;;GAEG;AACU,QAAA,YAAY,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;AAE5G;;GAEG;AACU,QAAA,mBAAmB,GAAG,eAAe,CAAC;AAEnD,IAAY,UAEX;AAFD,WAAY,UAAU;IAClB,gEAAkD,CAAA;AACtD,CAAC,EAFW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAErB"}
@@ -252,7 +252,7 @@ class DataModelValidator {
252
252
  return fieldRel.valid && fieldRel.name === thisRelation.name;
253
253
  });
254
254
  if (oppositeFields.length === 0) {
255
- accept('error', `The relation field "${field.name}" on model "${field.$container.name}" is missing an opposite relation field on model "${oppositeModel.name}"`, { node: field });
255
+ accept('error', `The relation field "${field.name}" on model "${field.$container.name}" is missing an opposite relation field on model "${oppositeModel.name}"`, { node: field, code: constants_1.IssueCodes.MissingOppositeRelation });
256
256
  return;
257
257
  }
258
258
  else if (oppositeFields.length > 1) {
@@ -1 +1 @@
1
- {"version":3,"file":"datamodel-validator.js","sourceRoot":"","sources":["../../../src/language-server/validator/datamodel-validator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"datamodel-validator.js","sourceRoot":"","sources":["../../../src/language-server/validator/datamodel-validator.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.assignableToAttributeParam = exports.mapBuiltinTypeToExpressionType = exports.typeAssignable = exports.getStringLiteral = exports.validateDuplicatedDeclarations = void 0;
4
4
  const ast_1 = require("@zenstackhq/language/ast");
5
+ const sdk_1 = require("@zenstackhq/sdk");
5
6
  /**
6
7
  * Checks if the given declarations have duplicated names
7
8
  */
@@ -74,7 +75,7 @@ exports.mapBuiltinTypeToExpressionType = mapBuiltinTypeToExpressionType;
74
75
  * Determines if the given attribute argument is assignable to the given attribute parameter
75
76
  */
76
77
  function assignableToAttributeParam(arg, param, attr) {
77
- var _a, _b;
78
+ var _a, _b, _c, _d, _e, _f;
78
79
  const argResolvedType = arg.$resolvedType;
79
80
  if (!argResolvedType) {
80
81
  return false;
@@ -82,7 +83,18 @@ function assignableToAttributeParam(arg, param, attr) {
82
83
  let dstType = param.type.type;
83
84
  const dstIsArray = param.type.array;
84
85
  const dstRef = param.type.reference;
85
- if (dstType) {
86
+ if ((0, ast_1.isEnum)(argResolvedType.decl)) {
87
+ // enum type
88
+ let attrArgDeclType = dstRef === null || dstRef === void 0 ? void 0 : dstRef.ref;
89
+ if (dstType === 'ContextType' && (0, ast_1.isDataModelField)(attr.$container) && ((_b = (_a = attr.$container) === null || _a === void 0 ? void 0 : _a.type) === null || _b === void 0 ? void 0 : _b.reference)) {
90
+ // attribute parameter type is ContextType, need to infer type from
91
+ // the attribute's container
92
+ attrArgDeclType = (0, sdk_1.resolved)((_d = (_c = attr.$container) === null || _c === void 0 ? void 0 : _c.type) === null || _d === void 0 ? void 0 : _d.reference);
93
+ }
94
+ return attrArgDeclType === argResolvedType.decl && dstIsArray === argResolvedType.array;
95
+ }
96
+ else if (dstType) {
97
+ // scalar type
86
98
  if (typeof (argResolvedType === null || argResolvedType === void 0 ? void 0 : argResolvedType.decl) !== 'string') {
87
99
  // destination type is not a reference, so argument type must be a plain expression
88
100
  return false;
@@ -97,8 +109,10 @@ function assignableToAttributeParam(arg, param, attr) {
97
109
  }
98
110
  }
99
111
  else if (dstType === 'ContextType') {
112
+ // attribute parameter type is ContextType, need to infer type from
113
+ // the attribute's container
100
114
  if ((0, ast_1.isDataModelField)(attr.$container)) {
101
- if (!((_b = (_a = attr.$container) === null || _a === void 0 ? void 0 : _a.type) === null || _b === void 0 ? void 0 : _b.type)) {
115
+ if (!((_f = (_e = attr.$container) === null || _e === void 0 ? void 0 : _e.type) === null || _f === void 0 ? void 0 : _f.type)) {
102
116
  return false;
103
117
  }
104
118
  dstType = mapBuiltinTypeToExpressionType(attr.$container.type.type);
@@ -110,6 +124,7 @@ function assignableToAttributeParam(arg, param, attr) {
110
124
  return (typeAssignable(dstType, argResolvedType.decl) && (dstType === 'Any' || dstIsArray === argResolvedType.array));
111
125
  }
112
126
  else {
127
+ // reference type
113
128
  return (dstRef === null || dstRef === void 0 ? void 0 : dstRef.ref) === argResolvedType.decl && dstIsArray === argResolvedType.array;
114
129
  }
115
130
  }
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/language-server/validator/utils.ts"],"names":[],"mappings":";;;AAAA,kDAWkC;AAGlC;;GAEG;AACH,SAAgB,8BAA8B,CAC1C,KAAwC,EACxC,MAA0B;IAE1B,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAoD,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;;QAChG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,MAAA,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,mCAAI,EAAE,CAAC;QAC1C,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5B,OAAO,KAAK,CAAC;IACjB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAY,WAAW,CAAC,EAAE;QAChE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YAClB,MAAM,CAAC,OAAO,EAAE,gCAAgC,IAAI,GAAG,EAAE;gBACrD,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;aACjB,CAAC,CAAC;SACN;KACJ;AACL,CAAC;AAjBD,wEAiBC;AAED;;GAEG;AACH,SAAgB,gBAAgB,CAAC,IAAyB;IACtD,IAAI,IAAA,mBAAa,EAAC,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE;QACvD,OAAO,IAAI,CAAC,KAAK,CAAC;KACrB;SAAM;QACH,OAAO,SAAS,CAAC;KACpB;AACL,CAAC;AAND,4CAMC;AAED;;GAEG;AACH,SAAgB,cAAc,CAAC,QAAwB,EAAE,UAA0B;IAC/E,QAAQ,QAAQ,EAAE;QACd,KAAK,KAAK;YACN,OAAO,IAAI,CAAC;QAChB,KAAK,OAAO;YACR,OAAO,UAAU,KAAK,KAAK,IAAI,UAAU,KAAK,KAAK,IAAI,UAAU,KAAK,OAAO,CAAC;QAClF;YACI,OAAO,UAAU,KAAK,KAAK,IAAI,UAAU,KAAK,QAAQ,CAAC;KAC9D;AACL,CAAC;AATD,wCASC;AAED;;GAEG;AACH,SAAgB,8BAA8B,CAAC,IAAkC;IAC7E,QAAQ,IAAI,EAAE;QACV,KAAK,KAAK,CAAC;QACX,KAAK,SAAS,CAAC;QACf,KAAK,QAAQ,CAAC;QACd,KAAK,UAAU,CAAC;QAChB,KAAK,KAAK,CAAC;QACX,KAAK,OAAO,CAAC;QACb,KAAK,MAAM;YACP,OAAO,IAAI,CAAC;QAChB,KAAK,QAAQ;YACT,OAAO,KAAK,CAAC;QACjB,KAAK,SAAS;YACV,OAAO,OAAO,CAAC;QACnB,KAAK,MAAM,CAAC;QACZ,KAAK,OAAO;YACR,OAAO,KAAK,CAAC;KACpB;AACL,CAAC;AAlBD,wEAkBC;AAED;;GAEG;AACH,SAAgB,0BAA0B,CACtC,GAAiB,EACjB,KAAqB,EACrB,IAAkD;;IAElD,MAAM,eAAe,GAAG,GAAG,CAAC,aAAa,CAAC;IAC1C,IAAI,CAAC,eAAe,EAAE;QAClB,OAAO,KAAK,CAAC;KAChB;IAED,IAAI,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;IAC9B,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;IACpC,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;IAEpC,IAAI,OAAO,EAAE;QACT,IAAI,OAAO,CAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,IAAI,CAAA,KAAK,QAAQ,EAAE;YAC3C,mFAAmF;YACnF,OAAO,KAAK,CAAC;SAChB;QAED,IAAI,OAAO,KAAK,gBAAgB,IAAI,OAAO,KAAK,0BAA0B,EAAE;YACxE,IAAI,UAAU,EAAE;gBACZ,OAAO,CACH,IAAA,iBAAW,EAAC,GAAG,CAAC,KAAK,CAAC;oBACtB,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAA,qBAAe,EAAC,IAAI,CAAC,IAAI,CAAC,IAAA,sBAAgB,EAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAChG,CAAC;aACL;iBAAM;gBACH,OAAO,IAAA,qBAAe,EAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAA,sBAAgB,EAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;aAC/E;SACJ;aAAM,IAAI,OAAO,KAAK,aAAa,EAAE;YAClC,IAAI,IAAA,sBAAgB,EAAC,IAAI,CAAC,UAAU,CAAC,EAAE;gBACnC,IAAI,CAAC,CAAA,MAAA,MAAA,IAAI,CAAC,UAAU,0CAAE,IAAI,0CAAE,IAAI,CAAA,EAAE;oBAC9B,OAAO,KAAK,CAAC;iBAChB;gBACD,OAAO,GAAG,8BAA8B,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACvE;iBAAM;gBACH,OAAO,GAAG,KAAK,CAAC;aACnB;SACJ;QAED,OAAO,CACH,cAAc,CAAC,OAAO,EAAE,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,KAAK,KAAK,IAAI,UAAU,KAAK,eAAe,CAAC,KAAK,CAAC,CAC/G,CAAC;KACL;SAAM;QACH,OAAO,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,GAAG,MAAK,eAAe,CAAC,IAAI,IAAI,UAAU,KAAK,eAAe,CAAC,KAAK,CAAC;KACvF;AACL,CAAC;AA9CD,gEA8CC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/language-server/validator/utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { AstReflection, CodeActionProvider, IndexManager, LangiumDocument, LangiumServices, MaybePromise } from 'langium';
2
+ import { CodeAction, CodeActionParams, Command } from 'vscode-languageserver';
3
+ import { ZModelFormatter } from './zmodel-formatter';
4
+ export declare class ZModelCodeActionProvider implements CodeActionProvider {
5
+ protected readonly reflection: AstReflection;
6
+ protected readonly indexManager: IndexManager;
7
+ protected readonly formatter: ZModelFormatter;
8
+ constructor(services: LangiumServices);
9
+ getCodeActions(document: LangiumDocument, params: CodeActionParams): MaybePromise<Array<Command | CodeAction> | undefined>;
10
+ private createCodeActions;
11
+ private fixMissingOppositeRelation;
12
+ private lowerCaseFirstLetter;
13
+ private upperCaseFirstLetter;
14
+ }
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ZModelCodeActionProvider = void 0;
4
+ const ast_1 = require("@zenstackhq/language/ast");
5
+ const langium_1 = require("langium");
6
+ const vscode_languageserver_1 = require("vscode-languageserver");
7
+ const constants_1 = require("./constants");
8
+ class ZModelCodeActionProvider {
9
+ constructor(services) {
10
+ this.reflection = services.shared.AstReflection;
11
+ this.indexManager = services.shared.workspace.IndexManager;
12
+ this.formatter = services.lsp.Formatter;
13
+ }
14
+ getCodeActions(document, params) {
15
+ const result = [];
16
+ const acceptor = (ca) => ca && result.push(ca);
17
+ for (const diagnostic of params.context.diagnostics) {
18
+ this.createCodeActions(diagnostic, document, acceptor);
19
+ }
20
+ return result;
21
+ }
22
+ createCodeActions(diagnostic, document, accept) {
23
+ switch (diagnostic.code) {
24
+ case constants_1.IssueCodes.MissingOppositeRelation:
25
+ accept(this.fixMissingOppositeRelation(diagnostic, document));
26
+ }
27
+ return undefined;
28
+ }
29
+ fixMissingOppositeRelation(diagnostic, document) {
30
+ const offset = document.textDocument.offsetAt(diagnostic.range.start);
31
+ const rootCst = document.parseResult.value.$cstNode;
32
+ if (rootCst) {
33
+ const cstNode = (0, langium_1.findDeclarationNodeAtOffset)(rootCst, offset);
34
+ const astNode = cstNode === null || cstNode === void 0 ? void 0 : cstNode.element;
35
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
36
+ const oppositeModel = astNode.type.reference.ref;
37
+ const lastField = oppositeModel.fields[oppositeModel.fields.length - 1];
38
+ const container = (0, langium_1.getContainerOfType)(cstNode === null || cstNode === void 0 ? void 0 : cstNode.element, ast_1.isDataModel);
39
+ const idField = container.fields.find((f) => f.attributes.find((attr) => { var _a; return ((_a = attr.decl.ref) === null || _a === void 0 ? void 0 : _a.name) === '@id'; }));
40
+ if (container && container.$cstNode && idField) {
41
+ // indent
42
+ let indent = '\t';
43
+ const formatOptions = this.formatter.getFormatOptions();
44
+ if (formatOptions === null || formatOptions === void 0 ? void 0 : formatOptions.insertSpaces) {
45
+ indent = ' '.repeat(formatOptions.tabSize);
46
+ }
47
+ indent = indent.repeat(this.formatter.getIndent());
48
+ const typeName = container.name;
49
+ const fieldName = this.lowerCaseFirstLetter(typeName);
50
+ // might already exist
51
+ let referenceField = '';
52
+ const idFieldName = idField.name;
53
+ const referenceIdFieldName = fieldName + this.upperCaseFirstLetter(idFieldName);
54
+ if (!oppositeModel.fields.find((f) => f.name === referenceIdFieldName)) {
55
+ referenceField = '\n' + indent + `${referenceIdFieldName} ${idField.type.type}`;
56
+ }
57
+ return {
58
+ title: `Add opposite relation fields on ${oppositeModel.name}`,
59
+ kind: vscode_languageserver_1.CodeActionKind.QuickFix,
60
+ diagnostics: [diagnostic],
61
+ isPreferred: false,
62
+ edit: {
63
+ changes: {
64
+ [document.textDocument.uri]: [
65
+ {
66
+ range: {
67
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
68
+ start: lastField.$cstNode.range.end,
69
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
70
+ end: lastField.$cstNode.range.end,
71
+ },
72
+ newText: '\n' +
73
+ indent +
74
+ `${fieldName} ${typeName} @relation(fields: [${referenceIdFieldName}], references: [${idFieldName}])` +
75
+ referenceField,
76
+ },
77
+ ],
78
+ },
79
+ },
80
+ };
81
+ }
82
+ }
83
+ return undefined;
84
+ }
85
+ lowerCaseFirstLetter(str) {
86
+ return str.charAt(0).toLowerCase() + str.slice(1);
87
+ }
88
+ upperCaseFirstLetter(str) {
89
+ return str.charAt(0).toUpperCase() + str.slice(1);
90
+ }
91
+ }
92
+ exports.ZModelCodeActionProvider = ZModelCodeActionProvider;
93
+ //# sourceMappingURL=zmodel-code-action.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zmodel-code-action.js","sourceRoot":"","sources":["../../src/language-server/zmodel-code-action.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,9 @@
1
- import { AbstractFormatter, AstNode } from 'langium';
1
+ import { AbstractFormatter, AstNode, LangiumDocument } from 'langium';
2
+ import { FormattingOptions, Range, TextEdit } from 'vscode-languageserver';
2
3
  export declare class ZModelFormatter extends AbstractFormatter {
4
+ private formatOptions?;
3
5
  protected format(node: AstNode): void;
6
+ protected doDocumentFormat(document: LangiumDocument<AstNode>, options: FormattingOptions, range?: Range | undefined): TextEdit[];
7
+ getFormatOptions(): FormattingOptions | undefined;
8
+ getIndent(): number;
4
9
  }
@@ -29,9 +29,28 @@ const ast = __importStar(require("@zenstackhq/language/ast"));
29
29
  class ZModelFormatter extends langium_1.AbstractFormatter {
30
30
  format(node) {
31
31
  const formatter = this.getNodeFormatter(node);
32
- if (ast.isAbstractDeclaration(node)) {
32
+ if (ast.isDataModelField(node)) {
33
+ formatter.property('type').prepend(langium_1.Formatting.oneSpace());
34
+ if (node.attributes.length > 0) {
35
+ formatter.properties('attributes').prepend(langium_1.Formatting.oneSpace());
36
+ }
37
+ }
38
+ else if (ast.isDataModelFieldAttribute(node)) {
39
+ formatter.keyword('(').surround(langium_1.Formatting.noSpace());
40
+ formatter.keyword(')').prepend(langium_1.Formatting.noSpace());
41
+ formatter.keyword(',').append(langium_1.Formatting.oneSpace());
42
+ if (node.args.length > 1) {
43
+ formatter.nodes(...node.args.slice(1)).prepend(langium_1.Formatting.oneSpace());
44
+ }
45
+ }
46
+ else if (ast.isAttributeArg(node)) {
47
+ formatter.keyword(':').prepend(langium_1.Formatting.noSpace());
48
+ formatter.keyword(':').append(langium_1.Formatting.oneSpace());
49
+ }
50
+ else if (ast.isAbstractDeclaration(node)) {
33
51
  const bracesOpen = formatter.keyword('{');
34
52
  const bracesClose = formatter.keyword('}');
53
+ // this line decide the indent count return by this.getIndent()
35
54
  formatter.interior(bracesOpen, bracesClose).prepend(langium_1.Formatting.indent());
36
55
  bracesOpen.prepend(langium_1.Formatting.oneSpace());
37
56
  bracesClose.prepend(langium_1.Formatting.newLine());
@@ -42,6 +61,16 @@ class ZModelFormatter extends langium_1.AbstractFormatter {
42
61
  nodes.prepend(langium_1.Formatting.noIndent());
43
62
  }
44
63
  }
64
+ doDocumentFormat(document, options, range) {
65
+ this.formatOptions = options;
66
+ return super.doDocumentFormat(document, options, range);
67
+ }
68
+ getFormatOptions() {
69
+ return this.formatOptions;
70
+ }
71
+ getIndent() {
72
+ return 1;
73
+ }
45
74
  }
46
75
  exports.ZModelFormatter = ZModelFormatter;
47
76
  //# sourceMappingURL=zmodel-formatter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"zmodel-formatter.js","sourceRoot":"","sources":["../../src/language-server/zmodel-formatter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qCAAiE;AAEjE,8DAAgD;AAEhD,MAAa,eAAgB,SAAQ,2BAAiB;IACxC,MAAM,CAAC,IAAa;QAC1B,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,GAAG,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE;YACjC,MAAM,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC1C,MAAM,WAAW,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC3C,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,OAAO,CAAC,oBAAU,CAAC,MAAM,EAAE,CAAC,CAAC;YACzE,UAAU,CAAC,OAAO,CAAC,oBAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC1C,WAAW,CAAC,OAAO,CAAC,oBAAU,CAAC,OAAO,EAAE,CAAC,CAAC;SAC7C;aAAM,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YAC1B,MAAM,KAAK,GAAG,IAAiB,CAAC;YAChC,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC;YACrD,KAAK,CAAC,OAAO,CAAC,oBAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;SACxC;IACL,CAAC;CACJ;AAfD,0CAeC"}
1
+ {"version":3,"file":"zmodel-formatter.js","sourceRoot":"","sources":["../../src/language-server/zmodel-formatter.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,7 @@ const langium_1 = require("langium");
9
9
  const vscode_languageserver_1 = require("vscode-languageserver");
10
10
  const vscode_languageserver_textdocument_1 = require("vscode-languageserver-textdocument");
11
11
  const zmodel_validator_1 = require("./validator/zmodel-validator");
12
+ const zmodel_code_action_1 = require("./zmodel-code-action");
12
13
  const zmodel_formatter_1 = require("./zmodel-formatter");
13
14
  const zmodel_linker_1 = require("./zmodel-linker");
14
15
  const zmodel_scope_1 = require("./zmodel-scope");
@@ -29,6 +30,7 @@ exports.ZModelModule = {
29
30
  },
30
31
  lsp: {
31
32
  Formatter: () => new zmodel_formatter_1.ZModelFormatter(),
33
+ CodeActionProvider: (services) => new zmodel_code_action_1.ZModelCodeActionProvider(services),
32
34
  },
33
35
  };
34
36
  // this duplicates createDefaultSharedModule except that a custom WorkspaceManager is used
@@ -1 +1 @@
1
- {"version":3,"file":"zmodel-module.js","sourceRoot":"","sources":["../../src/language-server/zmodel-module.ts"],"names":[],"mappings":";;;;;;AAAA,wDAAiG;AACjG,qCAiBiB;AACjB,iEAAsD;AACtD,2FAAkE;AAClE,mEAAyF;AACzF,yDAAqD;AACrD,mDAA+C;AAC/C,iDAAwD;AACxD,0FAAgE;AAiBhE;;;;GAIG;AACU,QAAA,YAAY,GAAyE;IAC9F,UAAU,EAAE;QACR,gBAAgB,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,qCAAsB,CAAC,QAAQ,CAAC;QACpE,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,4BAAY,CAAC,QAAQ,CAAC;KACnD;IACD,UAAU,EAAE;QACR,kBAAkB,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,2CAAwB,CAAC,QAAQ,CAAC;QACxE,eAAe,EAAE,GAAG,EAAE,CAAC,IAAI,kCAAe,EAAE;KAC/C;IACD,GAAG,EAAE;QACD,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,kCAAe,EAAE;KACzC;CACJ,CAAC;AAEF,0FAA0F;AAC1F,SAAgB,kBAAkB,CAC9B,OAAmC;IAEnC,OAAO;QACH,eAAe,EAAE,GAAG,EAAE,CAAC,IAAI,gCAAsB,EAAE;QACnD,GAAG,EAAE;YACD,UAAU,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,UAAU;YACpC,cAAc,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,+BAAqB,CAAC,QAAQ,CAAC;SACpE;QACD,SAAS,EAAE;YACP,gBAAgB,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,iCAAuB,CAAC,QAAQ,CAAC;YACrE,sBAAsB,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,uCAA6B,CAAC,QAAQ,CAAC;YACjF,eAAe,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,gCAAsB,CAAC,QAAQ,CAAC;YACnE,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI,qCAAa,CAAC,iDAAY,CAAC;YACpD,YAAY,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,6BAAmB,CAAC,QAAQ,CAAC;YAC7D,gBAAgB,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,kCAAsB,CAAC,QAAQ,CAAC;YACpE,kBAAkB,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,kBAAkB,CAAC,QAAQ,CAAC;YACtE,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,mBAAS,EAAE;YAChC,qBAAqB,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,sCAA4B,CAAC,QAAQ,CAAC;SAClF;KACJ,CAAC;AACN,CAAC;AArBD,gDAqBC;AAED;;;;;;;;;;;;;;GAcG;AACH,SAAgB,oBAAoB,CAAC,OAAmC;IAIpE,MAAM,MAAM,GAAG,IAAA,gBAAM,EAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,oCAA2B,CAAC,CAAC;IAEhF,MAAM,MAAM,GAAG,IAAA,gBAAM,EAAC,IAAA,6BAAmB,EAAC,EAAE,MAAM,EAAE,CAAC,EAAE,8BAAqB,EAAE,oBAAY,CAAC,CAAC;IAC5F,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACxC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAC9B,CAAC;AATD,oDASC"}
1
+ {"version":3,"file":"zmodel-module.js","sourceRoot":"","sources":["../../src/language-server/zmodel-module.ts"],"names":[],"mappings":";;;;;;AAAA,wDAAiG;AACjG,qCAiBiB;AACjB,iEAAsD;AACtD,2FAAkE;AAClE,mEAAyF;AACzF,6DAAgE;AAChE,yDAAqD;AACrD,mDAA+C;AAC/C,iDAAwD;AACxD,0FAAgE;AAiBhE;;;;GAIG;AACU,QAAA,YAAY,GAAyE;IAC9F,UAAU,EAAE;QACR,gBAAgB,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,qCAAsB,CAAC,QAAQ,CAAC;QACpE,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,4BAAY,CAAC,QAAQ,CAAC;KACnD;IACD,UAAU,EAAE;QACR,kBAAkB,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,2CAAwB,CAAC,QAAQ,CAAC;QACxE,eAAe,EAAE,GAAG,EAAE,CAAC,IAAI,kCAAe,EAAE;KAC/C;IACD,GAAG,EAAE;QACD,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,kCAAe,EAAE;QACtC,kBAAkB,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,6CAAwB,CAAC,QAAQ,CAAC;KAC3E;CACJ,CAAC;AAEF,0FAA0F;AAC1F,SAAgB,kBAAkB,CAC9B,OAAmC;IAEnC,OAAO;QACH,eAAe,EAAE,GAAG,EAAE,CAAC,IAAI,gCAAsB,EAAE;QACnD,GAAG,EAAE;YACD,UAAU,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,UAAU;YACpC,cAAc,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,+BAAqB,CAAC,QAAQ,CAAC;SACpE;QACD,SAAS,EAAE;YACP,gBAAgB,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,iCAAuB,CAAC,QAAQ,CAAC;YACrE,sBAAsB,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,uCAA6B,CAAC,QAAQ,CAAC;YACjF,eAAe,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,gCAAsB,CAAC,QAAQ,CAAC;YACnE,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI,qCAAa,CAAC,iDAAY,CAAC;YACpD,YAAY,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,6BAAmB,CAAC,QAAQ,CAAC;YAC7D,gBAAgB,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,kCAAsB,CAAC,QAAQ,CAAC;YACpE,kBAAkB,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,kBAAkB,CAAC,QAAQ,CAAC;YACtE,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,mBAAS,EAAE;YAChC,qBAAqB,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,sCAA4B,CAAC,QAAQ,CAAC;SAClF;KACJ,CAAC;AACN,CAAC;AArBD,gDAqBC;AAED;;;;;;;;;;;;;;GAcG;AACH,SAAgB,oBAAoB,CAAC,OAAmC;IAIpE,MAAM,MAAM,GAAG,IAAA,gBAAM,EAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,oCAA2B,CAAC,CAAC;IAEhF,MAAM,MAAM,GAAG,IAAA,gBAAM,EAAC,IAAA,6BAAmB,EAAC,EAAE,MAAM,EAAE,CAAC,EAAE,8BAAqB,EAAE,oBAAY,CAAC,CAAC;IAC5F,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACxC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAC9B,CAAC;AATD,oDASC"}
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "publisher": "zenstack",
4
4
  "displayName": "ZenStack Language Tools",
5
5
  "description": "A toolkit for building secure CRUD apps with Next.js + Typescript",
6
- "version": "1.0.0-alpha.32",
6
+ "version": "1.0.0-alpha.33",
7
7
  "author": {
8
8
  "name": "ZenStack Team"
9
9
  },
@@ -90,9 +90,9 @@
90
90
  "vscode-languageserver-textdocument": "^1.0.7",
91
91
  "vscode-uri": "^3.0.6",
92
92
  "zod": "^3.19.1",
93
- "@zenstackhq/runtime": "1.0.0-alpha.32",
94
- "@zenstackhq/sdk": "1.0.0-alpha.32",
95
- "@zenstackhq/language": "1.0.0-alpha.32"
93
+ "@zenstackhq/runtime": "1.0.0-alpha.33",
94
+ "@zenstackhq/language": "1.0.0-alpha.33",
95
+ "@zenstackhq/sdk": "1.0.0-alpha.33"
96
96
  },
97
97
  "devDependencies": {
98
98
  "@types/async-exit-hook": "^2.0.0",