- 答案错误里「格式和内容都不一样」那一类(样例上错的 44%):原来只说「对照一下,找找 从哪里开始不一样」,现在是「你的程序输出了「E」,正确的是「D」。拿例子 2 的输入「60」, 一行一行走一遍你的程序,看它走进了哪个分支」;多行的说第几行开始不一样 - 不在这节课里的题交对之后,结果页签里给「再练几道相似的」(原来只在题面最底下) - 提交前自动排版改了代码的,结果上面提一句「编辑器里的代码也跟着变了,按 Ctrl+Z 能撤回」 - 交对之后「提交」降成描边按钮,「下一题」是唯一的主按钮 - 「重置代码」先确认(原来点一下就把代码和本地草稿一起清掉了) - AI 提示的档位写「第 1 档 · 反问」,不写「L0 反问」 - 成就弹窗从右下角挪到右上角,别和结果、点评弹窗叠在一起 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
9110c678fc
commit
972dac3776
10 files changed
+206
-93
No files matched your search
@@ -71,6 +71,12 @@ export const useSubmissionStore = defineStore("submission", () => {
|
||||
*/
|
||||
const syntaxErrorInfo = ref("")
|
||||
|
||||
/**
|
||||
* 这次提交之前自动排版改了代码。排版会直接改掉编辑器里的代码(缩进、空格、换行),
|
||||
* 学生交完发现代码「变了样」却不知道为什么 —— 结果页签里提一句
|
||||
*/
|
||||
const formattedBeforeSubmit = ref(false)
|
||||
|
||||
const { start: startCooldown, isPending: isCooldown } = useTimeout(5000, {
|
||||
controls: true,
|
||||
immediate: false,
|
||||
@@ -84,6 +90,7 @@ export const useSubmissionStore = defineStore("submission", () => {
|
||||
const problem = problemStore.problem
|
||||
if (!problem) return
|
||||
syntaxErrorInfo.value = ""
|
||||
formattedBeforeSubmit.value = false
|
||||
|
||||
// 0. 提交前自动格式化(Python 用 ruff,C/C++ 用 clang-format,SQL 用 sqlparse)。
|
||||
// Python 在格式化之前先由服务端的 CPython 查一遍语法,有错就不提交
|
||||
@@ -95,7 +102,10 @@ export const useSubmissionStore = defineStore("submission", () => {
|
||||
code: codeStore.code.value,
|
||||
language: formatLang,
|
||||
})
|
||||
codeStore.setCode(res.code)
|
||||
if (res.code !== codeStore.code.value) {
|
||||
codeStore.setCode(res.code)
|
||||
formattedBeforeSubmit.value = true
|
||||
}
|
||||
} catch (e) {
|
||||
if (errorCode(e) === "syntax-error") {
|
||||
// 仅 Python 会出现:message 是 CPython 的报错原文,交给 PythonErrorExplain 翻译
|
||||
@@ -151,6 +161,7 @@ export const useSubmissionStore = defineStore("submission", () => {
|
||||
*/
|
||||
function reset() {
|
||||
syntaxErrorInfo.value = ""
|
||||
formattedBeforeSubmit.value = false
|
||||
resultSegment.value = "submit"
|
||||
monitor.reset()
|
||||
hint.clearHint()
|
||||
@@ -183,6 +194,7 @@ export const useSubmissionStore = defineStore("submission", () => {
|
||||
isFormatting,
|
||||
isSubmittingRequest,
|
||||
syntaxErrorInfo,
|
||||
formattedBeforeSubmit,
|
||||
isCooldown,
|
||||
submit,
|
||||
reset,
|
||||
|
||||
Reference in new issue
Block a user