<img src='https://storage.googleapis.com/ub-public/cortex_logo.png' height='60'>

CircleCI

Cortex is the intelligent coding assistant for Elixir.

Demo

<img src='http://files.slingingcode.com/113N1q2n2e0Q/small.gif'>

Installation

Getting started with Cortex is easy. Add the following to your mix.exs file:

def deps do
  [
    {:cortex, "~> 0.1", only: [:dev, :test]},
  ]
end

Umbrella Applications

If you're running an umbrella application, add Cortex to the dependencies of each of the sub-apps that you would like Cortex to monitor. Do this instead of adding it as a dependency in the root mix.exs file.

This is necessary because dependencies in the root mix.exs in umbrella application are not automatically started, which is a process that Cortex depends on.

Usage

Cortex runs automatically along-side your mix app.

iex -S mix

This is enough to get live-reload on file change when editing your app.

Commands

Some commands intended to be used via the shell are provided in the Cortex module:

Test Runner

When you run your app with MIX_ENV=test, Cortex will automatically run tests for saved test files, as well as tests paired with saved files in lib.

MIX_ENV=test iex -S mix

Enabling and Disabling

Whether cortex runs at all can be configured via the configuration of your application. By default cortex does run.

config :cortex,
  enabled: false

Cortex also supports the Elixir / Erlang convention of a {:system, ENV_VAR_NAME, default_value} in the config file.

For example, if you wanted to have cortex disabled in your project by default, you could add the following to your config.exs:

config :cortex,
  enabled: {:system, "CORTEX_ENABLED", false}

Then, to run cortex you would start iex with the following options:

CORTEX_ENABLED=true iex -S mix

An inverted but otherwise identical disabled config option is also supported. This can be used to enable cortex by default but automatically disable it in certain unwanted contexts (like build environments):

config :cortex,
  disabled: {:system, "CI_RUN", false}

Configuring

config :cortex,
  clear_before_running_tests: true

Set clear_before_running_tests to clear the screen immediately before running tests, defaults to true.

Phoenix

If you are running a phoenix application, make sure you are running the app in interactive mode:

iex -S mix phoenix.server

Roadmap

License

This software is licensed under the MIT license.