Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Processing 2 major-mode for Emacs
Emacs Lisp
branch: master
Failed to load latest commit information.
.gitignore Ignore elc files.
Makefile Add makefile and pkg file Add melpa badge
processing-company.el Use also company-dabbrev-code for completion
processing-mode.el Add function to copy buffer or region to clipboard htmlized
processing-snippets-pkg.el Add makefile and pkg file
processing-snippets.el Add project url to header

Emacs major-mode for Processing 2.0


Based on Rudolf Olah's version and modification by Bunny Blake.

The snippets are taken from Sublime Text 2's Processing plugin and converted to yasnippet snippets.


The easiest way is to install the ELPA package from MELPA with M-x package-install RET processing-mode. All dependencies are automatically installed.

Manual installation

To install processing-mode manually, clone the repository:

git clone

In your .emacs file, add this:

(add-to-list 'load-path "/path/to/processing2-emacs/")
(autoload 'processing-mode "processing-mode" "Processing mode" t)
(add-to-list 'auto-mode-alist '("\\.pde$" . processing-mode))

Add the following to set up processing snippets for yasnippet:

(autoload 'processing-snippets-initialize "processing-snippets" nil nil nil)
(eval-after-load 'yasnippet '(processing-snippets-initialize))


Set variables in .emacs or with customize-group RET processing RET (this works only after processing-mode has been loaded):

(setq processing-location "/path/to/processing-java")
(setq processing-application-dir "/path/to/processing-application-dir")
(setq processing-sketchbook-dir "/path/to/processing-sketchbook-dir")

For example, on Mac the default settings are the following:

(setq processing-location "/usr/bin/processing-java")
(setq processing-application-dir "/Applications/")
(setq processing-sketchbook-dir "~/Documents/Processing")

Usually when you run a processing sketch, the build files are generated in a sub-directory called output in the current sketch directory. It is also possible to set the processing-output-dir to another directory:

(setq processing-output-dir "/tmp")

Optionally it is also possible to set up basic Auto-Complete support to have keyword completion.

(defun processing-mode-init ()
  (make-local-variable 'ac-sources)
  (setq ac-sources '(ac-source-dictionary ac-source-yasnippet))
  (make-local-variable 'ac-user-dictionary)
  (setq ac-user-dictionary (append processing-functions

(add-to-list 'ac-modes 'processing-mode)
(add-hook 'processing-mode-hook 'processing-mode-init)


The key-bindings are:

C-c C-p r    Run a sketch.
C-c C-p b    Compile a sketch into .class files.
C-c C-p p    Run a sketch full screen.
C-c C-p e    Export sketch.
C-c C-p d    Find in reference.
C-c C-p f    Find or create sketch.
C-c C-p s    Search in Processing forum.
Something went wrong with that request. Please try again.