Merge pull request #2557 from github/koesie10/jump-to-def-framework-mode

Add jump to definition in framework mode
This commit is contained in:
Koen Vlaswinkel
2023-06-28 09:49:45 +02:00
committed by GitHub

View File

@@ -38,6 +38,25 @@ const SupportSpan = styled.span<SupportedUnsupportedSpanProps>`
}};
`;
type SupportedUnsupportedLinkProps = {
supported: boolean;
modeled: ModeledMethod | undefined;
};
const SupportLink = styled.button<SupportedUnsupportedLinkProps>`
color: ${(props) => {
if (!props.supported && props.modeled && props.modeled?.type !== "none") {
return "orange";
} else {
return props.supported ? "green" : "red";
}
}};
background-color: transparent;
border: none;
cursor: pointer;
padding: 0;
`;
const UsagesButton = styled.button`
color: var(--vscode-editor-foreground);
background-color: transparent;
@@ -140,6 +159,7 @@ export const MethodRow = ({
const jumpToUsage = useCallback(() => {
vscode.postMessage({
t: "jumpToUsage",
// In framework mode, the first and only usage is the definition of the method
location: externalApiUsage.usages[0].url,
});
}, [externalApiUsage]);
@@ -160,13 +180,25 @@ export const MethodRow = ({
</SupportSpan>
</VSCodeDataGridCell>
<VSCodeDataGridCell gridColumn={2}>
<SupportSpan
supported={externalApiUsage.supported}
modeled={modeledMethod}
>
{externalApiUsage.methodName}
{externalApiUsage.methodParameters}
</SupportSpan>
{mode === Mode.Application && (
<SupportSpan
supported={externalApiUsage.supported}
modeled={modeledMethod}
>
{externalApiUsage.methodName}
{externalApiUsage.methodParameters}
</SupportSpan>
)}
{mode === Mode.Framework && (
<SupportLink
supported={externalApiUsage.supported}
modeled={modeledMethod}
onClick={jumpToUsage}
>
{externalApiUsage.methodName}
{externalApiUsage.methodParameters}
</SupportLink>
)}
</VSCodeDataGridCell>
{mode === Mode.Application && (
<VSCodeDataGridCell gridColumn={3}>