VSCodeのPylanceを使用しているときにrange
,list
,int
,str
,classのインスタンス化などで括弧を補完してくれない問題の備忘録です
設定のpython.analysis.completeFunctionParens
が既に有効で、print
関数などは普通に補完されている状態が前提です
コード例
rang #ここで補完
range() #想定した挙動
range #実際の挙動
class Hoge():
pass
Hog #ここで補完
Hoge() #想定した挙動
Hoge #実際の挙動
対処法
設定のpython.languageServer
をPylance
やDefault
からJedi
に変更します
後述のように、今のところ(これからも)これしか方法がないと思います
原因
仕様です
PylanceのIssueを見ると、int
やclass名などを型アノテーションとしてに使うときに、補完されると邪魔になるからみたいです
ちなみに、Jediではmypyを使用しないと言っている(=型アノテーションをサポートしない?)らしいので、型アノテーションよりブラケットの補完を優先したい方はやっぱりJediを使うのがよさそうです