{"id":13509798,"url":"https://github.com/msaraiva/atom-elixir","last_synced_at":"2025-04-07T06:12:58.169Z","repository":{"id":88492021,"uuid":"51588531","full_name":"msaraiva/atom-elixir","owner":"msaraiva","description":"An Atom package for Elixir","archived":false,"fork":false,"pushed_at":"2017-07-02T14:07:33.000Z","size":1980,"stargazers_count":408,"open_issues_count":40,"forks_count":29,"subscribers_count":19,"default_branch":"master","last_synced_at":"2024-04-22T13:34:02.105Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Elixir","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/msaraiva.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2016-02-12T13:18:51.000Z","updated_at":"2024-01-12T14:47:53.000Z","dependencies_parsed_at":null,"dependency_job_id":"c9ebdbca-af26-413a-8fdc-d48d16c3de24","html_url":"https://github.com/msaraiva/atom-elixir","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/msaraiva%2Fatom-elixir","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/msaraiva%2Fatom-elixir/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/msaraiva%2Fatom-elixir/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/msaraiva%2Fatom-elixir/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/msaraiva","download_url":"https://codeload.github.com/msaraiva/atom-elixir/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247601449,"owners_count":20964864,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T02:01:13.401Z","updated_at":"2025-04-07T06:12:58.149Z","avatar_url":"https://github.com/msaraiva.png","language":"Elixir","funding_links":[],"categories":["Editors"],"sub_categories":[],"readme":"# An Atom package for Elixir\n\nAutocomplete, Go/Jump to Definition, Documentation and more.\n\n### Dependencies\n- [language-elixir](https://atom.io/packages/language-elixir)\n\n### Install\n\n```\napm install atom-elixir\n```\n\n### Features\n\n- Autocomplete [(Screenshots)](#screenshots-autocomplete)\n  - Lists modules, functions, variables, function params and module attributes available in the current scope.\n  - Lists callbacks defined in behaviours (works also when @behaviour is injected by `use` directives)\n  - Lists the accepted \"returns\" specs when inside a callback implementation\n  - Indicates the type of the module (Module, Struct, Protocol, Implementation or Exception)\n  - Shows documentation summary for each module or function\n  - Shows function and callback specs\n  - Works with aliased and imported modules\n  - Indicates where the function was originally defined (for aliased, imported modules or callbacks)\n  - Smart snippets for functions: After `|\u003e`, doesn't write first parameter. After `\u0026`, writes `\u0026function/arity`\n- Go to definition\n  - Jump to the definition of the module or function under the cursor\n  - Erlang modules and functions also supported\n  - Return from definition (to previous files/positions)\n  - Works with aliased and imported modules\n- Documentation View [(Screenshots)](#screenshots-documentation)\n  - Shows documentation of the module or function under the cursor\n  - Also shows specs, types and callbacks (when available)\n  - Works with aliased and imported modules\n- Quoted Code view [(Screenshots)](#screenshots-quoted)\n  - Convert selected text into its quoted form\n  - Live pattern matching against quoted code\n- Expand Macro view [(Screenshots)](#screenshots-expand)\n  - Expands the selected macro. Shows expanded code using Expand Once, Expand and Expand All.\n- All features depending on aliases and imports are already supporting the new v1.2 notation.\n\n\u003e **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:\n```\n[atom-elixir] Initializing ElixirSense server for environment \"dev\" (Elixir version 1.4.0)\n[atom-elixir] Working directory is \"/Users/your_name/workspace/your_project/\"\n```\nAll error messages from the server should also be displayed in the console. Please send those messages when reporting an issue.\n\n### Shortcuts\n\n- Autocomplete: `ctrl + space`\n- Go To Definition: `alt + down` or `alt + click`\n- Return from Definition: `alt + up`\n- Go To Documentation: `F2`\n- Open Quoted Code View + quote selected text: `ctrl + shift + t`\n- Open Expand Code View + expand selected text: `ctrl + shift + x`\n\n\u003e **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.\n\n### Screenshots\n\n#### \u003ca name=\"screenshots-autocomplete\"\u003e\u003c/a\u003e Autocomplete\n\n- Listing variables, module attributes, functions and macros available in the current scope\n- Showing specs and documentation summary\n- Showing where each function was originally defined\n\n![image](https://raw.githubusercontent.com/msaraiva/atom-elixir/assets/screenshots/autocomplete1.png)\n\n- Listing callbacks defined in used behaviours\n\n![image](https://raw.githubusercontent.com/msaraiva/atom-elixir/assets/screenshots/autocomplete4.png)\n\n- Listing accepted \"returns\" when inside a callback implementation\n\n![image](https://raw.githubusercontent.com/msaraiva/atom-elixir/assets/screenshots/autocomplete5.png)\n\n#### \u003ca name=\"screenshots-documentation\"\u003e\u003c/a\u003e Documentation\n- Showing documentation of the module/function under the cursor\n\n![image](https://raw.githubusercontent.com/msaraiva/atom-elixir/assets/screenshots/docs_docs.png)\n\n- Showing documentation of the module under the cursor (callbacks)\n\n![image](https://raw.githubusercontent.com/msaraiva/atom-elixir/assets/screenshots/docs_callbacks.png)\n\n#### \u003ca name=\"screenshots-expand\"\u003e\u003c/a\u003e Expand Macro View\n\n- Expanding selected macro call\n\n![image](https://raw.githubusercontent.com/msaraiva/atom-elixir/assets/screenshots/expand.png)\n\n#### \u003ca name=\"screenshots-quoted\"\u003e\u003c/a\u003e Quoted Code View\n\n- Quoted form of the selected code\n- Live pattern matching against quoted code\n\n![image](https://raw.githubusercontent.com/msaraiva/atom-elixir/assets/screenshots/quoted.png)\n\n### Credits\n\n- The Elixir Server is an extended version of [alchemist-server](https://github.com/tonini/alchemist-server) by Samuel Tonini. Pay attention that the current API is no longer compatible with the original one.\n- The Expand View was inspired by the [mex](https://github.com/mrluc/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](http://blog.maketogether.com/building-a-macro-expansion-helper/).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmsaraiva%2Fatom-elixir","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmsaraiva%2Fatom-elixir","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmsaraiva%2Fatom-elixir/lists"}