;;;; Place this file in one of the directories on your emacs load-path ;;;; In .emacs, if you use use-package: ;; (use-package sailfish-mode ;; :mode ;; ("\\.stpl\\'" . poly-sailfish-fundamental-mode) ;; ("\\.stpl\\.rs\\'" . poly-sailfish-rust-mode) ;; ("\\.stpl\\.html\\'" . poly-sailfish-html-mode)) ;;;; If you have LSP mode set up to run automatically in ;;;; prog-mode-hook or the like, you might want to make it ;;;; conditional: ;; (if (and buffer-file-name ;; (not (string-match "\\.stpl\\(\\.\\|\\'\\)" buffer-file-name))) ;; (lsp)) (require 'polymode-core) (require 'polymode-base) (define-hostmode poly-sailfish-rust-hostmode :mode 'rust-mode) (define-innermode poly-sailfish-rust-innermode :mode 'rust-mode :head-matcher "<%[=+-]?" :tail-matcher "%>") (define-innermode poly-sailfish-comment-innermode :mode 'fundamental-mode :head-matcher "<%#" :tail-matcher "%>") (define-innermode poly-sailfish-js-innermode :mode 'javascript-mode :head-matcher "" :head-mode 'host :tail-mode 'host) (define-innermode poly-sailfish-css-innermode :mode 'css-mode :head-matcher "" :head-mode 'host :tail-mode 'host) (define-polymode poly-sailfish-html-mode :hostmode 'poly-html-hostmode :innermodes '(poly-sailfish-rust-innermode poly-sailfish-comment-innermode poly-sailfish-js-innermode poly-sailfish-css-innermode)) (define-polymode poly-sailfish-rust-mode :hostmode 'poly-sailfish-rust-hostmode :innermodes '(poly-sailfish-rust-innermode poly-sailfish-comment-innermode)) (define-polymode poly-sailfish-fundamental-mode :hostmode 'poly-fundamental-hostmode :innermodes '(poly-sailfish-rust-innermode poly-sailfish-comment-innermode)) (add-to-list 'auto-mode-alist '("\\.html\\.stpl\\'" . poly-sailfish-html-mode)) (add-to-list 'auto-mode-alist '("\\.stpl\\.html\\'" . poly-sailfish-html-mode)) (add-to-list 'auto-mode-alist '("\\.rs\\.stpl\\'" . poly-sailfish-rust-mode)) (add-to-list 'auto-mode-alist '("\\.stpl\\.rs\\'" . poly-sailfish-rust-mode)) (add-to-list 'auto-mode-alist '("\\.stpl\\'" . poly-sailfish-fundamental-mode)) (add-to-list 'auto-mode-alist '("\\.html\\.st\\'" . poly-sailfish-html-mode)) (add-to-list 'auto-mode-alist '("\\.html\\.st\\'" . poly-sailfish-html-mode)) (add-to-list 'auto-mode-alist '("\\.st\\.rs\\'" . poly-sailfish-rust-mode)) (add-to-list 'auto-mode-alist '("\\.st\\.rs\\'" . poly-sailfish-rust-mode)) (add-to-list 'auto-mode-alist '("\\.st\\'" . poly-sailfish-fundamental-mode))