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

Function setupSignatureHelp

packages/lsp/src/server/signatureHelp.ts:24–51  ·  view source on GitHub ↗
(connection: Connection, documents: TextDocuments<AlphaTexTextDocument>)

Source from the content-addressed store, hash-verified

22import { binaryNodeSearch, parameterToSyntax } from '@coderline/alphatab-language-server/server/utils';
23
24export function setupSignatureHelp(connection: Connection, documents: TextDocuments<AlphaTexTextDocument>) {
25 connection.onSignatureHelp(params => {
26 const document = documents.get(params.textDocument.uri);
27 if (!document?.ast) {
28 return null;
29 }
30
31 const offset = document.offsetAt(params.position);
32
33 // lookup bar at location
34 const bar = binaryNodeSearch(document.ast.bars, offset);
35 if (!bar) {
36 return null;
37 }
38
39 const metaData = binaryNodeSearch(bar.metaData, offset);
40 if (metaData) {
41 return createMetaDataSignatureHelp(metaData, offset);
42 }
43
44 const beat = binaryNodeSearch(bar.beats, offset);
45 if (beat) {
46 return createBeatSignatureHelp(beat, offset);
47 }
48
49 return null;
50 });
51}
52
53function createMetaDataSignatureHelp(
54 metaData: alphaTab.importer.alphaTex.AlphaTexMetaDataNode,

Callers 1

startLanguageServerFunction · 0.90

Calls 4

binaryNodeSearchFunction · 0.90
createBeatSignatureHelpFunction · 0.85
getMethod · 0.65

Tested by

no test coverage detected