From 26b1e5efcfa8c251f4fae9aef850bd6722ba95ab Mon Sep 17 00:00:00 2001 From: Sameer Rahmani Date: Sun, 27 Dec 2015 16:18:48 +0330 Subject: [PATCH 1/2] jsx mode updated --- fg42-config.el | 8 ++++---- lib/extensions/web/init.el | 19 ++++++++++++------- 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/fg42-config.el b/fg42-config.el index da20757..d82e2e6 100644 --- a/fg42-config.el +++ b/fg42-config.el @@ -1,5 +1,5 @@ (add-to-list 'load-path (concat (getenv "FG42_HOME") "/lib")) -(toggle-debug-on-error) +;(toggle-debug-on-error) (require 'fg42) ;; Load the default theme @@ -14,9 +14,9 @@ 'web 'editor-theme 'javascript - 'php - 'clojure - 'python + ;'php + ;'clojure + ;'python 'ruby) ;; Load user config file in ~/.fg42 diff --git a/lib/extensions/web/init.el b/lib/extensions/web/init.el index bdebb7d..0c8ab7d 100644 --- a/lib/extensions/web/init.el +++ b/lib/extensions/web/init.el @@ -41,19 +41,24 @@ :modes (web-mode)) (add-hook 'web-mode-hook - (lambda () - (when (equal web-mode-content-type "jsx") - ;; enable flycheck - (flycheck-select-checker 'jsxhint-checker) - (flycheck-mode)))) + (lambda () + (when (equal web-mode-content-type "jsx") + ;; enable flycheck + (flycheck-select-checker 'jsxhint-checker) + (flycheck-mode)))) (defadvice web-mode-highlight-part (around tweak-jsx activate) (if (equal web-mode-content-type "jsx") (let ((web-mode-enable-part-face nil)) ad-do-it) ad-do-it)) + + (setq web-mode-markup-indent-offset 2) + (setq web-mode-code-indent-offset 2) + (setq web-mode-content-types-alist - '(("jsx" . "\\.js[x]?\\'"))) + '(("jsx" . "\\.js[x]?\\'"))) + (web-mode)) ;;;###autoload @@ -74,7 +79,7 @@ (add-to-list 'auto-mode-alist '("\\.handlebars\\'" . web-mode)) (add-to-list 'auto-mode-alist '("\\.djhtml\\'" . web-mode)) (add-to-list 'auto-mode-alist '("\\.html$" . web-mode)) - + (add-to-list 'auto-mode-alist '("\\.jsx$" . jsx)) (add-hook 'web-mode-hook 'web-mode-hook-func) (add-hook 'web-mode-hook 'emmet-mode) From c58df5fed910bdd1982ed7510895876daadde238 Mon Sep 17 00:00:00 2001 From: Sameer Rahmani Date: Sat, 9 Jan 2016 11:51:20 +0330 Subject: [PATCH 2/2] get rid of ruby-mode by using enh-ruby-mode --- lib/extensions/ruby.el | 2 +- lib/extensions/ruby/init.el | 39 ++++++++++++++++++------------- lib/extensions/ruby/setup.el | 14 +++++------ lib/fg42/base.el | 5 ++++ lib/themes/color-theme-monokai.el | 2 ++ 5 files changed, 38 insertions(+), 24 deletions(-) diff --git a/lib/extensions/ruby.el b/lib/extensions/ruby.el index acdf955..65a4cad 100644 --- a/lib/extensions/ruby.el +++ b/lib/extensions/ruby.el @@ -4,7 +4,7 @@ ;; Dependencies ---------------------------------- (depends-on 'company-inf-ruby) -(depends-on 'ruby-mode) +(depends-on 'enh-ruby-mode) (depends-on 'rbenv) (depends-on 'slim-mode) (depends-on 'haml-mode) diff --git a/lib/extensions/ruby/init.el b/lib/extensions/ruby/init.el index d032263..4a8037f 100644 --- a/lib/extensions/ruby/init.el +++ b/lib/extensions/ruby/init.el @@ -3,12 +3,10 @@ ;; Functions ------------------------------------------------- ;;;###autoload -(defun ruby-mode-callback () - +(defun enh-ruby-mode-callback () (setup-general-ruby-editor) (setup-inf-ruby) (setup-bundler) - (setq ruby-deep-indent-paren t) (with-ability rbenv (require 'rbenv) @@ -17,12 +15,14 @@ (with-ability auto-pair (ruby-electric-mode t))) - ;;;###autoload (defun extensions/ruby-initialize () "Web development plugin initialization." (message "Initializing 'ruby' extension.") + (require 'enh-ruby-mode) + (autoload 'enh-ruby-mode "enh-ruby-mode" "Major mode for ruby files" t) + (with-ability global-rbenv (require 'rbenv) (global-rbenv-mode)) @@ -30,13 +30,20 @@ (ability ruby-editor ('flycheck) "Gives FG42 the ability to edit ruby files." - ;; Autostart ruby mode on these file types - (add-to-list 'auto-mode-alist '("\\.rake$" . ruby-mode)) - (add-to-list 'auto-mode-alist '("Gemfile$" . ruby-mode)) - (add-to-list 'auto-mode-alist '("Rakefile$" . ruby-mode)) - (add-to-list 'auto-mode-alist '("gemspec$" . ruby-mode)) - (add-to-list 'auto-mode-alist '("config.ru$" . ruby-mode)) - (add-to-list 'auto-mode-alist '("json.jbuilder$" . ruby-mode)) + (dolist (spec '(("\\.rb$" . enh-ruby-mode) + ("[vV]agrantfile$" . enh-ruby-mode) + ("[gG]emfile$" . enh-ruby-mode) + ("[pP]uppetfile$" . enh-ruby-mode) + ("\\.rake$" . enh-ruby-mode) + ("\\.rabl$" . enh-ruby-mode) + ("[cC]apfile$" . enh-ruby-mode) + ("\\.gemspec$" . enh-ruby-mode) + ("\\.builder$" . enh-ruby-mode))) + (add-to-list 'auto-mode-alist spec)) + + (setq enh-ruby-use-encoding-map nil + ;; don't deep indent arrays and hashes + enh-ruby-deep-indent-paren nil) ;; Autostart yaml-mode (add-to-list 'auto-mode-alist '("\\.yml$" . yaml-mode)) @@ -44,20 +51,20 @@ '(lambda () (define-key yaml-mode-map "\C-m" 'newline-and-indent))) - ;; Add our callback to ruby-mode-hook - (add-hook 'ruby-mode-hook 'ruby-mode-callback) + ;; Add our callback to enh-ruby-mode-hook + (add-hook 'enh-ruby-mode-hook 'enh-ruby-mode-callback) ;; configure hs-minor-mode (add-to-list 'hs-special-modes-alist - '(ruby-mode + '(enh-ruby-mode "\\(class\\|def\\|do\\|if\\)" "\\(end\\)" "#" (lambda (arg) (ruby-end-of-block)) nil)) - (add-hook 'ruby-mode-hook 'projectile-mode)) + (add-hook 'enh-ruby-mode-hook 'projectile-mode)) (ability ruby-code-completion ('code-completion) "Auto complete ruby code on demand." - (add-to-list 'ruby-mode-hook 'ruby-code-completion)) + (add-to-list 'enh-ruby-mode-hook 'ruby-code-completion)) (ability slim-mode () "Gives FG42 the ability to edit slim templates." diff --git a/lib/extensions/ruby/setup.el b/lib/extensions/ruby/setup.el index 4a0241b..eabe7fd 100644 --- a/lib/extensions/ruby/setup.el +++ b/lib/extensions/ruby/setup.el @@ -10,11 +10,11 @@ (defun setup-bundler () "Setup bundler and its keybindings" (require 'bundler) - (define-key ruby-mode-map (kbd "\C-c b i") 'bundle-install) - (define-key ruby-mode-map (kbd "\C-c b u") 'bundle-update) - (define-key ruby-mode-map (kbd "\C-c b e") 'bundle-exec) - (define-key ruby-mode-map (kbd "\C-c b o") 'bundle-open) - (define-key ruby-mode-map (kbd "\C-c b c") 'bundle-console)) + (define-key enh-ruby-mode-map (kbd "\C-c b i") 'bundle-install) + (define-key enh-ruby-mode-map (kbd "\C-c b u") 'bundle-update) + (define-key enh-ruby-mode-map (kbd "\C-c b e") 'bundle-exec) + (define-key enh-ruby-mode-map (kbd "\C-c b o") 'bundle-open) + (define-key enh-ruby-mode-map (kbd "\C-c b c") 'bundle-console)) ;;;###autoload (defun setup-inf-ruby() @@ -27,7 +27,7 @@ (global-set-key (kbd "C-c r r") 'inf-ruby) ;; TODO: We don't need this if pry setup is present in ~/.irbrc - (setq irbparams " --inf-ruby-mode -r irb/completion") + (setq irbparams " --inf-enh-ruby-mode -r irb/completion") (setq irbpath (rbenv--expand-path "shims" "irb")) (setq irb (concat irbpath irbparams)) (add-to-list 'inf-ruby-implementations (cons "ruby" irb)) @@ -56,7 +56,7 @@ '(rspec-install-snippets)) (ruby-tools-mode t) - (define-key ruby-mode-map (kbd "C-.") 'insert-arrow) + (define-key enh-ruby-mode-map (kbd "C-.") 'insert-arrow) (hs-minor-mode t) ;; Hack autocomplete so it treat :symbole and symbole the same way (modify-syntax-entry ?: ".")) diff --git a/lib/fg42/base.el b/lib/fg42/base.el index 569d4da..d40e851 100644 --- a/lib/fg42/base.el +++ b/lib/fg42/base.el @@ -48,5 +48,10 @@ local should be 't' if theme is on FG42 it self" (if (file-exists-p file) (load-file file))) +(defun what-face (pos) + (interactive "d") + (let ((face (or (get-char-property (point) 'read-face-name) + (get-char-property (point) 'face)))) + (if face (message "Face: %s" face) (message "No face at %d" pos)))) (provide 'fg42/base) diff --git a/lib/themes/color-theme-monokai.el b/lib/themes/color-theme-monokai.el index 208baa2..f26a18d 100644 --- a/lib/themes/color-theme-monokai.el +++ b/lib/themes/color-theme-monokai.el @@ -49,6 +49,8 @@ Based on the TextMate theme Monokai" (font-lock-preprocessor-face ((t (:foreground "#66D9EF")))) ; aluminum (font-lock-constant-face ((t (:foreground "#4e9a06")))) ; dark chameleon (font-lock-type-face ((t (:foreground "#66D9EF")))) ; light plum + (enh-ruby-op-face ((t (:foreground "#dfdfda" :background nil)))) + (font-lock-warning-face ((t (:bold t :foreground "#cc0000")))) ; scarlet red (hl-line ((t (:background "#393b2f"))))