summaryrefslogtreecommitdiffstats
path: root/lisp/ravi-init-web.el
diff options
context:
space:
mode:
authorRavi R Kiran <aine.marina@gmail.com>2015-03-17 04:17:17 (GMT)
committerRavi R Kiran <aine.marina@gmail.com>2015-03-17 04:17:17 (GMT)
commita6e94a30a835ea389fe8fc40df162ff327035ccb (patch)
treecf695ab8c77b2c78434b2c6913295641a9287110 /lisp/ravi-init-web.el
parentb94602dccfa28b997b1fc1f2e0373d997f4b95ce (diff)
downloaddotemacs-a6e94a30a835ea389fe8fc40df162ff327035ccb.zip
dotemacs-a6e94a30a835ea389fe8fc40df162ff327035ccb.tar.gz
dotemacs-a6e94a30a835ea389fe8fc40df162ff327035ccb.tar.bz2
Move main emacs directory out of load path
This follows the official emacs recommendation for lisp code inside emacs.d.
Diffstat (limited to 'lisp/ravi-init-web.el')
-rw-r--r--lisp/ravi-init-web.el100
1 files changed, 100 insertions, 0 deletions
diff --git a/lisp/ravi-init-web.el b/lisp/ravi-init-web.el
new file mode 100644
index 0000000..13dd758
--- /dev/null
+++ b/lisp/ravi-init-web.el
@@ -0,0 +1,100 @@
+;;; ravi-init-web.el --- Web development -*- lexical-binding: t; -*-
+
+;; Copyright (C) 2014
+
+;; Author: <ravi@nero.lan>
+;; Keywords:
+
+;; This program is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; Web development tools
+
+;;; Code:
+
+(use-package emmet-mode
+ :commands (emmet-mode)
+ :init
+ (progn
+ (add-hook 'css-mode-hook 'emmet-mode)
+ (add-hook 'sgml-mode-hook 'emmet-mode))
+ :config
+ (progn
+ (unbind-key "C-j" emmet-mode-keymap)
+ (bind-key "M-r" 'emmet-expand-line emmet-mode-keymap))
+ :ensure t
+ :diminish t)
+
+;; Javascript
+(use-package js2-mode
+ :mode (("\\.js$" . js2-mode)
+ ("\\.json$" . js2-mode)
+ ("Jakefile$" . js2-mode))
+ ;; :interpreter ("node" . js2-mode)
+ :config
+ (progn
+
+ (use-package js2-refactor
+ :config
+ (progn
+ (js2r-add-keybindings-with-prefix "C-c C-m"))
+ :ensure t)
+
+ (defun ravi/js2-mode-hook ()
+ (emmet-mode)
+ (setq js2-basic-offset 2))
+ (add-hook 'js2-mode-hook 'ravi/js2-mode-hook))
+ :ensure t
+ )
+
+;; Interact with the browser
+(use-package skewer-mode
+ :config
+ (progn
+ (skewer-setup))
+ :ensure t)
+
+;; HTML with web-mode
+(use-package web-mode
+ :mode (("\\.html" . web-mode))
+ :config
+ (progn
+
+ ;; Make it work with smartparens
+ (defun ravi/web-mode-sp-hook ()
+ (setq web-mode-enable-auto-pairing nil)
+ (smartparens-mode)
+ (sp-use-smartparens-bindings))
+ (add-hook 'web-mode-hook 'ravi/web-mode-sp-hook)
+ (add-hook 'web-mode-hook 'emmet-mode)
+ (defun sp-web-mode-is-code-context (id action context)
+ (when (and
+ (eq action 'insert)
+ (not (or (get-text-property (point) 'part-side) (get-text-property (point) 'block-side))))
+ t))
+ (sp-local-pair 'web-mode "<" nil :when '(sp-web-mode-is-code-context))
+
+ ;; Customization
+ (setq web-mode-enable-current-element-highlight t)
+ (setq web-mode-markup-indent-offset 2)
+ (setq web-mode-css-indent-offset 2)
+ (setq web-mode-code-indent-offset 2)
+ (setq web-mode-enable-part-face t)
+ )
+
+ :ensure t)
+
+(provide 'ravi-init-web)
+;;; ravi-init-web.el ends here