Sign In

langium

Package Overview
Dependencies
Maintainers
4
Versions
77
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

langium - npm Package Compare versions

Comparing version
4.1.3
to
4.2.0
+1
-1
lib/generate/node-joiner.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"node-joiner.d.ts","sourceRoot":"","sources":["../../src/generate/node-joiner.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"node-joiner.d.ts","sourceRoot":"","sources":["../../src/generate/node-joiner.ts"],"names":[],"mappings":"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"}

@@ -13,2 +13,14 @@ /******************************************************************************

const suffixFunc = typeof suffix === 'function' ? suffix : (() => suffix);
const doAppendNewLines = (node) => {
if (node.isEmpty()) {
// do nothing
return;
}
else if (appendNewLineIfNotEmpty === true || appendNewLineIfNotEmpty === 1) {
node.appendNewLineIfNotEmpty();
}
else {
node.append(new NewLineNode(undefined, true, appendNewLineIfNotEmpty));
}
};
return reduceWithIsLast(iterable, (node, it, i, isLast) => {

@@ -20,6 +32,3 @@ if (filter && !filter(it, i, isLast)) {

return content === undefined ? /* in this case don't append anything to */ node : /* otherwise: */ (node ?? (node = new CompositeGeneratorNode()))
.append(prefixFunc(it, i, isLast))
.append(content)
.append(suffixFunc(it, i, isLast))
.appendIf(!isLast, separator)
.appendIf(!node.isEmpty(), separator)
.appendIf(

@@ -29,8 +38,7 @@ // append 'newLineIfNotEmpty' elements only if 'node' has some content already,

// the indentation is not properly applied to the first non-empty line of the (this) child node
// besides, append the newLine(s) only if more lines are following, or if appending a newline
// is not suppressed for the final item
!node.isEmpty() && !!appendNewLineIfNotEmpty && (!isLast || !skipNewLineAfterLastItem), n => (appendNewLineIfNotEmpty === true || appendNewLineIfNotEmpty === 1)
? n.appendNewLineIfNotEmpty()
: n.append(new NewLineNode(undefined, true, appendNewLineIfNotEmpty)));
});
appendNewLineIfNotEmpty !== undefined, doAppendNewLines)
.append(prefixFunc(it, i, isLast))
.append(content)
.append(suffixFunc(it, i, isLast));
})?.appendIf(!skipNewLineAfterLastItem && appendNewLineIfNotEmpty !== undefined, doAppendNewLines);
}

@@ -37,0 +45,0 @@ // implementation:

@@ -1,1 +0,1 @@

{"version":3,"file":"node-joiner.js","sourceRoot":"","sources":["../../src/generate/node-joiner.ts"],"names":[],"mappings":"AAAA;;;;gFAIgF;AAGhF,OAAO,EAAE,sBAAsB,EAAkB,eAAe,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAoCxH,MAAM,kBAAkB,GAAG,CAAC,CAAU,EAAa,EAAE,CAAC,CAAC,KAAK,SAAS,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAoHrI,MAAM,UAAU,UAAU,CACtB,QAA2B,EAC3B,uBAAqG,kBAAkB,EACvH,UAA0B,EAAE;IAG5B,MAAM,WAAW,GAAG,OAAO,oBAAoB,KAAK,UAAU,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,kBAAkB,CAAC;IAC3G,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,GAAG,OAAO,oBAAoB,KAAK,QAAQ,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,OAAO,CAAC;IAE3K,MAAM,UAAU,GAAG,OAAO,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC;IAC1E,MAAM,UAAU,GAAG,OAAO,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC;IAE1E,OAAO,gBAAgB,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE;QACtD,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC;YACnC,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,MAAM,OAAO,GAAG,WAAW,CAAC,EAAE,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;QAC3C,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,2CAA2C,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,IAAI,KAAJ,IAAI,GAAK,IAAI,sBAAsB,EAAE,EAAC;aACrI,MAAM,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;aACjC,MAAM,CAAC,OAAO,CAAC;aACf,MAAM,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;aACjC,QAAQ,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC;aAC5B,QAAQ;QACL,+EAA+E;QAC/E,6EAA6E;QAC7E,gGAAgG;QAChG,6FAA6F;QAC7F,wCAAwC;QACxC,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,uBAAuB,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,wBAAwB,CAAC,EACtF,CAAC,CAAC,EAAE,CAAC,CAAC,uBAAuB,KAAK,IAAI,IAAI,uBAAuB,KAAK,CAAC,CAAC;YACpE,CAAC,CAAC,CAAC,CAAC,uBAAuB,EAAE;YAC7B,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,WAAW,CAAC,SAAS,EAAE,IAAI,EAAE,uBAAuB,CAAC,CAAC,CAC5E,CAAC;IACV,CAAC,CAAC,CAAC;AACP,CAAC;AAqFD,kBAAkB;AAClB,MAAM,UAAU,gBAAgB,CAAoB,MAAqD,EAAE,QAAwB;IAE/H,OAAO,CAAC,QAAQ,EAAE,oBAAoB,EAAE,OAAO,EAAE,EAAE;QAC/C,OAAO,KAAP,OAAO,GAAK,OAAO,oBAAoB,KAAK,QAAQ,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,SAAS,EAAC;QACxF,MAAM,WAAW,GAAG,OAAO,oBAAoB,KAAK,UAAU,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,kBAAkB,CAAC;QAC3G,OAAO,WAAW,CAAC,MAAW,EAAE,QAAQ,CAAC,CACrC,UAAU,CACN,QAAQ,EACR,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,WAAW,CAAC,MAAW,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAC7I,OAAO,CACV,CACJ,CAAC;IACN,CAAC,CAAC;AACN,CAAC;AAqGD,kBAAkB;AAClB,MAAM,UAAU,kBAAkB,CAAoB,SAAkB,EAAE,MAAyG,EAAE,QAAwB;IAEzM,OAAO,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,OAAO,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC;AAC7H,CAAC;AAED,SAAS,gBAAgB,CACrB,QAA2B,EAC3B,UAAyG,EACzG,OAAW;IAEX,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC7C,IAAI,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC3B,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,MAAM,GAAG,OAAO,CAAC;IAErB,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAChB,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;QACjC,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QACvE,IAAI,GAAG,QAAQ,CAAC;QAChB,KAAK,EAAE,CAAC;IACZ,CAAC;IAED,OAAO,MAAM,CAAC;AAClB,CAAC"}
{"version":3,"file":"node-joiner.js","sourceRoot":"","sources":["../../src/generate/node-joiner.ts"],"names":[],"mappings":"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"}

@@ -23,10 +23,9 @@ /******************************************************************************

* expandToNode`
* This is the beginning of something
* This is the beginning of something
*
* ${foo.bar ? expandToNode`
* bla bla bla ${foo.bar}
* ${foo.bar ? expandToNode`
* bla bla bla ${foo.bar}
*
* `: undefined
* }
* end of template
* `: undefined}
* end of something
* `

@@ -36,11 +35,13 @@ * ```

* Rule:
* In case of a multiline template the content of the first line including its terminating
* line break is ignored, if and only if it is empty of contains whitespace only. Futhermore,
* in case of a multiline template the content of the last line including its preceding line break
* (last one within the template) is ignored, if and only if it is empty of contains whitespace only.
* Thus, the result of all of the following invocations is identical and equal to `generatedContent`.
* In case of a multiline template
* 1. the content of the first line including its terminating line break is ignored,
* if and only if it is empty or contains whitespace only.
* 2. the content of the last line including its preceding line break (last line within the template excluding the trailing backtick) is ignored,
* if and only if it is empty or contains whitespace only, and the whitespace in-between the last line break and the trailing backtick
* is a real prefix of the common indentation among all none-empty lines of the template, i.e.,
* it is shorter than the common indentation that is trimmed during processing the template provided that common indentation is identifiable.
*
* Thus, the results of all of the following invocations are identical and equal to `generatedContent`.
* ```ts
* expandToNode`generatedContent`
* expandToNode`generatedContent
* `
* expandToNode`

@@ -51,5 +52,16 @@ * generatedContent`

* `
* expandToNode`
* generatedContent
* `
* ```
* In contrast, the results of the following invocations are equal to `generatedContent\n` (or `generatedContent\r\n` on MS Windows)
* ```ts
* expandToNode`generatedContent
* `
* expandToNode`
* generatedContent
* `
* ```
*
* In addition, a second rule is applied in the handling of line breaks:
* In addition, a third rule is applied while processing line breaks:
* If a line's last substitution contributes `undefined` or an object of type {@link GeneratorNode},

@@ -61,4 +73,4 @@ * the subsequent line break will be appended via {@link CompositeGeneratorNode.appendNewLineIfNotEmpty}.

* That holds in particular, if the last substitution contributes an empty string. In consequence,
* adding `${''}` to the end of a line consisting of whitespace and substitions only
* enforces the line break to be rendered, no matter what the substitions actually contribute.
* adding `${''}` to the end of a line consisting of whitespace and substitutions only
* enforces the line break to be rendered, no matter what the substitutions actually contribute.
*

@@ -65,0 +77,0 @@ * @param staticParts the static parts of a tagged template literal

@@ -1,1 +0,1 @@

{"version":3,"file":"template-node.d.ts","sourceRoot":"","sources":["../../src/generate/template-node.ts"],"names":[],"mappings":"AAAA;;;;gFAIgF;AAEhF,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAG7D,OAAO,EAAE,sBAAsB,EAAgC,MAAM,qBAAqB,CAAC;AAC3F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAG3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwDG;AACH,wBAAgB,YAAY,CAAC,WAAW,EAAE,oBAAoB,EAAE,GAAG,aAAa,EAAE,OAAO,EAAE,GAAG,sBAAsB,CAUnH;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,oBAAoB,EAAE,GAAG,aAAa,EAAE,OAAO,EAAE,KAAK,sBAAsB,CAAC;AAExL;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,CAAC,WAAW,EAAE,oBAAoB,EAAE,GAAG,aAAa,EAAE,OAAO,EAAE,KAAK,sBAAsB,CAAC;AAEnN;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,YAAY,GAAG,SAAS,GAAG,CAAC,WAAW,EAAE,oBAAoB,EAAE,GAAG,aAAa,EAAE,OAAO,EAAE,KAAK,sBAAsB,CAAC;AAEvK;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,YAAY,EAAE,GAAG,CAAC,WAAW,EAAE,oBAAoB,EAAE,GAAG,aAAa,EAAE,OAAO,EAAE,KAAK,sBAAsB,CAAC;AAW9J;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,GACxG,CAAC,WAAW,EAAE,oBAAoB,EAAE,GAAG,aAAa,EAAE,OAAO,EAAE,KAAK,sBAAsB,GAAG,SAAS,CAAC;AAE/G;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,GAClI,CAAC,WAAW,EAAE,oBAAoB,EAAE,GAAG,aAAa,EAAE,OAAO,EAAE,KAAK,sBAAsB,GAAG,SAAS,CAAC;AAE/G;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,GAAG,SAAS,GAAG,CAAC,MAAM,YAAY,GAAG,SAAS,CAAC,GAC1H,CAAC,WAAW,EAAE,oBAAoB,EAAE,GAAG,aAAa,EAAE,OAAO,EAAE,KAAK,sBAAsB,GAAG,SAAS,CAAC;AAE/G;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,GAC9E,CAAC,WAAW,EAAE,oBAAoB,EAAE,GAAG,aAAa,EAAE,OAAO,EAAE,KAAK,sBAAsB,GAAG,SAAS,CAAC"}
{"version":3,"file":"template-node.d.ts","sourceRoot":"","sources":["../../src/generate/template-node.ts"],"names":[],"mappings":"AAAA;;;;gFAIgF;AAEhF,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAG7D,OAAO,EAAE,sBAAsB,EAAgC,MAAM,qBAAqB,CAAC;AAC3F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAG3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoEG;AACH,wBAAgB,YAAY,CAAC,WAAW,EAAE,oBAAoB,EAAE,GAAG,aAAa,EAAE,OAAO,EAAE,GAAG,sBAAsB,CAUnH;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,oBAAoB,EAAE,GAAG,aAAa,EAAE,OAAO,EAAE,KAAK,sBAAsB,CAAC;AAExL;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,CAAC,WAAW,EAAE,oBAAoB,EAAE,GAAG,aAAa,EAAE,OAAO,EAAE,KAAK,sBAAsB,CAAC;AAEnN;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,YAAY,GAAG,SAAS,GAAG,CAAC,WAAW,EAAE,oBAAoB,EAAE,GAAG,aAAa,EAAE,OAAO,EAAE,KAAK,sBAAsB,CAAC;AAEvK;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,YAAY,EAAE,GAAG,CAAC,WAAW,EAAE,oBAAoB,EAAE,GAAG,aAAa,EAAE,OAAO,EAAE,KAAK,sBAAsB,CAAC;AAW9J;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,GACxG,CAAC,WAAW,EAAE,oBAAoB,EAAE,GAAG,aAAa,EAAE,OAAO,EAAE,KAAK,sBAAsB,GAAG,SAAS,CAAC;AAE/G;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,GAClI,CAAC,WAAW,EAAE,oBAAoB,EAAE,GAAG,aAAa,EAAE,OAAO,EAAE,KAAK,sBAAsB,GAAG,SAAS,CAAC;AAE/G;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,GAAG,SAAS,GAAG,CAAC,MAAM,YAAY,GAAG,SAAS,CAAC,GAC1H,CAAC,WAAW,EAAE,oBAAoB,EAAE,GAAG,aAAa,EAAE,OAAO,EAAE,KAAK,sBAAsB,GAAG,SAAS,CAAC;AAE/G;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,GAC9E,CAAC,WAAW,EAAE,oBAAoB,EAAE,GAAG,aAAa,EAAE,OAAO,EAAE,KAAK,sBAAsB,GAAG,SAAS,CAAC"}

@@ -23,10 +23,9 @@ /******************************************************************************

* expandToNode`
* This is the beginning of something
* This is the beginning of something
*
* ${foo.bar ? expandToNode`
* bla bla bla ${foo.bar}
* ${foo.bar ? expandToNode`
* bla bla bla ${foo.bar}
*
* `: undefined
* }
* end of template
* `: undefined}
* end of something
* `

@@ -36,11 +35,13 @@ * ```

* Rule:
* In case of a multiline template the content of the first line including its terminating
* line break is ignored, if and only if it is empty of contains whitespace only. Futhermore,
* in case of a multiline template the content of the last line including its preceding line break
* (last one within the template) is ignored, if and only if it is empty of contains whitespace only.
* Thus, the result of all of the following invocations is identical and equal to `generatedContent`.
* In case of a multiline template
* 1. the content of the first line including its terminating line break is ignored,
* if and only if it is empty or contains whitespace only.
* 2. the content of the last line including its preceding line break (last line within the template excluding the trailing backtick) is ignored,
* if and only if it is empty or contains whitespace only, and the whitespace in-between the last line break and the trailing backtick
* is a real prefix of the common indentation among all none-empty lines of the template, i.e.,
* it is shorter than the common indentation that is trimmed during processing the template provided that common indentation is identifiable.
*
* Thus, the results of all of the following invocations are identical and equal to `generatedContent`.
* ```ts
* expandToNode`generatedContent`
* expandToNode`generatedContent
* `
* expandToNode`

@@ -51,5 +52,16 @@ * generatedContent`

* `
* expandToNode`
* generatedContent
* `
* ```
* In contrast, the results of the following invocations are equal to `generatedContent\n` (or `generatedContent\r\n` on MS Windows)
* ```ts
* expandToNode`generatedContent
* `
* expandToNode`
* generatedContent
* `
* ```
*
* In addition, a second rule is applied in the handling of line breaks:
* In addition, a third rule is applied while processing line breaks:
* If a line's last substitution contributes `undefined` or an object of type {@link GeneratorNode},

@@ -61,4 +73,4 @@ * the subsequent line break will be appended via {@link CompositeGeneratorNode.appendNewLineIfNotEmpty}.

* That holds in particular, if the last substitution contributes an empty string. In consequence,
* adding `${''}` to the end of a line consisting of whitespace and substitions only
* enforces the line break to be rendered, no matter what the substitions actually contribute.
* adding `${''}` to the end of a line consisting of whitespace and substitutions only
* enforces the line break to be rendered, no matter what the substitutions actually contribute.
*

@@ -268,3 +280,3 @@ * @param staticParts the static parts of a tagged template literal

// the whitespace between 'return' and '${foo(bar)}' shall not add to the indentation of '${foo(bar)}'s result!
const indent = (i === 0 || isNewLineMarker(splitAndMerged[i - 1])) && typeof segment === 'string' && segment.length !== 0 ? ''.padStart(segment.length - segment.trimStart().length) : '';
const indent = (i === 0 || isNewLineMarker(splitAndMerged[i - 1])) && typeof segment === 'string' && segment.length !== 0 ? segment.substring(0, segment.length - segment.trimStart().length) : '';
const content = isSubstitutionWrapper(segment) ? segment.content : segment;

@@ -271,0 +283,0 @@ let indented;

@@ -1,1 +0,1 @@

{"version":3,"file":"template-node.js","sourceRoot":"","sources":["../../src/generate/template-node.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"template-node.js","sourceRoot":"","sources":["../../src/generate/template-node.ts"],"names":[],"mappings":"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"}
/******************************************************************************
* This file was generated by langium-cli 4.1.0.
* This file was generated by langium-cli 4.2.0.
* DO NOT EDIT MANUALLY!

@@ -4,0 +4,0 @@ ******************************************************************************/

