emacs/lisp/langs/icejam-lang-erlang.el
Maciej Szlosarczyk 34a2741886
All checks were successful
/ Test config on 20 (push) Successful in 27s
Update packages
2024-11-11 07:58:11 +02:00

88 lines
3 KiB
EmacsLisp

;;; languages/erlang -- summary -*- lexical-binding: t; -*-
;;; Commentary:
;;; Code:
(require 'icejam-prog-mode)
(require 'icejam-lsp)
(declare-function lsp "lsp-mode" nil)
(declare-function column-enforce-n "column-enforce-mode" (number))
(use-package erlang
:defer t
:ensure (:depth 1)
:after (lsp lsp-ui))
;; (cl-defun icejam-erlang-emacs-path (erlang-version)
;; "Find path to Emacs tooling for ERLANG-VERSION."
;; (car (split-string
;; (shell-command-to-string
;; (format "find $HOME/.asdf/installs/erlang/%s/ -name erlang.el"
;; erlang-version)) "erlang.el")))
;; (cl-defun icejam-erlang-path (erlang-version)
;; "Find asdf path for ERLANG-VERSION."
;; (format "$HOME/.asdf/installs/erlang/%s/" erlang-version))
;; (defun icejam-erlang-plist (erlang-version)
;; "Create property list for ERLANG-VERSION."
;; (list :version erlang-version
;; :erlang-path (icejam-erlang-path erlang-version)
;; :emacs-path (icejam-erlang-emacs-path erlang-version)))
;; (cl-defun icejam-installed-erlangs ()
;; "List Erlang versions installed with asdf."
;; (split-string
;; (shell-command-to-string
;; (format "asdf list erlang"))))
;; (cl-defun icejam-erlang-available-versions--plist ()
;; "Create plist for all installed Erlang versions."
;; (mapcar 'icejam-erlang-plist (icejam-installed-erlangs)))
;; (defvar icejam-erlang-available-versions (icejam-erlang-available-versions--plist))
;; (cl-defun icejam-erlang-currently-in-use ()
;; "Get Erlang version currently in use."
;; (car (split-string (shell-command-to-string "asdf current erlang"))))
;; (cl-defun icejam-erlang-current-version--plistp (erlang-plist)
;; "Check if currently in use Erlang is the same as the one in ERLANG-PLIST."
;; (equal (plist-get erlang-plist :version) (icejam-erlang-currently-in-use)))
;; (cl-defun icejam-erlang-current-plist ()
;; "Create plist from current Erlang version."
;; (seq-find 'icejam-erlang-current-version--plistp icejam-erlang-available-versions))
(defun icejam-activate-erlang-mode ()
"All things for all Erlang, including header files."
;; (when (featurep 'erlang-start) (unload-feature 'erlang-start))
;; (defvar erlang/current-erlang (icejam-erlang-current-plist))
;; (add-to-list (make-local-variable 'load-path)
;; (plist-get erlang/current-erlang :emacs-path))
;; (add-to-list (make-local-variable 'exec-path)
;; (format "%slib/tools-3.1/emacs"
;; (plist-get erlang/current-erlang :erlang-path)))
;; (setq-local erlang-man-root-dir
;; (format "%sman"
;; (plist-get erlang/current-erlang :erlang-path)))
;; (require 'erlang-start)
(icejam-set-indent 4)
(column-enforce-n 80)
;; Start LSP
(lsp)
;; Company list override
(add-to-list (make-local-variable 'company-backends)
'(company-capf company-yasnippet)))
(add-hook 'erlang-mode-hook 'icejam-activate-erlang-mode)
(provide 'icejam-lang-erlang)
;;; icejam-lang-erlang.el ends here