xuchunyang

xuchunyang

Hi all,

I’m new to Elixir. I’m trying to use IEx in Emacs. Right now the code completion isn’t supported, and I don’t know how to get the completion from Elixir/IEx programmatically, I tried IEx.Autocomplete.expand "String." but it doesn’t work (I expect it to return a list of completions so I can use it from Emacs.):

iex(11)> IEx.Autocomplete.expand "String."
** (FunctionClauseError) no function clause matching in IEx.Autocomplete.expand/2

    The following arguments were given to IEx.Autocomplete.expand/2:

        # 1
        "String."

        # 2
        IEx.Server

    Attempted function clauses (showing 2 out of 2):

        def expand([], server)
        def expand([h | t] = expr, server)

    (iex) lib/iex/autocomplete.ex:6: IEx.Autocomplete.expand/2

Emacs setup:

(define-derived-mode inferior-elixir-mode comint-mode "Inferior Elixir"
  "Major mode for Elixir inferior process."
  (setq comint-prompt-regexp (rx bol (or "iex" "...") "(" (1+ num) ") ")))

(defun run-elixir ()
  (interactive)
  (with-current-buffer (make-comint-in-buffer "Elixir" "*Elixir*" "iex" nil)
    (inferior-elixir-mode)
    (display-buffer (current-buffer))))

Showing Posts 1 to 4

NobbZ

NobbZ

Autocompletiond ist supported, the elixir language server just got forked and is currently better supported through Emacs than visual studio code. Just search the forum. It was posted this year AFAIR.

axelson

axelson

Scenic Core Team

I think you mean this post: Emacs lsp-mode (language server) + elixir-ls anyone? - #16 by axelson

And this emacs configuration: Emacs - Elixir Setup Configuration Wiki

It does have some support for autocomplete as well as some other features.

xuchunyang

xuchunyang OP

I’ve already set Eglot + Elixir-Ls but it doesn’t seem there is a REPL

axelson

axelson

Scenic Core Team

I also wanted to note that IEx.Autocomplete is labeled with @moduledoc false which means that it is a private api that shouldn’t be relied upon. It also looks like the functions in IEx.Autocomplete are using a bunch of private modules/functions as well. So I think you may need to raise an issue on the Elixir github to ask for programmatic access to autocomplete.

— All posts loaded —

Where Next? Top

Trending in Questions Top

stjefim
Hello! Suppose you are building workflow (order / task / payment) processing system with the following requirements: Each workflow con...
New
Blokh
Hey guys, I’ve got a huge CSV ( around 10 GB ) that needs to be processed hourly Do you guys have any suggestions what is the best prac...
New
kszambelanczyk
Hello! Could someone please give me a help/sample code, how to delete a file from s3 using waffle/waffle_ecto from Phoenix app. I creat...
New
Onor.io
I have what I’ve heard referred to as a “lookup table” in my database. This is a way of assigning codes to common values. One common lo...
New
jaybe78
Hello, I’m developing a online persistent chat system (what’s app) like using elixir/dynamodb/aws for a mobile app(flutter). The diffic...
New
Trolleger
What approach to take when sending live updates to “random” users Hi! I have a question, I have a little chat app, and when I create a DM...
New
widianto
I think I’ve found a small improvement I could contribute to <%= web_namespace %>.CoreComponents (installer/templates/phx_web/compo...
New

Other Trending Topics Top

garrison
Hobbes is a low-level distributed database for the Elixir programming language. Hobbes provides a simple, safe, and scalable storage lay...
New
mcass19
ExRatatui lets you cook up rich terminal UIs in Elixir, powered by Rust’s ratatui via Rustler NIFs. Build interactive terminal applicatio...
New
Damirados
Hello everyone. After busy few months I am happy to announce v0.1.0 of Emerge & Solve. They are GUI (Emerge) and State management (S...
New
netoum
Corex is an accessible, unstyled UI component library for Phoenix that integrates Zag.js state machines using Vanilla JavaScript and Live...
New
wintermeyer
There are three potential reasons for members of this forum to have a look at https://vutuv.de You are tired or annoyed of LinkedIn. Yo...
New
aseigo
ICal is a library for interacting with iCalendar data. It parses iCalendars into typed Elixir structs via ICal.from_ics, and can prepare ...
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews