;;; test.el --- Visual QA: Major Modes -*- lexical-binding: t; -*- ;; ;; GPU: emacs --no-init-file -l qa/14-major-modes/test.el ;; Vanilla: EMACS_GPU_DISABLE=1 emacs --no-init-file -l qa/14-major-modes/test.el ;; ;; Press d to open dired on $HOME, o to open the org buffer, e for Emacs Lisp. (defun qa-modes-open-org () (interactive) (let ((buf (get-buffer-create "*QA: org-mode*"))) (with-current-buffer buf (erase-buffer) (insert "* Heading Level 1\n\n") (insert "Regular paragraph text with *bold*, /italic/, =code=,\n") (insert "and ~verbatim~ spans. Also _underlined_ text.\n\n") (insert "** Heading Level 2\n\n") (insert "A table:\n\n") (insert "| Name | Value | Status |\n") (insert "|------------+-------+---------|\n") (insert "| Alpha | 100 | active |\n") (insert "| Beta | 200 | pending |\n") (insert "| Gamma | 300 | done |\n\n") (insert "*** Heading Level 3\n\n") (insert "A source block:\n\n") (insert "#+begin_src emacs-lisp\n") (insert "(defun greet (name)\n") (insert " (message \"Hello, %s!\" name))\n") (insert "#+end_src\n\n") (insert "**** Heading Level 4\n\n") (insert "- List item one\n") (insert "- List item two\n") (insert " - Nested item\n") (insert "- List item three\n\n") (insert "***** Heading Level 5\n\n") (insert "A longer paragraph to check line wrapping and text rendering\n") (insert "at normal reading width. The GPU backend must render this\n") (insert "identically to the NS or cairo baseline.\n") (org-mode)) (switch-to-buffer buf))) (defun qa-modes-open-elisp () (interactive) (let ((buf (get-buffer-create "*QA: emacs-lisp-mode*"))) (with-current-buffer buf (erase-buffer) (insert ";; Emacs Lisp syntax highlight test\n\n") (insert "(require 'cl-lib)\n\n") (insert "(defvar qa-counter 0\n") (insert " \"A simple counter variable.\")\n\n") (insert "(defun qa-increment (&optional amount)\n") (insert " \"Increment QA-COUNTER by AMOUNT (default 1).\"\n") (insert " (interactive)\n") (insert " (cl-incf qa-counter (or amount 1))\n") (insert " (message \"Counter: %d\" qa-counter))\n\n") (insert "(defmacro qa-with-timer (name &rest body)\n") (insert " \"Run BODY and report elapsed time under NAME.\"\n") (insert " `(let ((start (float-time)))\n") (insert " ,@body\n") (insert " (message \"%s took %.3fs\" ',name (- (float-time) start))))\n\n") (insert ";; String literals and constants\n") (insert "(defconst qa-version \"1.0.0\" \"QA harness version.\")\n") (insert "(defconst qa-max-lines 1000)\n\n") (insert ";; Keyword arguments\n") (insert "(cl-defun qa-make-item (&key name value (enabled t))\n") (insert " (list :name name :value value :enabled enabled))\n") (emacs-lisp-mode) (font-lock-ensure)) (switch-to-buffer buf))) (defun qa-modes-open-dired () (interactive) (dired "~")) (let ((buf (get-buffer-create "*QA: Major Modes*"))) (with-current-buffer buf (erase-buffer) (insert (propertize "=== Major Modes QA ===\n\n" 'face '(:weight bold :height 1.3))) (insert (propertize "Keys:\n" 'face '(:weight bold))) (insert " o — open org-mode buffer\n") (insert " e — open emacs-lisp-mode buffer\n") (insert " d — open dired on $HOME\n\n") (insert "For each mode, compare with the vanilla baseline side by side.\n") (use-local-map (make-sparse-keymap)) (local-set-key "o" #'qa-modes-open-org) (local-set-key "e" #'qa-modes-open-elisp) (local-set-key "d" #'qa-modes-open-dired)) (switch-to-buffer buf))