There is a new LSP server for elixir: [lexical].

Although it said there had problems to use it with eglot, but I didn't
meet the [problem] it said in the instruction.

And I had used it for serveral projects and it worked fine, I put this
in my config and I don't know if there is a better way:

```emacs-lisp
(with-eval-after-load 'eglot
  (setf (alist-get '(elixir-mode elixir-ts-mode heex-ts-mode)
                   eglot-server-programs
                   nil nil #'equal)
        (eglot-alternatives
         `(("start_lexical.sh")
           ,(if (and (fboundp 'w32-shell-dos-semantics)
                     (w32-shell-dos-semantics))
                '("language_server.bat")
              '("language_server.sh"))))))
```

So I send a patch like this.

[lexical]: https://github.com/lexical-lsp/lexical

[problem]: https://github.com/lexical-lsp/lexical/blob/main/pages/installation.md#vanilla-emacs-with-eglot