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

Function createMetaDataCompletions

packages/lsp/src/server/completion.ts:351–427  ·  view source on GitHub ↗
(
    barIndex: number,
    metaData: alphaTab.importer.alphaTex.AlphaTexMetaDataNode | undefined,
    offset: number,
    endOfMetaData: number
)

Source from the content-addressed store, hash-verified

349}
350
351function createMetaDataCompletions(
352 barIndex: number,
353 metaData: alphaTab.importer.alphaTex.AlphaTexMetaDataNode | undefined,
354 offset: number,
355 endOfMetaData: number
356) {
357 let completions: CompletionItem[] = [];
358 const tagCompletion = !metaData || (metaData.tag.start!.offset <= offset && offset <= metaData.tag.end!.offset);
359 if (tagCompletion) {
360 if (barIndex === 0) {
361 completions.push(...topLevelCompletions);
362 } else {
363 completions.push(
364 ...createMetaDataDocCompletions(structuralMetaData),
365 ...createMetaDataDocCompletions(barMetaData)
366 );
367 }
368
369 if (metaData) {
370 const keepValues = metaData.arguments || metaData.properties;
371 completions = completions.map(c => ({
372 ...c,
373 insertText: keepValues ? c.label : c.insertText,
374 additionalTextEdits: [
375 TextEdit.del({
376 start: {
377 line: metaData.tag.start!.line - 1,
378 character: metaData.tag.start!.col - 1
379 },
380 end: {
381 line: metaData.tag.end!.line - 1,
382 character: metaData.tag.end!.col - 1
383 }
384 })
385 ]
386 }));
387 }
388
389 return completions;
390 } else if (offset >= metaData.end!.offset) {
391 if (barIndex === 0) {
392 completions.push(...topLevelCompletions);
393 } else {
394 completions.push(
395 ...createMetaDataDocCompletions(structuralMetaData),
396 ...createMetaDataDocCompletions(barMetaData)
397 );
398 }
399 }
400
401 const metaDataDocs = allMetadata.get(`\\${metaData.tag.tag.text.toLowerCase()}`);
402 if (!metaDataDocs) {
403 return completions;
404 }
405
406 const endOfArguments =
407 metaData.arguments?.closeParenthesis?.start?.offset ??
408 metaData.arguments?.end?.offset ??

Callers 1

setupCompletionFunction · 0.85

Calls 7

getMethod · 0.65
pushMethod · 0.45
mapMethod · 0.45
spliceMethod · 0.45

Tested by

no test coverage detected