From ff49f5579b75086b33061fce6680f88cc30f0860 Mon Sep 17 00:00:00 2001 From: sjonynaite Date: Wed, 21 Aug 2024 17:16:47 +0300 Subject: [PATCH 01/25] Updated findFormattter added tests --- .../find-firstLastNextPrev/input.p | 8 + .../find-firstLastNextPrev/target.p | 8 + .../find-multipleConditions-()/input.p | 6 + .../find-multipleConditions-()/target.p | 6 + .../find-multipleConditions-()2/input.p | 6 + .../find-multipleConditions-()2/target.p | 6 + .../find-multipleConditions/input.p | 8 + .../find-multipleConditions/target.p | 8 + resources/functionalTests/find-spaces/input.p | 5 + .../functionalTests/find-spaces/target.p | 5 + .../functionalTests/find-useIndex/input.p | 5 + .../functionalTests/find-useIndex/target.p | 6 + src/model/SyntaxNodeType.ts | 1 + .../enableFormatterDecorators.ts | 2 + src/v2/formatters/find/FindFormatter.ts | 234 ++++++++++++++++++ src/v2/formatters/find/FindSettings.ts | 8 + 16 files changed, 322 insertions(+) create mode 100644 resources/functionalTests/find-firstLastNextPrev/input.p create mode 100644 resources/functionalTests/find-firstLastNextPrev/target.p create mode 100644 resources/functionalTests/find-multipleConditions-()/input.p create mode 100644 resources/functionalTests/find-multipleConditions-()/target.p create mode 100644 resources/functionalTests/find-multipleConditions-()2/input.p create mode 100644 resources/functionalTests/find-multipleConditions-()2/target.p create mode 100644 resources/functionalTests/find-multipleConditions/input.p create mode 100644 resources/functionalTests/find-multipleConditions/target.p create mode 100644 resources/functionalTests/find-spaces/input.p create mode 100644 resources/functionalTests/find-spaces/target.p create mode 100644 resources/functionalTests/find-useIndex/input.p create mode 100644 resources/functionalTests/find-useIndex/target.p create mode 100644 src/v2/formatters/find/FindFormatter.ts create mode 100644 src/v2/formatters/find/FindSettings.ts diff --git a/resources/functionalTests/find-firstLastNextPrev/input.p b/resources/functionalTests/find-firstLastNextPrev/input.p new file mode 100644 index 0000000..b2b68c7 --- /dev/null +++ b/resources/functionalTests/find-firstLastNextPrev/input.p @@ -0,0 +1,8 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.findFormatting": true, +"abl.completion.upperCase": true}*/ + +FIND FIRST Customer WHERE Customer.CustNum = 5 NO-LOCK NO-ERROR. +FIND LAST Customer WHERE Customer.CustNum = 5 NO-LOCK NO-ERROR. +FIND NEXT Customer WHERE Customer.CustNum = 5 NO-LOCK NO-ERROR. +FIND PREV Customer WHERE Customer.CustNum = 5 NO-LOCK NO-ERROR. \ No newline at end of file diff --git a/resources/functionalTests/find-firstLastNextPrev/target.p b/resources/functionalTests/find-firstLastNextPrev/target.p new file mode 100644 index 0000000..0b3d193 --- /dev/null +++ b/resources/functionalTests/find-firstLastNextPrev/target.p @@ -0,0 +1,8 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.findFormatting": true, +"abl.completion.upperCase": true}*/ + +FIND FIRST Customer WHERE Customer.CustNum = 5 NO-LOCK NO-ERROR. +FIND LAST Customer WHERE Customer.CustNum = 5 NO-LOCK NO-ERROR. +FIND NEXT Customer WHERE Customer.CustNum = 5 NO-LOCK NO-ERROR. +FIND PREV Customer WHERE Customer.CustNum = 5 NO-LOCK NO-ERROR. \ No newline at end of file diff --git a/resources/functionalTests/find-multipleConditions-()/input.p b/resources/functionalTests/find-multipleConditions-()/input.p new file mode 100644 index 0000000..46cf014 --- /dev/null +++ b/resources/functionalTests/find-multipleConditions-()/input.p @@ -0,0 +1,6 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.findFormatting": true, +"abl.completion.upperCase": true}*/ + +FIND Customer WHERE (Customer.CustNum > 50 AND Customer.CustNum < 100) OR + Customer.CustNum > 200 NO-ERROR. \ No newline at end of file diff --git a/resources/functionalTests/find-multipleConditions-()/target.p b/resources/functionalTests/find-multipleConditions-()/target.p new file mode 100644 index 0000000..37f2585 --- /dev/null +++ b/resources/functionalTests/find-multipleConditions-()/target.p @@ -0,0 +1,6 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.findFormatting": true, +"abl.completion.upperCase": true}*/ + +FIND Customer WHERE (Customer.CustNum > 50 AND Customer.CustNum < 100) OR + Customer.CustNum > 200 NO-ERROR. \ No newline at end of file diff --git a/resources/functionalTests/find-multipleConditions-()2/input.p b/resources/functionalTests/find-multipleConditions-()2/input.p new file mode 100644 index 0000000..34d84c2 --- /dev/null +++ b/resources/functionalTests/find-multipleConditions-()2/input.p @@ -0,0 +1,6 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.findFormatting": true, +"abl.completion.upperCase": true}*/ + +FIND Order WHERE (Order.OrderStatus = "Shipped" AND (Order.ShipDate > TODAY - 7)) OR +(Order.OrderStatus = "Pending" AND (Order.OrderDate = TODAY)) no-lock. \ No newline at end of file diff --git a/resources/functionalTests/find-multipleConditions-()2/target.p b/resources/functionalTests/find-multipleConditions-()2/target.p new file mode 100644 index 0000000..0b14b40 --- /dev/null +++ b/resources/functionalTests/find-multipleConditions-()2/target.p @@ -0,0 +1,6 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.findFormatting": true, +"abl.completion.upperCase": true}*/ + +FIND Order WHERE (Order.OrderStatus = "Shipped" AND (Order.ShipDate > TODAY - 7)) OR + (Order.OrderStatus = "Pending" AND (Order.OrderDate = TODAY)) no-lock. \ No newline at end of file diff --git a/resources/functionalTests/find-multipleConditions/input.p b/resources/functionalTests/find-multipleConditions/input.p new file mode 100644 index 0000000..0747c5d --- /dev/null +++ b/resources/functionalTests/find-multipleConditions/input.p @@ -0,0 +1,8 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.findFormatting": true, +"abl.completion.upperCase": true}*/ + +FIND Customer WHERE +Customer.CustNum = 5 AND Customer.CustNum = 6 OR + Customer.CustNum = 7 AND + Customer.CustNum = 8 no-lock no-error. \ No newline at end of file diff --git a/resources/functionalTests/find-multipleConditions/target.p b/resources/functionalTests/find-multipleConditions/target.p new file mode 100644 index 0000000..5a116d0 --- /dev/null +++ b/resources/functionalTests/find-multipleConditions/target.p @@ -0,0 +1,8 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.findFormatting": true, +"abl.completion.upperCase": true}*/ + +FIND Customer WHERE Customer.CustNum = 5 AND + Customer.CustNum = 6 OR + Customer.CustNum = 7 AND + Customer.CustNum = 8 no-lock no-error. \ No newline at end of file diff --git a/resources/functionalTests/find-spaces/input.p b/resources/functionalTests/find-spaces/input.p new file mode 100644 index 0000000..d70cac2 --- /dev/null +++ b/resources/functionalTests/find-spaces/input.p @@ -0,0 +1,5 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.findFormatting": true, +"abl.completion.upperCase": true}*/ + +FIND Customer WHERE Customer.CustNum = 5 NO-LOCK NO-ERROR. \ No newline at end of file diff --git a/resources/functionalTests/find-spaces/target.p b/resources/functionalTests/find-spaces/target.p new file mode 100644 index 0000000..9996f9e --- /dev/null +++ b/resources/functionalTests/find-spaces/target.p @@ -0,0 +1,5 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.findFormatting": true, +"abl.completion.upperCase": true}*/ + +FIND Customer WHERE Customer.CustNum = 5 NO-LOCK NO-ERROR. \ No newline at end of file diff --git a/resources/functionalTests/find-useIndex/input.p b/resources/functionalTests/find-useIndex/input.p new file mode 100644 index 0000000..6a13e2c --- /dev/null +++ b/resources/functionalTests/find-useIndex/input.p @@ -0,0 +1,5 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.findFormatting": true, +"abl.completion.upperCase": true}*/ + +find Order where Order.OrderStatus = "Shipped" and Order.ShipDate = today use-index OrderNum. \ No newline at end of file diff --git a/resources/functionalTests/find-useIndex/target.p b/resources/functionalTests/find-useIndex/target.p new file mode 100644 index 0000000..4fcd22c --- /dev/null +++ b/resources/functionalTests/find-useIndex/target.p @@ -0,0 +1,6 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.findFormatting": true, +"abl.completion.upperCase": true}*/ + +find Order where Order.OrderStatus = "Shipped" and + Order.ShipDate = today use-index OrderNum. \ No newline at end of file diff --git a/src/model/SyntaxNodeType.ts b/src/model/SyntaxNodeType.ts index 4ea3d3c..1603a57 100644 --- a/src/model/SyntaxNodeType.ts +++ b/src/model/SyntaxNodeType.ts @@ -54,4 +54,5 @@ export enum SyntaxNodeType { EachKeyword = "EACH", EndKeyword = "END", IfKeyword = "IF", + FindKeyword = "FIND", } diff --git a/src/v2/formatterFramework/enableFormatterDecorators.ts b/src/v2/formatterFramework/enableFormatterDecorators.ts index 4881628..a8e1273 100644 --- a/src/v2/formatterFramework/enableFormatterDecorators.ts +++ b/src/v2/formatterFramework/enableFormatterDecorators.ts @@ -4,6 +4,7 @@ import { IfFormatter } from "../formatters/if/IfFormatter"; import { DefineFormatter } from "../formatters/define/DefineFormatter"; import { UsingFormatter } from "../formatters/using/UsingFormatter"; import { CaseFormatter } from "../formatters/case/CaseFormatter"; +import { FindFormatter } from "../formatters/find/FindFormatter"; // needed just for enabling decorators. Decorators does not work if there is no usage of a class in the reachable code export function enableFormatterDecorators(): void { @@ -13,4 +14,5 @@ export function enableFormatterDecorators(): void { DefineFormatter; UsingFormatter; CaseFormatter; + FindFormatter; } diff --git a/src/v2/formatters/find/FindFormatter.ts b/src/v2/formatters/find/FindFormatter.ts new file mode 100644 index 0000000..7975024 --- /dev/null +++ b/src/v2/formatters/find/FindFormatter.ts @@ -0,0 +1,234 @@ +import { SyntaxNode } from "web-tree-sitter"; +import { IFormatter } from "../../formatterFramework/IFormatter"; +import { SyntaxNodeType } from "../../../model/SyntaxNodeType"; +import { CodeEdit } from "../../model/CodeEdit"; +import { FullText } from "../../model/FullText"; +import { FormatterHelper } from "../../formatterFramework/FormatterHelper"; +import { AFormatter } from "../AFormatter"; +import { RegisterFormatter } from "../../formatterFramework/formatterDecorator"; +import { FindSettings } from "./FindSettings"; +import { IConfigurationManager } from "../../../utils/IConfigurationManager"; + +/** + * Note: The WHERE clause block with multiple LogicalExpressions does not align correctly + * during the first formatting if there are spaces before the WHERE clause. + * + * Question: Should QueryTuning also be formatted in a similar manner to LogicalExpressions, + * with aligned spacing and line breaks? + */ + +@RegisterFormatter +export class FindFormatter extends AFormatter implements IFormatter { + private startColumn = 0; + private findBodyValue = ""; + + public static readonly formatterLabel = "findFormatting"; + private readonly settings: FindSettings; + + public constructor(configurationManager: IConfigurationManager) { + super(configurationManager); + this.settings = new FindSettings(configurationManager); + } + + match(node: Readonly): boolean { + return node.type === SyntaxNodeType.FindStatement; + } + + parse( + node: Readonly, + fullText: Readonly + ): CodeEdit | CodeEdit[] | undefined { + this.collectCaseStructure(node, fullText); + return this.getCodeEdit( + node, + FormatterHelper.getCurrentText(node, fullText), + this.findBodyValue, + fullText + ); + } + + private collectCaseStructure( + node: SyntaxNode, + fullText: Readonly + ) { + this.startColumn = this.getStartColumn(node); + this.findBodyValue = this.getFindStatementBlock(node, fullText); + } + + private getFindStatementBlock( + node: SyntaxNode, + fullText: Readonly + ): string { + let resultString = ""; + + node.children.forEach((child) => { + resultString = resultString.concat( + this.getFindExpressionString(child, fullText) + ); + }); + + resultString = resultString.concat("."); + return resultString; + } + + private getFindExpressionString( + node: SyntaxNode, + fullText: Readonly + ): string { + let newString = ""; + + switch (node.type) { + case SyntaxNodeType.FindKeyword: + newString = + " ".repeat(this.startColumn) + + FormatterHelper.getCurrentText(node, fullText).trim(); + break; + case SyntaxNodeType.WhereClause: + newString = this.getWhereClauseBlock(node, fullText); + break; + case SyntaxNodeType.QueryTuning: + newString = + " " + FormatterHelper.getCurrentText(node, fullText).trim(); + break; + default: + const text = FormatterHelper.getCurrentText( + node, + fullText + ).trim(); + newString = text.length === 0 ? "" : " " + text; + break; + } + + return newString; + } + + private getWhereClauseBlock( + node: SyntaxNode, + fullText: Readonly + ): string { + let resultString = ""; + + node.children.forEach((child) => { + switch (child.type) { + case SyntaxNodeType.LogicalExpression: + resultString = resultString.concat( + this.getLogicalExpressionBlock( + child, + fullText, + child.startPosition.column + ) + ); + break; + case SyntaxNodeType.WhereKeyword: + resultString = resultString.concat( + " ", + FormatterHelper.getCurrentText(child, fullText).trim() + ); + break; + case SyntaxNodeType.ComparisonExpression: + resultString = resultString.concat( + this.getComparisonExpressionBlock(child, fullText) + ); + break; + default: + const text = FormatterHelper.getCurrentText( + node, + fullText + ).trim(); + resultString = text.length === 0 ? "" : " " + text; + break; + } + }); + + return resultString; + } + + private getComparisonExpressionBlock( + node: SyntaxNode, + fullText: Readonly + ): string { + let resultString = ""; + + node.children.forEach((child) => { + resultString = resultString.concat( + " ", + FormatterHelper.getCurrentText(child, fullText).trim() + ); + }); + + return resultString; + } + + private getLogicalExpressionBlock( + node: SyntaxNode, + fullText: Readonly, + LogicalExpressionStartColumn: number + ): string { + let resultString = ""; + + node.children.forEach((child) => { + resultString = resultString.concat( + this.getLogicalExpressionString( + child, + fullText, + LogicalExpressionStartColumn + ) + ); + }); + + return resultString; + } + + private getLogicalExpressionString( + node: SyntaxNode, + fullText: Readonly, + LogicalExpressionStartColumn: number + ): string { + let newString = ""; + + switch (node.type) { + case SyntaxNodeType.OrKeyword: + case SyntaxNodeType.AndKeyword: + newString = + " " + + FormatterHelper.getCurrentText(node, fullText).trim() + + fullText.eolDelimiter + + " ".repeat(LogicalExpressionStartColumn); + break; + case SyntaxNodeType.LogicalExpression: + newString = this.getLogicalExpressionBlock( + node, + fullText, + LogicalExpressionStartColumn + ); + break; + default: + const text = FormatterHelper.getCurrentText( + node, + fullText + ).trim(); + newString = text.length === 0 ? "" : " " + text; + break; + } + + return newString; + } + + private getStartColumn(node: SyntaxNode): number { + if (node.type === SyntaxNodeType.FindKeyword) { + return node.startPosition.column; + } else { + return this.findParentFindStatementStartColumn(node); + } + } + + private findParentFindStatementStartColumn(node: SyntaxNode): number { + if (node.parent === null) { + return 0; + } + + return node.type === SyntaxNodeType.FindKeyword + ? node.startPosition.column + : this.findParentFindStatementStartColumn(node.parent); + } +} diff --git a/src/v2/formatters/find/FindSettings.ts b/src/v2/formatters/find/FindSettings.ts new file mode 100644 index 0000000..a088786 --- /dev/null +++ b/src/v2/formatters/find/FindSettings.ts @@ -0,0 +1,8 @@ +import { ASettings } from "../ASettings"; + +export class FindSettings extends ASettings { + // token settings + public findFormatting() { + return this.configurationManager.get("findFormatting") ? true : false; + } +} From cc4e797836c5ca31e282d8f5630067f968d8b388 Mon Sep 17 00:00:00 2001 From: sjonynaite Date: Mon, 26 Aug 2024 10:17:16 +0300 Subject: [PATCH 02/25] Updated test structure --- .../1find-firstLastNextPrev}/input.p | 0 .../1find-firstLastNextPrev}/target.p | 0 .../2find-multipleConditions}/input.p | 0 .../2find-multipleConditions}/target.p | 0 .../3find-multipleConditions-()}/input.p | 0 .../3find-multipleConditions-()}/target.p | 0 .../4find-multipleConditions-()2}/input.p | 0 .../4find-multipleConditions-()2}/target.p | 0 .../functionalTests/{find-spaces => find/5find-spaces}/input.p | 0 .../functionalTests/{find-spaces => find/5find-spaces}/target.p | 0 .../{find-useIndex => find/6find-useIndex}/input.p | 0 .../{find-useIndex => find/6find-useIndex}/target.p | 0 12 files changed, 0 insertions(+), 0 deletions(-) rename resources/functionalTests/{find-firstLastNextPrev => find/1find-firstLastNextPrev}/input.p (100%) rename resources/functionalTests/{find-firstLastNextPrev => find/1find-firstLastNextPrev}/target.p (100%) rename resources/functionalTests/{find-multipleConditions => find/2find-multipleConditions}/input.p (100%) rename resources/functionalTests/{find-multipleConditions => find/2find-multipleConditions}/target.p (100%) rename resources/functionalTests/{find-multipleConditions-() => find/3find-multipleConditions-()}/input.p (100%) rename resources/functionalTests/{find-multipleConditions-() => find/3find-multipleConditions-()}/target.p (100%) rename resources/functionalTests/{find-multipleConditions-()2 => find/4find-multipleConditions-()2}/input.p (100%) rename resources/functionalTests/{find-multipleConditions-()2 => find/4find-multipleConditions-()2}/target.p (100%) rename resources/functionalTests/{find-spaces => find/5find-spaces}/input.p (100%) rename resources/functionalTests/{find-spaces => find/5find-spaces}/target.p (100%) rename resources/functionalTests/{find-useIndex => find/6find-useIndex}/input.p (100%) rename resources/functionalTests/{find-useIndex => find/6find-useIndex}/target.p (100%) diff --git a/resources/functionalTests/find-firstLastNextPrev/input.p b/resources/functionalTests/find/1find-firstLastNextPrev/input.p similarity index 100% rename from resources/functionalTests/find-firstLastNextPrev/input.p rename to resources/functionalTests/find/1find-firstLastNextPrev/input.p diff --git a/resources/functionalTests/find-firstLastNextPrev/target.p b/resources/functionalTests/find/1find-firstLastNextPrev/target.p similarity index 100% rename from resources/functionalTests/find-firstLastNextPrev/target.p rename to resources/functionalTests/find/1find-firstLastNextPrev/target.p diff --git a/resources/functionalTests/find-multipleConditions/input.p b/resources/functionalTests/find/2find-multipleConditions/input.p similarity index 100% rename from resources/functionalTests/find-multipleConditions/input.p rename to resources/functionalTests/find/2find-multipleConditions/input.p diff --git a/resources/functionalTests/find-multipleConditions/target.p b/resources/functionalTests/find/2find-multipleConditions/target.p similarity index 100% rename from resources/functionalTests/find-multipleConditions/target.p rename to resources/functionalTests/find/2find-multipleConditions/target.p diff --git a/resources/functionalTests/find-multipleConditions-()/input.p b/resources/functionalTests/find/3find-multipleConditions-()/input.p similarity index 100% rename from resources/functionalTests/find-multipleConditions-()/input.p rename to resources/functionalTests/find/3find-multipleConditions-()/input.p diff --git a/resources/functionalTests/find-multipleConditions-()/target.p b/resources/functionalTests/find/3find-multipleConditions-()/target.p similarity index 100% rename from resources/functionalTests/find-multipleConditions-()/target.p rename to resources/functionalTests/find/3find-multipleConditions-()/target.p diff --git a/resources/functionalTests/find-multipleConditions-()2/input.p b/resources/functionalTests/find/4find-multipleConditions-()2/input.p similarity index 100% rename from resources/functionalTests/find-multipleConditions-()2/input.p rename to resources/functionalTests/find/4find-multipleConditions-()2/input.p diff --git a/resources/functionalTests/find-multipleConditions-()2/target.p b/resources/functionalTests/find/4find-multipleConditions-()2/target.p similarity index 100% rename from resources/functionalTests/find-multipleConditions-()2/target.p rename to resources/functionalTests/find/4find-multipleConditions-()2/target.p diff --git a/resources/functionalTests/find-spaces/input.p b/resources/functionalTests/find/5find-spaces/input.p similarity index 100% rename from resources/functionalTests/find-spaces/input.p rename to resources/functionalTests/find/5find-spaces/input.p diff --git a/resources/functionalTests/find-spaces/target.p b/resources/functionalTests/find/5find-spaces/target.p similarity index 100% rename from resources/functionalTests/find-spaces/target.p rename to resources/functionalTests/find/5find-spaces/target.p diff --git a/resources/functionalTests/find-useIndex/input.p b/resources/functionalTests/find/6find-useIndex/input.p similarity index 100% rename from resources/functionalTests/find-useIndex/input.p rename to resources/functionalTests/find/6find-useIndex/input.p diff --git a/resources/functionalTests/find-useIndex/target.p b/resources/functionalTests/find/6find-useIndex/target.p similarity index 100% rename from resources/functionalTests/find-useIndex/target.p rename to resources/functionalTests/find/6find-useIndex/target.p From 329e1c5be21c3aa319d4b2182c677634c1db2d8c Mon Sep 17 00:00:00 2001 From: sjonynaite Date: Mon, 26 Aug 2024 15:28:41 +0300 Subject: [PATCH 03/25] Update AssignFormatter --- .../find/1find-firstLastNextPrev/target.p | 8 - .../input.p | 5 +- .../find/1firstLastNextPrev/target.p | 11 ++ .../find/2find-multipleConditions/input.p | 8 - .../find/2find-multipleConditions/target.p | 8 - .../find/2multipleConditions/input.p | 5 + .../find/2multipleConditions/target.p | 5 + .../find/3find-multipleConditions-()/input.p | 6 - .../find/3find-multipleConditions-()/target.p | 6 - .../find/3multipleConditions-()/input.p | 4 + .../find/3multipleConditions-()/target.p | 5 + .../find/4find-multipleConditions-()2/input.p | 6 - .../4find-multipleConditions-()2/target.p | 6 - .../find/4multipleConditions-()2/input.p | 4 + .../find/4multipleConditions-()2/target.p | 5 + .../functionalTests/find/5find-spaces/input.p | 5 - .../find/5find-spaces/target.p | 5 - .../functionalTests/find/5spaces/input.p | 4 + .../functionalTests/find/5spaces/target.p | 5 + .../find/6find-useIndex/target.p | 6 - .../{6find-useIndex => 6useIndex}/input.p | 3 +- .../functionalTests/find/6useIndex/target.p | 5 + .../functionalTests/find/7noWhere/input.p | 5 + .../functionalTests/find/7noWhere/target.p | 4 + src/model/SyntaxNodeType.ts | 1 + src/v2/formatters/find/FindFormatter.ts | 155 +++--------------- 26 files changed, 93 insertions(+), 197 deletions(-) delete mode 100644 resources/functionalTests/find/1find-firstLastNextPrev/target.p rename resources/functionalTests/find/{1find-firstLastNextPrev => 1firstLastNextPrev}/input.p (61%) create mode 100644 resources/functionalTests/find/1firstLastNextPrev/target.p delete mode 100644 resources/functionalTests/find/2find-multipleConditions/input.p delete mode 100644 resources/functionalTests/find/2find-multipleConditions/target.p create mode 100644 resources/functionalTests/find/2multipleConditions/input.p create mode 100644 resources/functionalTests/find/2multipleConditions/target.p delete mode 100644 resources/functionalTests/find/3find-multipleConditions-()/input.p delete mode 100644 resources/functionalTests/find/3find-multipleConditions-()/target.p create mode 100644 resources/functionalTests/find/3multipleConditions-()/input.p create mode 100644 resources/functionalTests/find/3multipleConditions-()/target.p delete mode 100644 resources/functionalTests/find/4find-multipleConditions-()2/input.p delete mode 100644 resources/functionalTests/find/4find-multipleConditions-()2/target.p create mode 100644 resources/functionalTests/find/4multipleConditions-()2/input.p create mode 100644 resources/functionalTests/find/4multipleConditions-()2/target.p delete mode 100644 resources/functionalTests/find/5find-spaces/input.p delete mode 100644 resources/functionalTests/find/5find-spaces/target.p create mode 100644 resources/functionalTests/find/5spaces/input.p create mode 100644 resources/functionalTests/find/5spaces/target.p delete mode 100644 resources/functionalTests/find/6find-useIndex/target.p rename resources/functionalTests/find/{6find-useIndex => 6useIndex}/input.p (61%) create mode 100644 resources/functionalTests/find/6useIndex/target.p create mode 100644 resources/functionalTests/find/7noWhere/input.p create mode 100644 resources/functionalTests/find/7noWhere/target.p diff --git a/resources/functionalTests/find/1find-firstLastNextPrev/target.p b/resources/functionalTests/find/1find-firstLastNextPrev/target.p deleted file mode 100644 index 0b3d193..0000000 --- a/resources/functionalTests/find/1find-firstLastNextPrev/target.p +++ /dev/null @@ -1,8 +0,0 @@ -/* formatterSettingsOverride */ -/* { "AblFormatter.findFormatting": true, -"abl.completion.upperCase": true}*/ - -FIND FIRST Customer WHERE Customer.CustNum = 5 NO-LOCK NO-ERROR. -FIND LAST Customer WHERE Customer.CustNum = 5 NO-LOCK NO-ERROR. -FIND NEXT Customer WHERE Customer.CustNum = 5 NO-LOCK NO-ERROR. -FIND PREV Customer WHERE Customer.CustNum = 5 NO-LOCK NO-ERROR. \ No newline at end of file diff --git a/resources/functionalTests/find/1find-firstLastNextPrev/input.p b/resources/functionalTests/find/1firstLastNextPrev/input.p similarity index 61% rename from resources/functionalTests/find/1find-firstLastNextPrev/input.p rename to resources/functionalTests/find/1firstLastNextPrev/input.p index b2b68c7..699c876 100644 --- a/resources/functionalTests/find/1find-firstLastNextPrev/input.p +++ b/resources/functionalTests/find/1firstLastNextPrev/input.p @@ -1,8 +1,7 @@ /* formatterSettingsOverride */ -/* { "AblFormatter.findFormatting": true, -"abl.completion.upperCase": true}*/ +/* { "AblFormatter.findFormatting": true}*/ FIND FIRST Customer WHERE Customer.CustNum = 5 NO-LOCK NO-ERROR. FIND LAST Customer WHERE Customer.CustNum = 5 NO-LOCK NO-ERROR. -FIND NEXT Customer WHERE Customer.CustNum = 5 NO-LOCK NO-ERROR. +FIND NEXT Customer WHERE Customer.CustNum = 5 NO-LOCK NO-ERROR. FIND PREV Customer WHERE Customer.CustNum = 5 NO-LOCK NO-ERROR. \ No newline at end of file diff --git a/resources/functionalTests/find/1firstLastNextPrev/target.p b/resources/functionalTests/find/1firstLastNextPrev/target.p new file mode 100644 index 0000000..cfc3874 --- /dev/null +++ b/resources/functionalTests/find/1firstLastNextPrev/target.p @@ -0,0 +1,11 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.findFormatting": true}*/ + +FIND FIRST Customer WHERE + Customer.CustNum = 5 NO-LOCK NO-ERROR. +FIND LAST Customer WHERE + Customer.CustNum = 5 NO-LOCK NO-ERROR. +FIND NEXT Customer WHERE + Customer.CustNum = 5 NO-LOCK NO-ERROR. +FIND PREV Customer WHERE + Customer.CustNum = 5 NO-LOCK NO-ERROR. \ No newline at end of file diff --git a/resources/functionalTests/find/2find-multipleConditions/input.p b/resources/functionalTests/find/2find-multipleConditions/input.p deleted file mode 100644 index 0747c5d..0000000 --- a/resources/functionalTests/find/2find-multipleConditions/input.p +++ /dev/null @@ -1,8 +0,0 @@ -/* formatterSettingsOverride */ -/* { "AblFormatter.findFormatting": true, -"abl.completion.upperCase": true}*/ - -FIND Customer WHERE -Customer.CustNum = 5 AND Customer.CustNum = 6 OR - Customer.CustNum = 7 AND - Customer.CustNum = 8 no-lock no-error. \ No newline at end of file diff --git a/resources/functionalTests/find/2find-multipleConditions/target.p b/resources/functionalTests/find/2find-multipleConditions/target.p deleted file mode 100644 index 5a116d0..0000000 --- a/resources/functionalTests/find/2find-multipleConditions/target.p +++ /dev/null @@ -1,8 +0,0 @@ -/* formatterSettingsOverride */ -/* { "AblFormatter.findFormatting": true, -"abl.completion.upperCase": true}*/ - -FIND Customer WHERE Customer.CustNum = 5 AND - Customer.CustNum = 6 OR - Customer.CustNum = 7 AND - Customer.CustNum = 8 no-lock no-error. \ No newline at end of file diff --git a/resources/functionalTests/find/2multipleConditions/input.p b/resources/functionalTests/find/2multipleConditions/input.p new file mode 100644 index 0000000..50c502a --- /dev/null +++ b/resources/functionalTests/find/2multipleConditions/input.p @@ -0,0 +1,5 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.findFormatting": true}*/ + +FIND Customer WHERE +Customer.CustNum = 5 AND Customer.CustNum = 6 OR Customer.CustNum = 8 no-lock no-error. \ No newline at end of file diff --git a/resources/functionalTests/find/2multipleConditions/target.p b/resources/functionalTests/find/2multipleConditions/target.p new file mode 100644 index 0000000..fe06937 --- /dev/null +++ b/resources/functionalTests/find/2multipleConditions/target.p @@ -0,0 +1,5 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.findFormatting": true}*/ + +FIND Customer WHERE + Customer.CustNum = 5 AND Customer.CustNum = 6 OR Customer.CustNum = 8 no-lock no-error. \ No newline at end of file diff --git a/resources/functionalTests/find/3find-multipleConditions-()/input.p b/resources/functionalTests/find/3find-multipleConditions-()/input.p deleted file mode 100644 index 46cf014..0000000 --- a/resources/functionalTests/find/3find-multipleConditions-()/input.p +++ /dev/null @@ -1,6 +0,0 @@ -/* formatterSettingsOverride */ -/* { "AblFormatter.findFormatting": true, -"abl.completion.upperCase": true}*/ - -FIND Customer WHERE (Customer.CustNum > 50 AND Customer.CustNum < 100) OR - Customer.CustNum > 200 NO-ERROR. \ No newline at end of file diff --git a/resources/functionalTests/find/3find-multipleConditions-()/target.p b/resources/functionalTests/find/3find-multipleConditions-()/target.p deleted file mode 100644 index 37f2585..0000000 --- a/resources/functionalTests/find/3find-multipleConditions-()/target.p +++ /dev/null @@ -1,6 +0,0 @@ -/* formatterSettingsOverride */ -/* { "AblFormatter.findFormatting": true, -"abl.completion.upperCase": true}*/ - -FIND Customer WHERE (Customer.CustNum > 50 AND Customer.CustNum < 100) OR - Customer.CustNum > 200 NO-ERROR. \ No newline at end of file diff --git a/resources/functionalTests/find/3multipleConditions-()/input.p b/resources/functionalTests/find/3multipleConditions-()/input.p new file mode 100644 index 0000000..57b76b6 --- /dev/null +++ b/resources/functionalTests/find/3multipleConditions-()/input.p @@ -0,0 +1,4 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.findFormatting": true}*/ + +FIND Customer WHERE (Customer.CustNum > 50 AND Customer.CustNum < 100) OR Customer.CustNum > 200 NO-ERROR. \ No newline at end of file diff --git a/resources/functionalTests/find/3multipleConditions-()/target.p b/resources/functionalTests/find/3multipleConditions-()/target.p new file mode 100644 index 0000000..2cdc88a --- /dev/null +++ b/resources/functionalTests/find/3multipleConditions-()/target.p @@ -0,0 +1,5 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.findFormatting": true}*/ + +FIND Customer WHERE + (Customer.CustNum > 50 AND Customer.CustNum < 100) OR Customer.CustNum > 200 NO-ERROR. \ No newline at end of file diff --git a/resources/functionalTests/find/4find-multipleConditions-()2/input.p b/resources/functionalTests/find/4find-multipleConditions-()2/input.p deleted file mode 100644 index 34d84c2..0000000 --- a/resources/functionalTests/find/4find-multipleConditions-()2/input.p +++ /dev/null @@ -1,6 +0,0 @@ -/* formatterSettingsOverride */ -/* { "AblFormatter.findFormatting": true, -"abl.completion.upperCase": true}*/ - -FIND Order WHERE (Order.OrderStatus = "Shipped" AND (Order.ShipDate > TODAY - 7)) OR -(Order.OrderStatus = "Pending" AND (Order.OrderDate = TODAY)) no-lock. \ No newline at end of file diff --git a/resources/functionalTests/find/4find-multipleConditions-()2/target.p b/resources/functionalTests/find/4find-multipleConditions-()2/target.p deleted file mode 100644 index 0b14b40..0000000 --- a/resources/functionalTests/find/4find-multipleConditions-()2/target.p +++ /dev/null @@ -1,6 +0,0 @@ -/* formatterSettingsOverride */ -/* { "AblFormatter.findFormatting": true, -"abl.completion.upperCase": true}*/ - -FIND Order WHERE (Order.OrderStatus = "Shipped" AND (Order.ShipDate > TODAY - 7)) OR - (Order.OrderStatus = "Pending" AND (Order.OrderDate = TODAY)) no-lock. \ No newline at end of file diff --git a/resources/functionalTests/find/4multipleConditions-()2/input.p b/resources/functionalTests/find/4multipleConditions-()2/input.p new file mode 100644 index 0000000..4eb239d --- /dev/null +++ b/resources/functionalTests/find/4multipleConditions-()2/input.p @@ -0,0 +1,4 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.findFormatting": true}*/ + +FIND Order WHERE (Order.OrderStatus = "Shipped" AND (Order.ShipDate > TODAY - 7)) OR (Order.OrderStatus = "Pending" AND (Order.OrderDate = TODAY)) no-lock. \ No newline at end of file diff --git a/resources/functionalTests/find/4multipleConditions-()2/target.p b/resources/functionalTests/find/4multipleConditions-()2/target.p new file mode 100644 index 0000000..39b6cdf --- /dev/null +++ b/resources/functionalTests/find/4multipleConditions-()2/target.p @@ -0,0 +1,5 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.findFormatting": true}*/ + +FIND Order WHERE + (Order.OrderStatus = "Shipped" AND (Order.ShipDate > TODAY - 7)) OR (Order.OrderStatus = "Pending" AND (Order.OrderDate = TODAY)) no-lock. \ No newline at end of file diff --git a/resources/functionalTests/find/5find-spaces/input.p b/resources/functionalTests/find/5find-spaces/input.p deleted file mode 100644 index d70cac2..0000000 --- a/resources/functionalTests/find/5find-spaces/input.p +++ /dev/null @@ -1,5 +0,0 @@ -/* formatterSettingsOverride */ -/* { "AblFormatter.findFormatting": true, -"abl.completion.upperCase": true}*/ - -FIND Customer WHERE Customer.CustNum = 5 NO-LOCK NO-ERROR. \ No newline at end of file diff --git a/resources/functionalTests/find/5find-spaces/target.p b/resources/functionalTests/find/5find-spaces/target.p deleted file mode 100644 index 9996f9e..0000000 --- a/resources/functionalTests/find/5find-spaces/target.p +++ /dev/null @@ -1,5 +0,0 @@ -/* formatterSettingsOverride */ -/* { "AblFormatter.findFormatting": true, -"abl.completion.upperCase": true}*/ - -FIND Customer WHERE Customer.CustNum = 5 NO-LOCK NO-ERROR. \ No newline at end of file diff --git a/resources/functionalTests/find/5spaces/input.p b/resources/functionalTests/find/5spaces/input.p new file mode 100644 index 0000000..8a056f5 --- /dev/null +++ b/resources/functionalTests/find/5spaces/input.p @@ -0,0 +1,4 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.findFormatting": true}*/ + + FIND FIRST Customer WHERE Customer.CustNum = 5 NO-LOCK NO-ERROR. \ No newline at end of file diff --git a/resources/functionalTests/find/5spaces/target.p b/resources/functionalTests/find/5spaces/target.p new file mode 100644 index 0000000..e0b3888 --- /dev/null +++ b/resources/functionalTests/find/5spaces/target.p @@ -0,0 +1,5 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.findFormatting": true}*/ + + FIND FIRST Customer WHERE + Customer.CustNum = 5 NO-LOCK NO-ERROR. \ No newline at end of file diff --git a/resources/functionalTests/find/6find-useIndex/target.p b/resources/functionalTests/find/6find-useIndex/target.p deleted file mode 100644 index 4fcd22c..0000000 --- a/resources/functionalTests/find/6find-useIndex/target.p +++ /dev/null @@ -1,6 +0,0 @@ -/* formatterSettingsOverride */ -/* { "AblFormatter.findFormatting": true, -"abl.completion.upperCase": true}*/ - -find Order where Order.OrderStatus = "Shipped" and - Order.ShipDate = today use-index OrderNum. \ No newline at end of file diff --git a/resources/functionalTests/find/6find-useIndex/input.p b/resources/functionalTests/find/6useIndex/input.p similarity index 61% rename from resources/functionalTests/find/6find-useIndex/input.p rename to resources/functionalTests/find/6useIndex/input.p index 6a13e2c..73cb455 100644 --- a/resources/functionalTests/find/6find-useIndex/input.p +++ b/resources/functionalTests/find/6useIndex/input.p @@ -1,5 +1,4 @@ /* formatterSettingsOverride */ -/* { "AblFormatter.findFormatting": true, -"abl.completion.upperCase": true}*/ +/* { "AblFormatter.findFormatting": true}*/ find Order where Order.OrderStatus = "Shipped" and Order.ShipDate = today use-index OrderNum. \ No newline at end of file diff --git a/resources/functionalTests/find/6useIndex/target.p b/resources/functionalTests/find/6useIndex/target.p new file mode 100644 index 0000000..4b8db54 --- /dev/null +++ b/resources/functionalTests/find/6useIndex/target.p @@ -0,0 +1,5 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.findFormatting": true}*/ + +find Order where + Order.OrderStatus = "Shipped" and Order.ShipDate = today use-index OrderNum. \ No newline at end of file diff --git a/resources/functionalTests/find/7noWhere/input.p b/resources/functionalTests/find/7noWhere/input.p new file mode 100644 index 0000000..b362157 --- /dev/null +++ b/resources/functionalTests/find/7noWhere/input.p @@ -0,0 +1,5 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.findFormatting": true}*/ + +find first b_vac +no-lock no-error. \ No newline at end of file diff --git a/resources/functionalTests/find/7noWhere/target.p b/resources/functionalTests/find/7noWhere/target.p new file mode 100644 index 0000000..8246220 --- /dev/null +++ b/resources/functionalTests/find/7noWhere/target.p @@ -0,0 +1,4 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.findFormatting": true}*/ + +find first b_vac no-lock no-error. \ No newline at end of file diff --git a/src/model/SyntaxNodeType.ts b/src/model/SyntaxNodeType.ts index 286811e..f0a4c18 100644 --- a/src/model/SyntaxNodeType.ts +++ b/src/model/SyntaxNodeType.ts @@ -19,6 +19,7 @@ export enum SyntaxNodeType { WhereClause = "where_clause", AssignStatement = "assign_statement", Assignment = "assignment", + Identifier = "identifier", SourceCode = "source_code", ForStatement = "for_statement", QueryTuning = "query_tuning", diff --git a/src/v2/formatters/find/FindFormatter.ts b/src/v2/formatters/find/FindFormatter.ts index 7975024..68d3338 100644 --- a/src/v2/formatters/find/FindFormatter.ts +++ b/src/v2/formatters/find/FindFormatter.ts @@ -9,14 +9,6 @@ import { RegisterFormatter } from "../../formatterFramework/formatterDecorator"; import { FindSettings } from "./FindSettings"; import { IConfigurationManager } from "../../../utils/IConfigurationManager"; -/** - * Note: The WHERE clause block with multiple LogicalExpressions does not align correctly - * during the first formatting if there are spaces before the WHERE clause. - * - * Question: Should QueryTuning also be formatted in a similar manner to LogicalExpressions, - * with aligned spacing and line breaks? - */ - @RegisterFormatter export class FindFormatter extends AFormatter implements IFormatter { private startColumn = 0; @@ -51,7 +43,7 @@ export class FindFormatter extends AFormatter implements IFormatter { node: SyntaxNode, fullText: Readonly ) { - this.startColumn = this.getStartColumn(node); + this.startColumn = node.startPosition.column; this.findBodyValue = this.getFindStatementBlock(node, fullText); } @@ -60,35 +52,40 @@ export class FindFormatter extends AFormatter implements IFormatter { fullText: Readonly ): string { let resultString = ""; + let alignColumn = 0; node.children.forEach((child) => { + if (child.type === SyntaxNodeType.Identifier) { + alignColumn = this.startColumn + resultString.length; + } resultString = resultString.concat( - this.getFindExpressionString(child, fullText) + this.getFindExpressionString(child, fullText, alignColumn) ); }); - resultString = resultString.concat("."); - return resultString; + return resultString + "."; } private getFindExpressionString( node: SyntaxNode, - fullText: Readonly + fullText: Readonly, + alignColumn: number ): string { let newString = ""; switch (node.type) { case SyntaxNodeType.FindKeyword: - newString = - " ".repeat(this.startColumn) + - FormatterHelper.getCurrentText(node, fullText).trim(); + newString = FormatterHelper.getCurrentText( + node, + fullText + ).trim(); break; case SyntaxNodeType.WhereClause: - newString = this.getWhereClauseBlock(node, fullText); - break; - case SyntaxNodeType.QueryTuning: - newString = - " " + FormatterHelper.getCurrentText(node, fullText).trim(); + newString = this.getWhereClauseBlock( + node, + fullText, + alignColumn + ); break; default: const text = FormatterHelper.getCurrentText( @@ -104,131 +101,33 @@ export class FindFormatter extends AFormatter implements IFormatter { private getWhereClauseBlock( node: SyntaxNode, - fullText: Readonly + fullText: Readonly, + alignColumn: number ): string { let resultString = ""; node.children.forEach((child) => { switch (child.type) { - case SyntaxNodeType.LogicalExpression: - resultString = resultString.concat( - this.getLogicalExpressionBlock( - child, - fullText, - child.startPosition.column - ) - ); - break; case SyntaxNodeType.WhereKeyword: resultString = resultString.concat( " ", - FormatterHelper.getCurrentText(child, fullText).trim() - ); - break; - case SyntaxNodeType.ComparisonExpression: - resultString = resultString.concat( - this.getComparisonExpressionBlock(child, fullText) + FormatterHelper.getCurrentText(child, fullText).trim(), + fullText.eolDelimiter, + " ".repeat(alignColumn) ); break; default: const text = FormatterHelper.getCurrentText( - node, + child, fullText ).trim(); - resultString = text.length === 0 ? "" : " " + text; + resultString = resultString.concat( + text.length === 0 ? "" : " " + text + ); break; } }); return resultString; } - - private getComparisonExpressionBlock( - node: SyntaxNode, - fullText: Readonly - ): string { - let resultString = ""; - - node.children.forEach((child) => { - resultString = resultString.concat( - " ", - FormatterHelper.getCurrentText(child, fullText).trim() - ); - }); - - return resultString; - } - - private getLogicalExpressionBlock( - node: SyntaxNode, - fullText: Readonly, - LogicalExpressionStartColumn: number - ): string { - let resultString = ""; - - node.children.forEach((child) => { - resultString = resultString.concat( - this.getLogicalExpressionString( - child, - fullText, - LogicalExpressionStartColumn - ) - ); - }); - - return resultString; - } - - private getLogicalExpressionString( - node: SyntaxNode, - fullText: Readonly, - LogicalExpressionStartColumn: number - ): string { - let newString = ""; - - switch (node.type) { - case SyntaxNodeType.OrKeyword: - case SyntaxNodeType.AndKeyword: - newString = - " " + - FormatterHelper.getCurrentText(node, fullText).trim() + - fullText.eolDelimiter + - " ".repeat(LogicalExpressionStartColumn); - break; - case SyntaxNodeType.LogicalExpression: - newString = this.getLogicalExpressionBlock( - node, - fullText, - LogicalExpressionStartColumn - ); - break; - default: - const text = FormatterHelper.getCurrentText( - node, - fullText - ).trim(); - newString = text.length === 0 ? "" : " " + text; - break; - } - - return newString; - } - - private getStartColumn(node: SyntaxNode): number { - if (node.type === SyntaxNodeType.FindKeyword) { - return node.startPosition.column; - } else { - return this.findParentFindStatementStartColumn(node); - } - } - - private findParentFindStatementStartColumn(node: SyntaxNode): number { - if (node.parent === null) { - return 0; - } - - return node.type === SyntaxNodeType.FindKeyword - ? node.startPosition.column - : this.findParentFindStatementStartColumn(node.parent); - } } From 57d4153a5cacbed04d449742d1971d148a4e03da Mon Sep 17 00:00:00 2001 From: gmickus Date: Fri, 13 Sep 2024 10:29:30 +0300 Subject: [PATCH 04/25] Add test --- resources/functionalTests/find/7no-wait/input.p | 4 ++++ resources/functionalTests/find/7no-wait/target.p | 5 +++++ 2 files changed, 9 insertions(+) create mode 100644 resources/functionalTests/find/7no-wait/input.p create mode 100644 resources/functionalTests/find/7no-wait/target.p diff --git a/resources/functionalTests/find/7no-wait/input.p b/resources/functionalTests/find/7no-wait/input.p new file mode 100644 index 0000000..4740485 --- /dev/null +++ b/resources/functionalTests/find/7no-wait/input.p @@ -0,0 +1,4 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.findFormatting": true}*/ + +FIND Order WHERE Order.CustomerID = Customer.CustomerID NO-WAIT. \ No newline at end of file diff --git a/resources/functionalTests/find/7no-wait/target.p b/resources/functionalTests/find/7no-wait/target.p new file mode 100644 index 0000000..3828ffc --- /dev/null +++ b/resources/functionalTests/find/7no-wait/target.p @@ -0,0 +1,5 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.findFormatting": true}*/ + +FIND Order WHERE + Order.CustomerID = Customer.CustomerID NO-WAIT. \ No newline at end of file From 8912b7cceff15ee00de5fe072453659489880184 Mon Sep 17 00:00:00 2001 From: gmickus Date: Fri, 13 Sep 2024 10:35:26 +0300 Subject: [PATCH 05/25] Add test --- resources/functionalTests/find/7of-table/input.p | 4 ++++ resources/functionalTests/find/7of-table/target.p | 5 +++++ 2 files changed, 9 insertions(+) create mode 100644 resources/functionalTests/find/7of-table/input.p create mode 100644 resources/functionalTests/find/7of-table/target.p diff --git a/resources/functionalTests/find/7of-table/input.p b/resources/functionalTests/find/7of-table/input.p new file mode 100644 index 0000000..4740485 --- /dev/null +++ b/resources/functionalTests/find/7of-table/input.p @@ -0,0 +1,4 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.findFormatting": true}*/ + +FIND Order WHERE Order.CustomerID = Customer.CustomerID NO-WAIT. \ No newline at end of file diff --git a/resources/functionalTests/find/7of-table/target.p b/resources/functionalTests/find/7of-table/target.p new file mode 100644 index 0000000..f840fb9 --- /dev/null +++ b/resources/functionalTests/find/7of-table/target.p @@ -0,0 +1,5 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.findFormatting": true}*/ + +FIND FIRST Order OF Customer WHERE + Customer.Country = "USA" AND Customer.Balance > 1000. \ No newline at end of file From fb430cc15fe72f28ed74d15ab608fc25ef0226f4 Mon Sep 17 00:00:00 2001 From: gmickus Date: Fri, 13 Sep 2024 11:06:11 +0300 Subject: [PATCH 06/25] Update test --- resources/functionalTests/find/7of-table/input.p | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/functionalTests/find/7of-table/input.p b/resources/functionalTests/find/7of-table/input.p index 4740485..3022490 100644 --- a/resources/functionalTests/find/7of-table/input.p +++ b/resources/functionalTests/find/7of-table/input.p @@ -1,4 +1,4 @@ /* formatterSettingsOverride */ /* { "AblFormatter.findFormatting": true}*/ -FIND Order WHERE Order.CustomerID = Customer.CustomerID NO-WAIT. \ No newline at end of file +FIND FIRST Order OF Customer WHERE Customer.Country = "USA" AND Customer.Balance > 1000. \ No newline at end of file From 075b842dddd9dba7f5d5e20c8adffd7126437162 Mon Sep 17 00:00:00 2001 From: gmickus Date: Mon, 30 Sep 2024 13:43:45 +0300 Subject: [PATCH 07/25] Implement formatter --- .../defineVariable/1comments/input.p | 16 ++ .../defineVariable/1comments/target.p | 16 ++ .../defineVariable/1variables/input.p | 8 + .../defineVariable/1variables/target.p | 8 + .../defineVariable/1variables2/input.p | 16 ++ .../defineVariable/1variables2/target.p | 16 ++ .../defineVariable/2no-undo/input.p | 31 ++++ .../defineVariable/2no-undo/target.p | 31 ++++ .../defineVariable/2no-undo2/input.p | 9 + .../defineVariable/2no-undo2/target.p | 9 + .../defineVariable/2no-undo3/input.p | 16 ++ .../defineVariable/2no-undo3/target.p | 16 ++ .../defineVariable/2no-undo4/input.p | 12 ++ .../defineVariable/2no-undo4/target.p | 12 ++ src/model/SyntaxNodeType.ts | 3 + .../enableFormatterDecorators.ts | 2 + .../VariableDefinitionFormatter.ts | 157 ++++++++++++++++++ .../VariableDefinitionSettings.ts | 8 + 18 files changed, 386 insertions(+) create mode 100644 resources/functionalTests/defineVariable/1comments/input.p create mode 100644 resources/functionalTests/defineVariable/1comments/target.p create mode 100644 resources/functionalTests/defineVariable/1variables/input.p create mode 100644 resources/functionalTests/defineVariable/1variables/target.p create mode 100644 resources/functionalTests/defineVariable/1variables2/input.p create mode 100644 resources/functionalTests/defineVariable/1variables2/target.p create mode 100644 resources/functionalTests/defineVariable/2no-undo/input.p create mode 100644 resources/functionalTests/defineVariable/2no-undo/target.p create mode 100644 resources/functionalTests/defineVariable/2no-undo2/input.p create mode 100644 resources/functionalTests/defineVariable/2no-undo2/target.p create mode 100644 resources/functionalTests/defineVariable/2no-undo3/input.p create mode 100644 resources/functionalTests/defineVariable/2no-undo3/target.p create mode 100644 resources/functionalTests/defineVariable/2no-undo4/input.p create mode 100644 resources/functionalTests/defineVariable/2no-undo4/target.p create mode 100644 src/v2/formatters/variableDefinition/VariableDefinitionFormatter.ts create mode 100644 src/v2/formatters/variableDefinition/VariableDefinitionSettings.ts diff --git a/resources/functionalTests/defineVariable/1comments/input.p b/resources/functionalTests/defineVariable/1comments/input.p new file mode 100644 index 0000000..e1cfb0d --- /dev/null +++ b/resources/functionalTests/defineVariable/1comments/input.p @@ -0,0 +1,16 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.variableDefinitionFormatting": true} */ + +define VARIABLE lAutoCommit AS LOGICAL NO-UNDO. +// hi +define VARIABLE hDataQuery AS HANDLE NO-UNDO. +define VARIABLE lQueryContainer AS LOGICAL NO-UNDO. +// yes +define VARIABLE lBrowsed AS LOGICAL NO-UNDO. +define VARIABLE hMsgSource AS HANDLE NO-UNDO. +define variable candidatePath as character no-undo extent 2. +define variable candidateName as character no-undo extent 2. +define variable matchedFiles as Array no-undo. +define variable iLoop as integer no-undo. +define variable iMatchScore as integer no-undo extent. +define variable iBestScore as integer no-undo initial 0. \ No newline at end of file diff --git a/resources/functionalTests/defineVariable/1comments/target.p b/resources/functionalTests/defineVariable/1comments/target.p new file mode 100644 index 0000000..a7905af --- /dev/null +++ b/resources/functionalTests/defineVariable/1comments/target.p @@ -0,0 +1,16 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.variableDefinitionFormatting": true} */ + +define VARIABLE lAutoCommit AS LOGICAL NO-UNDO. +// hi +define VARIABLE hDataQuery AS HANDLE NO-UNDO. +define VARIABLE lQueryContainer AS LOGICAL NO-UNDO. +// yes +define VARIABLE lBrowsed AS LOGICAL NO-UNDO. +define VARIABLE hMsgSource AS HANDLE NO-UNDO. +define variable candidatePath as character no-undo extent 2. +define variable candidateName as character no-undo extent 2. +define variable matchedFiles as Array no-undo. +define variable iLoop as integer no-undo. +define variable iMatchScore as integer no-undo extent. +define variable iBestScore as integer no-undo initial 0. \ No newline at end of file diff --git a/resources/functionalTests/defineVariable/1variables/input.p b/resources/functionalTests/defineVariable/1variables/input.p new file mode 100644 index 0000000..ab22339 --- /dev/null +++ b/resources/functionalTests/defineVariable/1variables/input.p @@ -0,0 +1,8 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.variableDefinitionFormatting": true} */ + +define VARIABLE lAutoCommit AS LOGICAL NO-UNDO. +define VARIABLE hDataQuery AS HANDLE NO-UNDO. +define VARIABLE lQueryContainer AS LOGICAL NO-UNDO. +define VARIABLE lBrowsed AS LOGICAL NO-UNDO. +define VARIABLE hMsgSource AS HANDLE NO-UNDO. \ No newline at end of file diff --git a/resources/functionalTests/defineVariable/1variables/target.p b/resources/functionalTests/defineVariable/1variables/target.p new file mode 100644 index 0000000..72976c7 --- /dev/null +++ b/resources/functionalTests/defineVariable/1variables/target.p @@ -0,0 +1,8 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.variableDefinitionFormatting": true} */ + +define VARIABLE lAutoCommit AS LOGICAL NO-UNDO. +define VARIABLE hDataQuery AS HANDLE NO-UNDO. +define VARIABLE lQueryContainer AS LOGICAL NO-UNDO. +define VARIABLE lBrowsed AS LOGICAL NO-UNDO. +define VARIABLE hMsgSource AS HANDLE NO-UNDO. \ No newline at end of file diff --git a/resources/functionalTests/defineVariable/1variables2/input.p b/resources/functionalTests/defineVariable/1variables2/input.p new file mode 100644 index 0000000..d3bcd4a --- /dev/null +++ b/resources/functionalTests/defineVariable/1variables2/input.p @@ -0,0 +1,16 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.variableDefinitionFormatting": true} */ + +define variable procHandle as handle no-undo. +define variable procInfoList as Array no-undo. +define variable procAnnotInfo as ProcedureAnnotationInfo no-undo. +define variable testSuiteList as TestInfo no-undo. +define variable i as integer no-undo. +define variable testSuiteCount as integer no-undo init 0. +define variable annotationName as character no-undo. +define variable testProcInfo as TestInfo no-undo. +define variable procTestEntity as TestProcedure no-undo. +define variable typeInfo as TypeInfo no-undo. +define variable ignoreTest as logical no-undo. +define variable isTestProc as logical no-undo initial no. +define variable testInfo as TestInfo no-undo. diff --git a/resources/functionalTests/defineVariable/1variables2/target.p b/resources/functionalTests/defineVariable/1variables2/target.p new file mode 100644 index 0000000..05016e1 --- /dev/null +++ b/resources/functionalTests/defineVariable/1variables2/target.p @@ -0,0 +1,16 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.variableDefinitionFormatting": true} */ + +define variable procHandle as handle no-undo. +define variable procInfoList as Array no-undo. +define variable procAnnotInfo as ProcedureAnnotationInfo no-undo. +define variable testSuiteList as TestInfo no-undo. +define variable i as integer no-undo. +define variable testSuiteCount as integer no-undo init 0. +define variable annotationName as character no-undo. +define variable testProcInfo as TestInfo no-undo. +define variable procTestEntity as TestProcedure no-undo. +define variable typeInfo as TypeInfo no-undo. +define variable ignoreTest as logical no-undo. +define variable isTestProc as logical no-undo initial no. +define variable testInfo as TestInfo no-undo. diff --git a/resources/functionalTests/defineVariable/2no-undo/input.p b/resources/functionalTests/defineVariable/2no-undo/input.p new file mode 100644 index 0000000..46d4eee --- /dev/null +++ b/resources/functionalTests/defineVariable/2no-undo/input.p @@ -0,0 +1,31 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.variableDefinitionFormatting": true} */ + +DEFINE VARIABLE hRowBefore AS HANDLE NO-UNDO. +DEFINE VARIABLE cUpdColumnsByTable AS CHARACTER NO-UNDO. +DEFINE VARIABLE hRowUpdFld AS HANDLE NO-UNDO. +DEFINE VARIABLE hRowOldFld AS HANDLE NO-UNDO. +DEFINE VARIABLE hDBField AS HANDLE NO-UNDO. +DEFINE VARIABLE iField AS INTEGER NO-UNDO. +DEFINE VARIABLE iTable AS INTEGER NO-UNDO. +DEFINE VARIABLE cFromField AS CHARACTER NO-UNDO. +DEFINE VARIABLE cToField AS CHARACTER NO-UNDO. +DEFINE VARIABLE lColumnChanged AS LOGICAL NO-UNDO. +DEFINE VARIABLE iBracket AS INTEGER NO-UNDO. +DEFINE VARIABLE iExtent AS INTEGER NO-UNDO. +DEFINE VARIABLE cRowIdent AS CHARACTER NO-UNDO. +DEFINE VARIABLE cRowid AS CHARACTER NO-UNDO. +DEFINE VARIABLE cExclude AS CHARACTER NO-UNDO. +DEFINE VARIABLE cUpdColumns AS CHARACTER NO-UNDO. +DEFINE VARIABLE cColumnsByTable AS CHARACTER NO-UNDO. +DEFINE VARIABLE cColumns AS CHARACTER NO-UNDO. +DEFINE VARIABLE lChanged AS LOGICAL NO-UNDO. +DEFINE VARIABLE cNotChanged AS CHARACTER NO-UNDO. +DEFINE VARIABLE cAssignFields AS CHARACTER NO-UNDO. +DEFINE VARIABLE cUseAssignFields AS CHARACTER NO-UNDO. +DEFINE VARIABLE cDataColumns AS CHARACTER NO-UNDO. +DEFINE VARIABLE lAmbiguous AS LOGICAL NO-UNDO. +DEFINE VARIABLE lCreate AS LOGICAL NO-UNDO. +DEFINE VARIABLE lLarge AS LOGICAL NO-UNDO. +DEFINE VARIABLE cLargeList AS CHARACTER NO-UNDO. +DEFINE VARIABLE iLarge AS INTEGER NO-UNDO. \ No newline at end of file diff --git a/resources/functionalTests/defineVariable/2no-undo/target.p b/resources/functionalTests/defineVariable/2no-undo/target.p new file mode 100644 index 0000000..26743a2 --- /dev/null +++ b/resources/functionalTests/defineVariable/2no-undo/target.p @@ -0,0 +1,31 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.variableDefinitionFormatting": true} */ + +define VARIABLE hRowBefore AS HANDLE NO-UNDO. +define VARIABLE cUpdColumnsByTable AS CHARACTER NO-UNDO. +define VARIABLE hRowUpdFld AS HANDLE NO-UNDO. +define VARIABLE hRowOldFld AS HANDLE NO-UNDO. +define VARIABLE hDBField AS HANDLE NO-UNDO. +define VARIABLE iField AS INTEGER NO-UNDO. +define VARIABLE iTable AS INTEGER NO-UNDO. +define VARIABLE cFromField AS CHARACTER NO-UNDO. +define VARIABLE cToField AS CHARACTER NO-UNDO. +define VARIABLE lColumnChanged AS LOGICAL NO-UNDO. +define VARIABLE iBracket AS INTEGER NO-UNDO. +define VARIABLE iExtent AS INTEGER NO-UNDO. +define VARIABLE cRowIdent AS CHARACTER NO-UNDO. +define VARIABLE cRowid AS CHARACTER NO-UNDO. +define VARIABLE cExclude AS CHARACTER NO-UNDO. +define VARIABLE cUpdColumns AS CHARACTER NO-UNDO. +define VARIABLE cColumnsByTable AS CHARACTER NO-UNDO. +define VARIABLE cColumns AS CHARACTER NO-UNDO. +define VARIABLE lChanged AS LOGICAL NO-UNDO. +define VARIABLE cNotChanged AS CHARACTER NO-UNDO. +define VARIABLE cAssignFields AS CHARACTER NO-UNDO. +define VARIABLE cUseAssignFields AS CHARACTER NO-UNDO. +define VARIABLE cDataColumns AS CHARACTER NO-UNDO. +define VARIABLE lAmbiguous AS LOGICAL NO-UNDO. +define VARIABLE lCreate AS LOGICAL NO-UNDO. +define VARIABLE lLarge AS LOGICAL NO-UNDO. +define VARIABLE cLargeList AS CHARACTER NO-UNDO. +define VARIABLE iLarge AS INTEGER NO-UNDO. \ No newline at end of file diff --git a/resources/functionalTests/defineVariable/2no-undo2/input.p b/resources/functionalTests/defineVariable/2no-undo2/input.p new file mode 100644 index 0000000..5c90bf2 --- /dev/null +++ b/resources/functionalTests/defineVariable/2no-undo2/input.p @@ -0,0 +1,9 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.variableDefinitionFormatting": true} */ + +define VARIABLE cerror AS CHARACTER NO-UNDO. +define VARIABLE codepage AS CHARACTER NO-UNDO init "UNDEFINED". +define VARIABLE i AS INTEGER NO-UNDO. +define VARIABLE lvar AS CHARACTER EXTENT 10 NO-UNDO. +define VARIABLE tmpfile AS CHARACTER NO-UNDO. +define VARIABLE err-file AS CHARACTER NO-UNDO. \ No newline at end of file diff --git a/resources/functionalTests/defineVariable/2no-undo2/target.p b/resources/functionalTests/defineVariable/2no-undo2/target.p new file mode 100644 index 0000000..d24a4a7 --- /dev/null +++ b/resources/functionalTests/defineVariable/2no-undo2/target.p @@ -0,0 +1,9 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.variableDefinitionFormatting": true} */ + +DEFINE VARIABLE cerror AS CHARACTER NO-UNDO. +DEFINE VARIABLE codepage AS CHARACTER NO-UNDO init "UNDEFINED". +DEFINE VARIABLE i AS INTEGER NO-UNDO. +DEFINE VARIABLE lvar AS CHARACTER EXTENT 10 NO-UNDO. +DEFINE VARIABLE tmpfile AS CHARACTER NO-UNDO. +DEFINE VARIABLE err-file AS CHARACTER NO-UNDO. \ No newline at end of file diff --git a/resources/functionalTests/defineVariable/2no-undo3/input.p b/resources/functionalTests/defineVariable/2no-undo3/input.p new file mode 100644 index 0000000..217d84e --- /dev/null +++ b/resources/functionalTests/defineVariable/2no-undo3/input.p @@ -0,0 +1,16 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.variableDefinitionFormatting": true} */ + +define variable service as OpenEdge.DataAdmin.IDataAdminService no-undo. +define variable tableCollection as OpenEdge.DataAdmin.IDataAdminCollection no-undo. +define variable tableIter as OpenEdge.DataAdmin.Lang.Collections.IIterator no-undo. +define variable tablepolicy as OpenEdge.DataAdmin.ICdcTablePolicy no-undo. +define variable fieldpolicy as OpenEdge.DataAdmin.ICdcFieldPolicySet no-undo. +define variable i as int no-undo. +define variable polStr as longchar no-undo. +define variable tblName as char no-undo. +define variable tblList as longchar no-undo. +define variable polCnt as int no-undo. +define variable errMsg as char no-undo. +define variable j as int no-undo. +define variable polEntry as integer no-undo. diff --git a/resources/functionalTests/defineVariable/2no-undo3/target.p b/resources/functionalTests/defineVariable/2no-undo3/target.p new file mode 100644 index 0000000..71e9d5f --- /dev/null +++ b/resources/functionalTests/defineVariable/2no-undo3/target.p @@ -0,0 +1,16 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.variableDefinitionFormatting": true} */ + +define variable service as OpenEdge.DataAdmin.IDataAdminService no-undo. +define variable tableCollection as OpenEdge.DataAdmin.IDataAdminCollection no-undo. +define variable tableIter as OpenEdge.DataAdmin.Lang.Collections.IIterator no-undo. +define variable tablepolicy as OpenEdge.DataAdmin.ICdcTablePolicy no-undo. +define variable fieldpolicy as OpenEdge.DataAdmin.ICdcFieldPolicySet no-undo. +define variable i as int no-undo. +define variable polStr as longchar no-undo. +define variable tblName as char no-undo. +define variable tblList as longchar no-undo. +define variable polCnt as int no-undo. +define variable errMsg as char no-undo. +define variable j as int no-undo. +define variable polEntry as integer no-undo. diff --git a/resources/functionalTests/defineVariable/2no-undo4/input.p b/resources/functionalTests/defineVariable/2no-undo4/input.p new file mode 100644 index 0000000..266f105 --- /dev/null +++ b/resources/functionalTests/defineVariable/2no-undo4/input.p @@ -0,0 +1,12 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.variableDefinitionFormatting": true} */ + +DEFINE VARIABLE cName AS CHARACTER NO-UNDO FORMAT "x(30)" INITIAL "Unknown". +DEFINE VARIABLE iAge AS INTEGER NO-UNDO LABEL "Age of Person" INITIAL 0. +DEFINE VARIABLE dBirthDate AS DATE NO-UNDO FORMAT "99/99/9999" INITIAL TODAY. +DEFINE VARIABLE hBuffer AS HANDLE NO-UNDO INITIAL BUFFER Customer:HANDLE. +DEFINE VARIABLE mData AS MEMPTR NO-UNDO INITIAL ?. +DEFINE VARIABLE cJson AS CHARACTER NO-UNDO EXTENT 5 INITIAL ["", "", "", "", ""]. +DEFINE VARIABLE rAmount AS DECIMAL NO-UNDO FORMAT "->,>>>,>>9.99" INITIAL 0. +DEFINE VARIABLE lFlag AS LOGICAL NO-UNDO INITIAL FALSE. +DEFINE VARIABLE cXml AS LONGCHAR NO-UNDO INITIAL "". \ No newline at end of file diff --git a/resources/functionalTests/defineVariable/2no-undo4/target.p b/resources/functionalTests/defineVariable/2no-undo4/target.p new file mode 100644 index 0000000..0050804 --- /dev/null +++ b/resources/functionalTests/defineVariable/2no-undo4/target.p @@ -0,0 +1,12 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.variableDefinitionFormatting": true} */ + +define VARIABLE cName AS CHARACTER NO-UNDO FORMAT "x(30)" INITIAL "Unknown". +define VARIABLE iAge AS INTEGER NO-UNDO LABEL "Age of Person" INITIAL 0. +define VARIABLE dBirthDate AS DATE NO-UNDO FORMAT "99/99/9999" INITIAL TODAY. +define VARIABLE hBuffer AS HANDLE NO-UNDO INITIAL BUFFER Customer:HANDLE. +define VARIABLE mData AS MEMPTR NO-UNDO INITIAL ?. +define VARIABLE cJson AS CHARACTER NO-UNDO EXTENT 5 INITIAL ["", "", "", "", ""]. +define VARIABLE rAmount AS DECIMAL NO-UNDO FORMAT "->,>>>,>>9.99" INITIAL 0. +define VARIABLE lFlag AS LOGICAL NO-UNDO INITIAL FALSE. +define VARIABLE cXml AS LONGCHAR NO-UNDO INITIAL "". \ No newline at end of file diff --git a/src/model/SyntaxNodeType.ts b/src/model/SyntaxNodeType.ts index c67cd04..516c7a5 100644 --- a/src/model/SyntaxNodeType.ts +++ b/src/model/SyntaxNodeType.ts @@ -53,6 +53,8 @@ export enum SyntaxNodeType { ProcedureStatement = "procedure_statement", RepeatStatement = "repeat_statement", OnStatement = "on_statement", + TypeTuning = "type_tuning", + Comment = "comment", Getter = "getter", Setter = "setter", LeftParenthesis = "(", @@ -91,6 +93,7 @@ export enum SyntaxNodeType { DefineKeyword = "DEFINE", DefiKeyword = "DEFI", DefKeyword = "DEF", + NoUndoKeyword = "NO-UNDO", } export const afterThenStatements = new MyFancySet([ diff --git a/src/v2/formatterFramework/enableFormatterDecorators.ts b/src/v2/formatterFramework/enableFormatterDecorators.ts index 65a36d9..5086009 100644 --- a/src/v2/formatterFramework/enableFormatterDecorators.ts +++ b/src/v2/formatterFramework/enableFormatterDecorators.ts @@ -9,6 +9,7 @@ import { IfFunctionFormatter } from "../formatters/ifFunction/IfFunctionFormatte import { TempTableFormatter } from "../formatters/tempTable/TempTableFormatter"; import { PropertyFormatter } from "../formatters/property/PropertyFormatter"; import { BodyFormatter } from "../formatters/body/BodyFormatter"; +import { VariableDefinitionFormatter } from "../formatters/variableDefinition/VariableDefinitionFormatter"; // needed just for enabling decorators. Decorators does not work if there is no usage of a class in the reachable code export function enableFormatterDecorators(): void { @@ -23,4 +24,5 @@ export function enableFormatterDecorators(): void { TempTableFormatter; PropertyFormatter; IfFunctionFormatter; + VariableDefinitionFormatter; } diff --git a/src/v2/formatters/variableDefinition/VariableDefinitionFormatter.ts b/src/v2/formatters/variableDefinition/VariableDefinitionFormatter.ts new file mode 100644 index 0000000..f41749b --- /dev/null +++ b/src/v2/formatters/variableDefinition/VariableDefinitionFormatter.ts @@ -0,0 +1,157 @@ +import { SyntaxNode } from "web-tree-sitter"; +import { RegisterFormatter } from "../../formatterFramework/formatterDecorator"; +import { IFormatter } from "../../formatterFramework/IFormatter"; +import { CodeEdit } from "../../model/CodeEdit"; +import { FullText } from "../../model/FullText"; +import { AFormatter } from "../AFormatter"; +import { SyntaxNodeType } from "../../../model/SyntaxNodeType"; +import { VariableDefinitionSettings } from "./VariableDefinitionSettings"; +import { IConfigurationManager } from "../../../utils/IConfigurationManager"; +import { FormatterHelper } from "../../formatterFramework/FormatterHelper"; + +@RegisterFormatter +export class VariableDefinitionFormatter + extends AFormatter + implements IFormatter +{ + public static readonly formatterLabel = "variableDefinitionFormatting"; + private readonly settings: VariableDefinitionSettings; + private static visitedNodes: Set = new Set(); + private static alignType = 0; + private static alignNoUndo = 0; + + public constructor(configurationManager: IConfigurationManager) { + super(configurationManager); + this.settings = new VariableDefinitionSettings(configurationManager); + } + + match(node: Readonly): boolean { + if (node.type === SyntaxNodeType.VariableDefinition) { + return true; + } + return false; + } + parse( + node: Readonly, + fullText: Readonly + ): CodeEdit | CodeEdit[] | undefined { + console.log("Found a new node!"); + + const oldText = FormatterHelper.getCurrentText(node, fullText); + if (VariableDefinitionFormatter.visitedNodes.has(node.id)) { + console.log("Already visited!"); + const newText = this.collectDefineString(node, fullText); + return this.getCodeEdit(node, oldText, newText, fullText); + } + + this.resetStaticVariables(); + let currentNode: SyntaxNode | null = node; + for ( + currentNode; + currentNode !== null; + currentNode = currentNode.nextSibling + ) { + // console.log("Found: " + currentNode.type); + // console.log( + // "Text:\n" + + // FormatterHelper.getCurrentText(currentNode, fullText) + // ); + if (currentNode.type === SyntaxNodeType.Comment) { + continue; + } + if (currentNode.type !== SyntaxNodeType.VariableDefinition) { + break; + } + this.collectDefineStructure(currentNode, fullText); + VariableDefinitionFormatter.visitedNodes.add(currentNode.id); + } + const newText = this.collectDefineString(node, fullText); + return this.getCodeEdit(node, oldText, newText, fullText); + } + + private collectDefineString( + node: SyntaxNode, + fullText: Readonly + ): string { + let resultString = ""; + node.children.forEach((child) => { + resultString = resultString.concat( + this.getExpressionString(child, fullText) + ); + }); + resultString += "."; + return resultString; + } + + private collectDefineStructure( + node: SyntaxNode, + fullText: Readonly + ): void { + node.children.forEach((child) => { + this.getDefineStructure(child, fullText); + }); + } + + private getDefineStructure( + node: SyntaxNode, + fullText: Readonly + ): void { + switch (node.type) { + case SyntaxNodeType.TypeTuning: + VariableDefinitionFormatter.alignNoUndo = Math.max( + VariableDefinitionFormatter.alignNoUndo, + FormatterHelper.getCurrentText(node, fullText).trim().length + ); + break; + case SyntaxNodeType.Identifier: + VariableDefinitionFormatter.alignType = Math.max( + VariableDefinitionFormatter.alignType, + FormatterHelper.getCurrentText(node, fullText).trim().length + ); + break; + } + } + + private getExpressionString( + node: SyntaxNode, + fullText: Readonly + ): string { + let newString = ""; + console.log("type: " + node.type); + const text = FormatterHelper.getCurrentText(node, fullText).trim(); + switch (node.type) { + case SyntaxNodeType.DotKeyword: + break; + case SyntaxNodeType.DefineKeyword: + newString = text; + break; + case SyntaxNodeType.TypeTuning: + console.log("align: " + VariableDefinitionFormatter.alignType); + newString = + " " + + text + + " ".repeat( + VariableDefinitionFormatter.alignNoUndo - text.length + ); + break; + case SyntaxNodeType.Identifier: + console.log("align: " + VariableDefinitionFormatter.alignType); + newString = + " " + + text + + " ".repeat( + VariableDefinitionFormatter.alignType - text.length + ); + break; + default: + newString = text.length === 0 ? "" : " " + text; + break; + } + return newString; + } + + private resetStaticVariables() { + VariableDefinitionFormatter.alignType = 0; + VariableDefinitionFormatter.alignNoUndo = 0; + } +} diff --git a/src/v2/formatters/variableDefinition/VariableDefinitionSettings.ts b/src/v2/formatters/variableDefinition/VariableDefinitionSettings.ts new file mode 100644 index 0000000..9b725f2 --- /dev/null +++ b/src/v2/formatters/variableDefinition/VariableDefinitionSettings.ts @@ -0,0 +1,8 @@ +import { ASettings } from "../ASettings"; + +export class VariableDefinitionSettings extends ASettings { + // variable definition settings + public variableDefinitionFormatting() { + return !!this.configurationManager.get("variableDefinitionFormatting"); + } +} From 95194a003f0abaaa754efa85becdba9d35789525 Mon Sep 17 00:00:00 2001 From: gmickus Date: Mon, 30 Sep 2024 13:44:03 +0300 Subject: [PATCH 08/25] Update package.json --- package.json | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/package.json b/package.json index 9f36527..0a2032b 100644 --- a/package.json +++ b/package.json @@ -221,6 +221,12 @@ ], "description": "Add a new line before the ELSE?" }, + "AblFormatter.variableDefinitionFormatting": { + "order": 1400, + "type": "boolean", + "default": "true", + "description": "Enable DEFINE VARIABLE formatting" + }, "AblFormatter.showTreeInfoOnHover": { "order": 10100, "type": "boolean", From 76b69b6086389546ba07dd8a6b556170dbe83cd5 Mon Sep 17 00:00:00 2001 From: gmickus Date: Wed, 2 Oct 2024 09:26:47 +0300 Subject: [PATCH 09/25] testing --- .../functionalTests/block/55class-extent/input.p | 9 +++++++++ .../functionalTests/block/55class-extent/target.p | 8 ++++++++ .../defineVariable/2no-undo2/input copy.p | 9 +++++++++ .../functionalTests/defineVariable/3as/input.p | 7 +++++++ .../functionalTests/defineVariable/3as/target.p | 7 +++++++ .../defineVariable/3procedure-parameters/input.p | 10 ++++++++++ .../defineVariable/3procedure-parameters/target.p | 12 ++++++++++++ .../defineVariable/4define-protected/input.p | 9 +++++++++ .../defineVariable/4define-protected/target.p | 9 +++++++++ .../defineVariable/5create-buffer/input.p | 6 ++++++ .../defineVariable/5create-buffer/target.p | 9 +++++++++ .../defineVariable/6-temptable/input.p | 14 ++++++++++++++ .../defineVariable/6-temptable/target.p | 9 +++++++++ src/model/SyntaxNodeType.ts | 1 + 14 files changed, 119 insertions(+) create mode 100644 resources/functionalTests/block/55class-extent/input.p create mode 100644 resources/functionalTests/block/55class-extent/target.p create mode 100644 resources/functionalTests/defineVariable/2no-undo2/input copy.p create mode 100644 resources/functionalTests/defineVariable/3as/input.p create mode 100644 resources/functionalTests/defineVariable/3as/target.p create mode 100644 resources/functionalTests/defineVariable/3procedure-parameters/input.p create mode 100644 resources/functionalTests/defineVariable/3procedure-parameters/target.p create mode 100644 resources/functionalTests/defineVariable/4define-protected/input.p create mode 100644 resources/functionalTests/defineVariable/4define-protected/target.p create mode 100644 resources/functionalTests/defineVariable/5create-buffer/input.p create mode 100644 resources/functionalTests/defineVariable/5create-buffer/target.p create mode 100644 resources/functionalTests/defineVariable/6-temptable/input.p create mode 100644 resources/functionalTests/defineVariable/6-temptable/target.p diff --git a/resources/functionalTests/block/55class-extent/input.p b/resources/functionalTests/block/55class-extent/input.p new file mode 100644 index 0000000..07e9fef --- /dev/null +++ b/resources/functionalTests/block/55class-extent/input.p @@ -0,0 +1,9 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.blockFormatting": true}*/ + +class OpenEdge.DataAdmin.Rest.RestQueryFactory implements IRestQueryFactory: + method private char extent GetNamedQuery(pcname as char): + define variable cInfo as character extent no-undo. + return cInfo. + end. + end class. \ No newline at end of file diff --git a/resources/functionalTests/block/55class-extent/target.p b/resources/functionalTests/block/55class-extent/target.p new file mode 100644 index 0000000..72bdc13 --- /dev/null +++ b/resources/functionalTests/block/55class-extent/target.p @@ -0,0 +1,8 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.blockFormatting": true}*/ + +catch oFunkyError as Progress.Lang.AppError: + oGroovyResponse:errorStatus = true. + oGroovyResponse:addMessage(oFunkyError:GetMessage(1)). + return oGroovyResponse. +end catch. \ No newline at end of file diff --git a/resources/functionalTests/defineVariable/2no-undo2/input copy.p b/resources/functionalTests/defineVariable/2no-undo2/input copy.p new file mode 100644 index 0000000..5c90bf2 --- /dev/null +++ b/resources/functionalTests/defineVariable/2no-undo2/input copy.p @@ -0,0 +1,9 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.variableDefinitionFormatting": true} */ + +define VARIABLE cerror AS CHARACTER NO-UNDO. +define VARIABLE codepage AS CHARACTER NO-UNDO init "UNDEFINED". +define VARIABLE i AS INTEGER NO-UNDO. +define VARIABLE lvar AS CHARACTER EXTENT 10 NO-UNDO. +define VARIABLE tmpfile AS CHARACTER NO-UNDO. +define VARIABLE err-file AS CHARACTER NO-UNDO. \ No newline at end of file diff --git a/resources/functionalTests/defineVariable/3as/input.p b/resources/functionalTests/defineVariable/3as/input.p new file mode 100644 index 0000000..8e6ac41 --- /dev/null +++ b/resources/functionalTests/defineVariable/3as/input.p @@ -0,0 +1,7 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.variableDefinitionFormatting": true} */ + +define VARIABLE cName AS CHARACTER NO-UNDO FORMAT "x(30)" INITIAL "Unknown" LABEL "Customer Name". + +/* Example : Variable with decimals */ +define VARIABLE rPrice AS DECIMAL NO-UNDO DECIMALS 2 FORMAT "->,>>>,>>9.99" INITIAL 0 LABEL "Price" NO-UNDO. diff --git a/resources/functionalTests/defineVariable/3as/target.p b/resources/functionalTests/defineVariable/3as/target.p new file mode 100644 index 0000000..766f90f --- /dev/null +++ b/resources/functionalTests/defineVariable/3as/target.p @@ -0,0 +1,7 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.variableDefinitionFormatting": true} */ + +define VARIABLE cName AS CHARACTER NO-UNDO FORMAT "x(30)" INITIAL "Unknown" LABEL "Customer Name". + +/* Example : Variable with decimals */ +define VARIABLE rPrice AS DECIMAL NO-UNDO DECIMALS 2 FORMAT "->,>>>,>>9.99" INITIAL 0 LABEL "Price" NO-UNDO. diff --git a/resources/functionalTests/defineVariable/3procedure-parameters/input.p b/resources/functionalTests/defineVariable/3procedure-parameters/input.p new file mode 100644 index 0000000..4e3a7ae --- /dev/null +++ b/resources/functionalTests/defineVariable/3procedure-parameters/input.p @@ -0,0 +1,10 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.variableDefinitionFormatting": true} */ + +define INPUT PARAMETER pEvent-id AS INTEGER NO-UNDO. +define OUTPUT PARAMETER pcEventinfo AS CHARACTER NO-UNDO. +define INPUT PARAMETER mode AS CHARACTER. +define INPUT PARAMETER cDbName AS CHARACTER. +/* ss */ +do: +end. diff --git a/resources/functionalTests/defineVariable/3procedure-parameters/target.p b/resources/functionalTests/defineVariable/3procedure-parameters/target.p new file mode 100644 index 0000000..0050804 --- /dev/null +++ b/resources/functionalTests/defineVariable/3procedure-parameters/target.p @@ -0,0 +1,12 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.variableDefinitionFormatting": true} */ + +define VARIABLE cName AS CHARACTER NO-UNDO FORMAT "x(30)" INITIAL "Unknown". +define VARIABLE iAge AS INTEGER NO-UNDO LABEL "Age of Person" INITIAL 0. +define VARIABLE dBirthDate AS DATE NO-UNDO FORMAT "99/99/9999" INITIAL TODAY. +define VARIABLE hBuffer AS HANDLE NO-UNDO INITIAL BUFFER Customer:HANDLE. +define VARIABLE mData AS MEMPTR NO-UNDO INITIAL ?. +define VARIABLE cJson AS CHARACTER NO-UNDO EXTENT 5 INITIAL ["", "", "", "", ""]. +define VARIABLE rAmount AS DECIMAL NO-UNDO FORMAT "->,>>>,>>9.99" INITIAL 0. +define VARIABLE lFlag AS LOGICAL NO-UNDO INITIAL FALSE. +define VARIABLE cXml AS LONGCHAR NO-UNDO INITIAL "". \ No newline at end of file diff --git a/resources/functionalTests/defineVariable/4define-protected/input.p b/resources/functionalTests/defineVariable/4define-protected/input.p new file mode 100644 index 0000000..61886f2 --- /dev/null +++ b/resources/functionalTests/defineVariable/4define-protected/input.p @@ -0,0 +1,9 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.variableDefinitionFormatting": true} */ + +define protected variable mBuffer as handle no-undo. + +define protected variable ValidRecordsPerBlockNumbers as char no-undo init "1,2,4,8,16,32,64,128,256". +define protected variable ValidRecordsPerBlockString as char no-undo init "1, 2, 4, 8, 16, 32, 64, 128 and 256". +/* area type names */ +define protected variable AreaTypeNames as char no-undo extent 7 init ["Undefined","Undefined","Recovery","Transaction log","Event log","Data","Rollforward recovery"]. \ No newline at end of file diff --git a/resources/functionalTests/defineVariable/4define-protected/target.p b/resources/functionalTests/defineVariable/4define-protected/target.p new file mode 100644 index 0000000..6f92363 --- /dev/null +++ b/resources/functionalTests/defineVariable/4define-protected/target.p @@ -0,0 +1,9 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.variableDefinitionFormatting": true} */ + +define protected variable mBuffer as handle no-undo. + +define protected variable ValidRecordsPerBlockNumbers as char no-undo init "1,2,4,8,16,32,64,128,256". +define protected variable ValidRecordsPerBlockString as char no-undo init "1, 2, 4, 8, 16, 32, 64, 128 and 256". +/* area type names */ +define protected variable AreaTypeNames as char no-undo extent 7 init ["Undefined","Undefined","Recovery","Transaction log","Event log","Data","Rollforward recovery"]. \ No newline at end of file diff --git a/resources/functionalTests/defineVariable/5create-buffer/input.p b/resources/functionalTests/defineVariable/5create-buffer/input.p new file mode 100644 index 0000000..dffe409 --- /dev/null +++ b/resources/functionalTests/defineVariable/5create-buffer/input.p @@ -0,0 +1,6 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.variableDefinitionFormatting": true} */ + +CREATE BUFFER ghFileBuff FOR TABLE pcDbName + "._file" IN WIDGET-POOL "datasetPool". +CREATE BUFFER ghFilTrgBuff FOR TABLE pcDbName + "._file-trig" IN WIDGET-POOL "datasetPool". +CREATE BUFFER ghFieldBuff FOR TABLE pcDbName + "._field" IN WIDGET-POOL "datasetPool". \ No newline at end of file diff --git a/resources/functionalTests/defineVariable/5create-buffer/target.p b/resources/functionalTests/defineVariable/5create-buffer/target.p new file mode 100644 index 0000000..6f92363 --- /dev/null +++ b/resources/functionalTests/defineVariable/5create-buffer/target.p @@ -0,0 +1,9 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.variableDefinitionFormatting": true} */ + +define protected variable mBuffer as handle no-undo. + +define protected variable ValidRecordsPerBlockNumbers as char no-undo init "1,2,4,8,16,32,64,128,256". +define protected variable ValidRecordsPerBlockString as char no-undo init "1, 2, 4, 8, 16, 32, 64, 128 and 256". +/* area type names */ +define protected variable AreaTypeNames as char no-undo extent 7 init ["Undefined","Undefined","Recovery","Transaction log","Event log","Data","Rollforward recovery"]. \ No newline at end of file diff --git a/resources/functionalTests/defineVariable/6-temptable/input.p b/resources/functionalTests/defineVariable/6-temptable/input.p new file mode 100644 index 0000000..2b6644b --- /dev/null +++ b/resources/functionalTests/defineVariable/6-temptable/input.p @@ -0,0 +1,14 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.variableDefinitionFormatting": true} */ + +DEFINE TEMP-TABLE ttObjectBand NO-UNDO +FIELD ObjectName AS CHARACTER FORMAT "x(15)" +FIELD RunAttribute AS CHARACTER FORMAT "x(15)" +FIELD ResultCode AS CHARACTER /* This field is required for customization of menus on a container - part of the unique primary index */ +FIELD Sequence AS INTEGER +FIELD Action AS CHAR +FIELD Band AS CHARACTER FORMAT "x(28)" +FIELD InsertSubmenu AS LOGICAL +INDEX key1 AS PRIMARY UNIQUE ObjectName RunAttribute ResultCode Sequence +INDEX key2 Band ObjectName RunAttribute +INDEX key3 Action ObjectName RunAttribute Sequence. diff --git a/resources/functionalTests/defineVariable/6-temptable/target.p b/resources/functionalTests/defineVariable/6-temptable/target.p new file mode 100644 index 0000000..6f92363 --- /dev/null +++ b/resources/functionalTests/defineVariable/6-temptable/target.p @@ -0,0 +1,9 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.variableDefinitionFormatting": true} */ + +define protected variable mBuffer as handle no-undo. + +define protected variable ValidRecordsPerBlockNumbers as char no-undo init "1,2,4,8,16,32,64,128,256". +define protected variable ValidRecordsPerBlockString as char no-undo init "1, 2, 4, 8, 16, 32, 64, 128 and 256". +/* area type names */ +define protected variable AreaTypeNames as char no-undo extent 7 init ["Undefined","Undefined","Recovery","Transaction log","Event log","Data","Rollforward recovery"]. \ No newline at end of file diff --git a/src/model/SyntaxNodeType.ts b/src/model/SyntaxNodeType.ts index 516c7a5..5f60ddf 100644 --- a/src/model/SyntaxNodeType.ts +++ b/src/model/SyntaxNodeType.ts @@ -22,6 +22,7 @@ export enum SyntaxNodeType { FieldDefinition = "field_definition", IndexDefinition = "index_definition", VariableDefinition = "variable_definition", + ProcedureParameterDefinition = "procedure_parameter_definition", VariableAssignment = "variable_assignment", ConstructorDefinition = "constructor_definition", DestructorDefinition = "destructor_definition", From a22ff449415487f01f29bb0224af01f6b39d248c Mon Sep 17 00:00:00 2001 From: gmickus Date: Wed, 2 Oct 2024 09:31:41 +0300 Subject: [PATCH 10/25] Remove comments --- .../variableDefinition/VariableDefinitionFormatter.ts | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/src/v2/formatters/variableDefinition/VariableDefinitionFormatter.ts b/src/v2/formatters/variableDefinition/VariableDefinitionFormatter.ts index f41749b..3572fc5 100644 --- a/src/v2/formatters/variableDefinition/VariableDefinitionFormatter.ts +++ b/src/v2/formatters/variableDefinition/VariableDefinitionFormatter.ts @@ -35,11 +35,8 @@ export class VariableDefinitionFormatter node: Readonly, fullText: Readonly ): CodeEdit | CodeEdit[] | undefined { - console.log("Found a new node!"); - const oldText = FormatterHelper.getCurrentText(node, fullText); if (VariableDefinitionFormatter.visitedNodes.has(node.id)) { - console.log("Already visited!"); const newText = this.collectDefineString(node, fullText); return this.getCodeEdit(node, oldText, newText, fullText); } @@ -51,11 +48,6 @@ export class VariableDefinitionFormatter currentNode !== null; currentNode = currentNode.nextSibling ) { - // console.log("Found: " + currentNode.type); - // console.log( - // "Text:\n" + - // FormatterHelper.getCurrentText(currentNode, fullText) - // ); if (currentNode.type === SyntaxNodeType.Comment) { continue; } @@ -117,7 +109,6 @@ export class VariableDefinitionFormatter fullText: Readonly ): string { let newString = ""; - console.log("type: " + node.type); const text = FormatterHelper.getCurrentText(node, fullText).trim(); switch (node.type) { case SyntaxNodeType.DotKeyword: @@ -126,7 +117,6 @@ export class VariableDefinitionFormatter newString = text; break; case SyntaxNodeType.TypeTuning: - console.log("align: " + VariableDefinitionFormatter.alignType); newString = " " + text + @@ -135,7 +125,6 @@ export class VariableDefinitionFormatter ); break; case SyntaxNodeType.Identifier: - console.log("align: " + VariableDefinitionFormatter.alignType); newString = " " + text + From 3e51091e79380e1ff56c32bbffd5b115429dad84 Mon Sep 17 00:00:00 2001 From: gmickus Date: Wed, 2 Oct 2024 09:51:48 +0300 Subject: [PATCH 11/25] Update tests --- .../defineVariable/2no-undo2/input copy.p | 9 --------- .../defineVariable/2no-undo2/input.p | 9 --------- .../defineVariable/2no-undo2/target.p | 9 --------- .../functionalTests/defineVariable/3as/input.p | 2 +- .../functionalTests/defineVariable/3as/target.p | 2 +- .../defineVariable/3procedure-parameters/input.p | 10 ---------- .../defineVariable/3procedure-parameters/target.p | 12 ------------ .../defineVariable/4define-protected/input.p | 3 ++- .../defineVariable/4define-protected/target.p | 7 ++++--- .../defineVariable/5-new-shared/input.p | 5 +++++ .../defineVariable/5-new-shared/target.p | 5 +++++ .../defineVariable/5create-buffer/input.p | 6 ------ .../defineVariable/5create-buffer/target.p | 9 --------- .../defineVariable/6-temptable/input.p | 14 -------------- .../defineVariable/6-temptable/target.p | 9 --------- 15 files changed, 18 insertions(+), 93 deletions(-) delete mode 100644 resources/functionalTests/defineVariable/2no-undo2/input copy.p delete mode 100644 resources/functionalTests/defineVariable/2no-undo2/input.p delete mode 100644 resources/functionalTests/defineVariable/2no-undo2/target.p delete mode 100644 resources/functionalTests/defineVariable/3procedure-parameters/input.p delete mode 100644 resources/functionalTests/defineVariable/3procedure-parameters/target.p create mode 100644 resources/functionalTests/defineVariable/5-new-shared/input.p create mode 100644 resources/functionalTests/defineVariable/5-new-shared/target.p delete mode 100644 resources/functionalTests/defineVariable/5create-buffer/input.p delete mode 100644 resources/functionalTests/defineVariable/5create-buffer/target.p delete mode 100644 resources/functionalTests/defineVariable/6-temptable/input.p delete mode 100644 resources/functionalTests/defineVariable/6-temptable/target.p diff --git a/resources/functionalTests/defineVariable/2no-undo2/input copy.p b/resources/functionalTests/defineVariable/2no-undo2/input copy.p deleted file mode 100644 index 5c90bf2..0000000 --- a/resources/functionalTests/defineVariable/2no-undo2/input copy.p +++ /dev/null @@ -1,9 +0,0 @@ -/* formatterSettingsOverride */ -/* { "AblFormatter.variableDefinitionFormatting": true} */ - -define VARIABLE cerror AS CHARACTER NO-UNDO. -define VARIABLE codepage AS CHARACTER NO-UNDO init "UNDEFINED". -define VARIABLE i AS INTEGER NO-UNDO. -define VARIABLE lvar AS CHARACTER EXTENT 10 NO-UNDO. -define VARIABLE tmpfile AS CHARACTER NO-UNDO. -define VARIABLE err-file AS CHARACTER NO-UNDO. \ No newline at end of file diff --git a/resources/functionalTests/defineVariable/2no-undo2/input.p b/resources/functionalTests/defineVariable/2no-undo2/input.p deleted file mode 100644 index 5c90bf2..0000000 --- a/resources/functionalTests/defineVariable/2no-undo2/input.p +++ /dev/null @@ -1,9 +0,0 @@ -/* formatterSettingsOverride */ -/* { "AblFormatter.variableDefinitionFormatting": true} */ - -define VARIABLE cerror AS CHARACTER NO-UNDO. -define VARIABLE codepage AS CHARACTER NO-UNDO init "UNDEFINED". -define VARIABLE i AS INTEGER NO-UNDO. -define VARIABLE lvar AS CHARACTER EXTENT 10 NO-UNDO. -define VARIABLE tmpfile AS CHARACTER NO-UNDO. -define VARIABLE err-file AS CHARACTER NO-UNDO. \ No newline at end of file diff --git a/resources/functionalTests/defineVariable/2no-undo2/target.p b/resources/functionalTests/defineVariable/2no-undo2/target.p deleted file mode 100644 index d24a4a7..0000000 --- a/resources/functionalTests/defineVariable/2no-undo2/target.p +++ /dev/null @@ -1,9 +0,0 @@ -/* formatterSettingsOverride */ -/* { "AblFormatter.variableDefinitionFormatting": true} */ - -DEFINE VARIABLE cerror AS CHARACTER NO-UNDO. -DEFINE VARIABLE codepage AS CHARACTER NO-UNDO init "UNDEFINED". -DEFINE VARIABLE i AS INTEGER NO-UNDO. -DEFINE VARIABLE lvar AS CHARACTER EXTENT 10 NO-UNDO. -DEFINE VARIABLE tmpfile AS CHARACTER NO-UNDO. -DEFINE VARIABLE err-file AS CHARACTER NO-UNDO. \ No newline at end of file diff --git a/resources/functionalTests/defineVariable/3as/input.p b/resources/functionalTests/defineVariable/3as/input.p index 8e6ac41..c23f6f5 100644 --- a/resources/functionalTests/defineVariable/3as/input.p +++ b/resources/functionalTests/defineVariable/3as/input.p @@ -4,4 +4,4 @@ define VARIABLE cName AS CHARACTER NO-UNDO FORMAT "x(30)" INITIAL "Unknown" LABEL "Customer Name". /* Example : Variable with decimals */ -define VARIABLE rPrice AS DECIMAL NO-UNDO DECIMALS 2 FORMAT "->,>>>,>>9.99" INITIAL 0 LABEL "Price" NO-UNDO. +define VARIABLE rPrice AS DECIMAL NO-UNDO DECIMALS 2 FORMAT "->,>>>,>>9.99" INITIAL 0 LABEL "Price". diff --git a/resources/functionalTests/defineVariable/3as/target.p b/resources/functionalTests/defineVariable/3as/target.p index 766f90f..49c5869 100644 --- a/resources/functionalTests/defineVariable/3as/target.p +++ b/resources/functionalTests/defineVariable/3as/target.p @@ -4,4 +4,4 @@ define VARIABLE cName AS CHARACTER NO-UNDO FORMAT "x(30)" INITIAL "Unknown" LABEL "Customer Name". /* Example : Variable with decimals */ -define VARIABLE rPrice AS DECIMAL NO-UNDO DECIMALS 2 FORMAT "->,>>>,>>9.99" INITIAL 0 LABEL "Price" NO-UNDO. +define VARIABLE rPrice AS DECIMAL NO-UNDO DECIMALS 2 FORMAT "->,>>>,>>9.99" INITIAL 0 LABEL "Price". diff --git a/resources/functionalTests/defineVariable/3procedure-parameters/input.p b/resources/functionalTests/defineVariable/3procedure-parameters/input.p deleted file mode 100644 index 4e3a7ae..0000000 --- a/resources/functionalTests/defineVariable/3procedure-parameters/input.p +++ /dev/null @@ -1,10 +0,0 @@ -/* formatterSettingsOverride */ -/* { "AblFormatter.variableDefinitionFormatting": true} */ - -define INPUT PARAMETER pEvent-id AS INTEGER NO-UNDO. -define OUTPUT PARAMETER pcEventinfo AS CHARACTER NO-UNDO. -define INPUT PARAMETER mode AS CHARACTER. -define INPUT PARAMETER cDbName AS CHARACTER. -/* ss */ -do: -end. diff --git a/resources/functionalTests/defineVariable/3procedure-parameters/target.p b/resources/functionalTests/defineVariable/3procedure-parameters/target.p deleted file mode 100644 index 0050804..0000000 --- a/resources/functionalTests/defineVariable/3procedure-parameters/target.p +++ /dev/null @@ -1,12 +0,0 @@ -/* formatterSettingsOverride */ -/* { "AblFormatter.variableDefinitionFormatting": true} */ - -define VARIABLE cName AS CHARACTER NO-UNDO FORMAT "x(30)" INITIAL "Unknown". -define VARIABLE iAge AS INTEGER NO-UNDO LABEL "Age of Person" INITIAL 0. -define VARIABLE dBirthDate AS DATE NO-UNDO FORMAT "99/99/9999" INITIAL TODAY. -define VARIABLE hBuffer AS HANDLE NO-UNDO INITIAL BUFFER Customer:HANDLE. -define VARIABLE mData AS MEMPTR NO-UNDO INITIAL ?. -define VARIABLE cJson AS CHARACTER NO-UNDO EXTENT 5 INITIAL ["", "", "", "", ""]. -define VARIABLE rAmount AS DECIMAL NO-UNDO FORMAT "->,>>>,>>9.99" INITIAL 0. -define VARIABLE lFlag AS LOGICAL NO-UNDO INITIAL FALSE. -define VARIABLE cXml AS LONGCHAR NO-UNDO INITIAL "". \ No newline at end of file diff --git a/resources/functionalTests/defineVariable/4define-protected/input.p b/resources/functionalTests/defineVariable/4define-protected/input.p index 61886f2..3beefbe 100644 --- a/resources/functionalTests/defineVariable/4define-protected/input.p +++ b/resources/functionalTests/defineVariable/4define-protected/input.p @@ -6,4 +6,5 @@ define protected variable mBuffer as handle no-undo. define protected variable ValidRecordsPerBlockNumbers as char no-undo init "1,2,4,8,16,32,64,128,256". define protected variable ValidRecordsPerBlockString as char no-undo init "1, 2, 4, 8, 16, 32, 64, 128 and 256". /* area type names */ -define protected variable AreaTypeNames as char no-undo extent 7 init ["Undefined","Undefined","Recovery","Transaction log","Event log","Data","Rollforward recovery"]. \ No newline at end of file +define protected variable AreaTypeNames as char no-undo extent 7 init ["Undefined","Undefined","Recovery","Transaction log","Event log","Data","Rollforward recovery"]. + diff --git a/resources/functionalTests/defineVariable/4define-protected/target.p b/resources/functionalTests/defineVariable/4define-protected/target.p index 6f92363..3beefbe 100644 --- a/resources/functionalTests/defineVariable/4define-protected/target.p +++ b/resources/functionalTests/defineVariable/4define-protected/target.p @@ -1,9 +1,10 @@ /* formatterSettingsOverride */ /* { "AblFormatter.variableDefinitionFormatting": true} */ -define protected variable mBuffer as handle no-undo. +define protected variable mBuffer as handle no-undo. -define protected variable ValidRecordsPerBlockNumbers as char no-undo init "1,2,4,8,16,32,64,128,256". +define protected variable ValidRecordsPerBlockNumbers as char no-undo init "1,2,4,8,16,32,64,128,256". define protected variable ValidRecordsPerBlockString as char no-undo init "1, 2, 4, 8, 16, 32, 64, 128 and 256". /* area type names */ -define protected variable AreaTypeNames as char no-undo extent 7 init ["Undefined","Undefined","Recovery","Transaction log","Event log","Data","Rollforward recovery"]. \ No newline at end of file +define protected variable AreaTypeNames as char no-undo extent 7 init ["Undefined","Undefined","Recovery","Transaction log","Event log","Data","Rollforward recovery"]. + diff --git a/resources/functionalTests/defineVariable/5-new-shared/input.p b/resources/functionalTests/defineVariable/5-new-shared/input.p new file mode 100644 index 0000000..b5ad110 --- /dev/null +++ b/resources/functionalTests/defineVariable/5-new-shared/input.p @@ -0,0 +1,5 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.variableDefinitionFormatting": true} */ + +define NEW SHARED VARIABLE RCodePath AS CHARACTER NO-UNDO INIT "". +define NEW SHARED VARIABLE SourceFileFull AS CHARACTER NO-UNDO INIT "". diff --git a/resources/functionalTests/defineVariable/5-new-shared/target.p b/resources/functionalTests/defineVariable/5-new-shared/target.p new file mode 100644 index 0000000..d99026f --- /dev/null +++ b/resources/functionalTests/defineVariable/5-new-shared/target.p @@ -0,0 +1,5 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.variableDefinitionFormatting": true} */ + +define NEW SHARED VARIABLE RCodePath AS CHARACTER NO-UNDO INIT "". +define NEW SHARED VARIABLE SourceFileFull AS CHARACTER NO-UNDO INIT "". diff --git a/resources/functionalTests/defineVariable/5create-buffer/input.p b/resources/functionalTests/defineVariable/5create-buffer/input.p deleted file mode 100644 index dffe409..0000000 --- a/resources/functionalTests/defineVariable/5create-buffer/input.p +++ /dev/null @@ -1,6 +0,0 @@ -/* formatterSettingsOverride */ -/* { "AblFormatter.variableDefinitionFormatting": true} */ - -CREATE BUFFER ghFileBuff FOR TABLE pcDbName + "._file" IN WIDGET-POOL "datasetPool". -CREATE BUFFER ghFilTrgBuff FOR TABLE pcDbName + "._file-trig" IN WIDGET-POOL "datasetPool". -CREATE BUFFER ghFieldBuff FOR TABLE pcDbName + "._field" IN WIDGET-POOL "datasetPool". \ No newline at end of file diff --git a/resources/functionalTests/defineVariable/5create-buffer/target.p b/resources/functionalTests/defineVariable/5create-buffer/target.p deleted file mode 100644 index 6f92363..0000000 --- a/resources/functionalTests/defineVariable/5create-buffer/target.p +++ /dev/null @@ -1,9 +0,0 @@ -/* formatterSettingsOverride */ -/* { "AblFormatter.variableDefinitionFormatting": true} */ - -define protected variable mBuffer as handle no-undo. - -define protected variable ValidRecordsPerBlockNumbers as char no-undo init "1,2,4,8,16,32,64,128,256". -define protected variable ValidRecordsPerBlockString as char no-undo init "1, 2, 4, 8, 16, 32, 64, 128 and 256". -/* area type names */ -define protected variable AreaTypeNames as char no-undo extent 7 init ["Undefined","Undefined","Recovery","Transaction log","Event log","Data","Rollforward recovery"]. \ No newline at end of file diff --git a/resources/functionalTests/defineVariable/6-temptable/input.p b/resources/functionalTests/defineVariable/6-temptable/input.p deleted file mode 100644 index 2b6644b..0000000 --- a/resources/functionalTests/defineVariable/6-temptable/input.p +++ /dev/null @@ -1,14 +0,0 @@ -/* formatterSettingsOverride */ -/* { "AblFormatter.variableDefinitionFormatting": true} */ - -DEFINE TEMP-TABLE ttObjectBand NO-UNDO -FIELD ObjectName AS CHARACTER FORMAT "x(15)" -FIELD RunAttribute AS CHARACTER FORMAT "x(15)" -FIELD ResultCode AS CHARACTER /* This field is required for customization of menus on a container - part of the unique primary index */ -FIELD Sequence AS INTEGER -FIELD Action AS CHAR -FIELD Band AS CHARACTER FORMAT "x(28)" -FIELD InsertSubmenu AS LOGICAL -INDEX key1 AS PRIMARY UNIQUE ObjectName RunAttribute ResultCode Sequence -INDEX key2 Band ObjectName RunAttribute -INDEX key3 Action ObjectName RunAttribute Sequence. diff --git a/resources/functionalTests/defineVariable/6-temptable/target.p b/resources/functionalTests/defineVariable/6-temptable/target.p deleted file mode 100644 index 6f92363..0000000 --- a/resources/functionalTests/defineVariable/6-temptable/target.p +++ /dev/null @@ -1,9 +0,0 @@ -/* formatterSettingsOverride */ -/* { "AblFormatter.variableDefinitionFormatting": true} */ - -define protected variable mBuffer as handle no-undo. - -define protected variable ValidRecordsPerBlockNumbers as char no-undo init "1,2,4,8,16,32,64,128,256". -define protected variable ValidRecordsPerBlockString as char no-undo init "1, 2, 4, 8, 16, 32, 64, 128 and 256". -/* area type names */ -define protected variable AreaTypeNames as char no-undo extent 7 init ["Undefined","Undefined","Recovery","Transaction log","Event log","Data","Rollforward recovery"]. \ No newline at end of file From 1206b3153ec4746928a55c0365f2f11e36cf5b83 Mon Sep 17 00:00:00 2001 From: gmickus Date: Wed, 2 Oct 2024 10:11:44 +0300 Subject: [PATCH 12/25] Update tests --- .../10sameLine-noRightAlign-newAlignedEndDot/input.p | 3 --- .../10sameLine-noRightAlign-newAlignedEndDot/target.p | 3 --- .../assign/11sameLine-noRightAlign-newEndDot/input.p | 3 --- .../assign/11sameLine-noRightAlign-newEndDot/target.p | 3 --- .../assign/12sameLine-noRightAlign-sameEndDot/input.p | 3 --- .../12sameLine-noRightAlign-sameEndDot/target.p | 3 --- .../13sameLine-RightAlign-newAlignedEndDot/input.p | 3 --- .../13sameLine-RightAlign-newAlignedEndDot/target.p | 3 --- .../assign/14sameLine-RightAlign-sameEndDot/input.p | 3 --- .../assign/14sameLine-RightAlign-sameEndDot/target.p | 3 --- .../functionalTests/assign/15assign-noError/input.p | 4 ---- .../functionalTests/assign/15assign-noError/target.p | 4 ---- .../functionalTests/assign/16assign-When/input.p | 4 ---- .../functionalTests/assign/16assign-When/target.p | 4 ---- .../assign/17assign-When-noError/input.p | 4 ---- .../assign/17assign-When-noError/target.p | 4 ---- .../assign/17assign-When-noError2 copy/input.p | 3 --- .../assign/17assign-When-noError2 copy/target.p | 3 --- .../assign/17assign-When-noError2/input.p | 4 ---- .../assign/17assign-When-noError2/target.p | 4 ---- .../functionalTests/assign/1formattingFalse/input.p | 3 --- .../functionalTests/assign/1formattingFalse/target.p | 3 --- resources/functionalTests/assign/2inFunction/input.p | 3 --- resources/functionalTests/assign/2inFunction/target.p | 3 --- resources/functionalTests/assign/3inProcedure/input.p | 3 --- .../functionalTests/assign/3inProcedure/target.p | 3 --- .../4newLine-noRightAlign-newAlignedEndDot/input.p | 3 --- .../4newLine-noRightAlign-newAlignedEndDot/target.p | 3 --- .../assign/5newLine-noRightAlign-newEndDot/input.p | 3 --- .../assign/5newLine-noRightAlign-newEndDot/target.p | 3 --- .../assign/6newLine-noRightAlign-sameEndDot/input.p | 3 --- .../assign/6newLine-noRightAlign-sameEndDot/target.p | 3 --- .../7newLine-RightAlign-newAlignedEndDot/input.p | 3 --- .../7newLine-RightAlign-newAlignedEndDot/target.p | 3 --- .../assign/8newLine-RightAlign-newEndDot/input.p | 3 --- .../assign/8newLine-RightAlign-newEndDot/target.p | 3 --- .../assign/9newLine-RightAlign-sameEndDot/input.p | 3 --- .../assign/9newLine-RightAlign-sameEndDot/target.p | 3 --- .../functionalTests/block/55class-extent/target.p | 11 ++++++----- .../functionalTests/define/3formattingFalse/input.p | 3 ++- .../functionalTests/define/3formattingFalse/target.p | 3 ++- .../defineVariable/4define-protected/target.p | 6 +++--- .../variableDefinition/VariableDefinitionFormatter.ts | 7 +++++-- 43 files changed, 18 insertions(+), 134 deletions(-) diff --git a/resources/functionalTests/assign/10sameLine-noRightAlign-newAlignedEndDot/input.p b/resources/functionalTests/assign/10sameLine-noRightAlign-newAlignedEndDot/input.p index 2373fd5..5f9669c 100644 --- a/resources/functionalTests/assign/10sameLine-noRightAlign-newAlignedEndDot/input.p +++ b/resources/functionalTests/assign/10sameLine-noRightAlign-newAlignedEndDot/input.p @@ -5,9 +5,6 @@ "AblFormatter.assignFormattingAlignRightExpression": "No", "AblFormatter.assignFormattingEndDotLocation": "New aligned"}*/ -DEFINE VARIABLE number11 AS INTEGER NO-UNDO. -DEFINE VARIABLE number2 AS INTEGER NO-UNDO. - ASSIGN diff --git a/resources/functionalTests/assign/10sameLine-noRightAlign-newAlignedEndDot/target.p b/resources/functionalTests/assign/10sameLine-noRightAlign-newAlignedEndDot/target.p index a051d12..03f004e 100644 --- a/resources/functionalTests/assign/10sameLine-noRightAlign-newAlignedEndDot/target.p +++ b/resources/functionalTests/assign/10sameLine-noRightAlign-newAlignedEndDot/target.p @@ -5,8 +5,5 @@ "AblFormatter.assignFormattingAlignRightExpression": "No", "AblFormatter.assignFormattingEndDotLocation": "New aligned"}*/ -DEFINE VARIABLE number11 AS INTEGER NO-UNDO. -DEFINE VARIABLE number2 AS INTEGER NO-UNDO. - ASSIGN number11 = 2 number2 = 3333 . diff --git a/resources/functionalTests/assign/11sameLine-noRightAlign-newEndDot/input.p b/resources/functionalTests/assign/11sameLine-noRightAlign-newEndDot/input.p index ad1340f..fbbc8d6 100644 --- a/resources/functionalTests/assign/11sameLine-noRightAlign-newEndDot/input.p +++ b/resources/functionalTests/assign/11sameLine-noRightAlign-newEndDot/input.p @@ -5,9 +5,6 @@ "AblFormatter.assignFormattingAlignRightExpression": "No", "AblFormatter.assignFormattingEndDotLocation": "New"}*/ -DEFINE VARIABLE number11 AS INTEGER NO-UNDO. -DEFINE VARIABLE number2 AS INTEGER NO-UNDO. - ASSIGN number11 = 2 diff --git a/resources/functionalTests/assign/11sameLine-noRightAlign-newEndDot/target.p b/resources/functionalTests/assign/11sameLine-noRightAlign-newEndDot/target.p index 30c340f..d95954b 100644 --- a/resources/functionalTests/assign/11sameLine-noRightAlign-newEndDot/target.p +++ b/resources/functionalTests/assign/11sameLine-noRightAlign-newEndDot/target.p @@ -5,8 +5,5 @@ "AblFormatter.assignFormattingAlignRightExpression": "No", "AblFormatter.assignFormattingEndDotLocation": "New"}*/ -DEFINE VARIABLE number11 AS INTEGER NO-UNDO. -DEFINE VARIABLE number2 AS INTEGER NO-UNDO. - ASSIGN number11 = 2 number2 = 3333 . diff --git a/resources/functionalTests/assign/12sameLine-noRightAlign-sameEndDot/input.p b/resources/functionalTests/assign/12sameLine-noRightAlign-sameEndDot/input.p index ba8bc80..6911f24 100644 --- a/resources/functionalTests/assign/12sameLine-noRightAlign-sameEndDot/input.p +++ b/resources/functionalTests/assign/12sameLine-noRightAlign-sameEndDot/input.p @@ -5,8 +5,5 @@ "AblFormatter.assignFormattingAlignRightExpression": "No", "AblFormatter.assignFormattingEndDotLocation": "Same"}*/ -DEFINE VARIABLE number11 AS INTEGER NO-UNDO. -DEFINE VARIABLE number2 AS INTEGER NO-UNDO. - ASSIGN number11 = 2 number2 = 3333 . diff --git a/resources/functionalTests/assign/12sameLine-noRightAlign-sameEndDot/target.p b/resources/functionalTests/assign/12sameLine-noRightAlign-sameEndDot/target.p index 71f640d..346770c 100644 --- a/resources/functionalTests/assign/12sameLine-noRightAlign-sameEndDot/target.p +++ b/resources/functionalTests/assign/12sameLine-noRightAlign-sameEndDot/target.p @@ -5,7 +5,4 @@ "AblFormatter.assignFormattingAlignRightExpression": "No", "AblFormatter.assignFormattingEndDotLocation": "Same"}*/ -DEFINE VARIABLE number11 AS INTEGER NO-UNDO. -DEFINE VARIABLE number2 AS INTEGER NO-UNDO. - ASSIGN number11 = 2 number2 = 3333. diff --git a/resources/functionalTests/assign/13sameLine-RightAlign-newAlignedEndDot/input.p b/resources/functionalTests/assign/13sameLine-RightAlign-newAlignedEndDot/input.p index 98f3a40..ca68e9c 100644 --- a/resources/functionalTests/assign/13sameLine-RightAlign-newAlignedEndDot/input.p +++ b/resources/functionalTests/assign/13sameLine-RightAlign-newAlignedEndDot/input.p @@ -5,7 +5,4 @@ "AblFormatter.assignFormattingAlignRightExpression": "Yes", "AblFormatter.assignFormattingEndDotLocation": "New aligned"}*/ -DEFINE VARIABLE number11 AS INTEGER NO-UNDO. -DEFINE VARIABLE number2 AS INTEGER NO-UNDO. - ASSIGN number11 = 2 number2 = 33333 . diff --git a/resources/functionalTests/assign/13sameLine-RightAlign-newAlignedEndDot/target.p b/resources/functionalTests/assign/13sameLine-RightAlign-newAlignedEndDot/target.p index 9a92d7e..64a0c76 100644 --- a/resources/functionalTests/assign/13sameLine-RightAlign-newAlignedEndDot/target.p +++ b/resources/functionalTests/assign/13sameLine-RightAlign-newAlignedEndDot/target.p @@ -5,8 +5,5 @@ "AblFormatter.assignFormattingAlignRightExpression": "Yes", "AblFormatter.assignFormattingEndDotLocation": "New aligned"}*/ -DEFINE VARIABLE number11 AS INTEGER NO-UNDO. -DEFINE VARIABLE number2 AS INTEGER NO-UNDO. - ASSIGN number11 = 2 number2 = 33333 . diff --git a/resources/functionalTests/assign/14sameLine-RightAlign-sameEndDot/input.p b/resources/functionalTests/assign/14sameLine-RightAlign-sameEndDot/input.p index 62809f5..bfafb61 100644 --- a/resources/functionalTests/assign/14sameLine-RightAlign-sameEndDot/input.p +++ b/resources/functionalTests/assign/14sameLine-RightAlign-sameEndDot/input.p @@ -5,9 +5,6 @@ "AblFormatter.assignFormattingAlignRightExpression": "Yes", "AblFormatter.assignFormattingEndDotLocation": "Same"}*/ -DEFINE VARIABLE number11 AS INTEGER NO-UNDO. -DEFINE VARIABLE number2 AS INTEGER NO-UNDO. - ASSIGN number11 = 2 diff --git a/resources/functionalTests/assign/14sameLine-RightAlign-sameEndDot/target.p b/resources/functionalTests/assign/14sameLine-RightAlign-sameEndDot/target.p index 4f81521..76355a2 100644 --- a/resources/functionalTests/assign/14sameLine-RightAlign-sameEndDot/target.p +++ b/resources/functionalTests/assign/14sameLine-RightAlign-sameEndDot/target.p @@ -5,7 +5,4 @@ "AblFormatter.assignFormattingAlignRightExpression": "Yes", "AblFormatter.assignFormattingEndDotLocation": "Same"}*/ -DEFINE VARIABLE number11 AS INTEGER NO-UNDO. -DEFINE VARIABLE number2 AS INTEGER NO-UNDO. - ASSIGN number11 = 2 number2 = 33333. diff --git a/resources/functionalTests/assign/15assign-noError/input.p b/resources/functionalTests/assign/15assign-noError/input.p index dc33d5e..71823b4 100644 --- a/resources/functionalTests/assign/15assign-noError/input.p +++ b/resources/functionalTests/assign/15assign-noError/input.p @@ -5,10 +5,6 @@ "AblFormatter.assignFormattingAlignRightExpression": "Yes", "AblFormatter.assignFormattingEndDotLocation": "New aligned"}*/ -DEFINE VARIABLE number11 AS INTEGER NO-UNDO. -DEFINE VARIABLE number2 AS INTEGER NO-UNDO INITIAL 3. -DEFINE VARIABLE number3 AS INTEGER NO-UNDO INITIAL 3. - ASSIGN number2 = 2 number3 = 2 diff --git a/resources/functionalTests/assign/15assign-noError/target.p b/resources/functionalTests/assign/15assign-noError/target.p index 3ee04ef..af14a14 100644 --- a/resources/functionalTests/assign/15assign-noError/target.p +++ b/resources/functionalTests/assign/15assign-noError/target.p @@ -5,10 +5,6 @@ "AblFormatter.assignFormattingAlignRightExpression": "Yes", "AblFormatter.assignFormattingEndDotLocation": "New aligned"}*/ -DEFINE VARIABLE number11 AS INTEGER NO-UNDO. -DEFINE VARIABLE number2 AS INTEGER NO-UNDO INITIAL 3. -DEFINE VARIABLE number3 AS INTEGER NO-UNDO INITIAL 3. - ASSIGN number2 = 2 number3 = 2 diff --git a/resources/functionalTests/assign/16assign-When/input.p b/resources/functionalTests/assign/16assign-When/input.p index c62a197..85db07a 100644 --- a/resources/functionalTests/assign/16assign-When/input.p +++ b/resources/functionalTests/assign/16assign-When/input.p @@ -5,10 +5,6 @@ "AblFormatter.assignFormattingAlignRightExpression": "Yes", "AblFormatter.assignFormattingEndDotLocation": "New aligned"}*/ -DEFINE VARIABLE number11 AS INTEGER NO-UNDO. -DEFINE VARIABLE number2 AS INTEGER NO-UNDO INITIAL 3. -DEFINE VARIABLE number3 AS INTEGER NO-UNDO INITIAL 3. - ASSIGN number2 = 2 when number3 = 2 diff --git a/resources/functionalTests/assign/16assign-When/target.p b/resources/functionalTests/assign/16assign-When/target.p index 1254104..3c289de 100644 --- a/resources/functionalTests/assign/16assign-When/target.p +++ b/resources/functionalTests/assign/16assign-When/target.p @@ -5,10 +5,6 @@ "AblFormatter.assignFormattingAlignRightExpression": "Yes", "AblFormatter.assignFormattingEndDotLocation": "New aligned"}*/ -DEFINE VARIABLE number11 AS INTEGER NO-UNDO. -DEFINE VARIABLE number2 AS INTEGER NO-UNDO INITIAL 3. -DEFINE VARIABLE number3 AS INTEGER NO-UNDO INITIAL 3. - ASSIGN number2 = 2 when number3 = 2 diff --git a/resources/functionalTests/assign/17assign-When-noError/input.p b/resources/functionalTests/assign/17assign-When-noError/input.p index f922e55..c564c36 100644 --- a/resources/functionalTests/assign/17assign-When-noError/input.p +++ b/resources/functionalTests/assign/17assign-When-noError/input.p @@ -5,10 +5,6 @@ "AblFormatter.assignFormattingAlignRightExpression": "Yes", "AblFormatter.assignFormattingEndDotLocation": "New aligned"}*/ -DEFINE VARIABLE number11 AS INTEGER NO-UNDO. -DEFINE VARIABLE number2 AS INTEGER NO-UNDO INITIAL 3. -DEFINE VARIABLE number3 AS INTEGER NO-UNDO INITIAL 3. - ASSIGN number2 = 2 when diff --git a/resources/functionalTests/assign/17assign-When-noError/target.p b/resources/functionalTests/assign/17assign-When-noError/target.p index 05be5f1..73fbc1c 100644 --- a/resources/functionalTests/assign/17assign-When-noError/target.p +++ b/resources/functionalTests/assign/17assign-When-noError/target.p @@ -5,10 +5,6 @@ "AblFormatter.assignFormattingAlignRightExpression": "Yes", "AblFormatter.assignFormattingEndDotLocation": "New aligned"}*/ -DEFINE VARIABLE number11 AS INTEGER NO-UNDO. -DEFINE VARIABLE number2 AS INTEGER NO-UNDO INITIAL 3. -DEFINE VARIABLE number3 AS INTEGER NO-UNDO INITIAL 3. - ASSIGN number2 = 2 when number3 = 2 diff --git a/resources/functionalTests/assign/17assign-When-noError2 copy/input.p b/resources/functionalTests/assign/17assign-When-noError2 copy/input.p index 5216cb6..f4fcc32 100644 --- a/resources/functionalTests/assign/17assign-When-noError2 copy/input.p +++ b/resources/functionalTests/assign/17assign-When-noError2 copy/input.p @@ -5,9 +5,6 @@ "AblFormatter.assignFormattingAlignRightExpression": "Yes", "AblFormatter.assignFormattingEndDotLocation": "New aligned"}*/ -DEFINE VARIABLE number11 AS INTEGER NO-UNDO. -DEFINE VARIABLE number2 AS INTEGER NO-UNDO INITIAL 3. -DEFINE VARIABLE number3 AS INTEGER NO-UNDO INITIAL 3. ASSIGN number2 = 2 diff --git a/resources/functionalTests/assign/17assign-When-noError2 copy/target.p b/resources/functionalTests/assign/17assign-When-noError2 copy/target.p index 0aa36e6..ca06751 100644 --- a/resources/functionalTests/assign/17assign-When-noError2 copy/target.p +++ b/resources/functionalTests/assign/17assign-When-noError2 copy/target.p @@ -5,9 +5,6 @@ "AblFormatter.assignFormattingAlignRightExpression": "Yes", "AblFormatter.assignFormattingEndDotLocation": "New aligned"}*/ -DEFINE VARIABLE number11 AS INTEGER NO-UNDO. -DEFINE VARIABLE number2 AS INTEGER NO-UNDO INITIAL 3. -DEFINE VARIABLE number3 AS INTEGER NO-UNDO INITIAL 3. ASSIGN number2 = 2 number11 = 2 when number3 = 2 NO-ERROR . diff --git a/resources/functionalTests/assign/17assign-When-noError2/input.p b/resources/functionalTests/assign/17assign-When-noError2/input.p index f50c1c3..441263b 100644 --- a/resources/functionalTests/assign/17assign-When-noError2/input.p +++ b/resources/functionalTests/assign/17assign-When-noError2/input.p @@ -5,10 +5,6 @@ "AblFormatter.assignFormattingAlignRightExpression": "Yes", "AblFormatter.assignFormattingEndDotLocation": "New aligned"}*/ -DEFINE VARIABLE number11 AS INTEGER NO-UNDO. -DEFINE VARIABLE number2 AS INTEGER NO-UNDO INITIAL 3. -DEFINE VARIABLE number3 AS INTEGER NO-UNDO INITIAL 3. - ASSIGN number2 = 2 number11 = 2 when diff --git a/resources/functionalTests/assign/17assign-When-noError2/target.p b/resources/functionalTests/assign/17assign-When-noError2/target.p index fd2c7dd..03877b2 100644 --- a/resources/functionalTests/assign/17assign-When-noError2/target.p +++ b/resources/functionalTests/assign/17assign-When-noError2/target.p @@ -5,10 +5,6 @@ "AblFormatter.assignFormattingAlignRightExpression": "Yes", "AblFormatter.assignFormattingEndDotLocation": "New aligned"}*/ -DEFINE VARIABLE number11 AS INTEGER NO-UNDO. -DEFINE VARIABLE number2 AS INTEGER NO-UNDO INITIAL 3. -DEFINE VARIABLE number3 AS INTEGER NO-UNDO INITIAL 3. - ASSIGN number2 = 2 number11 = 2 diff --git a/resources/functionalTests/assign/1formattingFalse/input.p b/resources/functionalTests/assign/1formattingFalse/input.p index bab958b..0663294 100644 --- a/resources/functionalTests/assign/1formattingFalse/input.p +++ b/resources/functionalTests/assign/1formattingFalse/input.p @@ -5,9 +5,6 @@ "AblFormatter.assignFormattingAlignRightExpression": "Yes", "AblFormatter.assignFormattingEndDotLocation": "New aligned"}*/ -DEFINE VARIABLE number11 AS INTEGER NO-UNDO. -DEFINE VARIABLE number2 AS INTEGER NO-UNDO. - ASSIGN number11 = 2 number2 = 3 diff --git a/resources/functionalTests/assign/1formattingFalse/target.p b/resources/functionalTests/assign/1formattingFalse/target.p index bab958b..0663294 100644 --- a/resources/functionalTests/assign/1formattingFalse/target.p +++ b/resources/functionalTests/assign/1formattingFalse/target.p @@ -5,9 +5,6 @@ "AblFormatter.assignFormattingAlignRightExpression": "Yes", "AblFormatter.assignFormattingEndDotLocation": "New aligned"}*/ -DEFINE VARIABLE number11 AS INTEGER NO-UNDO. -DEFINE VARIABLE number2 AS INTEGER NO-UNDO. - ASSIGN number11 = 2 number2 = 3 diff --git a/resources/functionalTests/assign/2inFunction/input.p b/resources/functionalTests/assign/2inFunction/input.p index fe22c62..ffe486b 100644 --- a/resources/functionalTests/assign/2inFunction/input.p +++ b/resources/functionalTests/assign/2inFunction/input.p @@ -6,9 +6,6 @@ "AblFormatter.assignFormattingEndDotLocation": "New aligned"}*/ FUNCTION sumNumbers RETURNS INTEGER (number3 AS INTEGER, number4 AS INTEGER): - DEFINE VARIABLE number11 AS INTEGER NO-UNDO. - DEFINE VARIABLE number2 AS INTEGER NO-UNDO. - ASSIGN number11 = number3 number2 = number4 diff --git a/resources/functionalTests/assign/2inFunction/target.p b/resources/functionalTests/assign/2inFunction/target.p index a41275d..d811b42 100644 --- a/resources/functionalTests/assign/2inFunction/target.p +++ b/resources/functionalTests/assign/2inFunction/target.p @@ -6,9 +6,6 @@ "AblFormatter.assignFormattingEndDotLocation": "New aligned"}*/ FUNCTION sumNumbers RETURNS INTEGER (number3 AS INTEGER, number4 AS INTEGER): - DEFINE VARIABLE number11 AS INTEGER NO-UNDO. - DEFINE VARIABLE number2 AS INTEGER NO-UNDO. - ASSIGN number11 = number3 number2 = number4 diff --git a/resources/functionalTests/assign/3inProcedure/input.p b/resources/functionalTests/assign/3inProcedure/input.p index 1d16215..c1f8a0f 100644 --- a/resources/functionalTests/assign/3inProcedure/input.p +++ b/resources/functionalTests/assign/3inProcedure/input.p @@ -6,9 +6,6 @@ "AblFormatter.assignFormattingEndDotLocation": "New aligned"}*/ PROCEDURE sumNumbers: - DEFINE VARIABLE number11 AS INTEGER NO-UNDO. - DEFINE VARIABLE number2 AS INTEGER NO-UNDO. - ASSIGN number11 = number3 number2 = number4 diff --git a/resources/functionalTests/assign/3inProcedure/target.p b/resources/functionalTests/assign/3inProcedure/target.p index 88888a4..8838fa1 100644 --- a/resources/functionalTests/assign/3inProcedure/target.p +++ b/resources/functionalTests/assign/3inProcedure/target.p @@ -6,9 +6,6 @@ "AblFormatter.assignFormattingEndDotLocation": "New aligned"}*/ PROCEDURE sumNumbers: - DEFINE VARIABLE number11 AS INTEGER NO-UNDO. - DEFINE VARIABLE number2 AS INTEGER NO-UNDO. - ASSIGN number11 = number3 number2 = number4 diff --git a/resources/functionalTests/assign/4newLine-noRightAlign-newAlignedEndDot/input.p b/resources/functionalTests/assign/4newLine-noRightAlign-newAlignedEndDot/input.p index d789b05..3b99f5c 100644 --- a/resources/functionalTests/assign/4newLine-noRightAlign-newAlignedEndDot/input.p +++ b/resources/functionalTests/assign/4newLine-noRightAlign-newAlignedEndDot/input.p @@ -5,9 +5,6 @@ "AblFormatter.assignFormattingAlignRightExpression": "No", "AblFormatter.assignFormattingEndDotLocation": "New aligned"}*/ -DEFINE VARIABLE number11 AS INTEGER NO-UNDO. -DEFINE VARIABLE number2 AS INTEGER NO-UNDO. - ASSIGN number11 = 2 number2 = 33333 . diff --git a/resources/functionalTests/assign/4newLine-noRightAlign-newAlignedEndDot/target.p b/resources/functionalTests/assign/4newLine-noRightAlign-newAlignedEndDot/target.p index b0c1e45..c6f9786 100644 --- a/resources/functionalTests/assign/4newLine-noRightAlign-newAlignedEndDot/target.p +++ b/resources/functionalTests/assign/4newLine-noRightAlign-newAlignedEndDot/target.p @@ -5,9 +5,6 @@ "AblFormatter.assignFormattingAlignRightExpression": "No", "AblFormatter.assignFormattingEndDotLocation": "New aligned"}*/ -DEFINE VARIABLE number11 AS INTEGER NO-UNDO. -DEFINE VARIABLE number2 AS INTEGER NO-UNDO. - ASSIGN number11 = 2 number2 = 33333 diff --git a/resources/functionalTests/assign/5newLine-noRightAlign-newEndDot/input.p b/resources/functionalTests/assign/5newLine-noRightAlign-newEndDot/input.p index 9c3361a..eb6517d 100644 --- a/resources/functionalTests/assign/5newLine-noRightAlign-newEndDot/input.p +++ b/resources/functionalTests/assign/5newLine-noRightAlign-newEndDot/input.p @@ -5,9 +5,6 @@ "AblFormatter.assignFormattingAlignRightExpression": "No", "AblFormatter.assignFormattingEndDotLocation": "New"}*/ -DEFINE VARIABLE number11 AS INTEGER NO-UNDO. -DEFINE VARIABLE number2 AS INTEGER NO-UNDO. - ASSIGN number11 = 2 number2 = 33333 diff --git a/resources/functionalTests/assign/5newLine-noRightAlign-newEndDot/target.p b/resources/functionalTests/assign/5newLine-noRightAlign-newEndDot/target.p index 1830c94..e08964d 100644 --- a/resources/functionalTests/assign/5newLine-noRightAlign-newEndDot/target.p +++ b/resources/functionalTests/assign/5newLine-noRightAlign-newEndDot/target.p @@ -5,9 +5,6 @@ "AblFormatter.assignFormattingAlignRightExpression": "No", "AblFormatter.assignFormattingEndDotLocation": "New"}*/ -DEFINE VARIABLE number11 AS INTEGER NO-UNDO. -DEFINE VARIABLE number2 AS INTEGER NO-UNDO. - ASSIGN number11 = 2 number2 = 33333 diff --git a/resources/functionalTests/assign/6newLine-noRightAlign-sameEndDot/input.p b/resources/functionalTests/assign/6newLine-noRightAlign-sameEndDot/input.p index c918457..26fd990 100644 --- a/resources/functionalTests/assign/6newLine-noRightAlign-sameEndDot/input.p +++ b/resources/functionalTests/assign/6newLine-noRightAlign-sameEndDot/input.p @@ -5,9 +5,6 @@ "AblFormatter.assignFormattingAlignRightExpression": "No", "AblFormatter.assignFormattingEndDotLocation": "Same"}*/ -DEFINE VARIABLE number11 AS INTEGER NO-UNDO. -DEFINE VARIABLE number2 AS INTEGER NO-UNDO. - ASSIGN number11 = 2 number2 = 3333 diff --git a/resources/functionalTests/assign/6newLine-noRightAlign-sameEndDot/target.p b/resources/functionalTests/assign/6newLine-noRightAlign-sameEndDot/target.p index e0fd7cc..64c7edb 100644 --- a/resources/functionalTests/assign/6newLine-noRightAlign-sameEndDot/target.p +++ b/resources/functionalTests/assign/6newLine-noRightAlign-sameEndDot/target.p @@ -5,9 +5,6 @@ "AblFormatter.assignFormattingAlignRightExpression": "No", "AblFormatter.assignFormattingEndDotLocation": "Same"}*/ -DEFINE VARIABLE number11 AS INTEGER NO-UNDO. -DEFINE VARIABLE number2 AS INTEGER NO-UNDO. - ASSIGN number11 = 2 number2 = 3333. diff --git a/resources/functionalTests/assign/7newLine-RightAlign-newAlignedEndDot/input.p b/resources/functionalTests/assign/7newLine-RightAlign-newAlignedEndDot/input.p index 67e59ae..93739d6 100644 --- a/resources/functionalTests/assign/7newLine-RightAlign-newAlignedEndDot/input.p +++ b/resources/functionalTests/assign/7newLine-RightAlign-newAlignedEndDot/input.p @@ -5,9 +5,6 @@ "AblFormatter.assignFormattingAlignRightExpression": "Yes", "AblFormatter.assignFormattingEndDotLocation": "New aligned"}*/ -DEFINE VARIABLE number11 AS INTEGER NO-UNDO. -DEFINE VARIABLE number2 AS INTEGER NO-UNDO. - ASSIGN number11 = 2 number2 = 3333 . diff --git a/resources/functionalTests/assign/7newLine-RightAlign-newAlignedEndDot/target.p b/resources/functionalTests/assign/7newLine-RightAlign-newAlignedEndDot/target.p index 8f156bc..82f365a 100644 --- a/resources/functionalTests/assign/7newLine-RightAlign-newAlignedEndDot/target.p +++ b/resources/functionalTests/assign/7newLine-RightAlign-newAlignedEndDot/target.p @@ -5,9 +5,6 @@ "AblFormatter.assignFormattingAlignRightExpression": "Yes", "AblFormatter.assignFormattingEndDotLocation": "New aligned"}*/ -DEFINE VARIABLE number11 AS INTEGER NO-UNDO. -DEFINE VARIABLE number2 AS INTEGER NO-UNDO. - ASSIGN number11 = 2 number2 = 3333 diff --git a/resources/functionalTests/assign/8newLine-RightAlign-newEndDot/input.p b/resources/functionalTests/assign/8newLine-RightAlign-newEndDot/input.p index 8160626..188b8af 100644 --- a/resources/functionalTests/assign/8newLine-RightAlign-newEndDot/input.p +++ b/resources/functionalTests/assign/8newLine-RightAlign-newEndDot/input.p @@ -5,8 +5,5 @@ "AblFormatter.assignFormattingAlignRightExpression": "Yes", "AblFormatter.assignFormattingEndDotLocation": "New"}*/ -DEFINE VARIABLE number11 AS INTEGER NO-UNDO. -DEFINE VARIABLE number2 AS INTEGER NO-UNDO. - ASSIGN number11 = 2 number2 = 3333 . diff --git a/resources/functionalTests/assign/8newLine-RightAlign-newEndDot/target.p b/resources/functionalTests/assign/8newLine-RightAlign-newEndDot/target.p index 6416ba0..deee7c3 100644 --- a/resources/functionalTests/assign/8newLine-RightAlign-newEndDot/target.p +++ b/resources/functionalTests/assign/8newLine-RightAlign-newEndDot/target.p @@ -5,9 +5,6 @@ "AblFormatter.assignFormattingAlignRightExpression": "Yes", "AblFormatter.assignFormattingEndDotLocation": "New"}*/ -DEFINE VARIABLE number11 AS INTEGER NO-UNDO. -DEFINE VARIABLE number2 AS INTEGER NO-UNDO. - ASSIGN number11 = 2 number2 = 3333 diff --git a/resources/functionalTests/assign/9newLine-RightAlign-sameEndDot/input.p b/resources/functionalTests/assign/9newLine-RightAlign-sameEndDot/input.p index 478dbaf..37ad921 100644 --- a/resources/functionalTests/assign/9newLine-RightAlign-sameEndDot/input.p +++ b/resources/functionalTests/assign/9newLine-RightAlign-sameEndDot/input.p @@ -5,9 +5,6 @@ "AblFormatter.assignFormattingAlignRightExpression": "Yes", "AblFormatter.assignFormattingEndDotLocation": "Same"}*/ -DEFINE VARIABLE number1 AS INTEGER NO-UNDO. -DEFINE VARIABLE number2 AS INTEGER NO-UNDO. - ASSIGN number1 = 2 number2 = 3333 . diff --git a/resources/functionalTests/assign/9newLine-RightAlign-sameEndDot/target.p b/resources/functionalTests/assign/9newLine-RightAlign-sameEndDot/target.p index fa352d9..465ec87 100644 --- a/resources/functionalTests/assign/9newLine-RightAlign-sameEndDot/target.p +++ b/resources/functionalTests/assign/9newLine-RightAlign-sameEndDot/target.p @@ -5,9 +5,6 @@ "AblFormatter.assignFormattingAlignRightExpression": "Yes", "AblFormatter.assignFormattingEndDotLocation": "Same"}*/ -DEFINE VARIABLE number1 AS INTEGER NO-UNDO. -DEFINE VARIABLE number2 AS INTEGER NO-UNDO. - ASSIGN number1 = 2 number2 = 3333. diff --git a/resources/functionalTests/block/55class-extent/target.p b/resources/functionalTests/block/55class-extent/target.p index 72bdc13..6f26faa 100644 --- a/resources/functionalTests/block/55class-extent/target.p +++ b/resources/functionalTests/block/55class-extent/target.p @@ -1,8 +1,9 @@ /* formatterSettingsOverride */ /* { "AblFormatter.blockFormatting": true}*/ -catch oFunkyError as Progress.Lang.AppError: - oGroovyResponse:errorStatus = true. - oGroovyResponse:addMessage(oFunkyError:GetMessage(1)). - return oGroovyResponse. -end catch. \ No newline at end of file +class OpenEdge.DataAdmin.Rest.RestQueryFactory implements IRestQueryFactory: + method private char extent GetNamedQuery(pcname as char): + define variable cInfo as character extent no-undo. + return cInfo. + end. +end class. \ No newline at end of file diff --git a/resources/functionalTests/define/3formattingFalse/input.p b/resources/functionalTests/define/3formattingFalse/input.p index 47139ad..6f5b354 100644 --- a/resources/functionalTests/define/3formattingFalse/input.p +++ b/resources/functionalTests/define/3formattingFalse/input.p @@ -1,5 +1,6 @@ /* formatterSettingsOverride */ /* { "AblFormatter.defineFormatting": false, - "abl.completion.upperCase": true}*/ + "abl.completion.upperCase": true, + "AblFormatter.variableDefinitionFormatting": false}*/ DEFINE VARIABLE x AS INTEGER NO-UNDO. diff --git a/resources/functionalTests/define/3formattingFalse/target.p b/resources/functionalTests/define/3formattingFalse/target.p index 47139ad..6f5b354 100644 --- a/resources/functionalTests/define/3formattingFalse/target.p +++ b/resources/functionalTests/define/3formattingFalse/target.p @@ -1,5 +1,6 @@ /* formatterSettingsOverride */ /* { "AblFormatter.defineFormatting": false, - "abl.completion.upperCase": true}*/ + "abl.completion.upperCase": true, + "AblFormatter.variableDefinitionFormatting": false}*/ DEFINE VARIABLE x AS INTEGER NO-UNDO. diff --git a/resources/functionalTests/defineVariable/4define-protected/target.p b/resources/functionalTests/defineVariable/4define-protected/target.p index 3beefbe..801f242 100644 --- a/resources/functionalTests/defineVariable/4define-protected/target.p +++ b/resources/functionalTests/defineVariable/4define-protected/target.p @@ -1,10 +1,10 @@ /* formatterSettingsOverride */ /* { "AblFormatter.variableDefinitionFormatting": true} */ -define protected variable mBuffer as handle no-undo. +define protected variable mBuffer as handle no-undo. -define protected variable ValidRecordsPerBlockNumbers as char no-undo init "1,2,4,8,16,32,64,128,256". +define protected variable ValidRecordsPerBlockNumbers as char no-undo init "1,2,4,8,16,32,64,128,256". define protected variable ValidRecordsPerBlockString as char no-undo init "1, 2, 4, 8, 16, 32, 64, 128 and 256". /* area type names */ -define protected variable AreaTypeNames as char no-undo extent 7 init ["Undefined","Undefined","Recovery","Transaction log","Event log","Data","Rollforward recovery"]. +define protected variable AreaTypeNames as char no-undo extent 7 init ["Undefined","Undefined","Recovery","Transaction log","Event log","Data","Rollforward recovery"]. diff --git a/src/v2/formatters/variableDefinition/VariableDefinitionFormatter.ts b/src/v2/formatters/variableDefinition/VariableDefinitionFormatter.ts index 3572fc5..faca199 100644 --- a/src/v2/formatters/variableDefinition/VariableDefinitionFormatter.ts +++ b/src/v2/formatters/variableDefinition/VariableDefinitionFormatter.ts @@ -4,7 +4,10 @@ import { IFormatter } from "../../formatterFramework/IFormatter"; import { CodeEdit } from "../../model/CodeEdit"; import { FullText } from "../../model/FullText"; import { AFormatter } from "../AFormatter"; -import { SyntaxNodeType } from "../../../model/SyntaxNodeType"; +import { + definitionKeywords, + SyntaxNodeType, +} from "../../../model/SyntaxNodeType"; import { VariableDefinitionSettings } from "./VariableDefinitionSettings"; import { IConfigurationManager } from "../../../utils/IConfigurationManager"; import { FormatterHelper } from "../../formatterFramework/FormatterHelper"; @@ -113,7 +116,7 @@ export class VariableDefinitionFormatter switch (node.type) { case SyntaxNodeType.DotKeyword: break; - case SyntaxNodeType.DefineKeyword: + case definitionKeywords.hasFancy(node.type, ""): newString = text; break; case SyntaxNodeType.TypeTuning: From 2d96caee15e1dc4f066b98af2b681fff1bd004fc Mon Sep 17 00:00:00 2001 From: gmickus Date: Wed, 2 Oct 2024 14:35:33 +0300 Subject: [PATCH 13/25] Implement formatter for procedure parameters --- package.json | 6 + .../procedureParameter/1parameters/input.p | 7 + .../procedureParameter/1parameters/target.p | 7 + .../2comments-between/input.p | 7 + .../2comments-between/target.p | 7 + .../2parameters-and-variables/input.p | 10 ++ .../2parameters-and-variables/target.p | 10 ++ src/model/SyntaxNodeType.ts | 12 ++ .../enableFormatterDecorators.ts | 2 + .../ProcedureParameterFormatter.ts | 160 ++++++++++++++++++ .../ProcedureParameterSettings.ts | 8 + 11 files changed, 236 insertions(+) create mode 100644 resources/functionalTests/procedureParameter/1parameters/input.p create mode 100644 resources/functionalTests/procedureParameter/1parameters/target.p create mode 100644 resources/functionalTests/procedureParameter/2comments-between/input.p create mode 100644 resources/functionalTests/procedureParameter/2comments-between/target.p create mode 100644 resources/functionalTests/procedureParameter/2parameters-and-variables/input.p create mode 100644 resources/functionalTests/procedureParameter/2parameters-and-variables/target.p create mode 100644 src/v2/formatters/procedureParameter/ProcedureParameterFormatter.ts create mode 100644 src/v2/formatters/procedureParameter/ProcedureParameterSettings.ts diff --git a/package.json b/package.json index c233e63..803465a 100644 --- a/package.json +++ b/package.json @@ -242,6 +242,12 @@ "default": "true", "description": "Enable DEFINE VARIABLE formatting" }, + "AblFormatter.procedureParameterFormatting": { + "order": 1500, + "type": "boolean", + "default": "true", + "description": "Enable PROCEDURE PARAMETER formatting" + }, "AblFormatter.showTreeInfoOnHover": { "order": 10100, "type": "boolean", diff --git a/resources/functionalTests/procedureParameter/1parameters/input.p b/resources/functionalTests/procedureParameter/1parameters/input.p new file mode 100644 index 0000000..c786a37 --- /dev/null +++ b/resources/functionalTests/procedureParameter/1parameters/input.p @@ -0,0 +1,7 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.procedureParamaterFormatting": true} */ + +define INPUT PARAMETER cipTitle AS CHARACTER NO-UNDO. +define INPUT-OUTPUT PARAMETER iiopFontNumber AS INTEGER NO-UNDO. +define OUTPUT PARAMETER pressed_OK AS LOGICAL NO-UNDO. +define RETURN PARAMETER uResult as LONG NO-UNDO. \ No newline at end of file diff --git a/resources/functionalTests/procedureParameter/1parameters/target.p b/resources/functionalTests/procedureParameter/1parameters/target.p new file mode 100644 index 0000000..63ade6a --- /dev/null +++ b/resources/functionalTests/procedureParameter/1parameters/target.p @@ -0,0 +1,7 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.procedureParamaterFormatting": true} */ + +define INPUT PARAMETER cipTitle AS CHARACTER NO-UNDO. +define INPUT-OUTPUT PARAMETER iiopFontNumber AS INTEGER NO-UNDO. +define OUTPUT PARAMETER pressed_OK AS LOGICAL NO-UNDO. +define RETURN PARAMETER uResult as LONG NO-UNDO. \ No newline at end of file diff --git a/resources/functionalTests/procedureParameter/2comments-between/input.p b/resources/functionalTests/procedureParameter/2comments-between/input.p new file mode 100644 index 0000000..c51d0d1 --- /dev/null +++ b/resources/functionalTests/procedureParameter/2comments-between/input.p @@ -0,0 +1,7 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.procedureParamaterFormatting": true, + "AblFormatter.variableDefinitionFormatting": true} */ + +define INPUT PARAMETER pcOptions AS CHARACTER NO-UNDO. +// start +define INPUT-OUTPUT PARAMETER pcHandles AS CHARACTER NO-UNDO. \ No newline at end of file diff --git a/resources/functionalTests/procedureParameter/2comments-between/target.p b/resources/functionalTests/procedureParameter/2comments-between/target.p new file mode 100644 index 0000000..c51d0d1 --- /dev/null +++ b/resources/functionalTests/procedureParameter/2comments-between/target.p @@ -0,0 +1,7 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.procedureParamaterFormatting": true, + "AblFormatter.variableDefinitionFormatting": true} */ + +define INPUT PARAMETER pcOptions AS CHARACTER NO-UNDO. +// start +define INPUT-OUTPUT PARAMETER pcHandles AS CHARACTER NO-UNDO. \ No newline at end of file diff --git a/resources/functionalTests/procedureParameter/2parameters-and-variables/input.p b/resources/functionalTests/procedureParameter/2parameters-and-variables/input.p new file mode 100644 index 0000000..24d6d87 --- /dev/null +++ b/resources/functionalTests/procedureParameter/2parameters-and-variables/input.p @@ -0,0 +1,10 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.procedureParamaterFormatting": true, + "AblFormatter.variableDefinitionFormatting": true} */ + +define INPUT PARAMETER relText AS CHARACTER NO-UNDO. +define OUTPUT PARAMETER abortRead AS myReader NO-UNDO. + +define VARIABLE qbf33-2 AS LOGICAL NO-UNDO INIT TRUE. /* dbase-2? */ +define VARIABLE qbf124-c AS CHARACTER NO-UNDO. /* scrap */ +define VARIABLE qbf124124124-i AS INTEGER NO-UNDO. /* scrap */ \ No newline at end of file diff --git a/resources/functionalTests/procedureParameter/2parameters-and-variables/target.p b/resources/functionalTests/procedureParameter/2parameters-and-variables/target.p new file mode 100644 index 0000000..57d5423 --- /dev/null +++ b/resources/functionalTests/procedureParameter/2parameters-and-variables/target.p @@ -0,0 +1,10 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.procedureParamaterFormatting": true, + "AblFormatter.variableDefinitionFormatting": true} */ + +define INPUT PARAMETER relText AS CHARACTER NO-UNDO. +define OUTPUT PARAMETER abortRead AS myReader NO-UNDO. + +define VARIABLE qbf33-2 AS LOGICAL NO-UNDO INIT TRUE. /* dbase-2? */ +define VARIABLE qbf124-c AS CHARACTER NO-UNDO. /* scrap */ +define VARIABLE qbf124124124-i AS INTEGER NO-UNDO. /* scrap */ \ No newline at end of file diff --git a/src/model/SyntaxNodeType.ts b/src/model/SyntaxNodeType.ts index a5432ae..65b43b2 100644 --- a/src/model/SyntaxNodeType.ts +++ b/src/model/SyntaxNodeType.ts @@ -98,6 +98,11 @@ export enum SyntaxNodeType { DefiKeyword = "DEFI", DefKeyword = "DEF", NoUndoKeyword = "NO-UNDO", + InputKeyword = "INPUT", + OutputKeyword = "OUTPUT", + InputOutputKeyword = "INPUT-OUTPUT", + ReturnKeyword = "RETURN", + ParameterKeyword = "PARAMETER", } export const afterThenStatements = new MyFancySet([ @@ -121,3 +126,10 @@ export const bodyBlockKeywords = new MyFancySet([ SyntaxNodeType.ClassBody, SyntaxNodeType.InterfaceBody, ]); + +export const parameterTypes = new MyFancySet([ + SyntaxNodeType.InputKeyword, + SyntaxNodeType.OutputKeyword, + SyntaxNodeType.InputOutputKeyword, + SyntaxNodeType.ReturnKeyword, +]); diff --git a/src/v2/formatterFramework/enableFormatterDecorators.ts b/src/v2/formatterFramework/enableFormatterDecorators.ts index ffae313..6bf382f 100644 --- a/src/v2/formatterFramework/enableFormatterDecorators.ts +++ b/src/v2/formatterFramework/enableFormatterDecorators.ts @@ -11,6 +11,7 @@ import { PropertyFormatter } from "../formatters/property/PropertyFormatter"; import { BodyFormatter } from "../formatters/body/BodyFormatter"; import { EnumFormatter } from "../formatters/enum/EnumFormatter"; import { VariableDefinitionFormatter } from "../formatters/variableDefinition/VariableDefinitionFormatter"; +import { ProcedureParameterFormatter } from "../formatters/procedureParameter/procedureParameterFormatter"; // needed just for enabling decorators. Decorators does not work if there is no usage of a class in the reachable code export function enableFormatterDecorators(): void { @@ -27,4 +28,5 @@ export function enableFormatterDecorators(): void { IfFunctionFormatter; VariableDefinitionFormatter; EnumFormatter; + ProcedureParameterFormatter; } diff --git a/src/v2/formatters/procedureParameter/ProcedureParameterFormatter.ts b/src/v2/formatters/procedureParameter/ProcedureParameterFormatter.ts new file mode 100644 index 0000000..187352f --- /dev/null +++ b/src/v2/formatters/procedureParameter/ProcedureParameterFormatter.ts @@ -0,0 +1,160 @@ +import { SyntaxNode } from "web-tree-sitter"; +import { RegisterFormatter } from "../../formatterFramework/formatterDecorator"; +import { IFormatter } from "../../formatterFramework/IFormatter"; +import { CodeEdit } from "../../model/CodeEdit"; +import { FullText } from "../../model/FullText"; +import { AFormatter } from "../AFormatter"; +import { + definitionKeywords, + parameterTypes, + SyntaxNodeType, +} from "../../../model/SyntaxNodeType"; +import { ProcedureParameterSettings } from "./ProcedureParameterSettings"; +import { IConfigurationManager } from "../../../utils/IConfigurationManager"; +import { FormatterHelper } from "../../formatterFramework/FormatterHelper"; + +@RegisterFormatter +export class ProcedureParameterFormatter + extends AFormatter + implements IFormatter +{ + public static readonly formatterLabel = "procedureParamaterFormatting"; + private readonly settings: ProcedureParameterSettings; + private static visitedNodes: Set = new Set(); + private static alignType = 0; + private static alignNoUndo = 0; + private static alignParameter = 0; + + public constructor(configurationManager: IConfigurationManager) { + super(configurationManager); + this.settings = new ProcedureParameterSettings(configurationManager); + } + + match(node: Readonly): boolean { + if (node.type === SyntaxNodeType.ProcedureParameterDefinition) { + return true; + } + return false; + } + parse( + node: Readonly, + fullText: Readonly + ): CodeEdit | CodeEdit[] | undefined { + const oldText = FormatterHelper.getCurrentText(node, fullText); + if (ProcedureParameterFormatter.visitedNodes.has(node.id)) { + const newText = this.collectString(node, fullText); + return this.getCodeEdit(node, oldText, newText, fullText); + } + + this.resetStaticVariables(); + let currentNode: SyntaxNode | null = node; + for ( + currentNode; + currentNode !== null; + currentNode = currentNode.nextSibling + ) { + if (currentNode.type === SyntaxNodeType.Comment) { + continue; + } + if ( + currentNode.type !== SyntaxNodeType.ProcedureParameterDefinition + ) { + break; + } + this.collectStructure(currentNode, fullText); + ProcedureParameterFormatter.visitedNodes.add(currentNode.id); + } + const newText = this.collectString(node, fullText); + return this.getCodeEdit(node, oldText, newText, fullText); + } + + private collectString( + node: SyntaxNode, + fullText: Readonly + ): string { + let resultString = ""; + node.children.forEach((child) => { + resultString = resultString.concat(this.getString(child, fullText)); + }); + resultString += "."; + return resultString; + } + + private collectStructure( + node: SyntaxNode, + fullText: Readonly + ): void { + node.children.forEach((child) => { + this.getStructure(child, fullText); + }); + } + + private getStructure(node: SyntaxNode, fullText: Readonly): void { + switch (node.type) { + case SyntaxNodeType.TypeTuning: + ProcedureParameterFormatter.alignNoUndo = Math.max( + ProcedureParameterFormatter.alignNoUndo, + FormatterHelper.getCurrentText(node, fullText).trim().length + ); + break; + case SyntaxNodeType.Identifier: + ProcedureParameterFormatter.alignType = Math.max( + ProcedureParameterFormatter.alignType, + FormatterHelper.getCurrentText(node, fullText).trim().length + ); + break; + case parameterTypes.hasFancy(node.type, ""): + ProcedureParameterFormatter.alignParameter = Math.max( + ProcedureParameterFormatter.alignParameter, + FormatterHelper.getCurrentText(node, fullText).trim().length + ); + break; + } + } + + private getString(node: SyntaxNode, fullText: Readonly): string { + let newString = ""; + const text = FormatterHelper.getCurrentText(node, fullText).trim(); + switch (node.type) { + case SyntaxNodeType.DotKeyword: + break; + case definitionKeywords.hasFancy(node.type, ""): + newString = text; + break; + case SyntaxNodeType.TypeTuning: + newString = + " " + + text + + " ".repeat( + ProcedureParameterFormatter.alignNoUndo - text.length + ); + break; + case SyntaxNodeType.Identifier: + newString = + " " + + text + + " ".repeat( + ProcedureParameterFormatter.alignType - text.length + ); + break; + case parameterTypes.hasFancy(node.type, ""): + newString = + " " + + text + + " ".repeat( + ProcedureParameterFormatter.alignParameter - text.length + ); + break; + default: + newString = text.length === 0 ? "" : " " + text; + break; + } + return newString; + } + + private resetStaticVariables() { + ProcedureParameterFormatter.alignType = 0; + ProcedureParameterFormatter.alignNoUndo = 0; + ProcedureParameterFormatter.alignParameter = 0; + } +} diff --git a/src/v2/formatters/procedureParameter/ProcedureParameterSettings.ts b/src/v2/formatters/procedureParameter/ProcedureParameterSettings.ts new file mode 100644 index 0000000..f75b610 --- /dev/null +++ b/src/v2/formatters/procedureParameter/ProcedureParameterSettings.ts @@ -0,0 +1,8 @@ +import { ASettings } from "../ASettings"; + +export class ProcedureParameterSettings extends ASettings { + // procedure parameter settings + public procedureParameterFormatting() { + return !!this.configurationManager.get("procedureParamaterFormatting"); + } +} From 6c035cdb12e597bd04fb69b42f90afdf20383982 Mon Sep 17 00:00:00 2001 From: gmickus Date: Wed, 2 Oct 2024 14:37:34 +0300 Subject: [PATCH 14/25] Fix import --- src/v2/formatterFramework/enableFormatterDecorators.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/v2/formatterFramework/enableFormatterDecorators.ts b/src/v2/formatterFramework/enableFormatterDecorators.ts index 6bf382f..7e29376 100644 --- a/src/v2/formatterFramework/enableFormatterDecorators.ts +++ b/src/v2/formatterFramework/enableFormatterDecorators.ts @@ -11,7 +11,7 @@ import { PropertyFormatter } from "../formatters/property/PropertyFormatter"; import { BodyFormatter } from "../formatters/body/BodyFormatter"; import { EnumFormatter } from "../formatters/enum/EnumFormatter"; import { VariableDefinitionFormatter } from "../formatters/variableDefinition/VariableDefinitionFormatter"; -import { ProcedureParameterFormatter } from "../formatters/procedureParameter/procedureParameterFormatter"; +import { ProcedureParameterFormatter } from "../formatters/procedureParameter/ProcedureParameterFormatter"; // needed just for enabling decorators. Decorators does not work if there is no usage of a class in the reachable code export function enableFormatterDecorators(): void { From 533262da5527c33b062c2509d0d4187334751e0c Mon Sep 17 00:00:00 2001 From: gmickus Date: Wed, 2 Oct 2024 16:05:54 +0300 Subject: [PATCH 15/25] Update formatter ; add tests --- .../define/13tempTableAndDataset/target.p | 2 +- .../temptable/3-fields/input.p | 13 ++-- .../temptable/3-fields/target.p | 6 +- .../temptable/4-fields/input.p | 13 ++++ .../temptable/4-fields/target.p | 13 ++++ .../temptable/4-fields2/input.p | 12 +++ .../temptable/4-fields2/target.p | 12 +++ .../temptable/7-fields-two-tables/input.p | 25 +++++++ .../temptable/7-fields-two-tables/target.p | 25 +++++++ .../tempTable/TempTableFormatter.ts | 75 ++++++++++++++++++- 10 files changed, 182 insertions(+), 14 deletions(-) create mode 100644 resources/functionalTests/temptable/4-fields/input.p create mode 100644 resources/functionalTests/temptable/4-fields/target.p create mode 100644 resources/functionalTests/temptable/4-fields2/input.p create mode 100644 resources/functionalTests/temptable/4-fields2/target.p create mode 100644 resources/functionalTests/temptable/7-fields-two-tables/input.p create mode 100644 resources/functionalTests/temptable/7-fields-two-tables/target.p diff --git a/resources/functionalTests/define/13tempTableAndDataset/target.p b/resources/functionalTests/define/13tempTableAndDataset/target.p index 32b7642..5fb3e1a 100644 --- a/resources/functionalTests/define/13tempTableAndDataset/target.p +++ b/resources/functionalTests/define/13tempTableAndDataset/target.p @@ -6,6 +6,6 @@ DEFINE TEMP-TABLE ttCustomer NO-UNDO FIELD CustNum AS INTEGER - FIELD Name AS CHARACTER. + FIELD Name AS CHARACTER. DEFINE DATASET dsCustomer FOR ttCustomer. diff --git a/resources/functionalTests/temptable/3-fields/input.p b/resources/functionalTests/temptable/3-fields/input.p index 1c000d2..f8049f2 100644 --- a/resources/functionalTests/temptable/3-fields/input.p +++ b/resources/functionalTests/temptable/3-fields/input.p @@ -2,10 +2,11 @@ /* { "AblFormatter.temptableFormatting": true, "abl.completion.upperCase": true}*/ -define temp-table ttCustomer no-undo field custNum as integer +DEFINE temp-table ttCustomer no-undo + field custNum as integer field firstName as character - field lastName as character - field birthDate as date - index custNum is primary unique custNum - index firstName firstName - index lastName lastName . + field lastName as character + field birthDate as date + index custNum is primary unique custNum + index firstName firstName + index lastName lastName. \ No newline at end of file diff --git a/resources/functionalTests/temptable/3-fields/target.p b/resources/functionalTests/temptable/3-fields/target.p index 2f893f9..8fbaef6 100644 --- a/resources/functionalTests/temptable/3-fields/target.p +++ b/resources/functionalTests/temptable/3-fields/target.p @@ -3,10 +3,10 @@ "abl.completion.upperCase": true}*/ DEFINE temp-table ttCustomer no-undo - field custNum as integer + field custNum as integer field firstName as character - field lastName as character + field lastName as character field birthDate as date index custNum is primary unique custNum index firstName firstName - index lastName lastName. + index lastName lastName. \ No newline at end of file diff --git a/resources/functionalTests/temptable/4-fields/input.p b/resources/functionalTests/temptable/4-fields/input.p new file mode 100644 index 0000000..b751de9 --- /dev/null +++ b/resources/functionalTests/temptable/4-fields/input.p @@ -0,0 +1,13 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.temptableFormatting": true, + "abl.completion.upperCase": true}*/ + +DEFINE TEMP-TABLE IndexDetails +FIELD tblname AS CHARACTER + FIELD idxname AS CHARACTER + FIELD tdesc AS CHARACTER + FIELD lactive AS LOGICAL + FIELD lprimary AS LOGICAL + FIELD lunique AS LOGICAL + FIELD lwordindex AS LOGICAL + FIELD labbrev AS LOGICAL. \ No newline at end of file diff --git a/resources/functionalTests/temptable/4-fields/target.p b/resources/functionalTests/temptable/4-fields/target.p new file mode 100644 index 0000000..e27fe26 --- /dev/null +++ b/resources/functionalTests/temptable/4-fields/target.p @@ -0,0 +1,13 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.temptableFormatting": true, + "abl.completion.upperCase": true}*/ + +DEFINE TEMP-TABLE IndexDetails + FIELD tblname AS CHARACTER + FIELD idxname AS CHARACTER + FIELD tdesc AS CHARACTER + FIELD lactive AS LOGICAL + FIELD lprimary AS LOGICAL + FIELD lunique AS LOGICAL + FIELD lwordindex AS LOGICAL + FIELD labbrev AS LOGICAL. \ No newline at end of file diff --git a/resources/functionalTests/temptable/4-fields2/input.p b/resources/functionalTests/temptable/4-fields2/input.p new file mode 100644 index 0000000..8f70312 --- /dev/null +++ b/resources/functionalTests/temptable/4-fields2/input.p @@ -0,0 +1,12 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.temptableFormatting": true, + "abl.completion.upperCase": true}*/ + +DEFINE TEMP-TABLE saSys NO-UNDO RCODE-INFORMATION + FIELD dType AS CHARACTER LABEL "Domain Type" FORMAT "x(25)" + FIELD dDescrip AS CHARACTER LABEL "Description" FORMAT "x(65)" + FIELD dDetails AS CHARACTER LABEL "Comments" FORMAT "x(200)" + FIELD dAuthEnabled AS LOGICAL LABEL "Enable Authentication" + FIELD dChecksum AS LOGICAL LABEL "Checksum" + FIELD dCallback AS CHARACTER LABEL "Callback" FORMAT "x(100)". + \ No newline at end of file diff --git a/resources/functionalTests/temptable/4-fields2/target.p b/resources/functionalTests/temptable/4-fields2/target.p new file mode 100644 index 0000000..712caa1 --- /dev/null +++ b/resources/functionalTests/temptable/4-fields2/target.p @@ -0,0 +1,12 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.temptableFormatting": true, + "abl.completion.upperCase": true}*/ + +DEFINE TEMP-TABLE saSys NO-UNDO RCODE-INFORMATION + FIELD dType AS CHARACTER LABEL "Domain Type" FORMAT "x(25)" + FIELD dDescrip AS CHARACTER LABEL "Description" FORMAT "x(65)" + FIELD dDetails AS CHARACTER LABEL "Comments" FORMAT "x(200)" + FIELD dAuthEnabled AS LOGICAL LABEL "Enable Authentication" + FIELD dChecksum AS LOGICAL LABEL "Checksum" + FIELD dCallback AS CHARACTER LABEL "Callback" FORMAT "x(100)". + \ No newline at end of file diff --git a/resources/functionalTests/temptable/7-fields-two-tables/input.p b/resources/functionalTests/temptable/7-fields-two-tables/input.p new file mode 100644 index 0000000..05daea6 --- /dev/null +++ b/resources/functionalTests/temptable/7-fields-two-tables/input.p @@ -0,0 +1,25 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.temptableFormatting": true, + "abl.completion.upperCase": true}*/ + +DEFINE TEMP-TABLE tDataSource +FIELD TargetProc AS HANDLE +FIELD DataSource AS HANDLE +FIELD ObjectName AS CHAR +FIELD DocumentPath AS CHAR /* Consumer only */ +FIELD Commit AS LOG +INDEX DataSource AS UNIQUE TargetProc DataSource + INDEX ObjectName ObjectName TargetProc + INDEX DocumentPath DocumentPath TargetProc + INDEX Commit TargetProc Commit. + +/** Producer temp-tables **/ +/* Register all datasource/methods that update nodes with out parameters */ +DEFINE TEMP-TABLE tMethodNode +FIELD TargetProc AS HANDLE + FIELD DataSource AS HANDLE + FIELD Method AS CHAR + FIELD MethodNode AS DEC +FIELD NumParam AS INT + INDEX Method AS UNIQUE TargetProc DataSource Method + INDEX Node TargetProc MethodNode. \ No newline at end of file diff --git a/resources/functionalTests/temptable/7-fields-two-tables/target.p b/resources/functionalTests/temptable/7-fields-two-tables/target.p new file mode 100644 index 0000000..1f8b9f7 --- /dev/null +++ b/resources/functionalTests/temptable/7-fields-two-tables/target.p @@ -0,0 +1,25 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.temptableFormatting": true, + "abl.completion.upperCase": true}*/ + +DEFINE TEMP-TABLE tDataSource + FIELD TargetProc AS HANDLE + FIELD DataSource AS HANDLE + FIELD ObjectName AS CHAR + FIELD DocumentPath AS CHAR /* Consumer only */ + FIELD Commit AS LOG + INDEX DataSource AS UNIQUE TargetProc DataSource + INDEX ObjectName ObjectName TargetProc + INDEX DocumentPath DocumentPath TargetProc + INDEX Commit TargetProc Commit. + +/** Producer temp-tables **/ +/* Register all datasource/methods that update nodes with out parameters */ +DEFINE TEMP-TABLE tMethodNode + FIELD TargetProc AS HANDLE + FIELD DataSource AS HANDLE + FIELD Method AS CHAR + FIELD MethodNode AS DEC + FIELD NumParam AS INT + INDEX Method AS UNIQUE TargetProc DataSource Method + INDEX Node TargetProc MethodNode. \ No newline at end of file diff --git a/src/v2/formatters/tempTable/TempTableFormatter.ts b/src/v2/formatters/tempTable/TempTableFormatter.ts index 6ec33ec..2ece49e 100644 --- a/src/v2/formatters/tempTable/TempTableFormatter.ts +++ b/src/v2/formatters/tempTable/TempTableFormatter.ts @@ -16,7 +16,7 @@ import { export class TempTableFormatter extends AFormatter implements IFormatter { public static readonly formatterLabel = "temptableFormatting"; private readonly settings: TempTableSettings; - + private alignType = 0; private startColumn = 0; private temptableValueColumn = 0; private temptableBodyValue = ""; @@ -36,13 +36,13 @@ export class TempTableFormatter extends AFormatter implements IFormatter { node: Readonly, fullText: Readonly ): CodeEdit | CodeEdit[] | undefined { - const text = FormatterHelper.getCurrentText(node, fullText); - this.collectTemptableStructure(node, fullText); + const text = FormatterHelper.getCurrentText(node, fullText); + this.collectTemptableString(node, fullText); return this.getCodeEdit(node, text, this.temptableBodyValue, fullText); } - private collectTemptableStructure(node: SyntaxNode, fullText: FullText) { + private collectTemptableString(node: SyntaxNode, fullText: FullText) { this.startColumn = FormatterHelper.getActualStatementIndentation( node, fullText @@ -71,6 +71,71 @@ export class TempTableFormatter extends AFormatter implements IFormatter { return resultString; } + private collectTemptableStructure( + node: SyntaxNode, + fullText: Readonly + ): void { + node.children.forEach((child) => { + this.getTemptableStructure(child, fullText); + }); + } + + private getTemptableStructure(node: SyntaxNode, fullText: FullText): void { + switch (node.type) { + case SyntaxNodeType.FieldDefinition: + node.children.forEach((child) => { + this.getFieldStructure(child, fullText); + }); + break; + } + } + + private getFieldStructure(node: SyntaxNode, fullText: FullText): void { + switch (node.type) { + case SyntaxNodeType.Identifier: + this.alignType = Math.max( + this.alignType, + FormatterHelper.getCurrentText(node, fullText).trim().length + ); + break; + } + } + + private collectFieldString( + node: SyntaxNode, + fullText: Readonly + ): string { + let newString = ""; + node.children.forEach((child) => { + newString = newString.concat(this.getFieldString(child, fullText)); + }); + return newString; + } + + private getFieldString( + node: SyntaxNode, + fullText: Readonly + ): string { + let newString = ""; + const text = FormatterHelper.getCurrentText(node, fullText).trim(); + switch (node.type) { + case SyntaxNodeType.FieldKeyword: + newString = FormatterHelper.getCurrentText( + node, + fullText + ).trim(); + break; + case SyntaxNodeType.Identifier: + newString = + " " + text + " ".repeat(this.alignType - text.length); + break; + default: + newString = text.length === 0 ? "" : " " + text; + break; + } + return newString; + } + private getTemptableExpressionString( node: SyntaxNode, separator: string, @@ -83,6 +148,8 @@ export class TempTableFormatter extends AFormatter implements IFormatter { newString = FormatterHelper.getCurrentText(node, fullText); break; case SyntaxNodeType.FieldDefinition: + newString = separator + this.collectFieldString(node, fullText); + break; case SyntaxNodeType.IndexDefinition: node.children.forEach((child) => { newString = newString.concat( From 058c49a6fa6c8e6c697e0745b3251e9b9ac94c0e Mon Sep 17 00:00:00 2001 From: gmickus Date: Fri, 4 Oct 2024 11:20:34 +0300 Subject: [PATCH 16/25] Add type tuning formatting --- .../defineVariable/6-procedure/input.p | 13 +++++++ .../defineVariable/6-procedure/target.p | 13 +++++++ .../defineVariable/6-typetuning/input.p | 10 +++++ .../defineVariable/6-typetuning/target.p | 10 +++++ .../2comments-between/input.p | 2 +- .../procedureParameter/3procedure/input.p | 11 ++++++ .../procedureParameter/3procedure/target.p | 11 ++++++ .../ProcedureParameterFormatter.ts | 39 +++++++++++++++++-- .../VariableDefinitionFormatter.ts | 39 +++++++++++++++++-- 9 files changed, 139 insertions(+), 9 deletions(-) create mode 100644 resources/functionalTests/defineVariable/6-procedure/input.p create mode 100644 resources/functionalTests/defineVariable/6-procedure/target.p create mode 100644 resources/functionalTests/defineVariable/6-typetuning/input.p create mode 100644 resources/functionalTests/defineVariable/6-typetuning/target.p create mode 100644 resources/functionalTests/procedureParameter/3procedure/input.p create mode 100644 resources/functionalTests/procedureParameter/3procedure/target.p diff --git a/resources/functionalTests/defineVariable/6-procedure/input.p b/resources/functionalTests/defineVariable/6-procedure/input.p new file mode 100644 index 0000000..d773c50 --- /dev/null +++ b/resources/functionalTests/defineVariable/6-procedure/input.p @@ -0,0 +1,13 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.variableDefinitionFormatting": true} */ + +PROCEDURE addEntry: + DEFINE VARIABLE new_lang AS CHARACTER NO-UNDO EXTENT 1 INITIAL ["Reading Schema..."]. + DEFINE VARIABLE c AS CHARACTER NO-UNDO. + DEFINE VARIABLE useVar AS LOGICAL NO-UNDO INIT YES. + DEFINE VARIABLE totLen AS INT NO-UNDO. + DEFINE VARIABLE iNum AS INTEGER NO-UNDO INIT 0. + + + +END PROCEDURE. diff --git a/resources/functionalTests/defineVariable/6-procedure/target.p b/resources/functionalTests/defineVariable/6-procedure/target.p new file mode 100644 index 0000000..c5770d3 --- /dev/null +++ b/resources/functionalTests/defineVariable/6-procedure/target.p @@ -0,0 +1,13 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.variableDefinitionFormatting": true} */ + +PROCEDURE addEntry: + define VARIABLE new_lang AS CHARACTER NO-UNDO EXTENT 1 INITIAL ["Reading Schema..."]. + define VARIABLE c AS CHARACTER NO-UNDO. + define VARIABLE useVar AS LOGICAL NO-UNDO INIT YES. + define VARIABLE totLen AS INT NO-UNDO. + define VARIABLE iNum AS INTEGER NO-UNDO INIT 0. + + + +END PROCEDURE. diff --git a/resources/functionalTests/defineVariable/6-typetuning/input.p b/resources/functionalTests/defineVariable/6-typetuning/input.p new file mode 100644 index 0000000..7537e95 --- /dev/null +++ b/resources/functionalTests/defineVariable/6-typetuning/input.p @@ -0,0 +1,10 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.variableDefinitionFormatting": true} */ + +DEFINE VARIABLE hColumn AS HANDLE NO-UNDO EXTENT 2. + +DEFINE VARIABLE gcSort AS CHARACTER NO-UNDO INITIAL "dType". +DEFINE VARIABLE gcMods AS CHARACTER NO-UNDO. +DEFINE VARIABLE DigestChecksum AS CHARACTER NO-UNDO. +DEFINE VARIABLE inbuild AS LOGICAL NO-UNDO. +DEFINE VARIABLE derr AS LOGICAL NO-UNDO. diff --git a/resources/functionalTests/defineVariable/6-typetuning/target.p b/resources/functionalTests/defineVariable/6-typetuning/target.p new file mode 100644 index 0000000..9ccaa44 --- /dev/null +++ b/resources/functionalTests/defineVariable/6-typetuning/target.p @@ -0,0 +1,10 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.variableDefinitionFormatting": true} */ + +define VARIABLE hColumn AS HANDLE NO-UNDO EXTENT 2. + +define VARIABLE gcSort AS CHARACTER NO-UNDO INITIAL "dType". +define VARIABLE gcMods AS CHARACTER NO-UNDO. +define VARIABLE DigestChecksum AS CHARACTER NO-UNDO. +define VARIABLE inbuild AS LOGICAL NO-UNDO. +define VARIABLE derr AS LOGICAL NO-UNDO. diff --git a/resources/functionalTests/procedureParameter/2comments-between/input.p b/resources/functionalTests/procedureParameter/2comments-between/input.p index c51d0d1..bd7a494 100644 --- a/resources/functionalTests/procedureParameter/2comments-between/input.p +++ b/resources/functionalTests/procedureParameter/2comments-between/input.p @@ -2,6 +2,6 @@ /* { "AblFormatter.procedureParamaterFormatting": true, "AblFormatter.variableDefinitionFormatting": true} */ -define INPUT PARAMETER pcOptions AS CHARACTER NO-UNDO. +define INPUT PARAMETER pcOptions AS CHARACTER NO-UNDO. // start define INPUT-OUTPUT PARAMETER pcHandles AS CHARACTER NO-UNDO. \ No newline at end of file diff --git a/resources/functionalTests/procedureParameter/3procedure/input.p b/resources/functionalTests/procedureParameter/3procedure/input.p new file mode 100644 index 0000000..80478b7 --- /dev/null +++ b/resources/functionalTests/procedureParameter/3procedure/input.p @@ -0,0 +1,11 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.procedureParamaterFormatting": true, + "AblFormatter.variableDefinitionFormatting": true} */ + +PROCEDURE addEntry: + define OUTPUT PARAMETER cTableName AS CHARACTER NO-UNDO. + define INPUT PARAMETER p_hidden AS LOGICAL NO-UNDO. + + + +END PROCEDURE. diff --git a/resources/functionalTests/procedureParameter/3procedure/target.p b/resources/functionalTests/procedureParameter/3procedure/target.p new file mode 100644 index 0000000..5682ffb --- /dev/null +++ b/resources/functionalTests/procedureParameter/3procedure/target.p @@ -0,0 +1,11 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.procedureParamaterFormatting": true, + "AblFormatter.variableDefinitionFormatting": true} */ + +PROCEDURE addEntry: + define OUTPUT PARAMETER cTableName AS CHARACTER NO-UNDO. + define INPUT PARAMETER p_hidden AS LOGICAL NO-UNDO. + + + +END PROCEDURE. diff --git a/src/v2/formatters/procedureParameter/ProcedureParameterFormatter.ts b/src/v2/formatters/procedureParameter/ProcedureParameterFormatter.ts index 187352f..3e973d7 100644 --- a/src/v2/formatters/procedureParameter/ProcedureParameterFormatter.ts +++ b/src/v2/formatters/procedureParameter/ProcedureParameterFormatter.ts @@ -94,7 +94,7 @@ export class ProcedureParameterFormatter case SyntaxNodeType.TypeTuning: ProcedureParameterFormatter.alignNoUndo = Math.max( ProcedureParameterFormatter.alignNoUndo, - FormatterHelper.getCurrentText(node, fullText).trim().length + this.collectTypeTuningString(node, fullText).length ); break; case SyntaxNodeType.Identifier: @@ -122,11 +122,15 @@ export class ProcedureParameterFormatter newString = text; break; case SyntaxNodeType.TypeTuning: + const typeTuningText = this.collectTypeTuningString( + node, + fullText + ); newString = - " " + - text + + typeTuningText + " ".repeat( - ProcedureParameterFormatter.alignNoUndo - text.length + ProcedureParameterFormatter.alignNoUndo - + typeTuningText.length ); break; case SyntaxNodeType.Identifier: @@ -152,6 +156,33 @@ export class ProcedureParameterFormatter return newString; } + private collectTypeTuningString( + node: SyntaxNode, + fullText: Readonly + ): string { + let resultString = ""; + node.children.forEach((child) => { + resultString = resultString.concat( + this.getTypeTuningString(child, fullText) + ); + }); + return resultString; + } + + private getTypeTuningString( + node: SyntaxNode, + fullText: Readonly + ): string { + let newString = ""; + const text = FormatterHelper.getCurrentText(node, fullText).trim(); + switch (node.type) { + default: + newString = text.length === 0 ? "" : " " + text; + break; + } + return newString; + } + private resetStaticVariables() { ProcedureParameterFormatter.alignType = 0; ProcedureParameterFormatter.alignNoUndo = 0; diff --git a/src/v2/formatters/variableDefinition/VariableDefinitionFormatter.ts b/src/v2/formatters/variableDefinition/VariableDefinitionFormatter.ts index faca199..3b6b920 100644 --- a/src/v2/formatters/variableDefinition/VariableDefinitionFormatter.ts +++ b/src/v2/formatters/variableDefinition/VariableDefinitionFormatter.ts @@ -95,7 +95,7 @@ export class VariableDefinitionFormatter case SyntaxNodeType.TypeTuning: VariableDefinitionFormatter.alignNoUndo = Math.max( VariableDefinitionFormatter.alignNoUndo, - FormatterHelper.getCurrentText(node, fullText).trim().length + this.collectTypeTuningString(node, fullText).length ); break; case SyntaxNodeType.Identifier: @@ -120,11 +120,15 @@ export class VariableDefinitionFormatter newString = text; break; case SyntaxNodeType.TypeTuning: + const typeTuningText = this.collectTypeTuningString( + node, + fullText + ); newString = - " " + - text + + typeTuningText + " ".repeat( - VariableDefinitionFormatter.alignNoUndo - text.length + VariableDefinitionFormatter.alignNoUndo - + typeTuningText.length ); break; case SyntaxNodeType.Identifier: @@ -142,6 +146,33 @@ export class VariableDefinitionFormatter return newString; } + private collectTypeTuningString( + node: SyntaxNode, + fullText: Readonly + ): string { + let resultString = ""; + node.children.forEach((child) => { + resultString = resultString.concat( + this.getTypeTuningString(child, fullText) + ); + }); + return resultString; + } + + private getTypeTuningString( + node: SyntaxNode, + fullText: Readonly + ): string { + let newString = ""; + const text = FormatterHelper.getCurrentText(node, fullText).trim(); + switch (node.type) { + default: + newString = text.length === 0 ? "" : " " + text; + break; + } + return newString; + } + private resetStaticVariables() { VariableDefinitionFormatter.alignType = 0; VariableDefinitionFormatter.alignNoUndo = 0; From 2a0feaeb4d9368049faf7a4a324f2b59c13935dc Mon Sep 17 00:00:00 2001 From: gmickus Date: Fri, 4 Oct 2024 11:56:11 +0300 Subject: [PATCH 17/25] Fix bug with define trim --- .../functionalTests/property/5blocks/input.p | 4 +++- .../functionalTests/property/5blocks/target.p | 4 +++- .../ProcedureParameterFormatter.ts | 24 +++++++++++++++---- .../VariableDefinitionFormatter.ts | 17 ++++++++++--- 4 files changed, 40 insertions(+), 9 deletions(-) diff --git a/resources/functionalTests/property/5blocks/input.p b/resources/functionalTests/property/5blocks/input.p index f467d4e..4088e3d 100644 --- a/resources/functionalTests/property/5blocks/input.p +++ b/resources/functionalTests/property/5blocks/input.p @@ -16,7 +16,9 @@ class AClass: END. END SET. - define PRIVATE VARIABLE propertyWidthGetter_ AS SomeClass NO-UNDO. + define PRIVATE VARIABLE propertyWidthGetter1 AS SomeClass NO-UNDO. + define PRIVATE VARIABLE propertyWidthGetter2 AS SomeClass NO-UNDO. + define PRIVATE VARIABLE propertyWidthGetter3 AS SomeClass NO-UNDO. define PROTECTED PROPERTY propertyWidthGetter AS SomeClass NO-UNDO GET(): diff --git a/resources/functionalTests/property/5blocks/target.p b/resources/functionalTests/property/5blocks/target.p index b7521c4..38f9a3c 100644 --- a/resources/functionalTests/property/5blocks/target.p +++ b/resources/functionalTests/property/5blocks/target.p @@ -16,7 +16,9 @@ class AClass: END. END SET. - define PRIVATE VARIABLE propertyWidthGetter_ AS SomeClass NO-UNDO. + define PRIVATE VARIABLE propertyWidthGetter1 AS SomeClass NO-UNDO. + define PRIVATE VARIABLE propertyWidthGetter2 AS SomeClass NO-UNDO. + define PRIVATE VARIABLE propertyWidthGetter3 AS SomeClass NO-UNDO. define PROTECTED PROPERTY propertyWidthGetter AS SomeClass NO-UNDO GET(): diff --git a/src/v2/formatters/procedureParameter/ProcedureParameterFormatter.ts b/src/v2/formatters/procedureParameter/ProcedureParameterFormatter.ts index 3e973d7..ccca7e1 100644 --- a/src/v2/formatters/procedureParameter/ProcedureParameterFormatter.ts +++ b/src/v2/formatters/procedureParameter/ProcedureParameterFormatter.ts @@ -114,12 +114,14 @@ export class ProcedureParameterFormatter private getString(node: SyntaxNode, fullText: Readonly): string { let newString = ""; - const text = FormatterHelper.getCurrentText(node, fullText).trim(); switch (node.type) { case SyntaxNodeType.DotKeyword: break; case definitionKeywords.hasFancy(node.type, ""): - newString = text; + newString = FormatterHelper.getCurrentText( + node, + fullText + ).trimEnd(); break; case SyntaxNodeType.TypeTuning: const typeTuningText = this.collectTypeTuningString( @@ -134,6 +136,10 @@ export class ProcedureParameterFormatter ); break; case SyntaxNodeType.Identifier: + const text = FormatterHelper.getCurrentText( + node, + fullText + ).trim(); newString = " " + text + @@ -141,7 +147,11 @@ export class ProcedureParameterFormatter ProcedureParameterFormatter.alignType - text.length ); break; - case parameterTypes.hasFancy(node.type, ""): + case parameterTypes.hasFancy(node.type, ""): { + const text = FormatterHelper.getCurrentText( + node, + fullText + ).trim(); newString = " " + text + @@ -149,9 +159,15 @@ export class ProcedureParameterFormatter ProcedureParameterFormatter.alignParameter - text.length ); break; - default: + } + default: { + const text = FormatterHelper.getCurrentText( + node, + fullText + ).trim(); newString = text.length === 0 ? "" : " " + text; break; + } } return newString; } diff --git a/src/v2/formatters/variableDefinition/VariableDefinitionFormatter.ts b/src/v2/formatters/variableDefinition/VariableDefinitionFormatter.ts index 3b6b920..8e4b907 100644 --- a/src/v2/formatters/variableDefinition/VariableDefinitionFormatter.ts +++ b/src/v2/formatters/variableDefinition/VariableDefinitionFormatter.ts @@ -112,12 +112,14 @@ export class VariableDefinitionFormatter fullText: Readonly ): string { let newString = ""; - const text = FormatterHelper.getCurrentText(node, fullText).trim(); switch (node.type) { case SyntaxNodeType.DotKeyword: break; case definitionKeywords.hasFancy(node.type, ""): - newString = text; + newString = FormatterHelper.getCurrentText( + node, + fullText + ).trimEnd(); break; case SyntaxNodeType.TypeTuning: const typeTuningText = this.collectTypeTuningString( @@ -132,6 +134,10 @@ export class VariableDefinitionFormatter ); break; case SyntaxNodeType.Identifier: + const text = FormatterHelper.getCurrentText( + node, + fullText + ).trim(); newString = " " + text + @@ -139,9 +145,14 @@ export class VariableDefinitionFormatter VariableDefinitionFormatter.alignType - text.length ); break; - default: + default: { + const text = FormatterHelper.getCurrentText( + node, + fullText + ).trim(); newString = text.length === 0 ? "" : " " + text; break; + } } return newString; } From 74612f58cc214cfdd8b1aee56e79add41a3d81d6 Mon Sep 17 00:00:00 2001 From: gmickus Date: Mon, 7 Oct 2024 10:42:34 +0300 Subject: [PATCH 18/25] Change settings update message --- src/utils/ConfigurationManager.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/utils/ConfigurationManager.ts b/src/utils/ConfigurationManager.ts index 0d0733b..e1b0922 100644 --- a/src/utils/ConfigurationManager.ts +++ b/src/utils/ConfigurationManager.ts @@ -15,12 +15,16 @@ export class ConfigurationManager2 implements IConfigurationManager { workspace.onDidChangeConfiguration((e) => { if (e.affectsConfiguration("AblFormatter")) { this.reloadConfig = true; - window.showInformationMessage("ABL Formatter was changed2!"); + window.showInformationMessage( + "ABL Formatter settings were changed!" + ); } if (e.affectsConfiguration("abl.completion")) { this.reloadExternalConfig = true; - window.showInformationMessage("ABL cassing was changed2!"); + window.showInformationMessage( + "ABL completion settings were changed!" + ); } }); } From 32a6271a7ddc514c0cdae67a5cf2eb72f5d7e24f Mon Sep 17 00:00:00 2001 From: gmickus Date: Mon, 7 Oct 2024 11:06:29 +0300 Subject: [PATCH 19/25] Add type tuning format --- .../temptable/4-fields3/input.p | 16 ++++++++++ .../temptable/4-fields3/target.p | 16 ++++++++++ .../tempTable/TempTableFormatter.ts | 30 +++++++++++++++++++ 3 files changed, 62 insertions(+) create mode 100644 resources/functionalTests/temptable/4-fields3/input.p create mode 100644 resources/functionalTests/temptable/4-fields3/target.p diff --git a/resources/functionalTests/temptable/4-fields3/input.p b/resources/functionalTests/temptable/4-fields3/input.p new file mode 100644 index 0000000..e1b6c76 --- /dev/null +++ b/resources/functionalTests/temptable/4-fields3/input.p @@ -0,0 +1,16 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.temptableFormatting": true, + "abl.completion.upperCase": true}*/ + +DEFINE TEMP-TABLE tAction NO-UNDO + FIELD Name AS CHAR + FIELD Hdl AS HANDLE + FIELD RectHdl AS HANDLE + FIELD DivideHdl AS HANDLE + FIELD TxtHdl AS HANDLE + FIELD Sort1 AS INT + FIELD Sort2 AS INT + FIELD Link AS CHAR + FIELD Menu AS LOG + FIELD Tool AS LOG + INDEX Sort AS PRIMARY sort1 sort2. \ No newline at end of file diff --git a/resources/functionalTests/temptable/4-fields3/target.p b/resources/functionalTests/temptable/4-fields3/target.p new file mode 100644 index 0000000..18aa0b7 --- /dev/null +++ b/resources/functionalTests/temptable/4-fields3/target.p @@ -0,0 +1,16 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.temptableFormatting": true, + "abl.completion.upperCase": true}*/ + +DEFINE TEMP-TABLE tAction NO-UNDO + FIELD Name AS CHAR + FIELD Hdl AS HANDLE + FIELD RectHdl AS HANDLE + FIELD DivideHdl AS HANDLE + FIELD TxtHdl AS HANDLE + FIELD Sort1 AS INT + FIELD Sort2 AS INT + FIELD Link AS CHAR + FIELD Menu AS LOG + FIELD Tool AS LOG + INDEX Sort AS PRIMARY sort1 sort2. \ No newline at end of file diff --git a/src/v2/formatters/tempTable/TempTableFormatter.ts b/src/v2/formatters/tempTable/TempTableFormatter.ts index 2ece49e..9ac5558 100644 --- a/src/v2/formatters/tempTable/TempTableFormatter.ts +++ b/src/v2/formatters/tempTable/TempTableFormatter.ts @@ -125,6 +125,9 @@ export class TempTableFormatter extends AFormatter implements IFormatter { fullText ).trim(); break; + case SyntaxNodeType.TypeTuning: + newString = this.collectTypeTuningString(node, fullText); + break; case SyntaxNodeType.Identifier: newString = " " + text + " ".repeat(this.alignType - text.length); @@ -136,6 +139,33 @@ export class TempTableFormatter extends AFormatter implements IFormatter { return newString; } + private collectTypeTuningString( + node: SyntaxNode, + fullText: Readonly + ): string { + let resultString = ""; + node.children.forEach((child) => { + resultString = resultString.concat( + this.getTypeTuningString(child, fullText) + ); + }); + return resultString; + } + + private getTypeTuningString( + node: SyntaxNode, + fullText: Readonly + ): string { + let newString = ""; + const text = FormatterHelper.getCurrentText(node, fullText).trim(); + switch (node.type) { + default: + newString = text.length === 0 ? "" : " " + text; + break; + } + return newString; + } + private getTemptableExpressionString( node: SyntaxNode, separator: string, From a0308396b6c3640f92865254d75b536b409ee1ce Mon Sep 17 00:00:00 2001 From: gmickus Date: Mon, 7 Oct 2024 11:39:58 +0300 Subject: [PATCH 20/25] Change test --- .../functionalTests/temptable/4-fields2/target.p | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/resources/functionalTests/temptable/4-fields2/target.p b/resources/functionalTests/temptable/4-fields2/target.p index 712caa1..f804a2d 100644 --- a/resources/functionalTests/temptable/4-fields2/target.p +++ b/resources/functionalTests/temptable/4-fields2/target.p @@ -3,10 +3,10 @@ "abl.completion.upperCase": true}*/ DEFINE TEMP-TABLE saSys NO-UNDO RCODE-INFORMATION - FIELD dType AS CHARACTER LABEL "Domain Type" FORMAT "x(25)" - FIELD dDescrip AS CHARACTER LABEL "Description" FORMAT "x(65)" - FIELD dDetails AS CHARACTER LABEL "Comments" FORMAT "x(200)" - FIELD dAuthEnabled AS LOGICAL LABEL "Enable Authentication" - FIELD dChecksum AS LOGICAL LABEL "Checksum" - FIELD dCallback AS CHARACTER LABEL "Callback" FORMAT "x(100)". + FIELD dType AS CHARACTER LABEL "Domain Type" FORMAT "x(25)" + FIELD dDescrip AS CHARACTER LABEL "Description" FORMAT "x(65)" + FIELD dDetails AS CHARACTER LABEL "Comments" FORMAT "x(200)" + FIELD dAuthEnabled AS LOGICAL LABEL "Enable Authentication" + FIELD dChecksum AS LOGICAL LABEL "Checksum" + FIELD dCallback AS CHARACTER LABEL "Callback" FORMAT "x(100)". \ No newline at end of file From 2d862285bd7f152626d8a667770bde86bd7c3c46 Mon Sep 17 00:00:00 2001 From: gmickus Date: Wed, 9 Oct 2024 10:45:47 +0300 Subject: [PATCH 21/25] Align variable based on access tuning --- .../{6-typetuning => 6-type-tuning}/input.p | 0 .../{6-typetuning => 6-type-tuning}/target.p | 0 .../defineVariable/7-access-tuning/input.p | 7 +++ .../defineVariable/7-access-tuning/target.p | 7 +++ .../defineVariable/7-access-tuning2/input.p | 9 ++++ .../defineVariable/7-access-tuning2/target.p | 9 ++++ src/model/SyntaxNodeType.ts | 2 + .../VariableDefinitionFormatter.ts | 49 +++++++++++++++++++ 8 files changed, 83 insertions(+) rename resources/functionalTests/defineVariable/{6-typetuning => 6-type-tuning}/input.p (100%) rename resources/functionalTests/defineVariable/{6-typetuning => 6-type-tuning}/target.p (100%) create mode 100644 resources/functionalTests/defineVariable/7-access-tuning/input.p create mode 100644 resources/functionalTests/defineVariable/7-access-tuning/target.p create mode 100644 resources/functionalTests/defineVariable/7-access-tuning2/input.p create mode 100644 resources/functionalTests/defineVariable/7-access-tuning2/target.p diff --git a/resources/functionalTests/defineVariable/6-typetuning/input.p b/resources/functionalTests/defineVariable/6-type-tuning/input.p similarity index 100% rename from resources/functionalTests/defineVariable/6-typetuning/input.p rename to resources/functionalTests/defineVariable/6-type-tuning/input.p diff --git a/resources/functionalTests/defineVariable/6-typetuning/target.p b/resources/functionalTests/defineVariable/6-type-tuning/target.p similarity index 100% rename from resources/functionalTests/defineVariable/6-typetuning/target.p rename to resources/functionalTests/defineVariable/6-type-tuning/target.p diff --git a/resources/functionalTests/defineVariable/7-access-tuning/input.p b/resources/functionalTests/defineVariable/7-access-tuning/input.p new file mode 100644 index 0000000..f9be818 --- /dev/null +++ b/resources/functionalTests/defineVariable/7-access-tuning/input.p @@ -0,0 +1,7 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.variableDefinitionFormatting": true} */ + + +define public variable mPartitionAfterQuery as handle no-undo. +define private variable ValidDefaultLevelList as char no-undo init "0,1,2". +define protected variable ValidDefaultLevelString as char no-undo init "~"0~" ~"1~" and ~"2~"". \ No newline at end of file diff --git a/resources/functionalTests/defineVariable/7-access-tuning/target.p b/resources/functionalTests/defineVariable/7-access-tuning/target.p new file mode 100644 index 0000000..b114fb5 --- /dev/null +++ b/resources/functionalTests/defineVariable/7-access-tuning/target.p @@ -0,0 +1,7 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.variableDefinitionFormatting": true} */ + + +define public variable mPartitionAfterQuery as handle no-undo. +define private variable ValidDefaultLevelList as char no-undo init "0,1,2". +define protected variable ValidDefaultLevelString as char no-undo init "~"0~" ~"1~" and ~"2~"". \ No newline at end of file diff --git a/resources/functionalTests/defineVariable/7-access-tuning2/input.p b/resources/functionalTests/defineVariable/7-access-tuning2/input.p new file mode 100644 index 0000000..a0e9a3b --- /dev/null +++ b/resources/functionalTests/defineVariable/7-access-tuning2/input.p @@ -0,0 +1,9 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.variableDefinitionFormatting": true} */ + +define private variable mCreate as logical no-undo. +define variable mPartitionAfterQuery as handle no-undo. +define private variable ValidTypeList as char no-undo init "Regular,Super". +define private variable ValidTypeString as char no-undo init "~"Regular~" or ~"Super~"". +define private variable ValidDefaultAllocationList as char no-undo init "Immediate,Delayed,None". +define private variable ValidDefaultAllocationString as char no-undo init "~"Immediate~", ~"Delayed~" and ~"None~"". \ No newline at end of file diff --git a/resources/functionalTests/defineVariable/7-access-tuning2/target.p b/resources/functionalTests/defineVariable/7-access-tuning2/target.p new file mode 100644 index 0000000..61c7563 --- /dev/null +++ b/resources/functionalTests/defineVariable/7-access-tuning2/target.p @@ -0,0 +1,9 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.variableDefinitionFormatting": true} */ + +define private variable mCreate as logical no-undo. +define variable mPartitionAfterQuery as handle no-undo. +define private variable ValidTypeList as char no-undo init "Regular,Super". +define private variable ValidTypeString as char no-undo init "~"Regular~" or ~"Super~"". +define private variable ValidDefaultAllocationList as char no-undo init "Immediate,Delayed,None". +define private variable ValidDefaultAllocationString as char no-undo init "~"Immediate~", ~"Delayed~" and ~"None~"". \ No newline at end of file diff --git a/src/model/SyntaxNodeType.ts b/src/model/SyntaxNodeType.ts index 65b43b2..40bdeaa 100644 --- a/src/model/SyntaxNodeType.ts +++ b/src/model/SyntaxNodeType.ts @@ -58,6 +58,7 @@ export enum SyntaxNodeType { EnumMember = "enum_member", EnumDefinition = "enum_definition", TypeTuning = "type_tuning", + AccessTuning = "access_tuning", Comment = "comment", Getter = "getter", Setter = "setter", @@ -103,6 +104,7 @@ export enum SyntaxNodeType { InputOutputKeyword = "INPUT-OUTPUT", ReturnKeyword = "RETURN", ParameterKeyword = "PARAMETER", + VariableKeyword = "VARIABLE", } export const afterThenStatements = new MyFancySet([ diff --git a/src/v2/formatters/variableDefinition/VariableDefinitionFormatter.ts b/src/v2/formatters/variableDefinition/VariableDefinitionFormatter.ts index 8e4b907..89b679f 100644 --- a/src/v2/formatters/variableDefinition/VariableDefinitionFormatter.ts +++ b/src/v2/formatters/variableDefinition/VariableDefinitionFormatter.ts @@ -22,6 +22,8 @@ export class VariableDefinitionFormatter private static visitedNodes: Set = new Set(); private static alignType = 0; private static alignNoUndo = 0; + private static alignVariableKeyword = 0; + private hasAccessTuning = false; public constructor(configurationManager: IConfigurationManager) { super(configurationManager); @@ -39,6 +41,8 @@ export class VariableDefinitionFormatter fullText: Readonly ): CodeEdit | CodeEdit[] | undefined { const oldText = FormatterHelper.getCurrentText(node, fullText); + this.resetNodeVariables(); + if (VariableDefinitionFormatter.visitedNodes.has(node.id)) { const newText = this.collectDefineString(node, fullText); return this.getCodeEdit(node, oldText, newText, fullText); @@ -104,6 +108,12 @@ export class VariableDefinitionFormatter FormatterHelper.getCurrentText(node, fullText).trim().length ); break; + case SyntaxNodeType.AccessTuning: + VariableDefinitionFormatter.alignVariableKeyword = Math.max( + VariableDefinitionFormatter.alignVariableKeyword, + FormatterHelper.getCurrentText(node, fullText).trim().length + ); + break; } } @@ -133,6 +143,40 @@ export class VariableDefinitionFormatter typeTuningText.length ); break; + case SyntaxNodeType.AccessTuning: { + const text = FormatterHelper.getCurrentText( + node, + fullText + ).trim(); + newString = + " " + + text + + " ".repeat( + VariableDefinitionFormatter.alignVariableKeyword - + text.length + ); + this.hasAccessTuning = true; + break; + } + case SyntaxNodeType.VariableKeyword: { + const text = FormatterHelper.getCurrentText( + node, + fullText + ).trim(); + if ( + !this.hasAccessTuning && + VariableDefinitionFormatter.alignVariableKeyword !== 0 + ) { + newString = + " ".repeat( + 2 + VariableDefinitionFormatter.alignVariableKeyword + ) + text; + this.hasAccessTuning = true; + } else { + newString = " " + text; + } + break; + } case SyntaxNodeType.Identifier: const text = FormatterHelper.getCurrentText( node, @@ -184,8 +228,13 @@ export class VariableDefinitionFormatter return newString; } + private resetNodeVariables() { + this.hasAccessTuning = false; + } + private resetStaticVariables() { VariableDefinitionFormatter.alignType = 0; VariableDefinitionFormatter.alignNoUndo = 0; + VariableDefinitionFormatter.alignVariableKeyword = 0; } } From 6dea9fb478bcd99c1dd16aeb6b32ef8f707203f7 Mon Sep 17 00:00:00 2001 From: gmickus Date: Wed, 9 Oct 2024 11:00:59 +0300 Subject: [PATCH 22/25] Add test --- .../functionalTests/defineVariable/8-static/input.p | 11 +++++++++++ .../functionalTests/defineVariable/8-static/target.p | 11 +++++++++++ 2 files changed, 22 insertions(+) create mode 100644 resources/functionalTests/defineVariable/8-static/input.p create mode 100644 resources/functionalTests/defineVariable/8-static/target.p diff --git a/resources/functionalTests/defineVariable/8-static/input.p b/resources/functionalTests/defineVariable/8-static/input.p new file mode 100644 index 0000000..8459866 --- /dev/null +++ b/resources/functionalTests/defineVariable/8-static/input.p @@ -0,0 +1,11 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.variableDefinitionFormatting": true} */ + +define private static var partId AS CHAR INIT ?. +define private static var startRowid AS CHAR. +define public static var intStartRowid AS INT64. +define private static var currRowid AS CHAR. +define protected static vAR intCurrRowid AS INT64. +define private static var intMaxRowid AS INT64. +define private static var partitions AS CHAR EXTENT. +define protected static var currPartitionIx AS INT. \ No newline at end of file diff --git a/resources/functionalTests/defineVariable/8-static/target.p b/resources/functionalTests/defineVariable/8-static/target.p new file mode 100644 index 0000000..c20cbc6 --- /dev/null +++ b/resources/functionalTests/defineVariable/8-static/target.p @@ -0,0 +1,11 @@ +/* formatterSettingsOverride */ +/* { "AblFormatter.variableDefinitionFormatting": true} */ + +define private static var partId AS CHAR INIT ?. +define private static var startRowid AS CHAR . +define public static var intStartRowid AS INT64. +define private static var currRowid AS CHAR . +define protected static vAR intCurrRowid AS INT64. +define private static var intMaxRowid AS INT64. +define private static var partitions AS CHAR EXTENT. +define protected static var currPartitionIx AS INT . \ No newline at end of file From 5e9e83d796ace1e629f0e2280e5ee179fa907d2a Mon Sep 17 00:00:00 2001 From: ekazbaraite Date: Mon, 14 Oct 2024 08:40:05 +0300 Subject: [PATCH 23/25] changed version --- resources/tree-sitter-abl.wasm | Bin 1522794 -> 1513413 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/resources/tree-sitter-abl.wasm b/resources/tree-sitter-abl.wasm index a02c7e1a9eab9bb8b7c723b713a03b15a1ea7196..7a800bfdab3ea1af5f0d680c596f779a6b97e33a 100644 GIT binary patch literal 1513413 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
  • 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 z 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 literal 1522794 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 K6?DEH1h^KY_fc+qgzcZR!040p~S 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

    $3)P?G;twwu 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 Date: Fri, 18 Oct 2024 10:01:38 +0300 Subject: [PATCH 24/25] Add error handling in switch --- .../procedureParameter/ProcedureParameterFormatter.ts | 6 ++++++ .../variableDefinition/VariableDefinitionFormatter.ts | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/src/v2/formatters/procedureParameter/ProcedureParameterFormatter.ts b/src/v2/formatters/procedureParameter/ProcedureParameterFormatter.ts index ccca7e1..bf15e30 100644 --- a/src/v2/formatters/procedureParameter/ProcedureParameterFormatter.ts +++ b/src/v2/formatters/procedureParameter/ProcedureParameterFormatter.ts @@ -160,6 +160,9 @@ export class ProcedureParameterFormatter ); break; } + case SyntaxNodeType.Error: + newString = FormatterHelper.getCurrentText(node, fullText); + break; default: { const text = FormatterHelper.getCurrentText( node, @@ -192,6 +195,9 @@ export class ProcedureParameterFormatter let newString = ""; const text = FormatterHelper.getCurrentText(node, fullText).trim(); switch (node.type) { + case SyntaxNodeType.Error: + newString = FormatterHelper.getCurrentText(node, fullText); + break; default: newString = text.length === 0 ? "" : " " + text; break; diff --git a/src/v2/formatters/variableDefinition/VariableDefinitionFormatter.ts b/src/v2/formatters/variableDefinition/VariableDefinitionFormatter.ts index 89b679f..f893b11 100644 --- a/src/v2/formatters/variableDefinition/VariableDefinitionFormatter.ts +++ b/src/v2/formatters/variableDefinition/VariableDefinitionFormatter.ts @@ -189,6 +189,9 @@ export class VariableDefinitionFormatter VariableDefinitionFormatter.alignType - text.length ); break; + case SyntaxNodeType.Error: + newString = FormatterHelper.getCurrentText(node, fullText); + break; default: { const text = FormatterHelper.getCurrentText( node, @@ -221,6 +224,9 @@ export class VariableDefinitionFormatter let newString = ""; const text = FormatterHelper.getCurrentText(node, fullText).trim(); switch (node.type) { + case SyntaxNodeType.Error: + newString = FormatterHelper.getCurrentText(node, fullText); + break; default: newString = text.length === 0 ? "" : " " + text; break; From 81d3a0593eb1bcf106db1e2ebf604faa5af468fe Mon Sep 17 00:00:00 2001 From: gmickus Date: Fri, 18 Oct 2024 10:05:42 +0300 Subject: [PATCH 25/25] Add error handling in switch --- src/v2/formatters/tempTable/TempTableFormatter.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/v2/formatters/tempTable/TempTableFormatter.ts b/src/v2/formatters/tempTable/TempTableFormatter.ts index 9ac5558..d70df08 100644 --- a/src/v2/formatters/tempTable/TempTableFormatter.ts +++ b/src/v2/formatters/tempTable/TempTableFormatter.ts @@ -132,6 +132,9 @@ export class TempTableFormatter extends AFormatter implements IFormatter { newString = " " + text + " ".repeat(this.alignType - text.length); break; + case SyntaxNodeType.Error: + newString = FormatterHelper.getCurrentText(node, fullText); + break; default: newString = text.length === 0 ? "" : " " + text; break; @@ -159,6 +162,9 @@ export class TempTableFormatter extends AFormatter implements IFormatter { let newString = ""; const text = FormatterHelper.getCurrentText(node, fullText).trim(); switch (node.type) { + case SyntaxNodeType.Error: + newString = FormatterHelper.getCurrentText(node, fullText); + break; default: newString = text.length === 0 ? "" : " " + text; break;