From 38f256bbb18d1ac3828fb7d3da61d1624dd53a5a Mon Sep 17 00:00:00 2001 From: Jim Myhrberg Date: Tue, 1 Mar 2016 08:54:03 +0000 Subject: [PATCH] Add web-mode and make jsx files open with it --- modules/siren-jsx.el | 13 +++++++++++ modules/siren-web-mode.el | 45 +++++++++++++++++++++++++++++++++++++++ siren-modules.el | 2 ++ 3 files changed, 60 insertions(+) create mode 100644 modules/siren-jsx.el create mode 100644 modules/siren-web-mode.el diff --git a/modules/siren-jsx.el b/modules/siren-jsx.el new file mode 100644 index 0000000..26599ec --- /dev/null +++ b/modules/siren-jsx.el @@ -0,0 +1,13 @@ +;;; siren-jsx.el --- jimeh's Emacs Siren: .jsx file configuration + +;;; Commentary: + +;; Basic configuration for dealing with .jsx files. + +;;; Code: + +(require 'siren-web-mode) +(add-to-list 'auto-mode-alist '("\\.jsx\\'" . web-mode)) + +(provide 'siren-jsx) +;;; siren-jsx.el ends here diff --git a/modules/siren-web-mode.el b/modules/siren-web-mode.el new file mode 100644 index 0000000..f270cb5 --- /dev/null +++ b/modules/siren-web-mode.el @@ -0,0 +1,45 @@ +;;; siren-web-mode.el --- jimeh's Emacs Siren: web-mode configuration. + +;;; Commentary: + +;; Basic configuration for web-mode. + +;;; Code: + +(require 'siren-programming) + +(siren-require-packages '(web-mode)) +(require 'web-mode) + +(add-to-list 'auto-mode-alist '("\\.html.erb\\'" . web-mode)) +(add-to-list 'auto-mode-alist '("\\.html\\'" . web-mode)) + +(eval-after-load 'web-mode + '(progn + (defun siren-web-mode-mode-defaults () + "Default tweaks for `web-mode'." + (setq web-mode-code-indent-offset 2) + (setq web-mode-css-indent-offset 2) + (setq web-mode-markup-indent-offset 2) + (setq web-mode-sql-indent-offset 2) + (setq tab-width 2) + + (siren-prog-mode-defaults) + (company-mode +1) + (subword-mode +1) + (hs-minor-mode 1) + (highlight-indentation-set-offset 2) + (highlight-indentation-mode) + (highlight-indentation-current-column-mode) + + (let ((map web-mode-map)) + (define-key map (kbd "C-j") 'newline-and-indent) + (define-key map (kbd "C-c C-h") 'siren-toggle-hiding))) + + (setq siren-web-mode-mode-hook 'siren-web-mode-mode-defaults) + + (add-hook 'web-mode-hook (lambda () + (run-hooks 'siren-web-mode-mode-hook))))) + +(provide 'siren-web-mode) +;;; siren-web-mode.el ends here diff --git a/siren-modules.el b/siren-modules.el index d8fb521..746d775 100644 --- a/siren-modules.el +++ b/siren-modules.el @@ -52,6 +52,7 @@ (require 'siren-go) (require 'siren-js) (require 'siren-json) +(require 'siren-jsx) (require 'siren-lua) (require 'siren-makefile) (require 'siren-markdown) @@ -60,6 +61,7 @@ (require 'siren-scss) (require 'siren-sh) (require 'siren-thrift) +(require 'siren-web-mode) (require 'siren-yaml) (provide 'siren-modules)