Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: AtCoderのジャッジアップデートの対応 #58

Merged

Conversation

dakanat
Copy link
Contributor

@dakanat dakanat commented Sep 3, 2023

ジャッジアップデート( https://img.atcoder.jp/file/language-update/language-list.html )に対応するため、選択中のtaskに対してsubmit時に可能な言語のリストを取得して表示する機能を追加しました。

C, C++, Go, Java, JavaScript, Python, TypeScriptのコードに関して、

  1. 新しいジャッジが適用されるtaskでsubmitを行う際に新しい言語のみが選択肢に表れ、選択すると正常に提出が行われること
  2. 古いジャッジが適用されるtaskでsubmitを行う際に古い言語のみが選択肢に表れ、選択すると正常に提出が行われること

を確認しました。

ご確認いただければ幸いです。
(実装方針に問題があればご指摘いただきたいです。)

ジャッジアップデート( https://img.atcoder.jp/file/language-update/language-list.html )に対応するため、選択中のtaskに対してsubmit時に可能な言語のリストを取得して表示する機能を追加しました。
@taizod1024
Copy link
Owner

PRありがとうございます!
確認しますのでお待ちください。

@taizod1024 taizod1024 merged commit 1cba401 into taizod1024:main Sep 8, 2023
@taizod1024
Copy link
Owner

taizod1024 commented Sep 8, 2023

確認遅くなり申し訳ありません。
@dakanat さんの修正方針は正しいです。
「atcoderから言語リスト取得処理を実装。ただし言語リスト取得処理が非同期処理だがextension.tsのactivate()が同期処理のため既存のsubmitTaskの言語選択処理を同じように処理することができない。そこで言語選択処理をextensionHelper.tsに切り出した」と理解しました。
一旦、このまま取り込みます。

どうやらactivate()はasyncにできるみたいなので試してみます。
https://stackoverflow.com/questions/64640967/can-a-vscode-extension-activate-method-be-async
それができたらasync/awaitを使ってsubmitTaskの言語選択処理を元に戻します。

@dakanat
Copy link
Contributor Author

dakanat commented Sep 9, 2023

ご確認ありがとうございます。
ご理解していただいた通りです。activate()がasyncにできるのですね…勉強になりました。
改めてPRご対応ありがとうございます。

@taizod1024
Copy link
Owner

今回非同期にするのはactivate()ではなく、vscode.commands.registerCommand()の方でした。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants