前提
以下の画像のように、opencvの関数がemacs上で補完されないという状態です。ミニバッファにも他の関数のような簡易な説明が表示されることもありません。
以前pwntoolsというライブラリを使用したとき、u32やp32など一部の関数のみに似たような症状が見られましたが、img2pdfなど普通に使えるモジュールが多数です。
補完にはcompanyを、サーバーはpython-language-serverを使っています。
###companyとlspに関するinit.elでの設定
elisp
1;;;;;;;;;;;;;;;;;;;; 2;;;;company-mode;;;; 3;;;;;;;;;;;;;;;;;;;; 4(require 'company) 5(global-company-mode t) 6(setq company-idle-delay 0) 7(setq company-minimum-prefix-length 1) 8(setq company-selection-wrap-around t) 9(setq completion-ignore-case t) 10(define-key company-active-map (kbd "C-n") 'company-select-next) 11(define-key company-active-map (kbd "C-p") 'company-select-previous) 12(define-key company-active-map (kbd "C-s") 'company-filter-candidates) 13;;(setq company-backends '(company-capf)) 14 15 16;;;;;;;;;;;;;;;; 17;;;;lsp-mode;;;; 18;;;;;;;;;;;;;;;; 19(require 'lsp-mode) 20(setq gc-cons-threshold 100000000) 21(setq read-process-output-max (* 1024 1024)) 22(setq lsp-completion-provider :capf) 23(setq lsp-prefer-capf t) 24;;assigment to free variables? 25(setq lsp-idle-delay 0.500) 26 27;;;;;;;;;;;;;; 28;;;;lsp-ui;;;; 29;;;;;;;;;;;;;; 30(require 'lsp-ui) 31(setq lsp-ui-imenu-enable t) 32(setq lsp-headerline-breadcrumb-enable t) 33(add-hook 'lsp-mode-hook 'lsp-ui-mode) 34 35;;;;;;;;;;;;;; 36;;;;python;;;; 37;;;;;;;;;;;;;; 38;;(require 'lsp-pyright) 39(add-hook 'python-mode-hook #'lsp)
試したこと
実際にコマンドラインでプログラムを実行すると正しく実行されるため、lspの設定の問題かと思い少し調べてみたところvsCodeでも似たような問題が発生することがわかりました。曰く、pylintのextension-pkg-whitelistにcv2をセットすれば良いとのことでしたので、~/.config/pylintrcを作成して直接その値をセットして再起動したのですが、未だ状況は変わりません。
pipでpylsやpylintなどを再インストールしたり、lsp-modeからeglotに変えたり、言語サーバーをpylsからpyrightに変えてみたりもしてみたのですがやはり同様のエラーが起こってしまいました。
環境
Arch linux
GNU Emacs 28.1
Python 3.10.5
python-lsp-server 1.5.0
pylint 2.14.5
autopep8 1.5.5
flake8 3.8.4
pyflakes 2.2.0
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。