ProductPromotion
Logo

Elixir

made by https://0x3d.site

GitHub - msaraiva/atom-elixir: An Atom package for Elixir
An Atom package for Elixir. Contribute to msaraiva/atom-elixir development by creating an account on GitHub.
Visit Site

GitHub - msaraiva/atom-elixir: An Atom package for Elixir

GitHub - msaraiva/atom-elixir: An Atom package for Elixir

An Atom package for Elixir

Autocomplete, Go/Jump to Definition, Documentation and more.

Dependencies

Install

apm install atom-elixir

Features

  • Autocomplete (Screenshots)
    • Lists modules, functions, variables, function params and module attributes available in the current scope.
    • Lists callbacks defined in behaviours (works also when @behaviour is injected by use directives)
    • Lists the accepted "returns" specs when inside a callback implementation
    • Indicates the type of the module (Module, Struct, Protocol, Implementation or Exception)
    • Shows documentation summary for each module or function
    • Shows function and callback specs
    • Works with aliased and imported modules
    • Indicates where the function was originally defined (for aliased, imported modules or callbacks)
    • Smart snippets for functions: After |>, doesn't write first parameter. After &, writes &function/arity
  • Go to definition
    • Jump to the definition of the module or function under the cursor
    • Erlang modules and functions also supported
    • Return from definition (to previous files/positions)
    • Works with aliased and imported modules
  • Documentation View (Screenshots)
    • Shows documentation of the module or function under the cursor
    • Also shows specs, types and callbacks (when available)
    • Works with aliased and imported modules
  • Quoted Code view (Screenshots)
    • Convert selected text into its quoted form
    • Live pattern matching against quoted code
  • Expand Macro view (Screenshots)
    • Expands the selected macro. Shows expanded code using Expand Once, Expand and Expand All.
  • All features depending on aliases and imports are already supporting the new v1.2 notation.

IMPORTANT: Most of the features only work properly if you have the related .beam files in the project's _build folder. So please, before opening an issue, make sure you can successfully compile your project in the environment you're trying to use it ("dev" and/or "test"). You can also hit ALT+CMD+i to open the Atom's console (ALT+CTRL+i on windows/linux) in order to see the server's output. When successfully started, atom-elixir prints:

[atom-elixir] Initializing ElixirSense server for environment "dev" (Elixir version 1.4.0)
[atom-elixir] Working directory is "/Users/your_name/workspace/your_project/"

All error messages from the server should also be displayed in the console. Please send those messages when reporting an issue.

Shortcuts

  • Autocomplete: ctrl + space
  • Go To Definition: alt + down or alt + click
  • Return from Definition: alt + up
  • Go To Documentation: F2
  • Open Quoted Code View + quote selected text: ctrl + shift + t
  • Open Expand Code View + expand selected text: ctrl + shift + x

Notice: The keymaps were defined for my own OS X environment. If you're using Linux, Windows or even another OS X environment and the current key mapping conflicts with other commands, feel free to open an issue and report it.

Screenshots

Autocomplete

  • Listing variables, module attributes, functions and macros available in the current scope
  • Showing specs and documentation summary
  • Showing where each function was originally defined

image

  • Listing callbacks defined in used behaviours

image

  • Listing accepted "returns" when inside a callback implementation

image

Documentation

  • Showing documentation of the module/function under the cursor

image

  • Showing documentation of the module under the cursor (callbacks)

image

Expand Macro View

  • Expanding selected macro call

image

Quoted Code View

  • Quoted form of the selected code
  • Live pattern matching against quoted code

image

Credits

  • The Elixir Server is an extended version of alchemist-server by Samuel Tonini. Pay attention that the current API is no longer compatible with the original one.
  • The Expand View was inspired by the mex tool by Luc Fueston. There's also a very nice post where he describes the whole process of Building A Macro-Expansion Helper for IEx.

Articles
to learn more about the elixir concepts.

Resources
which are currently available to browse on.

mail [email protected] to add your project or resources here 🔥.

FAQ's
to know more about the topic.

mail [email protected] to add your project or resources here 🔥.

Queries
or most google FAQ's about Elixir.

mail [email protected] to add more queries here 🔍.

More Sites
to check out once you're finished browsing here.

0x3d
https://www.0x3d.site/
0x3d is designed for aggregating information.
NodeJS
https://nodejs.0x3d.site/
NodeJS Online Directory
Cross Platform
https://cross-platform.0x3d.site/
Cross Platform Online Directory
Open Source
https://open-source.0x3d.site/
Open Source Online Directory
Analytics
https://analytics.0x3d.site/
Analytics Online Directory
JavaScript
https://javascript.0x3d.site/
JavaScript Online Directory
GoLang
https://golang.0x3d.site/
GoLang Online Directory
Python
https://python.0x3d.site/
Python Online Directory
Swift
https://swift.0x3d.site/
Swift Online Directory
Rust
https://rust.0x3d.site/
Rust Online Directory
Scala
https://scala.0x3d.site/
Scala Online Directory
Ruby
https://ruby.0x3d.site/
Ruby Online Directory
Clojure
https://clojure.0x3d.site/
Clojure Online Directory
Elixir
https://elixir.0x3d.site/
Elixir Online Directory
Elm
https://elm.0x3d.site/
Elm Online Directory
Lua
https://lua.0x3d.site/
Lua Online Directory
C Programming
https://c-programming.0x3d.site/
C Programming Online Directory
C++ Programming
https://cpp-programming.0x3d.site/
C++ Programming Online Directory
R Programming
https://r-programming.0x3d.site/
R Programming Online Directory
Perl
https://perl.0x3d.site/
Perl Online Directory
Java
https://java.0x3d.site/
Java Online Directory
Kotlin
https://kotlin.0x3d.site/
Kotlin Online Directory
PHP
https://php.0x3d.site/
PHP Online Directory
React JS
https://react.0x3d.site/
React JS Online Directory
Angular
https://angular.0x3d.site/
Angular JS Online Directory