之前花了不少時間在goland上跑起leetcode plugin,需要一些設定才可以讓整個goland跑起來。現在多了一個Rust可以玩解題,那我們首先還是要先把整個環境搭起來啦!

需要條件

  • CLion。官方Rust套件是比較prefer CLion,我不太確定其他的JetBrains系列IDE能不能跑,反正我是用CLion跑起來就是了。
  • Cargo/rustc 這在裝官方的rust套件應該就已經裝上去了。如果你不知道這是啥的話,先把rust學熟在想著用rust解題吧….
  • IntelliJ Rust Plugin,雖然官方建議用CLion跑,不過看這名字….應該可以在IntelliJ跑起來?
  • LeetCode Editor or LeetCode Editor Pro ,兩者其實差異不大,只差在後者login比較方便,前者要去找session ID。我是覺得他對我幫助很大,我就付費支持啦。

至於怎麼在CLion裡面裝plugin? 比較簡單的方法是cmd+,plugins,在這裡把這兩個裝好吧

設定

給他一個獨立的專案吧

首先先開一個給leetcode用的專案,比方說LeetCodeRust。這很重要,因為LeetCode Editor原始的設定其實會把code放在tmp裡面,這會導致你之後會丟失你以前submit的東西。你喜歡用cargo init還是請CLion代勞都不影響,反正就是弄一個專案起來就對了。

按下cmd+,打開preference,找LeetCode Editor的設定:

先把URL從leetcode.cn改成leetcode.com,把CodeType改成 Rust,至於login name/password倒是不用改,因為login….用不到,那是給cn用的。

接下來把TempFilePath改到Rust專案的目錄底下。這個目錄設定下去以後,我們要的原始檔目錄將會是 src/leetcode/editor/en

接下來選Custom頁籤,勾選Custom Template,然後選Rust,把他改成這樣。

首先,FileName改leetcode_ $!{q.frontendQuestionId}會讓他產生leetcode_<問題ID>.rs這個檔案當作工作檔,而不是預設的[<問題ID>]問題英文.rs這種無法被rust mod關鍵字讀取的東西。再來,我們對原始碼也要做一些修改,這些修改尤其是test的部分,可以讓你在同一個檔案裡面很輕易地測試你寫的東西,不用upload到leetcode才能測。

然後我們在src/leetcode/editor/en底下建立一個base.rs,裡面大概長這樣:

struct Solution;

最後,我們修改cargo.toml,增加一個lib的build target,增加完畢以後記得在Cargo頁籤refresh

[lib]
name = "leetcode"
path = "src/leetcode/editor/en/base.rs"

Cargo頁籤refresh後會多一個target

好啦,現在所有都準備好啦,我們來解個題吧。

Two Sum

我們來選一個最經典的Two Sum吧,先Login後refresh題庫,可以看到這樣:

我們雙擊Two Sum,可以發現他幫我們增加了一個檔案

且慢,你會發現test無法自動被偵測執行,而上面會有有一行File is not included in moduel tree, analysis is not available,勇敢地按下旁邊的 Attach file to base.rs吧,你會發現base.rs多一行 mod leetcode_1

恭喜,你已經可以正常的使用了,而且也有現成的測試模組(外加自動偵測的run)可以來測試的你的commit了!

當然,你也能正常的submit code for verdict,have fun!

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *