Skip to content

Commit afde29c

Browse files
committed
Add leetcode--show-submission-result to show specific error info
See: kaiwk#3
1 parent 2d77b22 commit afde29c

File tree

1 file changed

+45
-21
lines changed

1 file changed

+45
-21
lines changed

leetcode.el

Lines changed: 45 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -534,6 +534,49 @@ alist specified in `display-buffer-alist'."
534534
(set-window-buffer window buffer)
535535
window))
536536

537+
(defun leetcode--show-submission-result (submission-detail)
538+
"Show error info in `leetcode--result-buffer-name' based on status code.
539+
Error info comes from SUBMISSION-DETAIL. STATUS_CODE has
540+
following possible value:
541+
- 10: Accepted
542+
- 11: Wrong Anwser
543+
- 14: Time Limit Exceeded
544+
- 15: Runtime Error. full_runtime_error
545+
- 20: Compile Error. full_compile_error"
546+
(let ((buf (get-buffer-create leetcode--result-buffer-name))
547+
(status-code (alist-get 'status_code submission-detail))
548+
(runtime (alist-get 'status_runtime submission-detail))
549+
(memory (alist-get 'status_memory submission-detail))
550+
(runtime-perc (alist-get 'runtime_percentile submission-detail))
551+
(memory-perc (alist-get 'memory_percentile submission-detail))
552+
(total-correct (alist-get 'total_correct submission-detail))
553+
(total-testcases (alist-get 'total_testcases submission-detail))
554+
(status-msg (alist-get 'status_msg submission-detail))
555+
(lang (alist-get 'pretty_lang submission-detail)))
556+
(with-current-buffer buf
557+
(erase-buffer)
558+
(insert (format "Status: %s\n" status-msg))
559+
(cond
560+
((eq status-code 10)
561+
(insert (format "%s/%s\n\n" total-testcases total-correct))
562+
(insert (format "Runtime: %s, faster than %.2f%% of %s submissions.\n\n"
563+
runtime runtime-perc lang))
564+
(insert (format "Memory Usage: %s, less than %.2f%% of %s submissions."
565+
memory memory-perc lang)))
566+
((eq status-code 11)
567+
(insert (format "%s/%s\n\n" total-testcases total-correct)))
568+
((eq status-code 14) nil)
569+
((eq status-code 15)
570+
(insert "\n")
571+
(insert (format (alist-get 'full_runtime_error submission-detail))))
572+
((eq status-code 20)
573+
(insert "\n")
574+
(insert (format (alist-get 'full_compile_error submission-detail)))))
575+
(display-buffer (current-buffer)
576+
'((display-buffer-reuse-window
577+
leetcode--display-result)
578+
(reusable-frames . visible))))))
579+
537580
(defun leetcode-submit ()
538581
"Asynchronously submit the code and show result."
539582
(interactive)
@@ -568,27 +611,8 @@ alist specified in `display-buffer-alist'."
568611
(leetcode--check-submission
569612
submission-id slug-title
570613
(lambda (res)
571-
(let ((runtime (alist-get 'status_runtime res))
572-
(memory (alist-get 'status_memory res))
573-
(runtime-perc (alist-get 'runtime_percentile res))
574-
(memory-perc (alist-get 'memory_percentile res))
575-
(total-correct (alist-get 'total_correct res))
576-
(total-testcases (alist-get 'total_testcases res))
577-
(status-msg (alist-get 'status_msg res))
578-
(lang (alist-get 'pretty_lang res)))
579-
(with-current-buffer (get-buffer-create leetcode--result-buffer-name)
580-
(erase-buffer)
581-
(insert (format "Status: %s\t%s/%s\n\n" status-msg total-testcases total-correct))
582-
(when (equal status-msg "Accepted")
583-
(insert (format "Runtime: %s, faster than %.2f%% of %s submissions.\n\n"
584-
runtime runtime-perc lang))
585-
(insert (format "Memory Usage: %s, less than %.2f%% of %s submissions."
586-
memory memory-perc lang)))
587-
(display-buffer (current-buffer)
588-
'((display-buffer-reuse-window
589-
leetcode--display-result)
590-
(reusable-frames . visible)))
591-
(leetcode--loading-mode -1)))))))))))
614+
(leetcode--show-submission-result res)
615+
(leetcode--loading-mode -1)))))))))
592616

593617
(defun leetcode-show-descri ()
594618
"Show current entry problem description.

0 commit comments

Comments
 (0)