Skip to content

Commit 4b8d33e

Browse files
committed
language-server: hover over function keyword displays info
Unlike variables, functions aren't required to have names, so the function keyword is used in place of the name. similar behavior was observed in TypeScript.
1 parent 63dc5ab commit 4b8d33e

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

language-server/src/main/java/com/as3mxml/vscode/providers/HoverProvider.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,11 +39,14 @@
3939
import org.apache.royale.compiler.internal.mxml.MXMLData;
4040
import org.apache.royale.compiler.internal.mxml.MXMLDialect;
4141
import org.apache.royale.compiler.mxml.IMXMLTagData;
42+
import org.apache.royale.compiler.tree.ASTNodeID;
4243
import org.apache.royale.compiler.tree.as.IASNode;
4344
import org.apache.royale.compiler.tree.as.IClassNode;
4445
import org.apache.royale.compiler.tree.as.IExpressionNode;
4546
import org.apache.royale.compiler.tree.as.IFunctionCallNode;
47+
import org.apache.royale.compiler.tree.as.IFunctionNode;
4648
import org.apache.royale.compiler.tree.as.IIdentifierNode;
49+
import org.apache.royale.compiler.tree.as.IKeywordNode;
4750
import org.apache.royale.compiler.tree.as.ILanguageIdentifierNode;
4851
import org.apache.royale.compiler.tree.metadata.IEventTagNode;
4952
import org.apache.royale.compiler.tree.metadata.IInspectableTagNode;
@@ -309,6 +312,14 @@ private Hover actionScriptHover(IASNode offsetNode, ILspProject project) {
309312
}
310313
}
311314

315+
if (definition == null && parentNode instanceof IFunctionNode && offsetNode instanceof IKeywordNode) {
316+
IKeywordNode keywordNode = (IKeywordNode) offsetNode;
317+
if (ASTNodeID.KeywordFunctionID.equals(keywordNode.getNodeID())) {
318+
IFunctionNode functionNode = (IFunctionNode) parentNode;
319+
definition = functionNode.getDefinition();
320+
}
321+
}
322+
312323
if (definition == null) {
313324
return new Hover(Collections.emptyList(), null);
314325
}

0 commit comments

Comments
 (0)