<p>I found this link <a href="http://artis.imag.fr/~Xavier.Decoret/resources/glsl-mode/" rel="noreferrer">http://artis.imag.fr/~Xavier.Decoret/resources/glsl-mode/</a>, but there isn't a lot of description around it, aside that it's "simple".</p>

<p>Ideally, I'd like an extension to CcMode that can do it, or at least a mode that can handle auto-styling and has similar shortcuts to CcMode.</p>

<p>If there isn't one, any good elisp references to help me get started writing it myself would be greatly appreciated.</p>

<p>EDIT: David's response prompted me to take a closer look at glsl-mode.el, and it is in fact based on cc-mode, so it's exactly what I was looking for in the first place.</p>

Add the following code to your ~/.emacs file.
```
```
(autoload 'glsl-mode "glsl-mode" nil t)
(add-to-list 'auto-mode-alist '("\\.vert\\'" . glsl-mode))
(add-to-list 'auto-mode-alist '("\\.frag\\'" . glsl-mode))
```
```
Put the file
http://artis.imag.fr/~Xavier.Decoret/resources/glsl-mode/glsl-mode.el
somewhere on your emacs path.  You can eval (print load-path) in your
scratch
buffer to get the list of possible locations.  If you don't have write access to any of those, you can append another location to load-paths by adding
```
```
(setq load-path (cons "~/.emacs.d" load-path))
```
```
to your ~/.emacs file.