mirror of
https://github.com/adelphes/android-dev-ext.git
synced 2025-12-23 18:08:29 +00:00
wait for reparsing before returning method signatures
This commit is contained in:
@@ -994,6 +994,7 @@ function formatDoc(header, documentation) {
|
|||||||
* @param {import('vscode-languageserver').SignatureHelpParams} request the reeust
|
* @param {import('vscode-languageserver').SignatureHelpParams} request the reeust
|
||||||
*/
|
*/
|
||||||
async function onSignatureHelp(request) {
|
async function onSignatureHelp(request) {
|
||||||
|
trace('onSignatureHelp');
|
||||||
/** @type {import('vscode-languageserver').SignatureHelp} */
|
/** @type {import('vscode-languageserver').SignatureHelp} */
|
||||||
let sighelp = {
|
let sighelp = {
|
||||||
signatures: [],
|
signatures: [],
|
||||||
@@ -1004,11 +1005,14 @@ async function onSignatureHelp(request) {
|
|||||||
if (!docinfo || !docinfo.parsed) {
|
if (!docinfo || !docinfo.parsed) {
|
||||||
return sighelp;
|
return sighelp;
|
||||||
}
|
}
|
||||||
|
await docinfo.reparseWaiter;
|
||||||
const index = indexAt(request.position, docinfo.content);
|
const index = indexAt(request.position, docinfo.content);
|
||||||
const token = docinfo.parsed.unit.getTokenAt(index);
|
const token = docinfo.parsed.unit.getTokenAt(index);
|
||||||
if (!token || !token.methodCallInfo) {
|
if (!token || !token.methodCallInfo) {
|
||||||
|
trace('onSignatureHelp - no method call info');
|
||||||
return sighelp;
|
return sighelp;
|
||||||
}
|
}
|
||||||
|
trace(`onSignatureHelp - ${token.methodCallInfo.methods.length} methods`);
|
||||||
sighelp = {
|
sighelp = {
|
||||||
signatures: token.methodCallInfo.methods.map(m => {
|
signatures: token.methodCallInfo.methods.map(m => {
|
||||||
/** @type {import('vscode-languageserver').SignatureInformation} */
|
/** @type {import('vscode-languageserver').SignatureInformation} */
|
||||||
|
|||||||
Reference in New Issue
Block a user