forked from FG42/FG42
web extension added
This commit is contained in:
parent
2a657e8f31
commit
4ef4470266
|
@ -3,6 +3,7 @@
|
||||||
(require 'fg42)
|
(require 'fg42)
|
||||||
|
|
||||||
(activate-extensions 'editor
|
(activate-extensions 'editor
|
||||||
'development)
|
'development
|
||||||
|
'web)
|
||||||
|
|
||||||
(fg42-initialize)
|
(fg42-initialize)
|
||||||
|
|
|
@ -5,12 +5,15 @@
|
||||||
;; Dependencies ----------------------------------
|
;; Dependencies ----------------------------------
|
||||||
(depends-on 'flycheck)
|
(depends-on 'flycheck)
|
||||||
(depends-on 'company)
|
(depends-on 'company)
|
||||||
|
(depends-on 'company-statistics)
|
||||||
(depends-on 'projectile)
|
(depends-on 'projectile)
|
||||||
(depends-on 'flyspell)
|
(depends-on 'flyspell)
|
||||||
(depends-on 'diff-hl)
|
(depends-on 'diff-hl)
|
||||||
(depends-on 'magit)
|
(depends-on 'magit)
|
||||||
(depends-on 'indent-guide)
|
(depends-on 'indent-guide)
|
||||||
(depends-on 'yasnippet)
|
(depends-on 'yasnippet)
|
||||||
|
;; TODO: Add flycheck-color-modebar
|
||||||
|
;; TODO Add flycheck-tip
|
||||||
|
|
||||||
;; Extension -------------------------------------
|
;; Extension -------------------------------------
|
||||||
(extension development
|
(extension development
|
||||||
|
|
|
@ -19,7 +19,25 @@
|
||||||
|
|
||||||
(ability code-completion ()
|
(ability code-completion ()
|
||||||
"Use company mode to provides a complete auto completion framwork."
|
"Use company mode to provides a complete auto completion framwork."
|
||||||
|
(require 'company)
|
||||||
(global-company-mode t)
|
(global-company-mode t)
|
||||||
|
|
||||||
|
;; Bigger popup window
|
||||||
|
(setq company-tooltip-limit 20)
|
||||||
|
|
||||||
|
;; Align annotations to the right tooltip border
|
||||||
|
(setq company-tooltip-align-annotations 't)
|
||||||
|
|
||||||
|
;; Decrease delay before autocompletion popup shows
|
||||||
|
(setq company-idle-delay 0.3)
|
||||||
|
|
||||||
|
;; Start autocompletion only after typing
|
||||||
|
(setq company-begin-commands '(self-insert-command))
|
||||||
|
|
||||||
|
;; Force complete file names on "C-c /" key
|
||||||
|
(global-set-key (kbd "C-c /") 'company-files)
|
||||||
|
|
||||||
|
(add-hook 'after-init-hook 'company-statistics-mode)
|
||||||
(define-key company-active-map "\t" 'company-yasnippet-or-completion))
|
(define-key company-active-map "\t" 'company-yasnippet-or-completion))
|
||||||
|
|
||||||
(ability yas ()
|
(ability yas ()
|
||||||
|
|
|
@ -0,0 +1,17 @@
|
||||||
|
(require 'fpkg)
|
||||||
|
(require 'fg42/extension)
|
||||||
|
(require 'extensions/ruby/init)
|
||||||
|
|
||||||
|
;; Dependencies ----------------------------------
|
||||||
|
(depends-on 'company-ruby)
|
||||||
|
(depends-on 'ruby-mode)
|
||||||
|
(depends-on 'slim-mode)
|
||||||
|
(depends-on 'haml-mode)
|
||||||
|
|
||||||
|
|
||||||
|
;; Extension -------------------------------------
|
||||||
|
(extension ruby
|
||||||
|
:version "2.67"
|
||||||
|
:on-initialize extension/ruby-initialize)
|
||||||
|
|
||||||
|
(provide 'extensions/ruby)
|
|
@ -0,0 +1,26 @@
|
||||||
|
(require 'fpkg)
|
||||||
|
(require 'fg42/extension)
|
||||||
|
(require 'extensions/web/init)
|
||||||
|
|
||||||
|
;; Dependencies ----------------------------------
|
||||||
|
(depends-on 'emmet-mode)
|
||||||
|
(depends-on 'company-web)
|
||||||
|
(depends-on 'web-mode)
|
||||||
|
(depends-on 'sass-mode)
|
||||||
|
(depends-on 'scss-mode)
|
||||||
|
(depends-on 'less-css-mode)
|
||||||
|
(depends-on 'coffee-mode)
|
||||||
|
(depends-on 'handlebars-mode)
|
||||||
|
(depends-on 'js2-mode)
|
||||||
|
(depends-on 'js2-refactor)
|
||||||
|
(depends-on 'rainbow-mode)
|
||||||
|
;(depends-on 'slim-mode)
|
||||||
|
;(depends-on 'haml-mode)
|
||||||
|
(depends-on 'mustache-mode)
|
||||||
|
|
||||||
|
;; Extension -------------------------------------
|
||||||
|
(extension web
|
||||||
|
:version "2.67"
|
||||||
|
:on-initialize extensions/web-initialize)
|
||||||
|
|
||||||
|
(provide 'extensions/web)
|
|
@ -0,0 +1,80 @@
|
||||||
|
;; Functions -------------------------------------------------
|
||||||
|
;;;###autoload
|
||||||
|
(defun web-mode-hook-func ()
|
||||||
|
"Hooks for Web mode."
|
||||||
|
(with-ability code-completion
|
||||||
|
(require 'company-web-html)
|
||||||
|
(set (make-local-variable
|
||||||
|
'company-backends) '(company-web-html))
|
||||||
|
|
||||||
|
(define-key web-mode-map (kbd "C-'") 'company-web-html))
|
||||||
|
|
||||||
|
(setq web-mode-markup-indent-offset 2))
|
||||||
|
|
||||||
|
;;;###autoload
|
||||||
|
(defun extensions/web-activate-modes ()
|
||||||
|
"Activate necessary modes"
|
||||||
|
(with-ability rainbow
|
||||||
|
(rainbow-mode t))
|
||||||
|
|
||||||
|
(with-ability spell
|
||||||
|
(flyspell-prog-mode))
|
||||||
|
|
||||||
|
(with-ability flycheck
|
||||||
|
(flycheck-mode t)))
|
||||||
|
|
||||||
|
|
||||||
|
;;;###autoload
|
||||||
|
(defun extensions/web-initialize ()
|
||||||
|
"Web development plugin initialization."
|
||||||
|
(message "Initializing 'web' extension.")
|
||||||
|
|
||||||
|
(ability web-editor ('flycheck)
|
||||||
|
"Gives FG42 the ability to edit web contents."
|
||||||
|
(require 'web-mode)
|
||||||
|
|
||||||
|
(add-to-list 'auto-mode-alist '("\\.phtml\\'" . web-mode))
|
||||||
|
(add-to-list 'auto-mode-alist '("\\.tpl\\.php\\'" . web-mode))
|
||||||
|
(add-to-list 'auto-mode-alist '("\\.jsp\\'" . web-mode))
|
||||||
|
(add-to-list 'auto-mode-alist '("\\.as[cp]x\\'" . web-mode))
|
||||||
|
(add-to-list 'auto-mode-alist '("\\.erb\\'" . web-mode))
|
||||||
|
(add-to-list 'auto-mode-alist '("\\.mustache\\'" . web-mode))
|
||||||
|
(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-hook 'web-mode-hook 'web-mode-hook-func)
|
||||||
|
(add-hook 'web-mode-hook 'emmet-mode)
|
||||||
|
(add-hook 'web-mode-hook 'extensions/web-activate-modes))
|
||||||
|
|
||||||
|
(ability css-editor
|
||||||
|
"Gives FG42 the ability to edit CSS."
|
||||||
|
(add-hook 'css-mode-hook 'extensions/web-activate-modes))
|
||||||
|
|
||||||
|
(ability sass-editor
|
||||||
|
"Gives FG42 the ability to edit SASS/SCSS."
|
||||||
|
|
||||||
|
(add-to-list 'auto-mode-alist '("\\.scss$" . scss-mode))
|
||||||
|
(add-to-list 'auto-mode-alist '("\\.sass$" . sass-mode))
|
||||||
|
|
||||||
|
(setq scss-compile-at-save nil)
|
||||||
|
(setq sass-compile-at-save nil)
|
||||||
|
|
||||||
|
(add-hook 'scss-mode-hook 'extensions/web-activate-modes)
|
||||||
|
(add-hook 'sass-mode-hook 'extensions/web-activate-modes))
|
||||||
|
|
||||||
|
(ability less-editor
|
||||||
|
"Gives FG42 the ability to edit lesscss."
|
||||||
|
(add-to-list 'auto-mode-alist '("\\.less$" . less-css-mode))
|
||||||
|
(add-hook 'less-css-mode-hook 'extensions/web-activate-modes))
|
||||||
|
|
||||||
|
(ability js-editor
|
||||||
|
"Gives FG42 the ability to edit Javascript."
|
||||||
|
(add-hook 'js2-mode-hook 'extensions/web-activate-modes)
|
||||||
|
(add-to-list 'auto-mode-alist '("\\.js.erb$" . js2-mode))
|
||||||
|
(add-to-list 'auto-mode-alist '("\\.js$" . js2-mode))))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
(provide 'extensions/web/init)
|
|
@ -24,6 +24,7 @@
|
||||||
"Return t if ability was not in disabled-abilities."
|
"Return t if ability was not in disabled-abilities."
|
||||||
(if (gethash name disabled-abilities) nil t))
|
(if (gethash name disabled-abilities) nil t))
|
||||||
|
|
||||||
|
;; Macros ---------------------------------
|
||||||
(defmacro ability (name deps &rest body)
|
(defmacro ability (name deps &rest body)
|
||||||
"Define an ability with the given name.
|
"Define an ability with the given name.
|
||||||
|
|
||||||
|
@ -33,7 +34,7 @@ to them.
|
||||||
*body* is a block of code which will run as the ability initializer code."
|
*body* is a block of code which will run as the ability initializer code."
|
||||||
(declare (doc-string 2) (indent 1))
|
(declare (doc-string 2) (indent 1))
|
||||||
`(if (active-ability? (intern ,(symbol-name name)))
|
`(if (active-ability? (intern ,(symbol-name name)))
|
||||||
(if (null (delq t (mapcar 'active-ability? ,deps)))
|
(when (null (delq t (mapcar 'active-ability? (quote ,deps))))
|
||||||
,@body)))
|
,@body)))
|
||||||
|
|
||||||
(defmacro extension (name &rest args)
|
(defmacro extension (name &rest args)
|
||||||
|
@ -41,4 +42,9 @@ to them.
|
||||||
;(declare (doc-string 1) (indent 1))
|
;(declare (doc-string 1) (indent 1))
|
||||||
`(setq ,name (apply 'make-fg42-extension :name ,(symbol-name name) (quote ,args))))
|
`(setq ,name (apply 'make-fg42-extension :name ,(symbol-name name) (quote ,args))))
|
||||||
|
|
||||||
|
(defmacro with-ability (name &rest body)
|
||||||
|
"Run the block of code if an ability with the given name was not disable."
|
||||||
|
`(when (active-ability? (intern ,(symbol-name name)))
|
||||||
|
,@body))
|
||||||
|
|
||||||
(provide 'fg42/extension)
|
(provide 'fg42/extension)
|
||||||
|
|
Loading…
Reference in New Issue