0
Help us understand the problem. What are the problem?

posted at

updated at

Pylanceでclass名やrangeなどのカッコ()が自動補完できない現象

VSCodeのPylanceを使用しているときにrange,list,int,str,classのインスタンス化などで括弧を補完してくれない問題の備忘録です
設定のpython.analysis.completeFunctionParensが既に有効で、print関数などは普通に補完されている状態が前提です

コード例

rang #ここで補完
range() #想定した挙動
range #実際の挙動

class Hoge():
    pass
Hog #ここで補完
Hoge() #想定した挙動
Hoge #実際の挙動

対処法

設定のpython.languageServerPylanceDefaultからJediに変更します
後述のように、今のところ(これからも)これしか方法がないと思います
image.png

原因

仕様です
PylanceのIssueを見ると、intやclass名などを型アノテーションとしてに使うときに、補完されると邪魔になるからみたいです

ちなみに、Jediではmypyを使用しないと言っている(=型アノテーションをサポートしない?)らしいので、型アノテーションよりブラケットの補完を優先したい方はやっぱりJediを使うのがよさそうです

Register as a new user and use Qiita more conveniently

  1. You can follow users and tags
  2. you can stock useful information
  3. You can make editorial suggestions for articles
What you can do with signing up
0
Help us understand the problem. What are the problem?