diff --git a/core/prelude-core.el b/core/prelude-core.el index 7ce5060..fa630b3 100644 --- a/core/prelude-core.el +++ b/core/prelude-core.el @@ -71,21 +71,17 @@ PROMPT sets the `read-string prompt." (buffer-substring (region-beginning) (region-end)) (read-string prompt)))))) -(defun prelude-google () - "Googles a query or region if any." - (interactive) - (prelude-search "http://www.google.com/search?q=" "Google: ")) +(defmacro prelude-install-search-engine (search-engine-name search-engine-url search-engine-prompt) + "Given some information regarding a search engine, install the interactive command to search through them" + `(defun ,(intern (format "prelude-%s" search-engine-name)) () + ,(format "Search %s with a query or region if any." search-engine-name) + (interactive) + (prelude-search ,search-engine-url ,search-engine-prompt))) -(defun prelude-youtube () - "Search YouTube with a query or region if any." - (interactive) - (prelude-search "http://www.youtube.com/results?search_query=" - "Search YouTube: ")) - -(defun prelude-github () - "Search GitHub with a query or region if any." - (interactive) - (prelude-search "https://github.com/search?q=" "Search GitHub: ")) +(prelude-install-search-engine "google" "http://www.google.com/search?q=" "Google: ") +(prelude-install-search-engine "youtube" "http://www.youtube.com/results?search_query=" "Search YouTube: ") +(prelude-install-search-engine "github" "https://github.com/search?q=" "Search GitHub: ") +(prelude-install-search-engine "duckduckgo" "https://duckduckgo.com/?t=lm&q=" "Search DuckDuckGo: ") (defun prelude-indent-rigidly-and-copy-to-clipboard (begin end arg) "Indent region between BEGIN and END by ARG columns and copy to clipboard." @@ -405,6 +401,7 @@ Doesn't mess with special buffers." "Press to search in Google." "Press to search in GitHub." "Press to search in YouTube." + "Press to search in DuckDuckGo." "Press to rename the current buffer and file it's visiting." "Press to open a terminal in Emacs." "Press to kill all the buffers, but the active one." diff --git a/core/prelude-mode.el b/core/prelude-mode.el index 2258c0a..bd7a2ff 100644 --- a/core/prelude-mode.el +++ b/core/prelude-mode.el @@ -39,6 +39,7 @@ (define-key map (kbd "C-c g") 'prelude-google) (define-key map (kbd "C-c G") 'prelude-github) (define-key map (kbd "C-c y") 'prelude-youtube) + (define-key map (kbd "C-c U") 'prelude-duckduckgo) ;; mimic popular IDEs binding, note that it doesn't work in a terminal session (define-key map [(shift return)] 'prelude-smart-open-line) (define-key map (kbd "M-o") 'prelude-smart-open-line) diff --git a/modules/prelude-coffee.el b/modules/prelude-coffee.el index 69e3c65..90d881d 100644 --- a/modules/prelude-coffee.el +++ b/modules/prelude-coffee.el @@ -40,7 +40,7 @@ "coffee-mode-defaults" ;; CoffeeScript uses two spaces. - (set (make-local-variable 'tab-width) 2) + (setq coffee-tab-width 2) ;; If you don't have js2-mode (setq coffee-js-mode 'javascript-mode) diff --git a/modules/prelude-latex.el b/modules/prelude-latex.el index 9d8ec70..c4a9ba0 100644 --- a/modules/prelude-latex.el +++ b/modules/prelude-latex.el @@ -44,17 +44,17 @@ ;; use pdflatex (setq TeX-PDF-mode t) -(setq TeX-view-program-selection - '((output-dvi "DVI Viewer") - (output-pdf "PDF Viewer") - (output-html "HTML Viewer"))) +;; sensible defaults for OS X, other OSes should be covered out-of-the-box +(when (eq system-type 'darwin) + (setq TeX-view-program-selection + '((output-dvi "DVI Viewer") + (output-pdf "PDF Viewer") + (output-html "HTML Viewer"))) -;; this section is good for OS X only -;; TODO add sensible defaults for Linux/Windows -(setq TeX-view-program-list - '(("DVI Viewer" "open %o") - ("PDF Viewer" "open %o") - ("HTML Viewer" "open %o"))) + (setq TeX-view-program-list + '(("DVI Viewer" "open %o") + ("PDF Viewer" "open %o") + ("HTML Viewer" "open %o")))) (defun prelude-latex-mode-defaults () (turn-on-auto-fill) diff --git a/modules/prelude-ruby.el b/modules/prelude-ruby.el index 59cb841..e5792fb 100644 --- a/modules/prelude-ruby.el +++ b/modules/prelude-ruby.el @@ -48,6 +48,7 @@ (add-to-list 'auto-mode-alist '("Thorfile\\'" . ruby-mode)) (add-to-list 'auto-mode-alist '("Vagrantfile\\'" . ruby-mode)) (add-to-list 'auto-mode-alist '("\\.jbuilder\\'" . ruby-mode)) +(add-to-list 'auto-mode-alist '("Podfile\\'" . ruby-mode)) ;; We never want to edit Rubinius bytecode (add-to-list 'completion-ignored-extensions ".rbc") diff --git a/modules/prelude-web.el b/modules/prelude-web.el index 234804e..0a0062b 100644 --- a/modules/prelude-web.el +++ b/modules/prelude-web.el @@ -49,8 +49,6 @@ (eval-after-load 'web-mode '(progn (defun prelude-web-mode-defaults () - ;; Disable whitespace-mode when using web-mode - (whitespace-mode -1) ;; Customizations (setq web-mode-markup-indent-offset 4) (setq web-mode-css-indent-offset 2)