Add button for reveal method in editor
This commit is contained in:
@@ -597,9 +597,15 @@ export type FromModelEditorMessage =
|
||||
| HideModeledMethodsMessage
|
||||
| SetModeledMethodMessage;
|
||||
|
||||
interface RevealInEditorMessage {
|
||||
t: "revealInModelEditor";
|
||||
method: Method;
|
||||
}
|
||||
|
||||
export type FromMethodModelingMessage =
|
||||
| CommonFromViewMessages
|
||||
| SetModeledMethodMessage;
|
||||
| SetModeledMethodMessage
|
||||
| RevealInEditorMessage;
|
||||
|
||||
interface SetMethodMessage {
|
||||
t: "setMethod";
|
||||
|
||||
@@ -10,6 +10,7 @@ import { redactableError } from "../../common/errors";
|
||||
import { Method } from "../method";
|
||||
import { ModelingStore } from "../modeling-store";
|
||||
import { AbstractWebviewViewProvider } from "../../common/vscode/abstract-webview-view-provider";
|
||||
import { assertNever } from "../../common/helpers-pure";
|
||||
|
||||
export class MethodModelingViewProvider extends AbstractWebviewViewProvider<
|
||||
ToMethodModelingMessage,
|
||||
@@ -87,6 +88,10 @@ export class MethodModelingViewProvider extends AbstractWebviewViewProvider<
|
||||
);
|
||||
break;
|
||||
}
|
||||
case "revealInModelEditor":
|
||||
break;
|
||||
default:
|
||||
assertNever(msg);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -7,6 +7,7 @@ import { MethodName } from "../model-editor/MethodName";
|
||||
import { ModeledMethod } from "../../model-editor/modeled-method";
|
||||
import { MethodModelingInputs } from "./MethodModelingInputs";
|
||||
import { VSCodeTag } from "@vscode/webview-ui-toolkit/react";
|
||||
import { ReviewInEditorButton } from "./ReviewInEditorButton";
|
||||
|
||||
const Container = styled.div`
|
||||
padding: 0.3rem;
|
||||
@@ -64,6 +65,7 @@ export const MethodModeling = ({
|
||||
modeledMethod={modeledMethod}
|
||||
onChange={onChange}
|
||||
/>
|
||||
<ReviewInEditorButton method={method} />
|
||||
</Container>
|
||||
);
|
||||
};
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
import * as React from "react";
|
||||
import { useCallback } from "react";
|
||||
import { styled } from "styled-components";
|
||||
import { vscode } from "../vscode-api";
|
||||
import TextButton from "../common/TextButton";
|
||||
import { Method } from "../../model-editor/method";
|
||||
|
||||
const Button = styled(TextButton)`
|
||||
margin-top: 0.5rem;
|
||||
`;
|
||||
|
||||
type Props = {
|
||||
method: Method;
|
||||
};
|
||||
|
||||
export const ReviewInEditorButton = ({ method }: Props) => {
|
||||
const handleClick = useCallback(() => {
|
||||
vscode.postMessage({
|
||||
t: "revealInModelEditor",
|
||||
method,
|
||||
});
|
||||
}, [method]);
|
||||
|
||||
return <Button onClick={handleClick}>Review in editor</Button>;
|
||||
};
|
||||
@@ -1,5 +1,6 @@
|
||||
import {
|
||||
FromCompareViewMessage,
|
||||
FromMethodModelingMessage,
|
||||
FromModelEditorMessage,
|
||||
FromResultsViewMsg,
|
||||
FromVariantAnalysisMessage,
|
||||
@@ -15,7 +16,8 @@ export interface VsCodeApi {
|
||||
| FromResultsViewMsg
|
||||
| FromCompareViewMessage
|
||||
| FromVariantAnalysisMessage
|
||||
| FromModelEditorMessage,
|
||||
| FromModelEditorMessage
|
||||
| FromMethodModelingMessage,
|
||||
): void;
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user