A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://github.com/tonini/alchemist-server/ below:

tonini/alchemist-server: Editor/IDE independent background server to inform about Elixir mix projects

INFO: The Alchemist-Server is in Beta status and the API will most likey change until the first release. Feedback and critic are highly appreciated though.

The Alchemist-Server operates as an informant for a specific desired Elixir Mix project and serves with informations as the following:

The server needs to be started inside an Elixir mix project, it can be started in two ways:

Read/Write through STDIN/STDOUT
$ cd elixir_project
$ elixir path/to/alchemist-server/run.exs --env=dev

In this mode, when input sent to a running server process it responds by sending information back to the STDOUT.

A request consisting of two parts, the request type and the request arguments.

Example for a completion request:

[type]   [arguments]

COMP { "def", [ context: Elixir, imports: [Enum], aliases: [{MyList, List}] ] }
Read/Write through unix domain socket
$ cd elixir_project
$ elixir path/to/alchemist-server/run.exs --env=dev --listen
ok|localhost:/tmp/alchemist-server-1500797742260403000.sock

In this mode, when a client connects to the port, it responds by sending information back to the opened connection

Example for a completion request:

$ nc -U /tmp/alchemist-server-1500797742260403000.sock
COMP { "def", [ context: Elixir, imports: [Enum], aliases: [{MyList, List}] ] }

Unix domain socket is introduced since OTP 19.

Return a completion list of all the available candidates.

COMP
COMP { "def", [ context: Elixir, imports: [], aliases: [] ] }
COMP { "List.fla", [ context: Elixir, imports: [], aliases: [] ] }

Return the documentation.

DOCL { "defmodule", [ context: Elixir, imports: [], aliases: [] ] }
DOCL { "List.flatten/1", [ context: Elixir, imports: [], aliases: [] ] }
Evaluation, Quoted & Macro expand

Return the evaluation result of the code from the file.

EVAL { :eval, 'path/to/file/which/holds/content/to/eval.tmp' }

Return the code from the file quoted.

EVAL { :quote, 'path/to/file/which/holds/content/to/quote.tmp' }

Return the code from the file expanded.

EVAL { :expand, 'path/to/file/which/holds/content/to/expand.tmp' }

Return the code from the file expanded once.

EVAL { :expand_once, 'path/to/file/which/holds/content/to/expand_once.tmp' }

Return the path to the source file which holds the definition.

DEFL  { "List,flatten", [ context: Elixir, imports: [], aliases: [] ] }
DEFL  { "nil,defmacro", [ context: Elixir, imports: [], aliases: [] ] }
DEFL  { "nil,create_file", [ context: Elixir, imports: [Mix.Generator], aliases: [] ] }
DEFL  { "MyList,nil", [ context: Elixir, imports: [], aliases: [{MyList, List}] ] }

Return a list of all available mix tasks.

INFO { :type, :mixtasks }

Return a list of all available modules which has documentation.

Return information about any datatype.

INFO { :type, :info, List }
Module Or Function/Arity Types Information

Return types for a module or function/arity pair.

INFO { :type, :types, 'List' }
INFO { :type, :types, 'Enum.t' }
INFO { :type, :types, 'Agent.on_start/0' }

Return PONG as response, it can be used for purpose of debugging and checking server's availability.

Each request type ends with a specific end marker tag to notify that the request is done.

An end tag looks like the following:

For example, after the following request an end tag would look like this:

INFO { :type, :modules }
List
String
Enum
.
...
....
END-OF-INFO

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4