108 lines
3.6 KiB
EmacsLisp
108 lines
3.6 KiB
EmacsLisp
(require 'polymode)
|
|
|
|
;; We cannot have all these "requires" as part of polymode
|
|
;; https://github.com/vspinu/polymode/issues/69
|
|
;; (require 'css-mode)
|
|
;; (require 'scss-mode)
|
|
;; (require 'coffee-mode)
|
|
;; (require 'slim-mode)
|
|
;; (require 'ruby-mode)
|
|
;; (require 'markdown-mode)
|
|
|
|
(defcustom pm-host/slim
|
|
(pm-bchunkmode "slim" :mode 'slim-mode)
|
|
"slim host chunkmode"
|
|
:group 'hostmodes
|
|
:type 'object)
|
|
|
|
(pm-create-indented-block-matchers "slim-coffee" "^[^ ]*\\(.*:? *coffee: *\\)$")
|
|
(defcustom pm-inner/slim-coffee
|
|
(pm-hbtchunkmode "slim coffee include"
|
|
:mode 'coffee-mode
|
|
:head-mode 'slim-mode
|
|
:tail-mode 'slim-mode
|
|
:head-reg 'pm-slim-coffee-head-matcher
|
|
:tail-reg 'pm-slim-coffee-tail-matcher)
|
|
"slim-coffee typical chunk."
|
|
:group 'innermodes
|
|
:type 'object)
|
|
|
|
(pm-create-indented-block-matchers "slim-css" "^[^ ]*\\(.*:? *css: *\\)$")
|
|
(defcustom pm-inner/slim-css
|
|
(pm-hbtchunkmode "slim css include"
|
|
:mode 'css-mode
|
|
:head-mode 'slim-mode
|
|
:tail-mode 'slim-mode
|
|
:head-reg 'pm-slim-css-head-matcher
|
|
:tail-reg 'pm-slim-css-tail-matcher)
|
|
"slim-css typical chunk."
|
|
:group 'innermodes
|
|
:type 'object)
|
|
|
|
(pm-create-indented-block-matchers "slim-scss" "^[^ ]*\\(.*:? *scss: *\\)$")
|
|
(defcustom pm-inner/slim-scss
|
|
(pm-hbtchunkmode "slim scss include"
|
|
:mode 'scss-mode
|
|
:head-mode 'slim-mode
|
|
:tail-mode 'slim-mode
|
|
:head-reg 'pm-slim-scss-head-matcher
|
|
:tail-reg 'pm-slim-scss-tail-matcher)
|
|
"slim-scss typical chunk."
|
|
:group 'innermodes
|
|
:type 'object)
|
|
|
|
(pm-create-indented-block-matchers "slim-ruby" "^[^ ]*\\(.*:? *ruby: *\\)$")
|
|
(defcustom pm-inner/slim-ruby
|
|
(pm-hbtchunkmode "slim ruby include"
|
|
:mode 'ruby-mode
|
|
:head-mode 'slim-mode
|
|
:tail-mode 'slim-mode
|
|
:head-reg 'pm-slim-ruby-head-matcher
|
|
:tail-reg 'pm-slim-ruby-tail-matcher)
|
|
"slim-ruby typical chunk."
|
|
:group 'innermodes
|
|
:type 'object)
|
|
|
|
(pm-create-indented-block-matchers "slim-js" "^[^ ]*\\(.*:? *javascript: *\\)$")
|
|
(defcustom pm-inner/slim-js
|
|
(pm-hbtchunkmode "slim js include"
|
|
:mode 'js-mode
|
|
:head-mode 'slim-mode
|
|
:tail-mode 'slim-mode
|
|
:head-reg 'pm-slim-js-head-matcher
|
|
:tail-reg 'pm-slim-js-tail-matcher)
|
|
"slim-js typical chunk."
|
|
:group 'innermodes
|
|
:type 'object)
|
|
|
|
(pm-create-indented-block-matchers "slim-md" "^[^ ]*\\(.*:? *markdown: *\\)$")
|
|
(defcustom pm-inner/slim-md
|
|
(pm-hbtchunkmode "slim markdown include"
|
|
:mode 'markdown-mode
|
|
:head-mode 'slim-mode
|
|
:tail-mode 'slim-mode
|
|
:head-reg 'pm-slim-md-head-matcher
|
|
:tail-reg 'pm-slim-md-tail-matcher)
|
|
"slim-markdown typical chunk."
|
|
:group 'innermodes
|
|
:type 'object)
|
|
|
|
(defcustom pm-poly/slim
|
|
(pm-polymode-multi "slim"
|
|
:hostmode 'pm-host/slim
|
|
:innermodes '(pm-inner/slim-coffee
|
|
pm-inner/slim-css
|
|
pm-inner/slim-scss
|
|
pm-inner/slim-js
|
|
pm-inner/slim-md
|
|
pm-inner/slim-ruby))
|
|
|
|
"slim typical polymode."
|
|
:group 'polymodes
|
|
:type 'object)
|
|
|
|
;;;###autoload (autoload 'poly-slim-mode "poly-slim")
|
|
(define-polymode poly-slim-mode pm-poly/slim)
|
|
|
|
(provide 'poly-slim)
|