diff --git a/.gitmodules b/.gitmodules index 62cc77d..16e7ed6 100644 --- a/.gitmodules +++ b/.gitmodules @@ -187,3 +187,6 @@ [submodule "site-lisp/emacs-flymake-eslint"] path = site-lisp/emacs-flymake-eslint url = https://github.com/zedhugh/emacs-flymake-eslint.git +[submodule "site-lisp/plantuml-mode"] + path = site-lisp/plantuml-mode + url = https://github.com/skuro/plantuml-mode.git diff --git a/init.el b/init.el index ceb1ec6..fd70470 100644 --- a/init.el +++ b/init.el @@ -132,6 +132,7 @@ If freezing sometimes, decrease it. If stuttering, increase it.") (require 'init-ace-window) (require 'init-markdown) (require 'init-media) +(require 'init-plantuml) (setq custom-file (expand-file-name "custom.el" creature/cache-dir)) diff --git a/lisp/init-editorconfig.el b/lisp/init-editorconfig.el index d7d8d27..ce15141 100644 --- a/lisp/init-editorconfig.el +++ b/lisp/init-editorconfig.el @@ -25,7 +25,8 @@ '("\\.editorconfig\\'" . editorconfig-conf-mode)) (with-eval-after-load 'editorconfig - (add-to-list 'editorconfig-indentation-alist '(js-ts-mode js-indent-level))) + (add-to-list 'editorconfig-indentation-alist '(js-ts-mode js-indent-level)) + (add-to-list 'editorconfig-indentation-alist '(plantuml-mode plantuml-indent-level))) (provide 'init-editorconfig) diff --git a/lisp/init-org.el b/lisp/init-org.el index ca9fb80..0ced56b 100644 --- a/lisp/init-org.el +++ b/lisp/init-org.el @@ -22,6 +22,7 @@ (latex . t) (shell . t) (python . t) + (plantuml . t) (emacs-lisp . t)) "Enabled lang in org src code block.") @@ -79,5 +80,8 @@ (setq org-export-preserve-breaks t) (require 'ox-hugo)) +(with-eval-after-load 'ob-plantuml + (setq org-plantuml-exec-mode 'plantuml)) + (provide 'init-org) diff --git a/lisp/init-plantuml.el b/lisp/init-plantuml.el new file mode 100644 index 0000000..c7dc7ef --- /dev/null +++ b/lisp/init-plantuml.el @@ -0,0 +1,28 @@ +;; -*- coding: utf-8; lexical-binding: t; -*- + +(autoload 'plantuml-mode "plantuml-mode" "" t) +(add-to-list 'auto-mode-alist '("\\.\\(plantuml\\|pum\\|plu\\)\\'" . plantuml-mode)) + +(defun plantuml-completion-at-point () + "Function used for `completion-at-point-functions' in `plantuml-mode'. +Copy from https://github.com/skuro/plantuml-mode/issues/98." + (let ((completion-ignore-case t) + (bounds (bounds-of-thing-at-point 'symbol)) + (keywords plantuml-kwdList)) + (when (and bounds keywords) + (list (car bounds) + (cdr bounds) + keywords + :exclusive 'no + :company-docsig #'indentity)))) + +(with-eval-after-load 'plantuml-mode + (setq plantuml-exec-mode 'executable + plantuml-default-exec-mode 'executable) + (add-hook 'plantuml-mode-hook + (lambda () + (add-hook 'completion-at-point-functions + #'plantuml-completion-at-point nil 'local)))) + + +(provide 'init-plantuml) diff --git a/site-lisp/plantuml-mode b/site-lisp/plantuml-mode new file mode 160000 index 0000000..ea45a13 --- /dev/null +++ b/site-lisp/plantuml-mode @@ -0,0 +1 @@ +Subproject commit ea45a13707abd2a70df183f1aec6447197fc9ccc