vscodeをメインのエディタにするために
とりあえずpythonの話。
メインはPyCharmを使っているが、
- devcontainerの開発者体験が良い
- 動作が軽い
- 無料で複数PCで同時起動できる
- IDEにお金を払うこと自体は抵抗ないが、1ライセンスだと複数PCで同時起動できないのが致命的。同時に2台のPCで開発していることがあるため。せめて2台までは許可してほしい。
- ただ、最近ssh接続でもう別PCにつないでそこから開発する流れを確立したので問題なくなってきたのだが、そのssh接続で開発することもvscodeでやるようになっている。
vscodeに移行したい。ただ、pycharmに比べてvsocde + pylanceが機能不足に感じられることも多少あった。
まずauto importが弱い。
例として
timezone.datetime.fromisoformat("2021-01-01 00:00:00+09:00")
こういうコードがあったとして、これは django.utils.timezone
をimport させたいという意図だが、pycharmだとこれはデフォルトで普通にimportできる(alt + enterで候補に出てくる)。だがvscode(pylance)では出てこない。
これをなんとかimportできるようにしたいといろいろ試行錯誤して見た結果、下記の情報にたどり着いた。
vscodeのsettings.jsonで下記の2行を入れれば良い。
"python.analysis.packageIndexDepths":[["django",3, true]],
"python.analysis.indexing": true,
これで意図通りにvscode(pylance)でもimport(cmd + .)できるようになる。
全然別の分野の話で、C++でdevcontainer立ち上げてgdbでデバッグできる環境を作りたかったがこのへんでこけた。
Mac M1 Ptrace - warning: ptrace: Function not implemented · Issue #5191 · docker/for-mac https://github.com/docker/for-mac/issues/5191
Apple SilliconでQEME使ってるdocker環境でptrace使えない。特定のオプションが必要的なエラー。
ちょっとやった感じうまく行かず、はまりそうであきらめた。
Apple SilliconネイティブのDockerイメージ使えばいいだけなんだが。
hover tooltipのショートカット
(1)「cmd + k」「cmd + I」 の順に押す。
(2) gh とタイプする(vimモードのとき)
ghだけでいいの便利!
エディタ内でターミナルを起動したときに環境変数を設定する
direnv入れる代わりみたいなこと
.vscode/settings.json
に設定する。
{
// add environment variables to the terminal
"terminal.integrated.env.osx": {
"PATH": "/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/go/bin",
"AWS_PROFILE": "kinesis-test"
}
}
vscode内のターミナルからvscode内の同じウィンドウでファイルを開く
code -r something.php
How to open a file from the integrated terminal in Visual Studio Code? - Stack Overflow
これがやりたかった。
Test explorerでpytestでsrc以下のテストが見つからない
ERROR - ModuleNotFoundError: No module named 'src'
.envファイルを作って
PYTHONPATH="."
を置いて解決。