帮酷LOGO
  • 显示原文与译文双语对照的内容
文章标签:Elixir  INF  MIX  proj  EDI  Projects  Server  info  
Editor/IDE independent background server to inform about Elixir mix projects

  • 源代码名称:alchemist-server
  • 源代码网址:http://www.github.com/tonini/alchemist-server
  • alchemist-server源代码文档
  • alchemist-server源代码下载
  • Git URL:
    git://www.github.com/tonini/alchemist-server.git
  • Git Clone代码到本地:
    git clone http://www.github.com/tonini/alchemist-server
  • Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/tonini/alchemist-server
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
  • License GPL 3Build Status

    信息:Alchemist服务器处于测试状态,并且API将在第一次发布之前进行大多数的更改。 反馈和评论非常感谢你。

    Alchemist服务器

    Alchemist server作为一个特定的Elixir组合项目,作为一个信息来源,并提供如下信息:

    • 模块和函数的完成。
    • 模块和函数的文档查找。
    • 代码的代码求值和引用表示。
    • 代码的定义查找。
    • 所有可用混合任务的列表。
    • 所有可用模块的列表。
    用法

    服务器需要在Elixir组合项目中启动,它可以通过两种方式启动:

    通过 STDIN/STDOUT 读取/写入

    $ cd elixir_project
    $ elixir path/to/alchemist-server/run.exs --env=dev

    在这里模式下,当输入发送到正在运行的服务器进程时,它通过将信息发送回 STDOUT

    请求由两部分组成,请求类型和请求参数。

    完成请求的示例:

    [type] [arguments]
    COMP {"def", [ context: Elixir, imports: [Enum], aliases: [{MyList, List}] ] }

    通过unix域套接字读取/写入文件

    $ cd elixir_project
    $ elixir path/to/alchemist-server/run.exs --env=dev --listen
    ok|localhost:/tmp/alchemist-server-1500797742260403000.sock

    在这里模式下,当客户端连接到端口时,它通过将信息发送回打开的连接来响应

    完成请求的示例:

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

    Unix域套接字自 OTP 19之后引入。

    API

    完成

    返回所有可用候选项的完整列表。

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

    文档查找

    返回文档。

    DOCL {"defmodule", [ context: Elixir, imports: [], aliases: [] ] }
    DOCL {"List.flatten/1", [ context: Elixir, imports: [], aliases: [] ] }

    评估,引用&宏展开

    评估

    从文件返回代码的评估结果。

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

    引用

    返回引用的文件中的代码。

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

    宏展开

    从文件中返回代码已经展开。

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

    返回文件中的代码一次展开。

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

    定义查找

    返回包含定义的源文件的路径。

    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}] ] }

    电子邮件信息

    混合任务

    返回所有可用混合任务的列表。

    INFO { :type, :mixtasks }

    模块

    返回包含文档的所有可用模块的列表。

    INFO { :type, :modules }

    数据类型信息

    返回任何数据类型的信息。

    INFO { :type, :info, List }

    模块或者函数/数量类型信息

    模块或者函数/数量对的返回类型。

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

    命令行调试

    返回PONG作为响应,它可以用于调试和检查服务器可用性。

    PING

    结束标记

    每个请求类型以特定结束标记标记结束,以通知请求已经完成。

    结束标记类似于以下内容:

    END-OF-<REQUEST TYPE>

    例如在下面的请求之后,结束标记将如下所示:

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


    文章标签:Server  proj  EDI  INF  Projects  info  后台  MIX  

    Copyright © 2011 HelpLib All rights reserved.    知识分享协议 京ICP备05059198号-3  |  如果智培  |  酷兔英语