MCPcopy Create free account
hub / github.com/CoderLine/alphaTab / createArgumentCompletions

Function createArgumentCompletions

packages/lsp/src/server/completion.ts:429–476  ·  view source on GitHub ↗
(
    signatures: SignatureDefinition[],
    actualValues: alphaTab.importer.alphaTex.AlphaTexArgumentList | undefined,
    offset: number,
    trailingEnd: number
)

Source from the content-addressed store, hash-verified

427}
428
429function createArgumentCompletions(
430 signatures: SignatureDefinition[],
431 actualValues: alphaTab.importer.alphaTex.AlphaTexArgumentList | undefined,
432 offset: number,
433 trailingEnd: number
434) {
435 if (actualValues) {
436 const value = binaryNodeSearch(actualValues.arguments, offset, trailingEnd);
437 if (value?.parameterIndices) {
438 const isNextParameter = offset > value.end!.offset;
439
440 const signatureCandidates = resolveSignature(signatures, actualValues);
441 for (const [k, v] of signatureCandidates) {
442 let parameterIndex = value.parameterIndices.get(k);
443 if (parameterIndex !== undefined && isNextParameter && parameterIndex < v.parameters.length - 1) {
444 parameterIndex++;
445 }
446
447 const values = parameterIndex !== undefined ? v.parameters[parameterIndex].values : undefined;
448 if (values) {
449 return values.map(i =>
450 valueItemToCompletion(i, {
451 additionalTextEdits: [
452 TextEdit.del({
453 start: {
454 line: value.start!.line - 1,
455 character: value.start!.col - 1
456 },
457 end: {
458 line: value.end!.line - 1,
459 character: value.end!.col - 1
460 }
461 })
462 ]
463 })
464 );
465 }
466 }
467 }
468 } else {
469 const firstParameterValues = signatures.flatMap(s =>
470 s.parameters.length > 0 ? (s.parameters[0].values ?? []) : []
471 );
472 return firstParameterValues.map(i => valueItemToCompletion(i));
473 }
474
475 return [];
476}
477
478function createMetaDataDocCompletions(
479 metaData: Map<string, MetadataTagDefinition>

Callers 2

Calls 6

binaryNodeSearchFunction · 0.90
resolveSignatureFunction · 0.90
valueItemToCompletionFunction · 0.85
flatMapMethod · 0.80
getMethod · 0.65
mapMethod · 0.45

Tested by

no test coverage detected