/******************************************************************************
* This file was generated by langium-cli 4.1.0.
* This file was generated by langium-cli 4.2.0.
* DO NOT EDIT MANUALLY!

@@ -4,0 +4,0 @@ ******************************************************************************/

/******************************************************************************
* This file was generated by langium-cli 4.1.0.
* This file was generated by langium-cli 4.2.0.
* DO NOT EDIT MANUALLY!

@@ -4,0 +4,0 @@ ******************************************************************************/

/******************************************************************************
* This file was generated by langium-cli 4.1.0.
* This file was generated by langium-cli 4.2.0.
* DO NOT EDIT MANUALLY!

@@ -4,0 +4,0 @@ ******************************************************************************/

@@ -1,1 +0,1 @@

{"version":3,"file":"langium-grammar-module.d.ts","sourceRoot":"","sources":["../../src/grammar/langium-grammar-module.ts"],"names":[],"mappings":"AAAA;;;;gFAIgF;AAEhF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,eAAe,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,4BAA4B,EAAE,MAAM,wBAAwB,CAAC;AAI3I,OAAO,EAAE,KAAK,0BAA0B,EAAkD,MAAM,8BAA8B,CAAC;AAI/H,OAAO,EAAE,uBAAuB,EAA4B,MAAM,2BAA2B,CAAC;AAU9F,OAAO,EAAE,0CAA0C,EAAE,MAAM,gDAAgD,CAAC;AAC5G,OAAO,EAAE,4BAA4B,EAAgC,MAAM,iCAAiC,CAAC;AAG7G,MAAM,MAAM,2BAA2B,GAAG;IACtC,UAAU,EAAE;QACR,uBAAuB,EAAE,uBAAuB,CAAC;QACjD,4BAA4B,EAAE,0CAA0C,CAAC;QACzE,4BAA4B,EAAE,4BAA4B,CAAC;KAC9D,CAAA;CACJ,CAAA;AAED,MAAM,MAAM,sBAAsB,GAAG,eAAe,GAAG,2BAA2B,CAAC;AAEnF,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,sBAAsB,EAAE,sBAAsB,GAAG,2BAA2B,CAsBrH,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,0BAA0B,EAC5E,YAAY,CAAC,EAAE,MAAM,CAAC,qBAAqB,EAAE,4BAA4B,CAAC,EAC1E,MAAM,CAAC,EAAE,MAAM,CAAC,sBAAsB,EAAE,WAAW,CAAC,eAAe,GAAG,2BAA2B,CAAC,CAAC,GAAG;IAClG,MAAM,EAAE,qBAAqB,CAAC;IAC9B,OAAO,EAAE,sBAAsB,CAAA;CAClC,CAyBJ"}
{"version":3,"file":"langium-grammar-module.d.ts","sourceRoot":"","sources":["../../src/grammar/langium-grammar-module.ts"],"names":[],"mappings":"AAAA;;;;gFAIgF;AAEhF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,eAAe,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,4BAA4B,EAAE,MAAM,wBAAwB,CAAC;AAI3I,OAAO,EAAE,KAAK,0BAA0B,EAAkD,MAAM,8BAA8B,CAAC;AAI/H,OAAO,EAAE,uBAAuB,EAA4B,MAAM,2BAA2B,CAAC;AAU9F,OAAO,EAAE,0CAA0C,EAAE,MAAM,gDAAgD,CAAC;AAC5G,OAAO,EAAE,4BAA4B,EAAgC,MAAM,iCAAiC,CAAC;AAG7G,MAAM,MAAM,2BAA2B,GAAG;IACtC,UAAU,EAAE;QACR,uBAAuB,EAAE,uBAAuB,CAAC;QACjD,4BAA4B,EAAE,0CAA0C,CAAC;QACzE,4BAA4B,EAAE,4BAA4B,CAAC;KAC9D,CAAA;CACJ,CAAA;AAED,MAAM,MAAM,sBAAsB,GAAG,eAAe,GAAG,2BAA2B,CAAC;AAEnF,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,sBAAsB,EAAE,sBAAsB,GAAG,2BAA2B,CAsBrH,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,0BAA0B,EAC5E,YAAY,CAAC,EAAE,MAAM,CAAC,qBAAqB,EAAE,4BAA4B,CAAC,EAC1E,MAAM,CAAC,EAAE,MAAM,CAAC,sBAAsB,EAAE,WAAW,CAAC,eAAe,GAAG,2BAA2B,CAAC,CAAC,GAAG;IACtG,MAAM,EAAE,qBAAqB,CAAC;IAC9B,OAAO,EAAE,sBAAsB,CAAA;CAClC,CAyBA"}

@@ -89,2 +89,3 @@ /******************************************************************************

checkParserRuleDataType(rule: ast.ParserRule, accept: ValidationAcceptor): void;
checkFragmentKeywords(rule: ast.ParserRule, accept: ValidationAcceptor): void;
checkInfixRuleDataType(rule: ast.InfixRule, accept: ValidationAcceptor): void;

@@ -91,0 +92,0 @@ checkAssignmentToFragmentRule(assignment: ast.Assignment, accept: ValidationAcceptor): void;

@@ -1,1 +0,1 @@

{"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../../src/grammar/validation/validator.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../../src/grammar/validation/validator.ts"],"names":[],"mappings":"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"}

@@ -8,3 +8,3 @@ /******************************************************************************

import * as ast from '../../languages/generated/ast.js';
import { getContainerOfType, streamAllContents } from '../../utils/ast-utils.js';
import { getContainerOfType, streamAllContents, streamAst } from '../../utils/ast-utils.js';
import { MultiMap } from '../../utils/collections.js';

@@ -38,2 +38,3 @@ import { toDocumentSegment } from '../../utils/cst-utils.js';

validator.checkParserRuleDataType,
validator.checkFragmentKeywords,
validator.checkRuleParameters,

@@ -361,3 +362,6 @@ validator.checkEmptyParserRule,

for (const rule of grammar.rules.filter(ast.isAbstractParserRule)) {
if (isEmptyRule(rule)) {
// Skip empty rules and fragment rules
// Fragment rules do not define types (they are inlined)
// And empty rules will show an error elsewhere
if (isEmptyRule(rule) || (ast.isParserRule(rule) && rule.fragment)) {
continue;

@@ -912,6 +916,14 @@ }

}
else if (hasDatatypeReturnType && !dataTypeRule) {
else if (hasDatatypeReturnType && !dataTypeRule && !rule.fragment) { // fragments are validated in the next check below
accept('error', 'Normal parser rules are not allowed to return a primitive value. Use a datatype rule for that.', { node: rule, property: rule.dataType ? 'dataType' : 'returnType' });
}
}
checkFragmentKeywords(rule, accept) {
if (rule.fragment) {
if (rule.dataType || rule.returnType || rule.inferredType) {
accept('error', 'Fragment rules cannot specify a return type.', { node: rule, property: rule.dataType ? 'dataType' : rule.returnType ? 'returnType' : 'inferredType' });
}
// `rule.entry` don't need to be checked, since the grammar allows either `rule.fragment` or `rule.entry`.
}
}
checkInfixRuleDataType(rule, accept) {

@@ -923,8 +935,7 @@ if (rule.dataType) {

checkAssignmentToFragmentRule(assignment, accept) {
if (!assignment.terminal) {
return;
}
if (ast.isRuleCall(assignment.terminal) && ast.isParserRule(assignment.terminal.rule.ref) && assignment.terminal.rule.ref.fragment) {
accept('error', `Cannot use fragment rule '${assignment.terminal.rule.ref.name}' for assignment of property '${assignment.feature}'.`, { node: assignment, property: 'terminal' });
}
streamAst(assignment.terminal).forEach(node => {
if (ast.isRuleCall(node) && ast.isParserRule(node.rule.ref) && node.rule.ref.fragment) {
accept('error', `Cannot use fragment rule '${node.rule.ref.name}' for assignment of property '${assignment.feature}'.`, { node: node, property: 'rule' });
}
});
}

@@ -931,0 +942,0 @@ checkAssignmentTypes(assignment, accept) {

@@ -1,1 +0,1 @@

{"version":3,"file":"validator.js","sourceRoot":"","sources":["../../../src/grammar/validation/validator.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"validator.js","sourceRoot":"","sources":["../../../src/grammar/validation/validator.ts"],"names":[],"mappings":"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"}
/******************************************************************************
* This file was generated by langium-cli 4.1.0.
* This file was generated by langium-cli 4.2.0.
* DO NOT EDIT MANUALLY!

@@ -4,0 +4,0 @@ ******************************************************************************/

/******************************************************************************
* This file was generated by langium-cli 4.1.0.
* This file was generated by langium-cli 4.2.0.
* DO NOT EDIT MANUALLY!

@@ -4,0 +4,0 @@ ******************************************************************************/

@@ -127,2 +127,3 @@ /******************************************************************************

protected findFeaturesAt(document: TextDocument, offset: number): NextFeature[];
protected buildSyntheticEntryRuleCall(rule: ast.ParserRule): NextFeature;
protected buildContexts(document: LangiumDocument, position: Position): IterableIterator<CompletionContext>;

@@ -129,0 +130,0 @@ protected performNextTokenCompletion(document: LangiumDocument, text: string, _offset: number, _end: number): boolean;

@@ -1,1 +0,1 @@

{"version":3,"file":"completion-provider.d.ts","sourceRoot":"","sources":["../../../src/lsp/completion/completion-provider.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"completion-provider.d.ts","sourceRoot":"","sources":["../../../src/lsp/completion/completion-provider.ts"],"names":[],"mappings":"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"}

@@ -10,3 +10,3 @@ /******************************************************************************

import { findDeclarationNodeAtOffset, findLeafNodeBeforeOffset, getDatatypeNode } from '../../utils/cst-utils.js';
import { getEntryRule, getExplicitRuleType } from '../../utils/grammar-utils.js';
import { getEntryRule } from '../../utils/grammar-utils.js';
import { stream } from '../../utils/stream.js';

@@ -86,15 +86,5 @@ import { findFirstFeatures, findNextFeatures } from './follow-element-computation.js';

const parserRule = getEntryRule(this.grammar);
const firstFeatures = findFirstFeatures({
feature: parserRule.definition,
type: getExplicitRuleType(parserRule)
});
if (tokens.length > 0) {
// We have to skip the first token
// The interpreter will only look at the next features, which requires every token after the first
tokens.shift();
return findNextFeatures(firstFeatures.map(e => [e]), tokens);
}
else {
return firstFeatures;
}
// Generate a synthetic RuleCall to the entry rule
const syntheticEntryRuleCall = this.buildSyntheticEntryRuleCall(parserRule);
return findNextFeatures([[syntheticEntryRuleCall]], tokens);
}

@@ -105,2 +95,34 @@ const leftoverTokens = [...tokens].splice(parserResult.tokenIndex);

}
buildSyntheticEntryRuleCall(rule) {
// The "start" node is simply an empty group that is followed by the rule call
const start = {
$type: 'Group',
$container: undefined,
elements: []
};
const startNext = {
feature: start
};
// This is the element that we want to complete
const ruleCall = {
$type: 'RuleCall',
$container: undefined,
rule: {
ref: rule,
$refText: rule.name
},
arguments: []
};
const group = {
$type: 'Group',
$container: undefined,
elements: [
start,
ruleCall
]
};
start.$container = group;
ruleCall.$container = group;
return startNext;
}
*buildContexts(document, position) {

@@ -177,3 +199,3 @@ const cst = document.parseResult.value.$cstNode;

tokenEndOffset: nextTokenEnd,
features: findFirstFeatures(parserRule.definition)
features: findFirstFeatures(parserRule.definition).map(f => f[f.length - 1]),
};

@@ -180,0 +202,0 @@ }

@@ -1,1 +0,1 @@

{"version":3,"file":"completion-provider.js","sourceRoot":"","sources":["../../../src/lsp/completion/completion-provider.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"completion-provider.js","sourceRoot":"","sources":["../../../src/lsp/completion/completion-provider.ts"],"names":[],"mappings":"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"}

@@ -26,3 +26,3 @@ /******************************************************************************

* @param featureStack A stack of features starting at the entry rule and ending at the feature of the current cursor position.
* @param unparsedTokens All tokens which haven't been parsed successfully yet. This is the case when we call this function inside an alternative.
* @param unparsedTokens All tokens which haven't been parsed successfully yet. This is the case when we call this function inside an alternative or before parsing any tokens.
* @returns Any `AbstractElement` that could be following the given feature stack.

@@ -35,3 +35,7 @@ */

*/
export declare function findFirstFeatures(next: ast.AbstractElement | NextFeature): NextFeature[];
export declare function findFirstFeatures(next: ast.AbstractElement): NextFeature[][];
export declare function findGroupAndChild(feature: ast.AbstractElement): {
group: ast.Group | undefined;
child: ast.AbstractElement;
};
//# sourceMappingURL=follow-element-computation.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"follow-element-computation.d.ts","sourceRoot":"","sources":["../../../src/lsp/completion/follow-element-computation.ts"],"names":[],"mappings":"AAAA;;;;gFAIgF;AAEhF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,KAAK,GAAG,MAAM,kCAAkC,CAAC;AAMxD,MAAM,WAAW,WAAW,CAAC,CAAC,SAAS,GAAG,CAAC,eAAe,GAAG,GAAG,CAAC,eAAe;IAC5E;;OAEG;IACH,OAAO,EAAE,CAAC,CAAA;IACV;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;CACpB;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,WAAW,EAAE,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,WAAW,EAAE,CAWvG;AAmED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,GAAG,CAAC,eAAe,GAAG,WAAW,GAAG,WAAW,EAAE,CAKxF"}
{"version":3,"file":"follow-element-computation.d.ts","sourceRoot":"","sources":["../../../src/lsp/completion/follow-element-computation.ts"],"names":[],"mappings":"AAAA;;;;gFAIgF;AAEhF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,KAAK,GAAG,MAAM,kCAAkC,CAAC;AAIxD,MAAM,WAAW,WAAW,CAAC,CAAC,SAAS,GAAG,CAAC,eAAe,GAAG,GAAG,CAAC,eAAe;IAC5E;;OAEG;IACH,OAAO,EAAE,CAAC,CAAA;IACV;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;CACpB;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,WAAW,EAAE,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,WAAW,EAAE,CAWvG;AAyED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,GAAG,CAAC,eAAe,GAAG,WAAW,EAAE,EAAE,CAE5E;AA4JD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,GAAG,CAAC,eAAe,GAAG;IAAE,KAAK,EAAE,GAAG,CAAC,KAAK,GAAG,SAAS,CAAC;IAAC,KAAK,EAAE,GAAG,CAAC,eAAe,CAAA;CAAE,CAsB5H"}

@@ -7,5 +7,4 @@ /******************************************************************************

import * as ast from '../../languages/generated/ast.js';
import { isAstNode } from '../../syntax-tree.js';
import { getCrossReferenceTerminal, getExplicitRuleType, getTypeName, isArrayCardinality, isOptionalCardinality, terminalRegex } from '../../utils/grammar-utils.js';
import { getContainerOfType } from '../../utils/ast-utils.js';
import { getCrossReferenceTerminal, getExplicitRuleType, getTypeName, isArrayCardinality, isOptionalCardinality, terminalRegex } from '../../utils/grammar-utils.js';
/**

@@ -15,3 +14,3 @@ * Calculates any features that can follow the given feature stack.

* @param featureStack A stack of features starting at the entry rule and ending at the feature of the current cursor position.
* @param unparsedTokens All tokens which haven't been parsed successfully yet. This is the case when we call this function inside an alternative.
* @param unparsedTokens All tokens which haven't been parsed successfully yet. This is the case when we call this function inside an alternative or before parsing any tokens.
* @returns Any `AbstractElement` that could be following the given feature stack.

@@ -31,67 +30,68 @@ */

}
function findNextFeaturesInternal(options) {
const { next, cardinalities, visited, plus } = options;
function findNextFeaturesInternal(stack) {
const features = [];
const feature = next.feature;
if (visited.has(feature)) {
return [];
if (stack.length === 0) {
return features;
}
else if (!ast.isGroup(feature)) {
// Do not add the feature to the list if it is a group
// `findFirstFeaturesInternal` will take care of this
visited.add(feature);
const top = stack[stack.length - 1];
const { group, child } = findGroupAndChild(top.feature);
if (isArrayCardinality(child.cardinality)) {
// The feature can appear again, so we try to find its first features again
const repeatingFeatures = findFirstFeaturesInternal({
feature: child,
type: top.type,
property: top.property
});
features.push(...repeatingFeatures);
}
let parent;
let item = feature;
while (item.$container) {
if (ast.isGroup(item.$container)) {
parent = item.$container;
break;
let groupIndex = -1;
if (group) {
groupIndex = group.elements.indexOf(child);
}
const parentStack = stack.slice(0, -1);
if (!group) {
const parent = getAbstractElementParent(child);
if (parent) {
// The feature is not part of a group
// But the parent might be
features.push(...findNextFeaturesInternal([
...parentStack,
{
feature: parent,
}
]));
}
else if (ast.isAbstractElement(item.$container)) {
item = item.$container;
}
else {
break;
// The feature is "standalone", meaning it is the top-level feature of a rule
// The next elements are defined by the previous stack elements
features.push(...findNextFeaturesInternal(parentStack));
}
}
// First try to iterate the same element again
if (isArrayCardinality(item.cardinality)) {
const repeatingFeatures = findFirstFeaturesInternal({
next: {
feature: item,
type: next.type
},
cardinalities,
visited,
plus
});
for (const repeatingFeature of repeatingFeatures) {
plus.add(repeatingFeature.feature);
else {
// The feature is somewhere within the group
const nextIndex = groupIndex + 1;
const { stacks, end } = findNextFeaturesInGroup({
feature: group,
type: top.type
}, nextIndex);
for (const newStack of stacks) {
features.push([...parentStack, ...newStack]);
}
features.push(...repeatingFeatures);
}
if (parent) {
const ownIndex = parent.elements.indexOf(item);
// Find next elements of the same group
if (ownIndex !== undefined && ownIndex < parent.elements.length - 1) {
features.push(...findNextFeaturesInGroup({
feature: parent,
type: next.type
}, ownIndex + 1, cardinalities, visited, plus));
// If we reached the end of the group, continue searching for following features
if (end) {
// Set groupIndex to the last element index to indicate that we are at the end of the group
// This will trigger the parent search below
groupIndex = group.elements.length - 1;
}
// Try to find the next elements of the parent
// Only do this if every following element is either optional or has been parsed as +
if (features.every(e => isOptionalCardinality(e.feature.cardinality, e.feature) || isOptionalCardinality(cardinalities.get(e.feature)) || plus.has(e.feature))) {
features.push(...findNextFeaturesInternal({
next: {
feature: parent,
type: next.type
},
cardinalities,
visited,
plus
}));
}
}
if (group && groupIndex === group.elements.length - 1) {
// The feature is the last element of a group
// The next elements are defined by the parent group
features.push(...findNextFeaturesInternal([
...parentStack,
{
feature: group,
}
]));
}
return features;

@@ -104,66 +104,41 @@ }

export function findFirstFeatures(next) {
if (isAstNode(next)) {
next = { feature: next };
}
return findFirstFeaturesInternal({ next, cardinalities: new Map(), visited: new Set(), plus: new Set() });
return findFirstFeaturesInternal({ feature: next });
}
function findFirstFeaturesInternal(options) {
const { next, cardinalities, visited, plus } = options;
if (next === undefined) {
return [];
}
function findFirstFeaturesInternal(next) {
const { feature, type } = next;
if (ast.isGroup(feature)) {
if (visited.has(feature)) {
return [];
}
else {
visited.add(feature);
}
return findNextFeaturesInGroup(next, 0, cardinalities, visited, plus)
.map(e => modifyCardinality(e, feature.cardinality, cardinalities));
return findNextFeaturesInGroup(next, 0).stacks;
}
else if (ast.isAlternatives(feature) || ast.isUnorderedGroup(feature)) {
return feature.elements.flatMap(e => findFirstFeaturesInternal({
next: {
feature: e,
type,
property: next.property
},
cardinalities,
visited,
plus
}))
.map(e => modifyCardinality(e, feature.cardinality, cardinalities));
feature: e,
type,
property: next.property
}));
}
else if (ast.isAssignment(feature)) {
const assignmentNext = {
return findFirstFeaturesInternal({
feature: feature.terminal,
type,
property: next.property ?? feature.feature
};
return findFirstFeaturesInternal({ next: assignmentNext, cardinalities, visited, plus })
.map(e => modifyCardinality(e, feature.cardinality, cardinalities));
});
}
else if (ast.isAction(feature)) {
return findNextFeaturesInternal({
next: {
return findNextFeaturesInternal([{
feature,
type: getTypeName(feature),
property: next.property ?? feature.feature
},
cardinalities,
visited,
plus
});
}]);
}
else if (ast.isRuleCall(feature) && ast.isParserRule(feature.rule.ref)) {
const rule = feature.rule.ref;
const ruleCallNext = {
const stacks = findFirstFeaturesInternal({
feature: rule.definition,
type: rule.fragment || rule.dataType ? undefined : (getExplicitRuleType(rule) ?? rule.name),
property: next.property
};
return findFirstFeaturesInternal({ next: ruleCallNext, cardinalities, visited, plus })
.map(e => modifyCardinality(e, feature.cardinality, cardinalities));
});
for (const stack of stacks) {
stack.unshift(next);
}
return stacks;
}

@@ -177,30 +152,21 @@ else if (ast.isRuleCall(feature) && ast.isInfixRule(feature.rule.ref)) {

}
const ruleCallNext = {
const stacks = findFirstFeaturesInternal({
feature: call.definition,
type: getExplicitRuleType(call) ?? call.name,
property: 'parts'
};
return findFirstFeaturesInternal({ next: ruleCallNext, cardinalities, visited, plus })
.map(e => modifyCardinality(e, feature.cardinality, cardinalities));
});
for (const stack of stacks) {
stack.unshift(next);
}
return stacks;
}
else {
return [next];
return [[next]];
}
}
/**
* Modifying the cardinality is necessary to identify which features are coming from an optional feature.
* Those features should be optional as well.
* @param next The next feature that could be made optionally.
* @param cardinality The cardinality of the calling (parent) object.
* @returns A new feature that could be now optional (`?` or `*`).
*/
function modifyCardinality(next, cardinality, cardinalities) {
cardinalities.set(next.feature, cardinality);
return next;
}
function findNextFeaturesInGroup(next, index, cardinalities, visited, plus) {
function findNextFeaturesInGroup(next, index) {
const features = [];
let firstFeature;
while (index < next.feature.elements.length) {
const feature = next.feature.elements[index++];
const feature = next.feature.elements[index];
firstFeature = {

@@ -210,14 +176,59 @@ feature,

};
features.push(...findFirstFeaturesInternal({
next: firstFeature,
cardinalities,
visited,
plus
}));
if (!isOptionalCardinality(firstFeature.feature.cardinality ?? cardinalities.get(firstFeature.feature), firstFeature.feature)) {
const stacks = findFirstFeaturesInternal(firstFeature);
features.push(...stacks);
if (isElementOptional(feature, new Map())) {
// Continue with the next element
index++;
}
else {
break;
}
}
return features;
return {
stacks: features,
end: index >= next.feature.elements.length
};
}
/**
* Determines recursively whether an element is optional. It is not sufficient to check only the cardinality of the element itself,
* because it could a group or alternative that contains only optional elements.
*/
function isElementOptional(feature, visited) {
const visitedResult = visited.get(feature);
if (visitedResult !== undefined) {
return visitedResult;
}
visited.set(feature, false);
if (isOptionalCardinality(feature.cardinality, feature)) {
visited.set(feature, true);
return true;
}
if (ast.isGroup(feature)) {
for (const element of feature.elements) {
if (!isElementOptional(element, visited)) {
visited.set(feature, false);
return false;
}
}
visited.set(feature, true);
return true;
}
else if (ast.isAlternatives(feature) || ast.isUnorderedGroup(feature)) {
for (const element of feature.elements) {
if (isElementOptional(element, visited)) {
visited.set(feature, true);
return true;
}
}
visited.set(feature, false);
return false;
}
else if (ast.isRuleCall(feature) && ast.isParserRule(feature.rule.ref)) {
const rule = feature.rule.ref;
const result = isElementOptional(rule.definition, visited);
visited.set(feature, result);
return result;
}
return false;
}
function interpretTokens(context) {

@@ -237,31 +248,43 @@ for (const token of context.tokens) {

function interpretStackToken(stack, token) {
const cardinalities = new Map();
const plus = new Set(stack.map(e => e.feature).filter(isPlusFeature));
const newStacks = [];
while (stack.length > 0) {
const top = stack.pop();
const allNextFeatures = findNextFeaturesInternal({
next: top,
cardinalities,
plus,
visited: new Set()
}).filter(next => token ? featureMatches(next.feature, token) : true);
for (const nextFeature of allNextFeatures) {
newStacks.push([...stack, nextFeature]);
const allNextFeatures = findNextFeaturesInternal(stack);
const matchingNextFeatures = allNextFeatures.filter(next => token ? featureMatches(next[next.length - 1].feature, token) : true);
return matchingNextFeatures;
}
export function findGroupAndChild(feature) {
let parent;
let item = feature;
while (item.$container) {
if (ast.isGroup(item.$container)) {
parent = item.$container;
break;
}
if (!allNextFeatures.every(e => isOptionalCardinality(e.feature.cardinality, e.feature) || isOptionalCardinality(cardinalities.get(e.feature)))) {
else if (ast.isAbstractElement(item.$container)) {
item = item.$container;
}
else {
break;
}
}
return newStacks;
if (parent) {
return { group: parent, child: item };
}
return {
group: undefined,
// Even if there is no group, return the feature parent if it is an assignment
// We need this later to handle the cardinality of the feature correctly
child: getContainerOfType(feature, ast.isAssignment) ?? feature
};
}
function isPlusFeature(feature) {
if (feature.cardinality === '+') {
return true;
function getAbstractElementParent(element) {
const parent = element.$container;
const assignment = getContainerOfType(parent, ast.isAssignment);
if (assignment) {
return getAbstractElementParent(assignment);
}
const assignment = getContainerOfType(feature, ast.isAssignment);
if (assignment && assignment.cardinality === '+') {
return true;
else {
if (parent && ast.isAbstractElement(parent)) {
return parent;
}
}
return false;
return undefined;
}

@@ -271,3 +294,3 @@ function featureMatches(feature, token) {

const content = feature.value;
return content === token.image;
return content === token.tokenType.name;
}

@@ -288,8 +311,5 @@ else if (ast.isRuleCall(feature)) {

const ruleFeatures = findFirstFeatures(rule.definition);
return ruleFeatures.some(e => featureMatches(e.feature, token));
return ruleFeatures.some(e => featureMatches(e[e.length - 1].feature, token));
}
else if (ast.isTerminalRule(rule)) {
// We have to take keywords into account
// e.g. most keywords are valid IDs as well
// Only return 'true' if this terminal does not match a keyword. TODO
return terminalRegex(rule).test(token.image);

@@ -296,0 +316,0 @@ }

@@ -1,1 +0,1 @@

{"version":3,"file":"follow-element-computation.js","sourceRoot":"","sources":["../../../src/lsp/completion/follow-element-computation.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"follow-element-computation.js","sourceRoot":"","sources":["../../../src/lsp/completion/follow-element-computation.ts"],"names":[],"mappings":"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"}

@@ -1,1 +0,1 @@

{"version":3,"file":"token-builder.d.ts","sourceRoot":"","sources":["../../src/parser/token-builder.ts"],"names":[],"mappings":"AAAA;;;;gFAIgF;AAEhF,OAAO,KAAK,EAAE,wBAAwB,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACnH,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClG,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAQjD,MAAM,WAAW,mBAAmB;IAChC,eAAe,CAAC,EAAE,OAAO,CAAA;CAC5B;AAED,MAAM,WAAW,YAAY;IACzB,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,eAAe,CAAC;IAC9E;;;;OAIG;IACH,iBAAiB,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAAC;CAClD;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IACzB,WAAW,EAAE,gBAAgB,EAAE,CAAC;CACnC;AAED,MAAM,MAAM,wBAAwB,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;AAE7E,MAAM,WAAW,gBAAiB,SAAQ,YAAY;IAClD,QAAQ,CAAC,EAAE,wBAAwB,CAAC;CACvC;AAED,qBAAa,mBAAoB,YAAW,YAAY;IACpD;;OAEG;IACH,SAAS,CAAC,WAAW,EAAE,gBAAgB,EAAE,CAAM;IAE/C,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,eAAe;IAe7E,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY;IAI7C,SAAS,CAAC,cAAc,IAAI,gBAAgB,EAAE;IAM9C,SAAS,CAAC,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,YAAY,CAAC,GAAG,SAAS,EAAE;IAKvE,SAAS,CAAC,kBAAkB,CAAC,QAAQ,EAAE,YAAY,GAAG,SAAS;IAiB/D,SAAS,CAAC,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAYvD,SAAS,CAAC,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,wBAAwB;IASvE,SAAS,CAAC,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,YAAY,CAAC,EAAE,cAAc,EAAE,SAAS,EAAE,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,SAAS,EAAE;IAWlI,SAAS,CAAC,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,EAAE,eAAe,EAAE,OAAO,GAAG,SAAS;IAe/G,SAAS,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,OAAO,GAAG,YAAY;IAMvF,SAAS,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE;CAStF"}
{"version":3,"file":"token-builder.d.ts","sourceRoot":"","sources":["../../src/parser/token-builder.ts"],"names":[],"mappings":"AAAA;;;;gFAIgF;AAEhF,OAAO,KAAK,EAAE,wBAAwB,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACnH,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClG,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAQjD,MAAM,WAAW,mBAAmB;IAChC,eAAe,CAAC,EAAE,OAAO,CAAA;CAC5B;AAED,MAAM,WAAW,YAAY;IACzB,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,eAAe,CAAC;IAC9E;;;;OAIG;IACH,iBAAiB,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAAC;CAClD;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IACzB,WAAW,EAAE,gBAAgB,EAAE,CAAC;CACnC;AAED,MAAM,MAAM,wBAAwB,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;AAE7E,MAAM,WAAW,gBAAiB,SAAQ,YAAY;IAClD,QAAQ,CAAC,EAAE,wBAAwB,CAAC;CACvC;AAED,qBAAa,mBAAoB,YAAW,YAAY;IACpD;;OAEG;IACH,SAAS,CAAC,WAAW,EAAE,gBAAgB,EAAE,CAAM;IAE/C,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,eAAe;IAe7E,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY;IAI7C,SAAS,CAAC,cAAc,IAAI,gBAAgB,EAAE;IAM9C,SAAS,CAAC,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,YAAY,CAAC,GAAG,SAAS,EAAE;IAKvE,SAAS,CAAC,kBAAkB,CAAC,QAAQ,EAAE,YAAY,GAAG,SAAS;IAiB/D,SAAS,CAAC,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IASvD,SAAS,CAAC,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,wBAAwB;IASvE,SAAS,CAAC,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,YAAY,CAAC,EAAE,cAAc,EAAE,SAAS,EAAE,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,SAAS,EAAE;IAWlI,SAAS,CAAC,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,EAAE,eAAe,EAAE,OAAO,GAAG,SAAS;IAe/G,SAAS,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,OAAO,GAAG,YAAY;IAMvF,SAAS,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE;CAStF"}

@@ -65,6 +65,2 @@ /******************************************************************************

}
else if (regex.source.includes('?<=') || regex.source.includes('?<!')) {
// Negative and positive lookbehind are not supported by Chevrotain yet.
return true;
}
else {

@@ -71,0 +67,0 @@ return false;

@@ -1,1 +0,1 @@

{"version":3,"file":"token-builder.js","sourceRoot":"","sources":["../../src/parser/token-builder.ts"],"names":[],"mappings":"AAAA;;;;gFAIgF;AAKhF,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,oBAAoB,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAChG,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AACtF,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AA8B5C,MAAM,OAAO,mBAAmB;IAAhC;QACI;;WAEG;QACO,gBAAW,GAAuB,EAAE,CAAC;IA+GnD,CAAC;IA7GG,WAAW,CAAC,OAAgB,EAAE,OAA6B;QACvD,MAAM,cAAc,GAAG,MAAM,CAAC,oBAAoB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;QACpE,MAAM,cAAc,GAAgB,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC;QAC7E,MAAM,MAAM,GAAgB,IAAI,CAAC,kBAAkB,CAAC,cAAc,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;QAE7F,qEAAqE;QACrE,iFAAiF;QACjF,mFAAmF;QACnF,MAAM,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,CAAC;QAC/B,iDAAiD;QACjD,gEAAgE;QAChE,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,6DAA6D;IAC7D,iBAAiB,CAAC,IAAY;QAC1B,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;IAClD,CAAC;IAES,cAAc;QACpB,MAAM,WAAW,GAAG,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;QAC1C,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,OAAO,WAAW,CAAC;IACvB,CAAC;IAES,mBAAmB,CAAC,KAA2B;QACrD,OAAO,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;aACvD,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IACtE,CAAC;IAES,kBAAkB,CAAC,QAAsB;QAC/C,MAAM,KAAK,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;QACtC,MAAM,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAC7F,MAAM,SAAS,GAAc;YACzB,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,OAAO,EAAE,OAAO;SACnB,CAAC;QACF,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE,CAAC;YAChC,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC;QACjC,CAAC;QACD,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;YAClB,sDAAsD;YACtD,SAAS,CAAC,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;QACrE,CAAC;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;IAES,qBAAqB,CAAC,KAAa;QACzC,IAAI,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACzD,8DAA8D;YAC9D,OAAO,IAAI,CAAC;QAChB,CAAC;aAAM,IAAI,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACtE,wEAAwE;YACxE,OAAO,IAAI,CAAC;QAChB,CAAC;aAAM,CAAC;YACJ,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IAES,oBAAoB,CAAC,KAAa;QACxC,MAAM,WAAW,GAAG,IAAI,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC;QACzD,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;YACpB,WAAW,CAAC,SAAS,GAAG,MAAM,CAAC;YAC/B,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1C,OAAO,UAAU,CAAC;QACtB,CAAC,CAAC;IACN,CAAC;IAES,kBAAkB,CAAC,KAA2B,EAAE,cAA2B,EAAE,OAA6B;QAChH,OAAO,KAAK;YACR,mHAAmH;aAClH,MAAM,CAAC,oBAAoB,CAAC;aAC5B,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;aAC1D,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE;YACjC,qCAAqC;aACpC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;aAC/C,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,cAAc,EAAE,OAAO,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;IAC5G,CAAC;IAES,iBAAiB,CAAC,OAAgB,EAAE,cAA2B,EAAE,eAAwB;QAC/F,MAAM,cAAc,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;QAC1E,MAAM,SAAS,GAAc;YACzB,IAAI,EAAE,OAAO,CAAC,KAAK;YACnB,OAAO,EAAE,cAAc;YACvB,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,cAAc,CAAC;SAC1D,CAAC;QAEF,IAAI,OAAO,cAAc,KAAK,UAAU,EAAE,CAAC;YACvC,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC;QACjC,CAAC;QAED,OAAO,SAAS,CAAC;IACrB,CAAC;IAES,mBAAmB,CAAC,OAAgB,EAAE,eAAwB;QACpE,OAAO,eAAe,CAAC,CAAC;YACpB,IAAI,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YAC9C,OAAO,CAAC,KAAK,CAAC;IACtB,CAAC;IAES,aAAa,CAAC,OAAgB,EAAE,cAA2B;QACjE,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC,UAAuB,EAAE,KAAK,EAAE,EAAE;YAC5D,MAAM,OAAO,GAAG,KAAK,EAAE,OAAiB,CAAC;YACzC,IAAI,OAAO,EAAE,MAAM,IAAI,cAAc,CAAC,GAAG,GAAG,OAAO,CAAC,MAAM,GAAG,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC/E,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC3B,CAAC;YACD,OAAO,UAAU,CAAC;QACtB,CAAC,EAAE,EAAE,CAAC,CAAC;IACX,CAAC;CACJ"}
{"version":3,"file":"token-builder.js","sourceRoot":"","sources":["../../src/parser/token-builder.ts"],"names":[],"mappings":"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"}

@@ -8,7 +8,8 @@ /******************************************************************************

import type { LangiumCoreServices } from '../services.js';
import type { AstNode, Properties } from '../syntax-tree.js';
import type { AstNode, AstReflection, Properties } from '../syntax-tree.js';
import type { CancellationToken } from '../utils/cancellation.js';
import { MultiMap } from '../utils/collections.js';
import type { MaybePromise } from '../utils/promise-utils.js';
import type { Stream } from '../utils/stream.js';
import type { DocumentSegment } from '../workspace/documents.js';
import type { DocumentSegment, LangiumDocument } from '../workspace/documents.js';
export type DiagnosticInfo<N extends AstNode, P extends string = Properties<N>> = {

@@ -103,2 +104,7 @@ /** The AST node to which the diagnostic is attached. */

export declare namespace ValidationCategory {
const defaults: readonly ValidationCategory[];
/**
* @deprecated since 4.2 Use `ValidationCategory.defaults` instead,
* since "all" does not include user-defined, custom validation categories.
*/
const all: readonly ValidationCategory[];

@@ -114,6 +120,7 @@ }

export declare class ValidationRegistry {
private readonly entries;
private readonly reflection;
private entriesBefore;
private entriesAfter;
protected readonly entries: MultiMap<string, ValidationCheckEntry>;
protected readonly knownCategories: Set<ValidationCategory>;
protected readonly reflection: AstReflection;
protected entriesBefore: ValidationPreparation[];
protected entriesAfter: ValidationPreparation[];
constructor(services: LangiumCoreServices);

@@ -125,4 +132,4 @@ /**

* @param checksRecord Set of validation checks to register.
* @param thisObj Optional object to be used as `this` when calling the validation check functions.
* @param category Optional category for the validation checks (defaults to `'fast'`).
* @param thisObj Optional object to be used as `this` when calling the validation check functions.
*/

@@ -171,4 +178,5 @@ register<T>(checksRecord: ValidationChecks<T>, thisObj?: ThisParameterType<unknown>, category?: ValidationCategory): void;

get checksAfter(): ValidationPreparation[];
getAllValidationCategories(_document: LangiumDocument): ReadonlySet<ValidationCategory>;
}
export {};
//# sourceMappingURL=validation-registry.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"validation-registry.d.ts","sourceRoot":"","sources":["../../src/validation/validation-registry.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"validation-registry.d.ts","sourceRoot":"","sources":["../../src/validation/validation-registry.ts"],"names":[],"mappings":"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"}

@@ -18,3 +18,8 @@ /******************************************************************************

(function (ValidationCategory) {
ValidationCategory.all = ['fast', 'slow', 'built-in'];
ValidationCategory.defaults = ['fast', 'slow', 'built-in'];
/**
* @deprecated since 4.2 Use `ValidationCategory.defaults` instead,
* since "all" does not include user-defined, custom validation categories.
*/
ValidationCategory.all = ValidationCategory.defaults;
})(ValidationCategory || (ValidationCategory = {}));

@@ -27,2 +32,3 @@ /**

this.entries = new MultiMap();
this.knownCategories = new Set(ValidationCategory.defaults);
this.entriesBefore = [];

@@ -37,4 +43,4 @@ this.entriesAfter = [];

* @param checksRecord Set of validation checks to register.
* @param thisObj Optional object to be used as `this` when calling the validation check functions.
* @param category Optional category for the validation checks (defaults to `'fast'`).
* @param thisObj Optional object to be used as `this` when calling the validation check functions.
*/

@@ -45,2 +51,3 @@ register(checksRecord, thisObj = this, category = 'fast') {

}
this.knownCategories.add(category); // remember custom/user-defined categories
for (const [type, ch] of Object.entries(checksRecord)) {

@@ -156,3 +163,6 @@ const callbacks = ch;

}
getAllValidationCategories(_document) {
return this.knownCategories;
}
}
//# sourceMappingURL=validation-registry.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"validation-registry.js","sourceRoot":"","sources":["../../src/validation/validation-registry.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"validation-registry.js","sourceRoot":"","sources":["../../src/validation/validation-registry.ts"],"names":[],"mappings":"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"}

@@ -18,3 +18,3 @@ /******************************************************************************

import { type URI } from '../utils/uri-utils.js';
import { ValidationCategory } from '../validation/validation-registry.js';
import type { ValidationCategory } from '../validation/validation-registry.js';
import { DocumentState } from './documents.js';

@@ -34,4 +34,5 @@ import type { FileSystemProvider } from './file-system-provider.js';

* - `true` enables all validation checks and forces revalidating the documents
* In order to include additional, custom validation categories, override `DefaultDocumentBuilder.getAllValidationCategories(...)`.
* - `false` or `undefined` disables all validation checks
* - An object runs only the necessary validation checks; the `categories` property restricts this to a specific subset
* - An object runs only the necessary validation checks; the `categories` property restricts this to a specific subset (which might include custom categories as well).
*/

@@ -130,5 +131,5 @@ validation?: boolean | ValidationOptions;

protected readonly indexManager: IndexManager;
protected readonly serviceRegistry: ServiceRegistry;
protected readonly fileSystemProvider: FileSystemProvider;
protected readonly workspaceManager: () => WorkspaceManager;
protected readonly serviceRegistry: ServiceRegistry;
protected readonly updateListeners: DocumentUpdateListener[];

@@ -143,2 +144,4 @@ protected readonly buildPhaseListeners: MultiMap<DocumentState, DocumentBuildListener>;

update(changed: URI[], deleted: URI[], cancelToken?: CancellationToken): Promise<void>;
protected resultsAreIncomplete(document: LangiumDocument, options: BuildOptions | undefined): boolean;
protected findMissingValidationCategories(document: LangiumDocument, options: BuildOptions | undefined): ValidationCategory[];
protected findChangedUris(changed: URI): Promise<URI[]>;

@@ -161,2 +164,3 @@ protected emitUpdate(changed: URI[], deleted: URI[]): Promise<void>;

resetToState<T extends AstNode>(document: LangiumDocument<T>, state: DocumentState): void;
protected cleanUpDeleted<T extends AstNode>(document: LangiumDocument<T>): void;
/**

@@ -172,2 +176,3 @@ * Build the given documents by stepping through all build phases. If a document's state indicates

protected buildDocuments(documents: LangiumDocument[], options: BuildOptions, cancelToken: CancellationToken): Promise<void>;
protected markAsCompleted(document: LangiumDocument): void;
/**

@@ -174,0 +179,0 @@ * Runs prior to beginning the build process to update the {@link DocumentBuildState} for each document

@@ -1,1 +0,1 @@

{"version":3,"file":"document-builder.d.ts","sourceRoot":"","sources":["../../src/workspace/document-builder.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"document-builder.d.ts","sourceRoot":"","sources":["../../src/workspace/document-builder.ts"],"names":[],"mappings":"AAAA;;;;gFAIgF;AAGhF,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtH,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAGnD,OAAO,EAAY,KAAK,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,MAAM,WAAW,YAAY;IACzB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,OAAO,CAAA;IAEtB;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,OAAO,GAAG,iBAAiB,CAAA;CAC3C;AAED,MAAM,WAAW,kBAAkB;IAC/B,+DAA+D;IAC/D,SAAS,EAAE,OAAO,CAAA;IAClB,mDAAmD;IACnD,OAAO,EAAE,YAAY,CAAA;IACrB,0DAA0D;IAC1D,MAAM,CAAC,EAAE;QACL,gBAAgB,CAAC,EAAE,kBAAkB,EAAE,CAAA;KAC1C,CAAA;CACJ;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAE5B,iEAAiE;IACjE,kBAAkB,EAAE,YAAY,CAAC;IAEjC;;;;;;;OAOG;IACH,KAAK,CAAC,CAAC,SAAS,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,YAAY,EAAE,WAAW,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvI;;;;;;;;OAQG;IACH,MAAM,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,WAAW,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvF;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,sBAAsB,GAAG,UAAU,CAAC;IAEvD;;;;;OAKG;IACH,YAAY,CAAC,CAAC,SAAS,OAAO,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,aAAa,GAAG,IAAI,CAAC;IAE1F;;OAEG;IACH,YAAY,CAAC,WAAW,EAAE,aAAa,EAAE,QAAQ,EAAE,qBAAqB,GAAG,UAAU,CAAC;IAEtF;;;;;;;;;OASG;IACH,eAAe,CAAC,WAAW,EAAE,aAAa,EAAE,QAAQ,EAAE,qBAAqB,GAAG,UAAU,CAAC;IAEzF;;;;;;OAMG;IACH,SAAS,CAAC,KAAK,EAAE,aAAa,EAAE,WAAW,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhF;;;;;;;;OAQG;IACH,SAAS,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,WAAW,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,GAAG,GAAG,SAAS,CAAC,CAAC;CACzG;AAED,MAAM,MAAM,sBAAsB,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;AAC7F,MAAM,MAAM,qBAAqB,GAAG,CAAC,KAAK,EAAE,eAAe,EAAE,EAAE,WAAW,EAAE,iBAAiB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;AACtH,MAAM,MAAM,qBAAqB,GAAG,CAAC,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,iBAAiB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;AACpH,qBAAa,sBAAuB,YAAW,eAAe;IAE1D,kBAAkB,EAAE,YAAY,CAK9B;IAEF,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IACtD,SAAS,CAAC,QAAQ,CAAC,sBAAsB,EAAE,sBAAsB,CAAC;IAClE,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,oBAAoB,GAAG,SAAS,CAAC;IACnE,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IAC9C,SAAS,CAAC,QAAQ,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;IAC1D,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;IAC5D,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAEpD,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,sBAAsB,EAAE,CAAM;IAClE,SAAS,CAAC,QAAQ,CAAC,mBAAmB,iDAAwD;IAC9F,SAAS,CAAC,QAAQ,CAAC,sBAAsB,iDAAwD;IACjG,SAAS,CAAC,QAAQ,CAAC,UAAU,kCAAyC;IACtE,SAAS,CAAC,QAAQ,CAAC,oBAAoB,8BAAqC;IAC5E,SAAS,CAAC,YAAY,gBAAyB;gBAEnC,QAAQ,EAAE,yBAAyB;IAUzC,KAAK,CAAC,CAAC,SAAS,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,GAAE,YAAiB,EAAE,WAAW,oBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC;IAqC/I,MAAM,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,WAAW,oBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC;IAsDjG,SAAS,CAAC,oBAAoB,CAAC,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,YAAY,GAAG,SAAS,GAAG,OAAO;IAIrG,SAAS,CAAC,+BAA+B,CAAC,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,YAAY,GAAG,SAAS,GAAG,kBAAkB,EAAE;cAS7G,eAAe,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;cAuB7C,UAAU,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzE;;;;;;OAMG;IACH,SAAS,CAAC,aAAa,CAAC,SAAS,EAAE,eAAe,EAAE,GAAG,eAAe,EAAE;IAqBxE,OAAO,CAAC,eAAe;IAIvB;;OAEG;IACH,SAAS,CAAC,YAAY,CAAC,QAAQ,EAAE,eAAe,EAAE,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,OAAO;IASpF,QAAQ,CAAC,QAAQ,EAAE,sBAAsB,GAAG,UAAU;IAUtD,YAAY,CAAC,CAAC,SAAS,OAAO,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,aAAa,GAAG,IAAI;IA+BzF,SAAS,CAAC,cAAc,CAAC,CAAC,SAAS,OAAO,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,IAAI;IAS/E;;;;;;;;OAQG;cACa,cAAc,CAAC,SAAS,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAwClI,SAAS,CAAC,eAAe,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IAO1D;;;;;OAKG;IACH,SAAS,CAAC,YAAY,CAAC,SAAS,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI;IAoBjF;;;;;;;;;OASG;cACa,aAAa,CAAC,SAAS,EAAE,eAAe,EAAE,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,iBAAiB,EAClH,QAAQ,EAAE,CAAC,QAAQ,EAAE,eAAe,KAAK,YAAY,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBlF,YAAY,CAAC,WAAW,EAAE,aAAa,EAAE,QAAQ,EAAE,qBAAqB,GAAG,UAAU;IAOrF,eAAe,CAAC,WAAW,EAAE,aAAa,EAAE,QAAQ,EAAE,qBAAqB,GAAG,UAAU;IAOxF,SAAS,CAAC,KAAK,EAAE,aAAa,EAAE,WAAW,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAC/E,SAAS,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,WAAW,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC;IAiBzF,SAAS,CAAC,kBAAkB,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC;IA2C1G,SAAS,CAAC,iBAAiB,CAAC,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;cAoBhF,mBAAmB,CAAC,QAAQ,EAAE,eAAe,EAAE,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;cAiBnH,gBAAgB,CAAC,SAAS,EAAE,eAAe,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAanI;;;;;OAKG;IACH,SAAS,CAAC,UAAU,CAAC,QAAQ,EAAE,eAAe,GAAG,OAAO;IAIxD;;;;OAIG;IACH,SAAS,CAAC,cAAc,CAAC,QAAQ,EAAE,eAAe,GAAG,OAAO;IAI5D;;;OAGG;cACa,QAAQ,CAAC,QAAQ,EAAE,eAAe,EAAE,WAAW,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBlG,SAAS,CAAC,eAAe,CAAC,QAAQ,EAAE,eAAe,GAAG,YAAY;CAIrE"}

@@ -13,3 +13,2 @@ /******************************************************************************

import { UriUtils } from '../utils/uri-utils.js';
import { ValidationCategory } from '../validation/validation-registry.js';
import { DocumentState } from './documents.js';

@@ -45,25 +44,21 @@ export class DefaultDocumentBuilder {

this.resetToState(document, DocumentState.IndexedReferences);
this.buildState.delete(key);
}
else if (typeof options.validation === 'object') {
const buildState = this.buildState.get(key);
const previousCategories = buildState?.result?.validationChecks;
if (previousCategories) {
// Validation with explicit options was requested for a document that has already been partly validated.
// In this case, we need to merge the previous validation categories with the new ones.
const newCategories = options.validation.categories ?? ValidationCategory.all;
const categories = newCategories.filter(c => !previousCategories.includes(c));
if (categories.length > 0) {
this.buildState.set(key, {
completed: false,
options: {
validation: {
...options.validation,
categories
}
},
result: buildState.result
});
document.state = DocumentState.IndexedReferences;
}
// Validation with explicit options was requested for a document that has already been partly validated.
// In this case, we need to execute only the missing validation categories.
const categories = this.findMissingValidationCategories(document, options);
if (categories.length > 0) {
// Validate this document, since some of the requested validation categories are not executed yet.
// In all other cases/else-branches, the document is not build at all.
this.buildState.set(key, {
completed: false,
options: {
validation: {
categories
}
},
result: this.buildState.get(key)?.result,
});
// Reset the state, but keep the existing validation markers of the already completed validation categories.
document.state = DocumentState.IndexedReferences;
}

@@ -90,4 +85,3 @@ }

deletedUris.push(doc.uri);
this.buildState.delete(doc.uri.toString());
this.indexManager.remove(doc.uri);
this.cleanUpDeleted(doc);
}

@@ -99,12 +93,12 @@ }

for (const changedUri of changedUris) {
const invalidated = this.langiumDocuments.invalidateDocument(changedUri);
if (!invalidated) {
let changedDocument = this.langiumDocuments.getDocument(changedUri);
if (changedDocument === undefined) {
// We create an unparsed, invalid document.
// This will be parsed as soon as we reach the first document builder phase.
// This allows to cancel the parsing process later in case we need it.
const newDocument = this.langiumDocumentFactory.fromModel({ $type: 'INVALID' }, changedUri);
newDocument.state = DocumentState.Changed;
this.langiumDocuments.addDocument(newDocument);
changedDocument = this.langiumDocumentFactory.fromModel({ $type: 'INVALID' }, changedUri);
changedDocument.state = DocumentState.Changed; // required, since `langiumDocumentFactory.fromModel` marks the new document as `DocumentState.Parsed`
this.langiumDocuments.addDocument(changedDocument);
}
this.buildState.delete(changedUri.toString());
this.resetToState(changedDocument, DocumentState.Changed);
}

@@ -124,8 +118,22 @@ // Set the state of all documents that should be relinked to `ComputedScopes` (if not already lower)

// This includes those that were reported as changed and those that we selected for relinking
doc.state < DocumentState.Linked
doc.state < DocumentState.Validated
// This includes those for which a previous build has been cancelled
|| !this.buildState.get(doc.uri.toString())?.completed)
|| !this.buildState.get(doc.uri.toString())?.completed
// `updateBuildOptions` changed between the last build (which is completed) and the current build,
// leading to incomplete results, e.g. some validation categories are requested, which are not executed during the last build
|| this.resultsAreIncomplete(doc, this.updateBuildOptions))
.toArray());
await this.buildDocuments(rebuildDocuments, this.updateBuildOptions, cancelToken);
}
resultsAreIncomplete(document, options) {
return this.findMissingValidationCategories(document, options).length >= 1;
}
findMissingValidationCategories(document, options) {
const state = this.buildState.get(document.uri.toString());
const allCategories = this.serviceRegistry.getServices(document.uri).validation.ValidationRegistry.getAllValidationCategories(document);
const executedCategories = state?.result?.validationChecks ? new Set(state?.result?.validationChecks) : state?.completed ? allCategories : new Set();
const requestedCategories = (options === undefined || options.validation === true) ? allCategories
: typeof options.validation === 'object' ? (options.validation.categories ?? allCategories) : [];
return stream(requestedCategories).filter(requested => !executedCategories.has(requested)).toArray();
}
async findChangedUris(changed) {

@@ -207,7 +215,3 @@ // Most common case is that the document/textDocument at the specified URI has changed

case DocumentState.Changed: {
const invalidated = this.langiumDocuments.invalidateDocument(document.uri);
if (invalidated) {
break;
}
// Else fall through
// Fall through
}

@@ -230,2 +234,6 @@ case DocumentState.Parsed:

document.diagnostics = undefined;
this.buildState.delete(document.uri.toString());
// Fall through
case DocumentState.Validated:
// do nothing and keep the buildState
}

@@ -236,2 +244,10 @@ if (document.state > state) {

}
cleanUpDeleted(document) {
this.buildState.delete(document.uri.toString());
this.indexManager.remove(document.uri);
// Since this method `cleanUpDeleted` is not available from outside, the following line is not necessary, since the state is already set before.
// This line does not hurt and makes the code to be in sync with `resetToState`.
// If `cleanUpDeleted` is called in custom document builders at some more places, this line becomes necessary.
document.state = DocumentState.Changed;
}
/**

@@ -266,10 +282,20 @@ * Build the given documents by stepping through all build phases. If a document's state indicates

// 5. Validation
const toBeValidated = documents.filter(doc => this.shouldValidate(doc));
await this.runCancelable(toBeValidated, DocumentState.Validated, cancelToken, doc => this.validate(doc, cancelToken));
// If we've made it to this point without being cancelled, we can mark the build state as completed.
for (const doc of documents) {
const state = this.buildState.get(doc.uri.toString());
if (state) {
state.completed = true;
const toBeValidated = documents.filter(doc => {
if (this.shouldValidate(doc)) {
return true; // the build state is marked as completed after finishing the validation for the current document
}
else {
this.markAsCompleted(doc); // since the validation is skipped for this document, it is already completed now
return false;
}
});
await this.runCancelable(toBeValidated, DocumentState.Validated, cancelToken, async (doc) => {
await this.validate(doc, cancelToken);
this.markAsCompleted(doc);
});
}
markAsCompleted(document) {
const state = this.buildState.get(document.uri.toString());
if (state) {
state.completed = true;
}

@@ -287,6 +313,5 @@ }

const state = this.buildState.get(key);
// If the document has no previous build state, we set it. If it has one, but it's already marked
// as completed, we overwrite it. If the previous build was not completed, we keep its state
// and continue where it was cancelled.
if (!state || state.completed) {
if (!state // If the document has no previous build state, we set it.
|| state.completed // If it has one, but it's already marked as completed, we overwrite it.
) {
this.buildState.set(key, {

@@ -298,2 +323,6 @@ completed: false,

}
else {
// If the previous build was not completed, we keep its DocumentState and continue from the DocumentState where it was cancelled,
// e.g. the previous build options are used, including the previously requested validation categories.
}
}

@@ -412,2 +441,3 @@ }

try {
await interruptAndCheck(cancelToken);
await listener(document, cancelToken);

@@ -459,7 +489,8 @@ }

const validator = this.serviceRegistry.getServices(document.uri).validation.DocumentValidator;
const validationSetting = this.getBuildOptions(document).validation;
const options = typeof validationSetting === 'object' ? validationSetting : undefined;
const diagnostics = await validator.validateDocument(document, options, cancelToken);
const options = this.getBuildOptions(document);
const validationOptions = typeof options.validation === 'object' ? { ...options.validation } : {};
validationOptions.categories = this.findMissingValidationCategories(document, options); // execute only not-yet-executed categories
const diagnostics = await validator.validateDocument(document, validationOptions, cancelToken);
if (document.diagnostics) {
document.diagnostics.push(...diagnostics);
document.diagnostics.push(...diagnostics); // keep diagnostics of previously executed categories
}

@@ -473,8 +504,7 @@ else {

state.result ?? (state.result = {});
const newCategories = options?.categories ?? ValidationCategory.all;
if (state.result.validationChecks) {
state.result.validationChecks.push(...newCategories);
state.result.validationChecks = stream(state.result.validationChecks).concat(validationOptions.categories).distinct().toArray();
}
else {
state.result.validationChecks = [...newCategories];
state.result.validationChecks = [...validationOptions.categories];
}

@@ -481,0 +511,0 @@ }

@@ -1,1 +0,1 @@

{"version":3,"file":"document-builder.js","sourceRoot":"","sources":["../../src/workspace/document-builder.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"document-builder.js","sourceRoot":"","sources":["../../src/workspace/document-builder.ts"],"names":[],"mappings":"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"}

@@ -206,2 +206,7 @@ /******************************************************************************

/**
* If the given URI is a directory, all documents within this directory are retrieved.
* If it is a file, just that single document is retrieved.
*/
getDocuments(folder: URI): LangiumDocument[];
/**
* Retrieve the document with the given URI. If not present, a new one will be created using the file system access.

@@ -227,6 +232,2 @@ * The new document will be added to the list of documents managed under this service.

/**
* Returns `true` if a document with the given URI is managed under this service.
*/
hasDocument(uri: URI): boolean;
/**
* Flag the document with the given URI as `Changed`, if present, meaning that its content

@@ -237,5 +238,11 @@ * is no longer valid. The content (parseResult) stays untouched, while internal data may

* @returns the affected {@link LangiumDocument} if existing for convenience
*
* @deprecated Since 4.2 use `DocumentBuilder.resetToState(DocumentState.Changed)` instead
*/
invalidateDocument(uri: URI): LangiumDocument | undefined;
/**
* Returns `true` if a document with the given URI is managed under this service.
*/
hasDocument(uri: URI): boolean;
/**
* Remove the document with the given URI, if present, and mark it as `Changed`, meaning

@@ -257,4 +264,5 @@ * that its content is no longer valid. The next call to `getOrCreateDocument` with the same

export declare class DefaultLangiumDocuments implements LangiumDocuments {
protected readonly services: LangiumSharedCoreServices;
protected readonly langiumDocumentFactory: LangiumDocumentFactory;
protected readonly serviceRegistry: ServiceRegistry;
private documentBuilder;
protected readonly documentTrie: UriTrie<LangiumDocument<AstNode>>;

@@ -270,2 +278,6 @@ constructor(services: LangiumSharedCoreServices);

hasDocument(uri: URI): boolean;
/**
* @deprecated Since 4.2 use `DocumentBuilder.resetToState(DocumentState.Changed)` instead
* TODO remove this for the next major release
*/
invalidateDocument(uri: URI): LangiumDocument | undefined;

@@ -272,0 +284,0 @@ deleteDocument(uri: URI): LangiumDocument | undefined;

@@ -1,1 +0,1 @@

{"version":3,"file":"documents.d.ts","sourceRoot":"","sources":["../../src/workspace/documents.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"documents.d.ts","sourceRoot":"","sources":["../../src/workspace/documents.ts"],"names":[],"mappings":"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"}

@@ -200,4 +200,5 @@ /******************************************************************************

this.documentTrie = new UriTrie();
this.services = services;
this.langiumDocumentFactory = services.workspace.LangiumDocumentFactory;
this.serviceRegistry = services.ServiceRegistry;
this.documentBuilder = () => services.workspace.DocumentBuilder;
}

@@ -247,2 +248,6 @@ get all() {

}
/**
* @deprecated Since 4.2 use `DocumentBuilder.resetToState(DocumentState.Changed)` instead
* TODO remove this for the next major release
*/
invalidateDocument(uri) {

@@ -252,7 +257,3 @@ const uriString = uri.toString();

if (langiumDoc) {
const linker = this.serviceRegistry.getServices(uri).references.Linker;
linker.unlink(langiumDoc);
langiumDoc.state = DocumentState.Changed;
langiumDoc.localSymbols = undefined;
langiumDoc.diagnostics = undefined;
this.documentBuilder().resetToState(langiumDoc, DocumentState.Changed);
}

@@ -259,0 +260,0 @@ return langiumDoc;

@@ -1,1 +0,1 @@

{"version":3,"file":"documents.js","sourceRoot":"","sources":["../../src/workspace/documents.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"documents.js","sourceRoot":"","sources":["../../src/workspace/documents.ts"],"names":[],"mappings":"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"}

@@ -17,2 +17,3 @@ /******************************************************************************

import type { WorkspaceLock } from './workspace-lock.js';
import { type Stream } from '../utils/stream.js';
export type { WorkspaceFolder };

@@ -100,2 +101,3 @@ /**

protected performStartup(folders: WorkspaceFolder[]): Promise<LangiumDocument[]>;
protected loadWorkspaceDocuments(uris: Stream<URI>, collector: (document: LangiumDocument) => void): Promise<void>;
/**

@@ -102,0 +104,0 @@ * Load all additional documents that shall be visible in the context of the given workspace

@@ -1,1 +0,1 @@

{"version":3,"file":"workspace-manager.d.ts","sourceRoot":"","sources":["../../src/workspace/workspace-manager.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"workspace-manager.d.ts","sourceRoot":"","sources":["../../src/workspace/workspace-manager.ts"],"names":[],"mappings":"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"}

@@ -65,8 +65,11 @@ /******************************************************************************

.filter(uri => !this.langiumDocuments.hasDocument(uri));
await Promise.all(uniqueUris.map(async (uri) => {
await this.loadWorkspaceDocuments(uniqueUris, collector);
this._ready.resolve();
return documents;
}
async loadWorkspaceDocuments(uris, collector) {
await Promise.all(uris.map(async (uri) => {
const document = await this.langiumDocuments.getOrCreateDocument(uri);
collector(document);
}));
this._ready.resolve();
return documents;
}

@@ -73,0 +76,0 @@ /**

@@ -1,1 +0,1 @@

{"version":3,"file":"workspace-manager.js","sourceRoot":"","sources":["../../src/workspace/workspace-manager.ts"],"names":[],"mappings":"AAAA;;;;gFAIgF;AAMhF,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAKtD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AA6E5C,MAAM,OAAO,uBAAuB;IAYhC,YAAY,QAAmC;QAV/C,wBAAmB,GAAiB,EAAE,CAAC;QAOpB,WAAM,GAAG,IAAI,QAAQ,EAAQ,CAAC;QAI7C,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC,eAAe,CAAC;QAChD,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC,SAAS,CAAC,gBAAgB,CAAC;QAC5D,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC,SAAS,CAAC,eAAe,CAAC;QAC1D,IAAI,CAAC,kBAAkB,GAAG,QAAQ,CAAC,SAAS,CAAC,kBAAkB,CAAC;QAChE,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,aAAa,CAAC;IAClD,CAAC;IAED,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;IAC/B,CAAC;IAED,IAAI,gBAAgB;QAChB,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAED,UAAU,CAAC,MAAwB;QAC/B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,gBAAgB,IAAI,SAAS,CAAC;IACxD,CAAC;IAED,WAAW,CAAC,OAA0B;QAClC,kEAAkE;QAClE,iGAAiG;QACjG,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;IAC1F,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,OAA0B,EAAE,WAAW,GAAG,iBAAiB,CAAC,IAAI;QACtF,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QACrD,6FAA6F;QAC7F,uEAAuE;QACvE,MAAM,iBAAiB,CAAC,WAAW,CAAC,CAAC;QACrC,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,mBAAmB,EAAE,WAAW,CAAC,CAAC;IACvF,CAAC;IAED;;;OAGG;IACO,KAAK,CAAC,cAAc,CAAC,OAA0B;QACrD,MAAM,SAAS,GAAsB,EAAE,CAAC;QACxC,MAAM,SAAS,GAAG,CAAC,QAAyB,EAAE,EAAE;YAC5C,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACnD,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YAChD,CAAC;QACL,CAAC,CAAC;QACF,0EAA0E;QAC1E,wHAAwH;QACxH,sGAAsG;QACtG,MAAM,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACvD,MAAM,IAAI,GAAU,EAAE,CAAC;QACvB,MAAM,OAAO,CAAC,GAAG,CACb,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;aACpC,GAAG,CAAC,KAAK,EAAC,KAAK,EAAC,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAC5D,CAAC;QACF,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC;YAC3B,uDAAuD;aACtD,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YAChC,qDAAqD;aACpD,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5D,MAAM,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,EAAC,GAAG,EAAC,EAAE;YACzC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;YACtE,SAAS,CAAC,QAAQ,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC,CAAC;QACJ,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACtB,OAAO,SAAS,CAAC;IACrB,CAAC;IAED;;;;OAIG;IACO,uBAAuB,CAAC,QAA2B,EAAE,UAA+C;QAC1G,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAED;;;;OAIG;IACO,aAAa,CAAC,eAAgC;QACpD,OAAO,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;IAC1C,CAAC;IAED;;;OAGG;IACO,KAAK,CAAC,cAAc,CAAC,UAAe,EAAE,IAAW;QACvD,IAAI,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;YACxE,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAC,KAAK,EAAC,EAAE;gBACxC,IAAI,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;oBACjC,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;wBACpB,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;oBAC/C,CAAC;yBAAM,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;wBACtB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBACzB,CAAC;gBACL,CAAC;YACL,CAAC,CAAC,CAAC,CAAC;QACR,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,OAAO,CAAC,KAAK,CAAC,uCAAuC,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1F,CAAC;IACL,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,GAAQ;QACvB,MAAM,IAAI,GAAU,EAAE,CAAC;QACvB,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,kBAAkB,CAAC,KAAqB;QACpC,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC1C,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;YACpB,OAAO,IAAI,KAAK,cAAc,IAAI,IAAI,KAAK,KAAK,CAAC;QACrD,CAAC;aAAM,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACvD,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;CAEJ"}
{"version":3,"file":"workspace-manager.js","sourceRoot":"","sources":["../../src/workspace/workspace-manager.ts"],"names":[],"mappings":"AAAA;;;;gFAIgF;AAMhF,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAKtD,OAAO,EAAE,MAAM,EAAe,MAAM,oBAAoB,CAAC;AA4EzD,MAAM,OAAO,uBAAuB;IAYhC,YAAY,QAAmC;QAV/C,wBAAmB,GAAiB,EAAE,CAAC;QAOpB,WAAM,GAAG,IAAI,QAAQ,EAAQ,CAAC;QAI7C,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC,eAAe,CAAC;QAChD,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC,SAAS,CAAC,gBAAgB,CAAC;QAC5D,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC,SAAS,CAAC,eAAe,CAAC;QAC1D,IAAI,CAAC,kBAAkB,GAAG,QAAQ,CAAC,SAAS,CAAC,kBAAkB,CAAC;QAChE,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,aAAa,CAAC;IAClD,CAAC;IAED,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;IAC/B,CAAC;IAED,IAAI,gBAAgB;QAChB,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAED,UAAU,CAAC,MAAwB;QAC/B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,gBAAgB,IAAI,SAAS,CAAC;IACxD,CAAC;IAED,WAAW,CAAC,OAA0B;QAClC,kEAAkE;QAClE,iGAAiG;QACjG,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;IAC1F,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,OAA0B,EAAE,WAAW,GAAG,iBAAiB,CAAC,IAAI;QACtF,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QACrD,6FAA6F;QAC7F,uEAAuE;QACvE,MAAM,iBAAiB,CAAC,WAAW,CAAC,CAAC;QACrC,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,mBAAmB,EAAE,WAAW,CAAC,CAAC;IACvF,CAAC;IAED;;;OAGG;IACO,KAAK,CAAC,cAAc,CAAC,OAA0B;QACrD,MAAM,SAAS,GAAsB,EAAE,CAAC;QACxC,MAAM,SAAS,GAAG,CAAC,QAAyB,EAAE,EAAE;YAC5C,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACnD,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YAChD,CAAC;QACL,CAAC,CAAC;QACF,0EAA0E;QAC1E,wHAAwH;QACxH,sGAAsG;QACtG,MAAM,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACvD,MAAM,IAAI,GAAU,EAAE,CAAC;QACvB,MAAM,OAAO,CAAC,GAAG,CACb,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;aACpC,GAAG,CAAC,KAAK,EAAC,KAAK,EAAC,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAC5D,CAAC;QACF,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC;YAC3B,uDAAuD;aACtD,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YAChC,qDAAqD;aACpD,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5D,MAAM,IAAI,CAAC,sBAAsB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QACzD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACtB,OAAO,SAAS,CAAC;IACrB,CAAC;IAES,KAAK,CAAC,sBAAsB,CAAC,IAAiB,EAAE,SAA8C;QACpG,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAC,GAAG,EAAC,EAAE;YACnC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;YACtE,SAAS,CAAC,QAAQ,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC,CAAC;IACR,CAAC;IAED;;;;OAIG;IACO,uBAAuB,CAAC,QAA2B,EAAE,UAA+C;QAC1G,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAED;;;;OAIG;IACO,aAAa,CAAC,eAAgC;QACpD,OAAO,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;IAC1C,CAAC;IAED;;;OAGG;IACO,KAAK,CAAC,cAAc,CAAC,UAAe,EAAE,IAAW;QACvD,IAAI,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;YACxE,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAC,KAAK,EAAC,EAAE;gBACxC,IAAI,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;oBACjC,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;wBACpB,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;oBAC/C,CAAC;yBAAM,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;wBACtB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBACzB,CAAC;gBACL,CAAC;YACL,CAAC,CAAC,CAAC,CAAC;QACR,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,OAAO,CAAC,KAAK,CAAC,uCAAuC,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1F,CAAC;IACL,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,GAAQ;QACvB,MAAM,IAAI,GAAU,EAAE,CAAC;QACvB,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,kBAAkB,CAAC,KAAqB;QACpC,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC1C,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;YACpB,OAAO,IAAI,KAAK,cAAc,IAAI,IAAI,KAAK,KAAK,CAAC;QACrD,CAAC;aAAM,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACvD,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;CAEJ"}
{
"name": "langium",
"version": "4.1.3",
"version": "4.2.0",
"description": "A language engineering tool for the Language Server Protocol",

@@ -68,4 +68,4 @@ "homepage": "https://langium.org",

"dependencies": {
"chevrotain": "~11.0.3",
"chevrotain-allstar": "~0.3.0",
"chevrotain": "~11.1.1",
"chevrotain-allstar": "~0.3.1",
"vscode-languageserver": "~9.0.1",

@@ -76,9 +76,5 @@ "vscode-languageserver-textdocument": "~1.0.11",

"devDependencies": {
"langium-cli": "~4.1.0",
"langium-cli": "~4.2.0",
"typedoc": "~0.28.2"
},
"volta": {
"node": "20.19.2",
"npm": "10.8.2"
},
"repository": {

@@ -85,0 +81,0 @@ "type": "git",

@@ -172,3 +172,14 @@ /******************************************************************************

return reduceWithIsLast(iterable, (node, it, i, isLast) => {
const doAppendNewLines = (node: CompositeGeneratorNode) => {
if (node.isEmpty()) {
// do nothing
return;
} else if (appendNewLineIfNotEmpty === true || appendNewLineIfNotEmpty === 1) {
node.appendNewLineIfNotEmpty();
} else {
node.append(new NewLineNode(undefined, true, appendNewLineIfNotEmpty));
}
};
return reduceWithIsLast<T, CompositeGeneratorNode>(iterable, (node, it, i, isLast) => {
if (filter && !filter(it, i, isLast)) {

@@ -179,6 +190,3 @@ return node;

return content === undefined ? /* in this case don't append anything to */ node : /* otherwise: */ (node ??= new CompositeGeneratorNode())
.append(prefixFunc(it, i, isLast))
.append(content)
.append(suffixFunc(it, i, isLast))
.appendIf(!isLast, separator)
.appendIf(!node.isEmpty(), separator)
.appendIf(

@@ -188,10 +196,12 @@ // append 'newLineIfNotEmpty' elements only if 'node' has some content already,

// the indentation is not properly applied to the first non-empty line of the (this) child node
// besides, append the newLine(s) only if more lines are following, or if appending a newline
// is not suppressed for the final item
!node.isEmpty() && !!appendNewLineIfNotEmpty && (!isLast || !skipNewLineAfterLastItem),
n => (appendNewLineIfNotEmpty === true || appendNewLineIfNotEmpty === 1)
? n.appendNewLineIfNotEmpty()
: n.append(new NewLineNode(undefined, true, appendNewLineIfNotEmpty))
);
});
appendNewLineIfNotEmpty !== undefined,
doAppendNewLines
)
.append(prefixFunc(it, i, isLast))
.append(content)
.append(suffixFunc(it, i, isLast));
})?.appendIf(
!skipNewLineAfterLastItem && appendNewLineIfNotEmpty !== undefined,
doAppendNewLines
);
}

@@ -407,3 +417,3 @@

initial?: R
) {
): R | undefined {
const iterator = iterable[Symbol.iterator]();

@@ -410,0 +420,0 @@ let next = iterator.next();

@@ -28,10 +28,9 @@ /******************************************************************************

* expandToNode`
* This is the beginning of something
* This is the beginning of something
*
* ${foo.bar ? expandToNode`
* bla bla bla ${foo.bar}
* ${foo.bar ? expandToNode`
* bla bla bla ${foo.bar}
*
* `: undefined
* }
* end of template
* `: undefined}
* end of something
* `

@@ -41,11 +40,13 @@ * ```

* Rule:
* In case of a multiline template the content of the first line including its terminating
* line break is ignored, if and only if it is empty of contains whitespace only. Futhermore,
* in case of a multiline template the content of the last line including its preceding line break
* (last one within the template) is ignored, if and only if it is empty of contains whitespace only.
* Thus, the result of all of the following invocations is identical and equal to `generatedContent`.
* In case of a multiline template
* 1. the content of the first line including its terminating line break is ignored,
* if and only if it is empty or contains whitespace only.
* 2. the content of the last line including its preceding line break (last line within the template excluding the trailing backtick) is ignored,
* if and only if it is empty or contains whitespace only, and the whitespace in-between the last line break and the trailing backtick
* is a real prefix of the common indentation among all none-empty lines of the template, i.e.,
* it is shorter than the common indentation that is trimmed during processing the template provided that common indentation is identifiable.
*
* Thus, the results of all of the following invocations are identical and equal to `generatedContent`.
* ```ts
* expandToNode`generatedContent`
* expandToNode`generatedContent
* `
* expandToNode`

@@ -56,5 +57,16 @@ * generatedContent`

* `
* expandToNode`
* generatedContent
* `
* ```
* In contrast, the results of the following invocations are equal to `generatedContent\n` (or `generatedContent\r\n` on MS Windows)
* ```ts
* expandToNode`generatedContent
* `
* expandToNode`
* generatedContent
* `
* ```
*
* In addition, a second rule is applied in the handling of line breaks:
* In addition, a third rule is applied while processing line breaks:
* If a line's last substitution contributes `undefined` or an object of type {@link GeneratorNode},

@@ -66,4 +78,4 @@ * the subsequent line break will be appended via {@link CompositeGeneratorNode.appendNewLineIfNotEmpty}.

* That holds in particular, if the last substitution contributes an empty string. In consequence,
* adding `${''}` to the end of a line consisting of whitespace and substitions only
* enforces the line break to be rendered, no matter what the substitions actually contribute.
* adding `${''}` to the end of a line consisting of whitespace and substitutions only
* enforces the line break to be rendered, no matter what the substitutions actually contribute.
*

@@ -533,3 +545,3 @@ * @param staticParts the static parts of a tagged template literal

// the whitespace between 'return' and '${foo(bar)}' shall not add to the indentation of '${foo(bar)}'s result!
const indent: string = (i === 0 || isNewLineMarker(splitAndMerged[i - 1])) && typeof segment === 'string' && segment.length !== 0 ? ''.padStart(segment.length - segment.trimStart().length) : '';
const indent: string = (i === 0 || isNewLineMarker(splitAndMerged[i - 1])) && typeof segment === 'string' && segment.length !== 0 ? segment.substring(0, segment.length - segment.trimStart().length) : '';
const content = isSubstitutionWrapper(segment)? segment.content : segment;

@@ -536,0 +548,0 @@ let indented: IndentNode | undefined;

/******************************************************************************
* This file was generated by langium-cli 4.1.0.
* This file was generated by langium-cli 4.2.0.
* DO NOT EDIT MANUALLY!

@@ -4,0 +4,0 @@ ******************************************************************************/

/******************************************************************************
* This file was generated by langium-cli 4.1.0.
* This file was generated by langium-cli 4.2.0.
* DO NOT EDIT MANUALLY!

@@ -4,0 +4,0 @@ ******************************************************************************/

@@ -76,5 +76,5 @@ /******************************************************************************

module?: Module<LangiumGrammarServices, DeepPartial<LangiumServices & LangiumGrammarAddedServices>>): {
shared: LangiumSharedServices,
grammar: LangiumGrammarServices
} {
shared: LangiumSharedServices,
grammar: LangiumGrammarServices
} {
const shared = inject(

@@ -81,0 +81,0 @@ createDefaultSharedModule(context),

/******************************************************************************
* This file was generated by langium-cli 4.1.0.
* This file was generated by langium-cli 4.2.0.
* DO NOT EDIT MANUALLY!

@@ -4,0 +4,0 @@ ******************************************************************************/

@@ -12,3 +12,3 @@ /******************************************************************************

import type { LangiumServices } from '../lsp-services.js';
import type { AstNode, AstNodeDescription, AstReflection, CstNode, MultiReference, Reference, ReferenceInfo } from '../../syntax-tree.js';
import type { AstNode, AstNodeDescription, AstReflection, CstNode, MultiReference, Mutable, Reference, ReferenceInfo } from '../../syntax-tree.js';
import type { CancellationToken } from '../../utils/cancellation.js';

@@ -29,3 +29,3 @@ import type { MaybePromise } from '../../utils/promise-utils.js';

import { findDeclarationNodeAtOffset, findLeafNodeBeforeOffset, getDatatypeNode } from '../../utils/cst-utils.js';
import { getEntryRule, getExplicitRuleType } from '../../utils/grammar-utils.js';
import { getEntryRule } from '../../utils/grammar-utils.js';
import { stream, type Stream } from '../../utils/stream.js';

@@ -213,14 +213,5 @@ import { findFirstFeatures, findNextFeatures } from './follow-element-computation.js';

const parserRule = getEntryRule(this.grammar)!;
const firstFeatures = findFirstFeatures({
feature: parserRule.definition,
type: getExplicitRuleType(parserRule)
});
if (tokens.length > 0) {
// We have to skip the first token
// The interpreter will only look at the next features, which requires every token after the first
tokens.shift();
return findNextFeatures(firstFeatures.map(e => [e]), tokens);
} else {
return firstFeatures;
}
// Generate a synthetic RuleCall to the entry rule
const syntheticEntryRuleCall = this.buildSyntheticEntryRuleCall(parserRule);
return findNextFeatures([[syntheticEntryRuleCall]], tokens);
}

@@ -232,2 +223,35 @@ const leftoverTokens = [...tokens].splice(parserResult.tokenIndex);

protected buildSyntheticEntryRuleCall(rule: ast.ParserRule): NextFeature {
// The "start" node is simply an empty group that is followed by the rule call
const start: ast.Group = {
$type: 'Group',
$container: undefined!,
elements: []
};
const startNext: NextFeature<ast.Group> = {
feature: start
};
// This is the element that we want to complete
const ruleCall: ast.RuleCall = {
$type: 'RuleCall',
$container: undefined!,
rule: {
ref: rule,
$refText: rule.name
},
arguments: []
};
const group: ast.Group = {
$type: 'Group',
$container: undefined!,
elements: [
start,
ruleCall
]
};
(start as Mutable<AstNode>).$container = group;
(ruleCall as Mutable<AstNode>).$container = group;
return startNext;
}
protected *buildContexts(document: LangiumDocument, position: Position): IterableIterator<CompletionContext> {

@@ -310,3 +334,3 @@ const cst = document.parseResult.value.$cstNode;

tokenEndOffset: nextTokenEnd,
features: findFirstFeatures(parserRule.definition)
features: findFirstFeatures(parserRule.definition).map(f => f[f.length - 1]),
};

@@ -313,0 +337,0 @@ } else if (performNextCompletion) {

@@ -9,6 +9,4 @@ /******************************************************************************

import * as ast from '../../languages/generated/ast.js';
import { isAstNode } from '../../syntax-tree.js';
import { getCrossReferenceTerminal, getExplicitRuleType, getTypeName, isArrayCardinality, isOptionalCardinality, terminalRegex } from '../../utils/grammar-utils.js';
import { getContainerOfType } from '../../utils/ast-utils.js';
import type { Cardinality } from '../../utils/grammar-utils.js';
import { getCrossReferenceTerminal, getExplicitRuleType, getTypeName, isArrayCardinality, isOptionalCardinality, terminalRegex } from '../../utils/grammar-utils.js';

@@ -34,3 +32,3 @@ export interface NextFeature<T extends ast.AbstractElement = ast.AbstractElement> {

* @param featureStack A stack of features starting at the entry rule and ending at the feature of the current cursor position.
* @param unparsedTokens All tokens which haven't been parsed successfully yet. This is the case when we call this function inside an alternative.
* @param unparsedTokens All tokens which haven't been parsed successfully yet. This is the case when we call this function inside an alternative or before parsing any tokens.
* @returns Any `AbstractElement` that could be following the given feature stack.

@@ -51,64 +49,70 @@ */

function findNextFeaturesInternal(options: { next: NextFeature, cardinalities: Map<ast.AbstractElement, Cardinality>, visited: Set<ast.AbstractElement>, plus: Set<ast.AbstractElement> }): NextFeature[] {
const { next, cardinalities, visited, plus } = options;
const features: NextFeature[] = [];
const feature = next.feature;
if (visited.has(feature)) {
return [];
} else if (!ast.isGroup(feature)) {
// Do not add the feature to the list if it is a group
// `findFirstFeaturesInternal` will take care of this
visited.add(feature);
function findNextFeaturesInternal(stack: NextFeature[]): NextFeature[][] {
const features: NextFeature[][] = [];
if (stack.length === 0) {
return features;
}
let parent: ast.Group | undefined;
let item = feature;
while (item.$container) {
if (ast.isGroup(item.$container)) {
parent = item.$container;
break;
} else if (ast.isAbstractElement(item.$container)) {
item = item.$container;
} else {
break;
}
}
// First try to iterate the same element again
if (isArrayCardinality(item.cardinality)) {
const top = stack[stack.length - 1];
const { group, child } = findGroupAndChild(top.feature);
if (isArrayCardinality(child.cardinality)) {
// The feature can appear again, so we try to find its first features again
const repeatingFeatures = findFirstFeaturesInternal({
next: {
feature: item,
type: next.type
},
cardinalities,
visited,
plus
feature: child,
type: top.type,
property: top.property
});
for (const repeatingFeature of repeatingFeatures) {
plus.add(repeatingFeature.feature);
}
features.push(...repeatingFeatures);
}
if (parent) {
const ownIndex = parent.elements.indexOf(item);
// Find next elements of the same group
if (ownIndex !== undefined && ownIndex < parent.elements.length - 1) {
features.push(...findNextFeaturesInGroup({
feature: parent,
type: next.type
}, ownIndex + 1, cardinalities, visited, plus));
}
// Try to find the next elements of the parent
// Only do this if every following element is either optional or has been parsed as +
if (features.every(e => isOptionalCardinality(e.feature.cardinality, e.feature) || isOptionalCardinality(cardinalities.get(e.feature)) || plus.has(e.feature))) {
features.push(...findNextFeaturesInternal({
next: {
let groupIndex = -1;
if (group) {
groupIndex = group.elements.indexOf(child);
}
const parentStack = stack.slice(0, -1);
if (!group) {
const parent = getAbstractElementParent(child);
if (parent) {
// The feature is not part of a group
// But the parent might be
features.push(...findNextFeaturesInternal([
...parentStack,
{
feature: parent,
type: next.type
},
cardinalities,
visited,
plus
}));
}
]));
} else {
// The feature is "standalone", meaning it is the top-level feature of a rule
// The next elements are defined by the previous stack elements
features.push(...findNextFeaturesInternal(parentStack));
}
} else {
// The feature is somewhere within the group
const nextIndex = groupIndex + 1;
const { stacks, end } = findNextFeaturesInGroup({
feature: group,
type: top.type
}, nextIndex);
for (const newStack of stacks) {
features.push([...parentStack, ...newStack]);
}
// If we reached the end of the group, continue searching for following features
if (end) {
// Set groupIndex to the last element index to indicate that we are at the end of the group
// This will trigger the parent search below
groupIndex = group.elements.length - 1;
}
}
if (group && groupIndex === group.elements.length - 1) {
// The feature is the last element of a group
// The next elements are defined by the parent group
features.push(...findNextFeaturesInternal([
...parentStack,
{
feature: group,
}
]));
}
return features;

@@ -121,63 +125,39 @@ }

*/
export function findFirstFeatures(next: ast.AbstractElement | NextFeature): NextFeature[] {
if (isAstNode(next)) {
next = { feature: next };
}
return findFirstFeaturesInternal({ next, cardinalities: new Map(), visited: new Set(), plus: new Set() });
export function findFirstFeatures(next: ast.AbstractElement): NextFeature[][] {
return findFirstFeaturesInternal({ feature: next });
}
function findFirstFeaturesInternal(options: { next: NextFeature, cardinalities: Map<ast.AbstractElement, Cardinality>, visited: Set<ast.AbstractElement>, plus: Set<ast.AbstractElement> }): NextFeature[] {
const { next, cardinalities, visited, plus } = options;
if (next === undefined) {
return [];
}
function findFirstFeaturesInternal(next: NextFeature): NextFeature[][] {
const { feature, type } = next;
if (ast.isGroup(feature)) {
if (visited.has(feature)) {
return [];
} else {
visited.add(feature);
}
return findNextFeaturesInGroup(next as NextFeature<ast.Group>, 0, cardinalities, visited, plus)
.map(e => modifyCardinality(e, feature.cardinality, cardinalities));
return findNextFeaturesInGroup(next as NextFeature<ast.Group>, 0).stacks;
} else if (ast.isAlternatives(feature) || ast.isUnorderedGroup(feature)) {
return feature.elements.flatMap(e => findFirstFeaturesInternal({
next: {
feature: e,
type,
property: next.property
},
cardinalities,
visited,
plus
}))
.map(e => modifyCardinality(e, feature.cardinality, cardinalities));
feature: e,
type,
property: next.property
}));
} else if (ast.isAssignment(feature)) {
const assignmentNext = {
return findFirstFeaturesInternal({
feature: feature.terminal,
type,
property: next.property ?? feature.feature
};
return findFirstFeaturesInternal({ next: assignmentNext, cardinalities, visited, plus })
.map(e => modifyCardinality(e, feature.cardinality, cardinalities));
});
} else if (ast.isAction(feature)) {
return findNextFeaturesInternal({
next: {
feature,
type: getTypeName(feature),
property: next.property ?? feature.feature
},
cardinalities,
visited,
plus
});
return findNextFeaturesInternal([{
feature,
type: getTypeName(feature),
property: next.property ?? feature.feature
}]);
} else if (ast.isRuleCall(feature) && ast.isParserRule(feature.rule.ref)) {
const rule = feature.rule.ref;
const ruleCallNext = {
const stacks = findFirstFeaturesInternal({
feature: rule.definition,
type: rule.fragment || rule.dataType ? undefined : (getExplicitRuleType(rule) ?? rule.name),
property: next.property
};
return findFirstFeaturesInternal({ next: ruleCallNext, cardinalities, visited, plus })
.map(e => modifyCardinality(e, feature.cardinality, cardinalities));
});
for (const stack of stacks) {
stack.unshift(next);
}
return stacks;
} else if (ast.isRuleCall(feature) && ast.isInfixRule(feature.rule.ref)) {

@@ -190,31 +170,30 @@ const rule = feature.rule.ref;

}
const ruleCallNext = {
const stacks = findFirstFeaturesInternal({
feature: call.definition,
type: getExplicitRuleType(call) ?? call.name,
property: 'parts'
};
return findFirstFeaturesInternal({ next: ruleCallNext, cardinalities, visited, plus })
.map(e => modifyCardinality(e, feature.cardinality, cardinalities));
});
for (const stack of stacks) {
stack.unshift(next);
}
return stacks;
} else {
return [next];
return [[next]];
}
}
/**
* Modifying the cardinality is necessary to identify which features are coming from an optional feature.
* Those features should be optional as well.
* @param next The next feature that could be made optionally.
* @param cardinality The cardinality of the calling (parent) object.
* @returns A new feature that could be now optional (`?` or `*`).
*/
function modifyCardinality(next: NextFeature, cardinality: Cardinality, cardinalities: Map<ast.AbstractElement, Cardinality>): NextFeature {
cardinalities.set(next.feature, cardinality);
return next;
interface FirstGroupFeatures {
stacks: NextFeature[][]
/**
* Indicates whether the end of the group has been reached.
* If true, the caller should continue searching for following features.
*/
end: boolean
}
function findNextFeaturesInGroup(next: NextFeature<ast.Group>, index: number, cardinalities: Map<ast.AbstractElement, Cardinality>, visited: Set<ast.AbstractElement>, plus: Set<ast.AbstractElement>): NextFeature[] {
const features: NextFeature[] = [];
function findNextFeaturesInGroup(next: NextFeature<ast.Group>, index: number): FirstGroupFeatures {
const features: NextFeature[][] = [];
let firstFeature: NextFeature;
while (index < next.feature.elements.length) {
const feature = next.feature.elements[index++];
const feature = next.feature.elements[index];
firstFeature = {

@@ -224,15 +203,58 @@ feature,

};
features.push(...findFirstFeaturesInternal({
next: firstFeature,
cardinalities,
visited,
plus
}));
if (!isOptionalCardinality(firstFeature.feature.cardinality ?? cardinalities.get(firstFeature.feature), firstFeature.feature)) {
const stacks = findFirstFeaturesInternal(firstFeature);
features.push(...stacks);
if (isElementOptional(feature, new Map())) {
// Continue with the next element
index++;
} else {
break;
}
}
return features;
return {
stacks: features,
end: index >= next.feature.elements.length
};
}
/**
* Determines recursively whether an element is optional. It is not sufficient to check only the cardinality of the element itself,
* because it could a group or alternative that contains only optional elements.
*/
function isElementOptional(feature: ast.AbstractElement, visited: Map<ast.AbstractElement, boolean>): boolean {
const visitedResult = visited.get(feature);
if (visitedResult !== undefined) {
return visitedResult;
}
visited.set(feature, false);
if (isOptionalCardinality(feature.cardinality, feature)) {
visited.set(feature, true);
return true;
}
if (ast.isGroup(feature)) {
for (const element of feature.elements) {
if (!isElementOptional(element, visited)) {
visited.set(feature, false);
return false;
}
}
visited.set(feature, true);
return true;
} else if (ast.isAlternatives(feature) || ast.isUnorderedGroup(feature)) {
for (const element of feature.elements) {
if (isElementOptional(element, visited)) {
visited.set(feature, true);
return true;
}
}
visited.set(feature, false);
return false;
} else if (ast.isRuleCall(feature) && ast.isParserRule(feature.rule.ref)) {
const rule = feature.rule.ref;
const result = isElementOptional(rule.definition, visited);
visited.set(feature, result);
return result;
}
return false;
}
interface InterpretationContext {

@@ -259,32 +281,42 @@ tokens: IToken[]

function interpretStackToken(stack: NextFeature[], token?: IToken): NextFeature[][] {
const cardinalities = new Map<ast.AbstractElement, Cardinality>();
const plus = new Set<ast.AbstractElement>(stack.map(e => e.feature).filter(isPlusFeature));
const newStacks: NextFeature[][] = [];
while (stack.length > 0) {
const top = stack.pop()!;
const allNextFeatures = findNextFeaturesInternal({
next: top,
cardinalities,
plus,
visited: new Set()
}).filter(next => token ? featureMatches(next.feature, token) : true);
for (const nextFeature of allNextFeatures) {
newStacks.push([...stack, nextFeature]);
}
if (!allNextFeatures.every(e => isOptionalCardinality(e.feature.cardinality, e.feature) || isOptionalCardinality(cardinalities.get(e.feature)))) {
const allNextFeatures = findNextFeaturesInternal(stack);
const matchingNextFeatures = allNextFeatures.filter(next => token ? featureMatches(next[next.length - 1].feature, token) : true);
return matchingNextFeatures;
}
export function findGroupAndChild(feature: ast.AbstractElement): { group: ast.Group | undefined, child: ast.AbstractElement } {
let parent: ast.Group | undefined;
let item = feature;
while (item.$container) {
if (ast.isGroup(item.$container)) {
parent = item.$container;
break;
} else if (ast.isAbstractElement(item.$container)) {
item = item.$container;
} else {
break;
}
}
return newStacks;
if (parent) {
return { group: parent, child: item };
}
return {
group: undefined,
// Even if there is no group, return the feature parent if it is an assignment
// We need this later to handle the cardinality of the feature correctly
child: getContainerOfType(feature, ast.isAssignment) ?? feature
};
}
function isPlusFeature(feature: ast.AbstractElement): boolean {
if (feature.cardinality === '+') {
return true;
function getAbstractElementParent(element: ast.AbstractElement): ast.AbstractElement | undefined {
const parent = element.$container;
const assignment = getContainerOfType(parent, ast.isAssignment);
if (assignment) {
return getAbstractElementParent(assignment);
} else {
if (parent && ast.isAbstractElement(parent)) {
return parent;
}
}
const assignment = getContainerOfType(feature, ast.isAssignment);
if (assignment && assignment.cardinality === '+') {
return true;
}
return false;
return undefined;
}

@@ -295,3 +327,3 @@

const content = feature.value;
return content === token.image;
return content === token.tokenType.name;
} else if (ast.isRuleCall(feature)) {

@@ -311,7 +343,4 @@ return ruleMatches(feature.rule.ref, token);

const ruleFeatures = findFirstFeatures(rule.definition);
return ruleFeatures.some(e => featureMatches(e.feature, token));
return ruleFeatures.some(e => featureMatches(e[e.length - 1].feature, token));
} else if (ast.isTerminalRule(rule)) {
// We have to take keywords into account
// e.g. most keywords are valid IDs as well
// Only return 'true' if this terminal does not match a keyword. TODO
return terminalRegex(rule).test(token.image);

@@ -318,0 +347,0 @@ } else {

@@ -102,5 +102,2 @@ /******************************************************************************

return true;
} else if (regex.source.includes('?<=') || regex.source.includes('?<!')) {
// Negative and positive lookbehind are not supported by Chevrotain yet.
return true;
} else {

@@ -107,0 +104,0 @@ return false;

@@ -17,3 +17,3 @@ /******************************************************************************

import { stream } from '../utils/stream.js';
import type { DocumentSegment } from '../workspace/documents.js';
import type { DocumentSegment, LangiumDocument } from '../workspace/documents.js';

@@ -120,3 +120,8 @@ export type DiagnosticInfo<N extends AstNode, P extends string = Properties<N>> = {

export namespace ValidationCategory {
export const all: readonly ValidationCategory[] = ['fast', 'slow', 'built-in'];
export const defaults: readonly ValidationCategory[] = ['fast', 'slow', 'built-in'];
/**
* @deprecated since 4.2 Use `ValidationCategory.defaults` instead,
* since "all" does not include user-defined, custom validation categories.
*/
export const all: readonly ValidationCategory[] = defaults;
}

@@ -133,8 +138,10 @@

export class ValidationRegistry {
private readonly entries = new MultiMap<string, ValidationCheckEntry>();
private readonly reflection: AstReflection;
protected readonly entries = new MultiMap<string, ValidationCheckEntry>();
protected readonly knownCategories = new Set(ValidationCategory.defaults);
private entriesBefore: ValidationPreparation[] = [];
private entriesAfter: ValidationPreparation[] = [];
protected readonly reflection: AstReflection;
protected entriesBefore: ValidationPreparation[] = [];
protected entriesAfter: ValidationPreparation[] = [];
constructor(services: LangiumCoreServices) {

@@ -149,4 +156,4 @@ this.reflection = services.shared.AstReflection;

* @param checksRecord Set of validation checks to register.
* @param thisObj Optional object to be used as `this` when calling the validation check functions.
* @param category Optional category for the validation checks (defaults to `'fast'`).
* @param thisObj Optional object to be used as `this` when calling the validation check functions.
*/

@@ -157,2 +164,3 @@ register<T>(checksRecord: ValidationChecks<T>, thisObj: ThisParameterType<unknown> = this, category: ValidationCategory = 'fast'): void {

}
this.knownCategories.add(category); // remember custom/user-defined categories
for (const [type, ch] of Object.entries(checksRecord)) {

@@ -275,2 +283,5 @@ const callbacks = ch as ValidationCheck | ValidationCheck[];

getAllValidationCategories(_document: LangiumDocument): ReadonlySet<ValidationCategory> {
return this.knownCategories;
}
}

@@ -22,3 +22,3 @@ /******************************************************************************

import { UriUtils, type URI } from '../utils/uri-utils.js';
import { ValidationCategory } from '../validation/validation-registry.js';
import type { ValidationCategory } from '../validation/validation-registry.js';
import { DocumentState } from './documents.js';

@@ -40,4 +40,5 @@ import type { FileSystemProvider } from './file-system-provider.js';

* - `true` enables all validation checks and forces revalidating the documents
* In order to include additional, custom validation categories, override `DefaultDocumentBuilder.getAllValidationCategories(...)`.
* - `false` or `undefined` disables all validation checks
* - An object runs only the necessary validation checks; the `categories` property restricts this to a specific subset
* - An object runs only the necessary validation checks; the `categories` property restricts this to a specific subset (which might include custom categories as well).
*/

@@ -155,5 +156,6 @@ validation?: boolean | ValidationOptions

protected readonly indexManager: IndexManager;
protected readonly serviceRegistry: ServiceRegistry;
protected readonly fileSystemProvider: FileSystemProvider;
protected readonly workspaceManager: () => WorkspaceManager;
protected readonly serviceRegistry: ServiceRegistry;
protected readonly updateListeners: DocumentUpdateListener[] = [];

@@ -183,24 +185,20 @@ protected readonly buildPhaseListeners = new MultiMap<DocumentState, DocumentBuildListener>();

this.resetToState(document, DocumentState.IndexedReferences);
this.buildState.delete(key);
} else if (typeof options.validation === 'object') {
const buildState = this.buildState.get(key);
const previousCategories = buildState?.result?.validationChecks;
if (previousCategories) {
// Validation with explicit options was requested for a document that has already been partly validated.
// In this case, we need to merge the previous validation categories with the new ones.
const newCategories = options.validation.categories ?? ValidationCategory.all as ValidationCategory[];
const categories = newCategories.filter(c => !previousCategories.includes(c));
if (categories.length > 0) {
this.buildState.set(key, {
completed: false,
options: {
validation: {
...options.validation,
categories
}
},
result: buildState.result
});
document.state = DocumentState.IndexedReferences;
}
// Validation with explicit options was requested for a document that has already been partly validated.
// In this case, we need to execute only the missing validation categories.
const categories = this.findMissingValidationCategories(document, options);
if (categories.length > 0) {
// Validate this document, since some of the requested validation categories are not executed yet.
// In all other cases/else-branches, the document is not build at all.
this.buildState.set(key, {
completed: false,
options: {
validation: {
categories
}
},
result: this.buildState.get(key)?.result,
});
// Reset the state, but keep the existing validation markers of the already completed validation categories.
document.state = DocumentState.IndexedReferences;
}

@@ -227,4 +225,3 @@ }

deletedUris.push(doc.uri);
this.buildState.delete(doc.uri.toString());
this.indexManager.remove(doc.uri);
this.cleanUpDeleted(doc);
}

@@ -236,12 +233,12 @@ }

for (const changedUri of changedUris) {
const invalidated = this.langiumDocuments.invalidateDocument(changedUri);
if (!invalidated) {
let changedDocument = this.langiumDocuments.getDocument(changedUri);
if (changedDocument === undefined) {
// We create an unparsed, invalid document.
// This will be parsed as soon as we reach the first document builder phase.
// This allows to cancel the parsing process later in case we need it.
const newDocument = this.langiumDocumentFactory.fromModel({ $type: 'INVALID' }, changedUri);
newDocument.state = DocumentState.Changed;
this.langiumDocuments.addDocument(newDocument);
changedDocument = this.langiumDocumentFactory.fromModel({ $type: 'INVALID' }, changedUri);
changedDocument.state = DocumentState.Changed; // required, since `langiumDocumentFactory.fromModel` marks the new document as `DocumentState.Parsed`
this.langiumDocuments.addDocument(changedDocument);
}
this.buildState.delete(changedUri.toString());
this.resetToState(changedDocument, DocumentState.Changed);
}

@@ -263,5 +260,8 @@ // Set the state of all documents that should be relinked to `ComputedScopes` (if not already lower)

// This includes those that were reported as changed and those that we selected for relinking
doc.state < DocumentState.Linked
doc.state < DocumentState.Validated
// This includes those for which a previous build has been cancelled
|| !this.buildState.get(doc.uri.toString())?.completed
// `updateBuildOptions` changed between the last build (which is completed) and the current build,
// leading to incomplete results, e.g. some validation categories are requested, which are not executed during the last build
|| this.resultsAreIncomplete(doc, this.updateBuildOptions)
)

@@ -273,2 +273,15 @@ .toArray()

protected resultsAreIncomplete(document: LangiumDocument, options: BuildOptions | undefined): boolean {
return this.findMissingValidationCategories(document, options).length >= 1;
}
protected findMissingValidationCategories(document: LangiumDocument, options: BuildOptions | undefined): ValidationCategory[] {
const state = this.buildState.get(document.uri.toString());
const allCategories = this.serviceRegistry.getServices(document.uri).validation.ValidationRegistry.getAllValidationCategories(document);
const executedCategories = state?.result?.validationChecks ? new Set(state?.result?.validationChecks) : state?.completed ? allCategories : new Set();
const requestedCategories = (options === undefined || options.validation === true) ? allCategories
: typeof options.validation === 'object' ? (options.validation.categories ?? allCategories) : [];
return stream(requestedCategories).filter(requested => !executedCategories.has(requested)).toArray();
}
protected async findChangedUris(changed: URI): Promise<URI[]> {

@@ -358,7 +371,3 @@ // Most common case is that the document/textDocument at the specified URI has changed

case DocumentState.Changed: {
const invalidated = this.langiumDocuments.invalidateDocument(document.uri);
if (invalidated) {
break;
}
// Else fall through
// Fall through
}

@@ -381,2 +390,6 @@ case DocumentState.Parsed:

document.diagnostics = undefined;
this.buildState.delete(document.uri.toString());
// Fall through
case DocumentState.Validated:
// do nothing and keep the buildState
}

@@ -388,2 +401,11 @@ if (document.state > state) {

protected cleanUpDeleted<T extends AstNode>(document: LangiumDocument<T>): void {
this.buildState.delete(document.uri.toString());
this.indexManager.remove(document.uri);
// Since this method `cleanUpDeleted` is not available from outside, the following line is not necessary, since the state is already set before.
// This line does not hurt and makes the code to be in sync with `resetToState`.
// If `cleanUpDeleted` is called in custom document builders at some more places, this line becomes necessary.
document.state = DocumentState.Changed;
}
/**

@@ -424,13 +446,20 @@ * Build the given documents by stepping through all build phases. If a document's state indicates

// 5. Validation
const toBeValidated = documents.filter(doc => this.shouldValidate(doc));
await this.runCancelable(toBeValidated, DocumentState.Validated, cancelToken, doc =>
this.validate(doc, cancelToken)
);
const toBeValidated = documents.filter(doc => {
if (this.shouldValidate(doc)) {
return true; // the build state is marked as completed after finishing the validation for the current document
} else {
this.markAsCompleted(doc); // since the validation is skipped for this document, it is already completed now
return false;
}
});
await this.runCancelable(toBeValidated, DocumentState.Validated, cancelToken, async doc => {
await this.validate(doc, cancelToken);
this.markAsCompleted(doc);
});
}
// If we've made it to this point without being cancelled, we can mark the build state as completed.
for (const doc of documents) {
const state = this.buildState.get(doc.uri.toString());
if (state) {
state.completed = true;
}
protected markAsCompleted(document: LangiumDocument): void {
const state = this.buildState.get(document.uri.toString());
if (state) {
state.completed = true;
}

@@ -449,6 +478,6 @@ }

const state = this.buildState.get(key);
// If the document has no previous build state, we set it. If it has one, but it's already marked
// as completed, we overwrite it. If the previous build was not completed, we keep its state
// and continue where it was cancelled.
if (!state || state.completed) {
if (
!state // If the document has no previous build state, we set it.
|| state.completed // If it has one, but it's already marked as completed, we overwrite it.
) {
this.buildState.set(key, {

@@ -459,2 +488,5 @@ completed: false,

});
} else {
// If the previous build was not completed, we keep its DocumentState and continue from the DocumentState where it was cancelled,
// e.g. the previous build options are used, including the previously requested validation categories.
}

@@ -593,2 +625,3 @@ }

try {
await interruptAndCheck(cancelToken);
await listener(document, cancelToken);

@@ -643,7 +676,8 @@ } catch (err) {

const validator = this.serviceRegistry.getServices(document.uri).validation.DocumentValidator;
const validationSetting = this.getBuildOptions(document).validation;
const options = typeof validationSetting === 'object' ? validationSetting : undefined;
const diagnostics = await validator.validateDocument(document, options, cancelToken);
const options = this.getBuildOptions(document);
const validationOptions = typeof options.validation === 'object' ? { ...options.validation } : {};
validationOptions.categories = this.findMissingValidationCategories(document, options); // execute only not-yet-executed categories
const diagnostics = await validator.validateDocument(document, validationOptions, cancelToken);
if (document.diagnostics) {
document.diagnostics.push(...diagnostics);
document.diagnostics.push(...diagnostics); // keep diagnostics of previously executed categories
} else {

@@ -657,7 +691,6 @@ document.diagnostics = diagnostics;

state.result ??= {};
const newCategories = options?.categories ?? ValidationCategory.all;
if (state.result.validationChecks) {
state.result.validationChecks.push(...newCategories);
state.result.validationChecks = stream(state.result.validationChecks).concat(validationOptions.categories).distinct().toArray();
} else {
state.result.validationChecks = [...newCategories];
state.result.validationChecks = [...validationOptions.categories];
}

@@ -664,0 +697,0 @@ }

@@ -27,2 +27,3 @@ /******************************************************************************

import { URI, UriTrie } from '../utils/uri-utils.js';
import type { DocumentBuilder } from './document-builder.js';

@@ -353,2 +354,8 @@ /**

/**
* If the given URI is a directory, all documents within this directory are retrieved.
* If it is a file, just that single document is retrieved.
*/
getDocuments(folder: URI): LangiumDocument[];
/**
* Retrieve the document with the given URI. If not present, a new one will be created using the file system access.

@@ -377,7 +384,2 @@ * The new document will be added to the list of documents managed under this service.

/**
* Returns `true` if a document with the given URI is managed under this service.
*/
hasDocument(uri: URI): boolean;
/**
* Flag the document with the given URI as `Changed`, if present, meaning that its content

@@ -388,2 +390,4 @@ * is no longer valid. The content (parseResult) stays untouched, while internal data may

* @returns the affected {@link LangiumDocument} if existing for convenience
*
* @deprecated Since 4.2 use `DocumentBuilder.resetToState(DocumentState.Changed)` instead
*/

@@ -393,2 +397,7 @@ invalidateDocument(uri: URI): LangiumDocument | undefined;

/**
* Returns `true` if a document with the given URI is managed under this service.
*/
hasDocument(uri: URI): boolean;
/**
* Remove the document with the given URI, if present, and mark it as `Changed`, meaning

@@ -412,4 +421,5 @@ * that its content is no longer valid. The next call to `getOrCreateDocument` with the same

protected readonly services: LangiumSharedCoreServices;
protected readonly langiumDocumentFactory: LangiumDocumentFactory;
protected readonly serviceRegistry: ServiceRegistry;
private documentBuilder: () => DocumentBuilder;

@@ -419,4 +429,5 @@ protected readonly documentTrie = new UriTrie<LangiumDocument>();

constructor(services: LangiumSharedCoreServices) {
this.services = services;
this.langiumDocumentFactory = services.workspace.LangiumDocumentFactory;
this.serviceRegistry = services.ServiceRegistry;
this.documentBuilder = () => services.workspace.DocumentBuilder;
}

@@ -475,2 +486,6 @@

/**
* @deprecated Since 4.2 use `DocumentBuilder.resetToState(DocumentState.Changed)` instead
* TODO remove this for the next major release
*/
invalidateDocument(uri: URI): LangiumDocument | undefined {

@@ -480,7 +495,3 @@ const uriString = uri.toString();

if (langiumDoc) {
const linker = this.serviceRegistry.getServices(uri).references.Linker;
linker.unlink(langiumDoc);
langiumDoc.state = DocumentState.Changed;
langiumDoc.localSymbols = undefined;
langiumDoc.diagnostics = undefined;
this.documentBuilder().resetToState(langiumDoc, DocumentState.Changed);
}

@@ -487,0 +498,0 @@ return langiumDoc;

@@ -18,4 +18,3 @@ /******************************************************************************

import type { WorkspaceLock } from './workspace-lock.js';
import { stream } from '../utils/stream.js';
import { stream, type Stream } from '../utils/stream.js';
// export type WorkspaceFolder from 'vscode-languageserver-types' for convenience,

@@ -168,8 +167,12 @@ // is supposed to avoid confusion as 'WorkspaceFolder' might accidentally be imported via 'vscode-languageclient'

.filter(uri => !this.langiumDocuments.hasDocument(uri));
await Promise.all(uniqueUris.map(async uri => {
await this.loadWorkspaceDocuments(uniqueUris, collector);
this._ready.resolve();
return documents;
}
protected async loadWorkspaceDocuments(uris: Stream<URI>, collector: (document: LangiumDocument) => void): Promise<void> {
await Promise.all(uris.map(async uri => {
const document = await this.langiumDocuments.getOrCreateDocument(uri);
collector(document);
}));
this._ready.resolve();
return documents;
}

@@ -176,0 +179,0 @@

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display