自称ASIC設計者です。どなたかkaggle一緒に出ましょう。動作は安定してきたので、もうAtomはやめてこちらに移りました。VimよりもIDE派である(一時期Emacs使っていたが、もうあのキーバインドは忘れたい。Studioといった名高いIDEはあるものの、競技プログラミング用ではない。具体的には競技プログラミングに特有の機能がない。競技プログラミング中は不要な機能が多い、右クリックメニューも多い。AtomやVSCodeのRustプラグインはcargoでのビルドが前提になっているが、競技プログラミングでは単ファイルのみのビルドが多いため、rustcでビルドしたい。世にIDEは多数あれど、競技プログラミングに特化した開発環境はあまりないんじゃないかと思う。いうわけでより競技プログラミング中のプログラミングフローにマッチしたものを望むようになった。プログラマブルなIDEという言い回しがあるが、自作したIDEこそ真にプログラマブルである。Emacsもlispを書ければ十分プログラマブルだと思うけど、私はそんな高尚な言語は使えない。Pythonで開発環境をガリガリこしらえたい。いうのが作ったきっかけである。競技プログラミング特有の機能とはonline-judge-tools連携GUIでコンテストで与えられている入力、出力をダウンロードし、プログラムをテストし、提出することができる。コンテストで与えられている入力を受けながらプログラムをブレークし、ステップ実行してデバッグすることも可能である。この3つの機能はコンテスト中によく使う重要な機能なので、一等地にボタンとして置いている。(キーバインドも割り当てている。↑このように画面の遷移なくコンソールでテスト結果を確認できる。逆に普通のIDEでよく使われるであろう、RunとかDebugはProgramメニューで辿らないとできません。コンテスト中使わない機能は極力目立つ場所に置かないことで、迷いをなくしていくという考え方です。Fileでテンプレートを呼ぶ。競技プログラミング中は本当のフルスクラッチで書き始めることはなく、毎度テンプレから書き出すはずである。Fileは空ではなく、テンプレがペーストされた状態で始める。セーブする度、rustfmt競技プログラミング中といえど、インデント幅やスペーシングは気になる、以前は手で直していたが、rustfmtに任せることにした。これにより、スペースを打たず、formatter任せでガンガンコードをかけるようになった。REPL(ecvxr)競技プログラミングに限らないが、REPLは開発を高速化する上で有効である。あれ?これ打ったらどうなるんだっけ?みたいなのをさっと試せる。Pythonだったら、IDLEのコンソールがあるが、RustにはREPLがない。思いきやecvxrなるものがあった。このように、console上でRustで書かれた文を打つと、評価値が出力される。letで変数を定義して使うことも可能。evcxrをインストールする。evcxr_replQtは公式からインストーラを落としてインストールする。あとは、rujaionをインストールする。installでインストールされる。rujaion_main.pyで起動できる。今後作りたい所テスト現在全く存在しない、pytest-qtなるものを見つけたのでこれでこしらえたい。Protocol)のサポートシンタックスハイライトのメンテが面倒なので、RLSが提供している機能を使いたい。スキャナ部の自動生成これは現在atcoder-toolsにPR入れているので(そしてマージされました)、通ったら連携を検討します。データ構造の表示DPテーブルがステップ実行の度に更新されるとか、木構造の表示とかそういうのもやりたい。他言語対応C++はデバッグのバックエンドがGDBでほぼ共通化できるのでやりたいという思いがある。LSPサポートしてれば楽にできたんですが、、キーバインド設定など正直そこまで手が回る気がしません。VimとかEmacsとか言い出したらキリがない。凄腕コントリビュータ待ちです。コントリビューションウェルカムです。発表動...2019-06-04AtCoderで青になるまでにやったこと一年一ヶ月ほどの苦心の末、ようやく青コーダーになりました。...2018-07-28競プロ向けのrustテスト/デバッグ環境を作った最近競技プログラミングにはまっています。最近、rustで楽しく書いてます。»プロフィールid:segafrederverilog書いたり、でもPythonが好きだったり、そんな人の日記。月別アーカイブはてなブログをはじめよう!segafrederさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。