読者です 読者をやめる 読者になる 読者になる

気軽に楽しくプログラムと遊ぶ

自分が興味があってためになるかもって思う情報を提供しています。

Ruby Gem pryにおける.pryrcの便利な設定

pry実行時のIntegerの色が暗い紫で背景黒だとめちゃくちゃ見にくかったので変更しました。 調べた中で簡単に設定できるruby version番号の表示の設定も行ってみました。

pryの色変更方法

.pryrcがなければ、homeディレクトリに作成し、以下の設定を行う。

.pryrcの設定

# 色設定メソッドの定義
def Pry.set_color sym, color
  CodeRay::Encoders::Terminal::TOKEN_COLORS[sym] = color.to_s
  { sym => color.to_s }
end

# 色設定の変更
Pry.set_color :integer, "\e[1;36m"

設定書式
Pry.set_color Symbol "ESC [ 色コード m"

上記の例だと「1;36」が色コード

使用可能なSymbolの一覧とデフォルト色設定

pyry(main)> CodeRay::Encoders::Terminal::TOKEN_COLORS
=> {
  debug: "\e[1;37;44m",
  annotation: "\e[34m",
  attribute_name: "\e[35m",
  attribute_value: "\e[31m",
  binary: { self: "\e[31m", char: "\e[1;31m", delimiter: "\e[1;31m" },
  char: { self: "\e[35m", delimiter: "\e[1;35m" },
  class: "\e[1;35;4m",
  class_variable: "\e[36m",
  color: "\e[32m",
  comment: { self: "\e[1;34m", char: "\e[37m", delimiter: "\e[37m" },
  constant: "\e[1;34;4m",
  decorator: "\e[35m",
  definition: "\e[1;33m",
  directive: "\e[33m",
  docstring: "\e[31m",
  doctype: "\e[1;34m",
  done: "\e[1;30;2m",
  entity: "\e[31m",
  error: "\e[1;37;41m",
  exception: "\e[1;31m",
  float: "\e[1;35m",
  function: "\e[1;34m",
  global_variable: "\e[1;32m",
  hex: "\e[1;36m",
  id: "\e[1;34m",
  include: "\e[31m",
  integer: "\e[1;34m",
  imaginary: "\e[1;34m",
  important: "\e[1;31m",
  key: { self: "\e[35m", char: "\e[1;35m", delimiter: "\e[1;35m" },
  keyword: "\e[32m",
  label: "\e[1;33m",
  local_variable: "\e[33m",
  namespace: "\e[1;35m",
  octal: "\e[1;34m",
  predefined: "\e[36m",
  predefined_constant: "\e[1;36m",
  predefined_type: "\e[1;32m",
  preprocessor: "\e[1;36m",
  pseudo_class: "\e[1;34m",
  regexp: { self: "\e[35m", delimiter: "\e[1;35m", modifier: "\e[35m", char: "\e[1;35m" },
  reserved: "\e[32m",
  shell: { self: "\e[33m", char: "\e[1;33m", delimiter: "\e[1;33m", escape: "\e[1;33m" },
  string: {
    self: "\e[31m",
    modifier: "\e[1;31m",
    char: "\e[1;35m",
    delimiter: "\e[1;31m",
    escape: "\e[1;31m"
  },
  symbol: { self: "\e[33m", delimiter: "\e[1;33m" },
  tag: "\e[32m",
  type: "\e[1;34m",
  value: "\e[36m",
  variable: "\e[34m",
  insert: { self: "\e[42m", insert: "\e[1;32;42m", eyecatcher: "\e[102m" },
  delete: { self: "\e[41m", delete: "\e[1;31;41m", eyecatcher: "\e[101m" },
  change: { self: "\e[44m", change: "\e[37;44m" },
  head: { self: "\e[45m", filename: "\e[37;45m" },
  method: "\e[1;34m",
  escape: nil
}

色コードの色は下記を参考に設定
Ruby - ターミナルで使える色一覧(8色ANSIエスケープシーケンス) - Qiita

カラーテーマを設定する方法(試していないけど参考までに)
Pry の色を設定する - tkymtk's blog

Rubyのバージョンをpryのプロンプトに表示

.pryrcに以下を記述する。

Pry.config.prompt = proc do |obj, nest_level, _pry_|
version = ''
version << "#{RUBY_VERSION}"

"#{version} #{Pry.config.prompt_name}(#{Pry.view_clip(obj)})> "
end

他にも何かあれば、今後追記していこうと思います。以上!

参考URL

Ruby - pryの色の変え方 - Qiita
Ruby - Pryコンソールのプロンプトをカラフルかつ便利にする - Qiita