Skip to content

Instantly share code, notes, and snippets.

@remydagostino
Last active August 29, 2015 14:23
Show Gist options
  • Save remydagostino/23aa15c83ed9af062b4a to your computer and use it in GitHub Desktop.
Save remydagostino/23aa15c83ed9af062b4a to your computer and use it in GitHub Desktop.
Flip between js, tmpl and css files in emacs
(defun open-if-exists (filename)
(when (file-exists-p filename) (set-buffer (find-file filename)) filename))
(defun get-flipped-ext (extension)
(cond ((string= extension "js") "tmpl")
((string= extension "tmpl") "css")
((string= extension "css") "js")
(t nil)))
(defun try-file-flip (base extension tries)
(let ((flipped-ext (get-flipped-ext extension)))
(when (and (< tries 2) flipped-ext)
(unless (open-if-exists (concat base "." flipped-ext))
(try-file-flip base flipped-ext (+ tries 1))))))
;; Switch between [something].js -> [something].tmpl -> [something].css
(defun flip-between-viewparts ()
(interactive)
(let* ((file-name (buffer-file-name))
(file-base (file-name-sans-extension file-name))
(extension (file-name-extension file-name)))
(try-file-flip file-base extension 0)))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment