fix: feat add rust lang

This commit is contained in:
Paul Pan 2024-01-30 21:01:22 +08:00
parent 937fbb07bf
commit e2ac9f27f0
5 changed files with 34 additions and 16 deletions

View File

@ -3,9 +3,11 @@ import AceEditor from "react-ace";
import "ace-builds/src-noconflict/mode-c_cpp";
import "ace-builds/src-noconflict/mode-python";
import "ace-builds/src-noconflict/mode-golang";
import "ace-builds/src-noconflict/mode-rust";
import "ace-builds/src-noconflict/snippets/c_cpp";
import "ace-builds/src-noconflict/snippets/python";
import "ace-builds/src-noconflict/snippets/golang";
import "ace-builds/src-noconflict/snippets/rust";
import "ace-builds/src-noconflict/theme-textmate";
import "ace-builds/src-noconflict/ext-language_tools";

27
src/components/lang.ts Normal file
View File

@ -0,0 +1,27 @@
export const AvailLang = [
{ value: "cpp", label: "C++" },
{ value: "c", label: "C" },
{ value: "python3", label: "Python3" },
{ value: "pypy3", label: "PyPy3" },
{ value: "go", label: "Go" },
{ value: "rust", label: "Rust" },
];
export const LangToPrism: { [lang: string]: string } = {
cpp: "cpp",
c: "c",
python3: "python",
pypy3: "python",
go: "go",
rust: "rust",
};
// also check includes in components/editor.tsx
export const LangToAce: { [lang: string]: string } = {
cpp: "c_cpp",
c: "c_cpp",
python3: "python",
pypy3: "python",
go: "golang",
rust: "rust",
};

View File

@ -3,13 +3,7 @@ import { Link } from "react-router-dom";
import { Collapse, CollapseProps, Descriptions, Select, Space, Tag } from "antd";
import { DetailsResp, RuntimeInfo } from "../api/problem.ts";
const AvailLang = [
{ value: "cpp", label: "C++" },
{ value: "c", label: "C" },
{ value: "python", label: "Python" },
{ value: "golang", label: "Go" },
];
import { AvailLang } from "./lang.ts";
interface ProblemDetailsProps {
details: DetailsResp;

View File

@ -10,6 +10,7 @@ import { useAuth } from "../components/hook.ts";
import { DetailsResp } from "../api/problem.ts";
import { ProblemLoader } from "../api/loader.ts";
import { StatusApi, StatusInfo, Verdict } from "../api/status.ts";
import { LangToPrism } from "../components/lang.ts";
const { Title, Paragraph } = Typography;
@ -101,7 +102,7 @@ export default function DetailsPage() {
const showSourceCode = status === undefined ? false : status.submission.code !== "";
const sourceCode = (
<PrismAsync
language={showSourceCode ? status?.submission.language || "text" : "text"}
language={showSourceCode && status !== undefined ? LangToPrism[status.submission.language] : "text"}
wrapLines={true}
showLineNumbers={true}
wrapLongLines={true}

View File

@ -9,13 +9,7 @@ import ProblemDetails from "../components/problem-details.tsx";
import { useAuth } from "../components/hook.ts";
import { DetailsResp } from "../api/problem.ts";
import { SubmissionApi } from "../api/submission.ts";
const LangToMode: { [lang: string]: string } = {
cpp: "c_cpp",
c: "c_cpp",
python: "python",
golang: "golang",
};
import { LangToAce } from "../components/lang.ts";
export default function SubmitPage() {
const details = useLoaderData() as DetailsResp;
@ -67,7 +61,7 @@ export default function SubmitPage() {
];
const codeEditor = Editor({
mode: LangToMode[lang],
mode: LangToAce[lang],
onChange: setCode,
});