github.com/tiagovtristao/plz@v13.4.0+incompatible/tools/misc/please-mode.el (about) 1 ; Definition of Please mode for Emacs. 2 ; Inherits from python-mode for formatting but uses lsp-mode for 3 ; autocompletion etc. 4 ; 5 ; Add this to .emacs to make this load automatically. 6 ; (add-to-list 'auto-mode-alist '("/BUILD\\'" . please-mode)) 7 ; (add-to-list 'auto-mode-alist '("/BUILD.plz\\'" . please-mode)) 8 9 (require 'lsp-mode) 10 (require 'lsp-imenu) 11 (add-hook 'lsp-after-open-hook 'lsp-enable-imenu) 12 (use-package lsp-ui 13 :ensure t 14 :config 15 (setq lsp-ui-sideline-ignore-duplicate t) 16 (add-hook 'lsp-mode-hook 'lsp-ui-mode)) 17 18 (lsp-define-stdio-client 19 please-mode 20 "Please" 21 (lambda () default-directory) ; TODO(peterebden): what should we do here? 22 '("plz" "tool" "langserver")) 23 24 (define-derived-mode please-mode python-mode "Please mode") 25 26 (add-hook 'please-mode-hook 27 (lambda () 28 (please-mode-enable))) 29 30 (defun please-mode-fmt-on-save () 31 (interactive) 32 (when (eq major-mode 'please-mode) (lsp-format-buffer))) 33 34 (add-hook 'before-save-hook 'please-mode-fmt-on-save) 35 36 (provide 'please-mode)