From d168ec3c5e04efb5f401cfcbe60c021093cd465b Mon Sep 17 00:00:00 2001 From: katherine Date: Thu, 6 Dec 2018 11:54:26 -0700 Subject: synchronise common prompts the same across shell, iex, utop, but colour-coded and with a which thing and version hint --- .iex.exs | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 .iex.exs (limited to '.iex.exs') diff --git a/.iex.exs b/.iex.exs new file mode 100644 index 0000000..fcd3931 --- /dev/null +++ b/.iex.exs @@ -0,0 +1,57 @@ +defmodule IExConfigInit do + + def init do + user = System.get_env "USER" + + hostname = case :inet.gethostname do + {:ok, s} -> s + _ -> "?" + end + + dir = case Elixir.File.cwd do + {:ok, s} -> s + _ -> "?" + end + + home = System.get_env "HOME" + + dir = if home do + dir = case Regex.compile("^" <> home) do + {:ok, r} -> Regex.replace r, dir, "~" + _ -> dir + end + dir + else + dir + end + + Application.put_env(:elixir, :ansi_enabled, true) + + IEx.configure( + colors: [enabled: true], + default_prompt: [ + # "\e[1A", + "\e[G", # ANSI CHA, move cursor to column 1 + :bright, + :white, + "┌[", + :magenta, + (if user, do: user <> "@", else: ""), + "elixir-", + Elixir.System.version, + "@", + hostname, + " ", + :blue, + dir, + :white, + "]\n", + "└:", + :reset + ] |> IO.ANSI.format |> IO.chardata_to_string + ) + end + +end + +IExConfigInit.init -- cgit v1.2.3