diff --git a/core/prelude-packages.el b/core/prelude-packages.el
index ee025dc..e34f8e7 100644
--- a/core/prelude-packages.el
+++ b/core/prelude-packages.el
@@ -80,8 +80,12 @@ PACKAGE is installed only if not already present.  The file is opened in MODE."
   '(("\\.clj\\'" clojure-mode clojure-mode)
     ("\\.coffee\\'" coffee-mode coffee-mode)
     ("\\.css\\'" css-mode css-mode)
+    ("\\.csv\\'" csv-mode csv-mode)
+    ("\\.d\\'" d-mode d-mode)
+    ("\\.dart\\'" dart-mode dart-mode)
     ("\\.erl\\'" erlang erlang-mode)
     ("\\.feature\\'" feature-mode feature-mode)
+    ("\\.go\\'" go-mode go-mode)
     ("\\.groovy\\'" groovy-mode groovy-mode)
     ("\\.haml\\'" haml-mode haml-mode)
     ("\\.hs\\'" haskell-mode haskell-mode)
@@ -90,11 +94,13 @@ PACKAGE is installed only if not already present.  The file is opened in MODE."
     ("\\.lua\\'" lua-mode lua-mode)
     ("\\.markdown\\'" markdown-mode markdown-mode)
     ("\\.md\\'" markdown-mode markdown-mode)
+    ("\\.ml\\'" tuareg tuareg-mode)
     ("\\.php\\'" php-mode php-mode)
     ("\\.sass\\'" sass-mode sass-mode)
     ("\\.scala\\'" scala-mode2 scala-mode)
     ("\\.scss\\'" scss-mode scss-mode)
     ("\\.slim\\'" slim-mode slim-mode)
+    ("\\.textile\\'" textile-mode textile-mode)
     ("\\.yml\\'" yaml-mode yaml-mode)))
 
 ;; markdown-mode doesn't have autoloads for the auto-mode-alist
diff --git a/modules/prelude-programming.el b/modules/prelude-programming.el
index 915f8a7..2e0638e 100644
--- a/modules/prelude-programming.el
+++ b/modules/prelude-programming.el
@@ -97,7 +97,7 @@
 
 ;; show the name of the current function definition in the modeline
 (require 'which-func)
-(setq which-func-modes t)
+(add-to-list 'which-func-modes 'ruby-mode)
 (which-function-mode 1)
 
 ;; in Emacs 24 programming major modes generally derive from a common