lsp: Add reference documentation on hover

For most constructs and keywords, show the relevant section of the
reference documentation on hover.
This commit is contained in:
James Westman 2024-10-19 18:46:10 -05:00
parent b107a85947
commit e19975e1f8
No known key found for this signature in database
GPG key ID: CE2DBA0ADB654EA6
28 changed files with 326 additions and 21 deletions

View file

@ -179,14 +179,16 @@ class AstNode:
token = self.group.tokens.get(attr.token_name)
if token and token.start <= idx < token.end:
return getattr(self, name)
else:
return getattr(self, name)
for child in self.children:
if idx in child.range:
if docs := child.get_docs(idx):
return docs
for name, attr in self._attrs_by_type(Docs):
if not attr.token_name:
return getattr(self, name)
return None
def get_semantic_tokens(self) -> T.Iterator[SemanticToken]: