This issue is an umbrella for several proposed additions to SCIP, based on discussions with @donsbot on Mastodon .
SymbolInformation.display_name
This would be the name of the symbol, which is both helpful for local variables and avoids parsing the name from the symbol. The field could be name instead of display_name, we use display_name in SemanticDB to emphasize that this name is meant to be displayed (and should therefore not have special encoding for non-ASCII characters like emojis.
SymbolInformation.owner
Alternative name parent. The thinking with this field is that it avoids parsing the owner from the symbol, and it allows us to emit an owner for local symbols.
SymbolInformation.kind
An enum that specifies what kind of symbol this is (enum/interface/method/...). Currently, Descriptor.Suffix doesn't encode enough fine-grained information (and it's intentionally named "suffix" to emphasize that it's primarily related to the syntax of the symbol.
SymbolInformation.signature_documentation
A string-formatted rendering of the signature. Currently, indexers emit this information in the documentation field as markdown-formatted code blocks. Having a separate field makes it cleaner to extract only the signature. I propose we reserve the field SymbolInformation.signature for fully typed/structured signatures (not string-formatted signatures).
This issue is an umbrella for several proposed additions to SCIP, based on discussions with @donsbot on Mastodon .
SymbolInformation.display_nameThis would be the name of the symbol, which is both helpful for local variables and avoids parsing the name from the symbol. The field could be
nameinstead ofdisplay_name, we usedisplay_namein SemanticDB to emphasize that this name is meant to be displayed (and should therefore not have special encoding for non-ASCII characters like emojis.SymbolInformation.ownerAlternative name
parent. The thinking with this field is that it avoids parsing the owner from the symbol, and it allows us to emit an owner for local symbols.SymbolInformation.kindAn enum that specifies what kind of symbol this is (enum/interface/method/...). Currently,
Descriptor.Suffixdoesn't encode enough fine-grained information (and it's intentionally named "suffix" to emphasize that it's primarily related to the syntax of the symbol.SymbolInformation.signature_documentationA string-formatted rendering of the signature. Currently, indexers emit this information in the
documentationfield as markdown-formatted code blocks. Having a separate field makes it cleaner to extract only the signature. I propose we reserve the fieldSymbolInformation.signaturefor fully typed/structured signatures (not string-formatted signatures).