1
0
Fork 0

fix(emacs): delete unused grading mode

Signed-off-by: Lucas Sta Maria <lucas@priime.dev>
This commit is contained in:
Lucas Sta Maria 2024-10-25 01:44:10 -04:00
parent 67297a1402
commit 9d60e3a706
No known key found for this signature in database
GPG key ID: F07FB16A826E3B47

View file

@ -267,84 +267,6 @@
("FIXME" . "#ffffff")
("XXXX*" . "#ffffff")))
;; Grading
(defconst grading-directory-root "pl-grading"
"The root grading directory repository.")
(defun grade-file-format (num)
"Format NUM to a file in the grading directory."
(let* ((dir (if (eq 'dired-mode major-mode)
(dired-current-directory)
(file-name-directory (buffer-file-name))))
(dir-files (directory-files dir))
(extension ".rkt")
(all-rkt-files (-filter (lambda (f) (string= (file-name-extension f) "rkt"))
dir-files))
(all-rkt-files+ (-map #'file-name-sans-extension all-rkt-files))
(hw-files (-filter (lambda (f) (not (zerop (string-to-number f)))) all-rkt-files+))
(hw-files+ (seq-sort-by #'length #'> hw-files))
(digits (length (car hw-files+)))
(str-format (format "%%0%dd.rkt" digits)))
(format str-format num)))
(defun grade-next (&optional inc)
"Go to the next homework by INC to grade."
(interactive)
(let ((inc (or inc 1))
(extension ".rkt")
(filepath (buffer-file-name (current-buffer))))
(if (not (and (string-match-p grading-directory-root filepath)
(string-match-p extension filepath)))
(message (format "not in %s!" grading-directory-root))
(let* ((target-directory (file-name-directory filepath))
(filename-parts (string-split filepath "/"))
(source-filename (-last-item filename-parts))
(source-number-str (file-name-sans-extension source-filename))
(source-number (string-to-number source-number-str))
(target-number (+ inc source-number))
(target-filename (grade-file-format target-number))
(target-filepath (concat target-directory target-filename)))
(if (file-exists-p target-filepath)
(find-file target-filepath)
(message (format "next grading file doesn't exist!")))))))
(defun grade-prev (&optional dec)
"Go to the previous homework by DEC to grade."
(interactive)
(let ((dec (or dec 1)))
(grade-next (- dec))))
(defun grade-start (&optional start)
"Start grading in the current directory with homework START."
(interactive)
(keymap-global-set "C-c f" #'grade-next)
(keymap-global-set "C-c b" #'grade-prev)
(let* ((file-msg "File number to start with (default 0):")
(start (or start
(string-to-number (read-string file-msg))
1))
(dir (if (eq major-mode 'dired-mode)
(dired-current-directory)
(error "Must be in Dired directory")))
(dir-path (file-name-directory dir)))
(if (not (string-match-p grading-directory-root dir-path))
(error "Must be in subdirectory of %s" grading-directory-root)
(let ((readme-file "README.md")
(solution-file "solution.rkt")
(start-file (concat dir-path (grade-file-format start))))
(find-file start-file)
(delete-other-windows)
(split-window-right)
(split-window-right)
(balance-windows)
(windmove-right)
(find-file solution-file)
(windmove-right)
(find-file readme-file)
(windmove-left)
(windmove-left)))))
;; rjsx
(setq auto-mode-alist (cons '("\\.tsx$" . rjsx-mode) auto-mode-alist))