Log In  


I've started to dip my toe into thinking about token minimization. Now I write most of my code in Emacs' pico8-mode, which I love since it presents the code in the same font as pico-8 so I don't feel I've strayed too far.

But I've been aching for a way to count tokens outside of pico8's editor. I found the p8tool which can do that and more, so I wrote this elisp function to make it accessible for me within Emacs.

(defun pico8-token-count (beginning end)
    "Calculate the number of pico-8 tokens in the file or region."
    (interactive "r")
    (let ((path (if (use-region-p)
                  (let ((temp-file (make-temp-file "token-count-" nil ".p8")))
                      (write-region "pico-8 cartridge // http://www.pico-8.com\nversion 5\n__lua__\n" nil temp-file)
                      (write-region beginning end temp-file t)
                      temp-file)
                  (buffer-file-name))))
        (message (shell-command-to-string (concat "p8tool stats '" path "' | grep tokens | cut -d ' ' -f 3")))))

Here it is in action.

1


That's a good idea! I use kakoune (more similar to vim), I'll need to integrate p8tool into my editor to count tokens in a selection.

And I love that PICO-8 mode for emacs, it's my first time seeing it!



[Please log in to post a comment]