From 4a6fac210345555444549204bccf8f9087a5f842 Mon Sep 17 00:00:00 2001 From: JG Date: Thu, 9 Feb 2023 19:28:09 +0000 Subject: [PATCH] feat: vs extension field auto formatter --- .../src/language-server/zmodel-formatter.ts | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/packages/schema/src/language-server/zmodel-formatter.ts b/packages/schema/src/language-server/zmodel-formatter.ts index 372193279..c9300fa7a 100644 --- a/packages/schema/src/language-server/zmodel-formatter.ts +++ b/packages/schema/src/language-server/zmodel-formatter.ts @@ -7,7 +7,22 @@ export class ZModelFormatter extends AbstractFormatter { private formatOptions?: FormattingOptions; protected format(node: AstNode): void { const formatter = this.getNodeFormatter(node); - if (ast.isAbstractDeclaration(node)) { + if (ast.isDataModelField(node)) { + formatter.property('type').prepend(Formatting.oneSpace()); + if (node.attributes.length > 0) { + formatter.properties('attributes').prepend(Formatting.oneSpace()); + } + } else if (ast.isDataModelFieldAttribute(node)) { + formatter.keyword('(').surround(Formatting.noSpace()); + formatter.keyword(')').prepend(Formatting.noSpace()); + formatter.keyword(',').append(Formatting.oneSpace()); + if (node.args.length > 1) { + formatter.nodes(...node.args.slice(1)).prepend(Formatting.oneSpace()); + } + } else if (ast.isAttributeArg(node)) { + formatter.keyword(':').prepend(Formatting.noSpace()); + formatter.keyword(':').append(Formatting.oneSpace()); + } else if (ast.isAbstractDeclaration(node)) { const bracesOpen = formatter.keyword('{'); const bracesClose = formatter.keyword('}'); // this line decide the indent count return by this.getIndent()