1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
|
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,
alive_prompt: [
# "\e[1A",
"\e[G", # ANSI CHA, move cursor to column 1
:bright,
:white,
"┌[(",
:blue,
"%node",
:white,
")",
:magenta,
(if user, do: user <> "@", else: ""),
"elixir-",
Elixir.System.version,
"@",
hostname,
" ",
:blue,
dir,
:white,
"]\n",
"└:",
:reset
] |> IO.ANSI.format |> IO.chardata_to_string,
continuation_prompt: " ",
alive_continuation_prompt: " "
)
end
end
IExConfigInit.init
|