はじめに
RubyでAtCoderに参加するためにVSCodeのローカル環境を構築しました。
試しにABC294Aをサンプルにしています。
フォルダ構成
フォルダ構成は次の通りです。
./answer.rb # コードを書くところ
./input.txt. # デバッグ時の標準入力
例えば、ABC294Aのサンプルだと次のようになります。
answer.rb
N = gets
s = gets.chomp.split(" ").map(&:to_i)
even = []
s.each { |val| even.push(val) if val % 2 == 0 }
puts even.join(" ")
input.txt
10
22 3 17 8 30 15 12 14 11 17
次のコマンドでお試し実行できます。
ruby answer.rb < input.txt
しかし、やはりデバッグがしたいです。
VSCodeの設定
VS Codeでデバッグするための方法を調べました。
Extension
デバッグするためにこちらのExtensionを追加しました。
VSCode rdbg Ruby Debugger
Gemfile
gemfileです。
source "https://rubygems.org"
gem "debug"
launch.json
続いて、launch.json
{
"version": "0.2.0",
"configurations": [
{
"type": "rdbg",
"name": "Debug current file with rdbg",
"request": "launch",
"script": "${workspaceFolder}/answer.rb",
"args": [
"<",
"${workspaceFolder}/input.txt"
],
"askParameters": false,
"useTerminal": true
}
]
}
ここで、大切なのは2箇所です。
1つ目はargsで先ほどのコマンド同様にinput.txt を入力にしています。
2つ目はuseTerminalです。なぜか、このコマンドがないと標準入力としてファイルを受け取ることができませんでした。
これで、BreakPointを設定してF5で実行すれば、デバッグできました。
さいごに
あとは、answer.rbで書いたコードをAtCoderにコピペすればACです。
誰かの役に立てれば幸いです。