overwriting one of these characters."
(interactive "P")
(when (memq (char-after) pico8-data-characters)
- (let ((overwrite-mode t))
+ (let ((overwrite-mode 'overwrite-mode-textual))
(self-insert-command (prefix-numeric-value n)))))
(let ((map pico8-data-mode-map))
(suppress-keymap map)
- (dolist (c pico8-data-characters)
- (define-key map (format "%c" c) 'pico8-data-self-insert-command)))
+ (dolist (c (mapcar #'char-to-string pico8-data-characters))
+ (define-key map c 'pico8-data-self-insert-command)))
(defun pico8-goto-char (position)
"Set point to POSITION, a number.
(let ((beg (- (point) (% (min 255 (current-column)) 2))))
(string-to-number (buffer-substring beg (+ beg 2)) 16)))
- ;; In Lua or other code, the sprite is a numeric literal.
- ;; lua-mode doesn't derive from anything.
- ((or (derived-mode-p 'lua-mode) (derived-mode-p 'prog-mode))
+ ;; In Lua, the sprite is a numeric literal.
+ ((derived-mode-p 'lua-mode)
(pico8--string-to-number (or (word-at-point) "")))
(t nil)))
(and (re-search-backward "\\<f[gs]et\\|s?spr\\>"
(- (point) 30) t)
(char-after)))))
- ;; FIXME: Actually parse something? lua-mode's sexp
- ;; commands don't seem too good, and counting parentheses
- ;; by hand is for nerds.
(cond ((= c ?f) (pico8-goto-flag n))
((= c ?s) (pico8-goto-sprite n))
(t (error "There's nothing obvious to go to")))))