From 347cc762dd617ab21acf03765d0f1e6322719103 Mon Sep 17 00:00:00 2001 From: Marcos Magueta Date: Sat, 15 Nov 2025 13:41:27 -0300 Subject: erlang utilities --- configuration.el | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) (limited to 'configuration.el') diff --git a/configuration.el b/configuration.el index 7133dac..e9cf821 100644 --- a/configuration.el +++ b/configuration.el @@ -212,8 +212,29 @@ :straight t :hook (erlang-mode . lsp-deferred) - (erlang-mode . yas-minor-mode)) - + (erlang-mode . yas-minor-mode) + (erlang-mode . erlang-set-project-root) + :config + (lsp-register-client + (make-lsp-client :new-connection (lsp-stdio-connection '("elp" "server")) + :major-modes '(erlang-mode) + :priority 0 + :server-id 'erlang-language-platform)) + (setq inferior-erlang-machine "rebar3") + (setq inferior-erlang-machine-options '("shell")) + (setq inferior-erlang-shell-type nil) + (defun erlang-set-project-root () + "Set `default-directory` to the parent dir containing `rebar.config` or `rebar.config.script`, if found." + (when (derived-mode-p 'erlang-mode) + (let* ((start (or (buffer-file-name) default-directory)) + (proj-root + (locate-dominating-file + start + (lambda (dir) + (or (file-exists-p (expand-file-name "rebar.config" dir)) + (file-exists-p (expand-file-name "rebar.config.script" dir))))))) + (when proj-root + (setq-local default-directory proj-root)))))) ;; (use-package eglot ;; :straight t -- cgit v1.2.3