Skip to content

Commit 6465786

Browse files
authored
Merge pull request #2557 from github/koesie10/jump-to-def-framework-mode
Add jump to definition in framework mode
2 parents 9314b3b + 5349a75 commit 6465786

File tree

1 file changed

+39
-7
lines changed
  • extensions/ql-vscode/src/view/data-extensions-editor

1 file changed

+39
-7
lines changed

extensions/ql-vscode/src/view/data-extensions-editor/MethodRow.tsx

Lines changed: 39 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,25 @@ const SupportSpan = styled.span<SupportedUnsupportedSpanProps>`
3838
}};
3939
`;
4040

41+
type SupportedUnsupportedLinkProps = {
42+
supported: boolean;
43+
modeled: ModeledMethod | undefined;
44+
};
45+
46+
const SupportLink = styled.button<SupportedUnsupportedLinkProps>`
47+
color: ${(props) => {
48+
if (!props.supported && props.modeled && props.modeled?.type !== "none") {
49+
return "orange";
50+
} else {
51+
return props.supported ? "green" : "red";
52+
}
53+
}};
54+
background-color: transparent;
55+
border: none;
56+
cursor: pointer;
57+
padding: 0;
58+
`;
59+
4160
const UsagesButton = styled.button`
4261
color: var(--vscode-editor-foreground);
4362
background-color: transparent;
@@ -140,6 +159,7 @@ export const MethodRow = ({
140159
const jumpToUsage = useCallback(() => {
141160
vscode.postMessage({
142161
t: "jumpToUsage",
162+
// In framework mode, the first and only usage is the definition of the method
143163
location: externalApiUsage.usages[0].url,
144164
});
145165
}, [externalApiUsage]);
@@ -160,13 +180,25 @@ export const MethodRow = ({
160180
</SupportSpan>
161181
</VSCodeDataGridCell>
162182
<VSCodeDataGridCell gridColumn={2}>
163-
<SupportSpan
164-
supported={externalApiUsage.supported}
165-
modeled={modeledMethod}
166-
>
167-
{externalApiUsage.methodName}
168-
{externalApiUsage.methodParameters}
169-
</SupportSpan>
183+
{mode === Mode.Application && (
184+
<SupportSpan
185+
supported={externalApiUsage.supported}
186+
modeled={modeledMethod}
187+
>
188+
{externalApiUsage.methodName}
189+
{externalApiUsage.methodParameters}
190+
</SupportSpan>
191+
)}
192+
{mode === Mode.Framework && (
193+
<SupportLink
194+
supported={externalApiUsage.supported}
195+
modeled={modeledMethod}
196+
onClick={jumpToUsage}
197+
>
198+
{externalApiUsage.methodName}
199+
{externalApiUsage.methodParameters}
200+
</SupportLink>
201+
)}
170202
</VSCodeDataGridCell>
171203
{mode === Mode.Application && (
172204
<VSCodeDataGridCell gridColumn={3}>

0 commit comments

Comments
 (0)