Skip to content

Instantly share code, notes, and snippets.

@smtlaissezfaire
Created September 8, 2008 02:08
Show Gist options
  • Save smtlaissezfaire/9359 to your computer and use it in GitHub Desktop.
Save smtlaissezfaire/9359 to your computer and use it in GitHub Desktop.
(defun ruby-mode-set-encoding ()
(save-excursion
(widen)
(goto-char (point-min))
(when (re-search-forward "[^\0-\177]" nil t)
(goto-char (point-min))
(let ((coding-system
(coding-system-to-mime-charset
(or coding-system-for-write
buffer-file-coding-system))))
(setq coding-system
(if coding-system
(symbol-name
(or (and ruby-use-encoding-map
(cdr (assq coding-system ruby-encoding-map)))
coding-system))
"ascii-8bit"))
(if (looking-at "^#![^\n]*ruby") (beginning-of-line 2))
(cond ((looking-at "\\s *#.*-\*-\\s *\\(en\\)?coding\\s *:\\s *\\([-a-z0-9_]+\\)")
(unless (string= (match-string 2) coding-system)
(goto-char (match-beginning 2))
(delete-region (point) (match-end 2))
(insert coding-system)))
((looking-at "\\s *#.*coding\\s *[:=]"))
(t (insert "# -*- coding: " coding-system " -*-\n"))
)))))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment