Без какой-либо дополнительной настройки все заработало «из коробки». Однако когда у меня есть класс в подпапке и я добавляю новый метод, Pyright не распознает этот метод, когда я хочу получить к нему доступ в другом файле. Когда я перезапускаю neovim или открываю и закрываю файл, Pyright внезапно распознает новый добавленный метод.
Я также пробовал :LspRestart безрезультатно.
Я пытался добавить некоторые настройки на сервер Pyright:
Код: Выделить всё
return {
settings = {
python = {
analysis = {
autoSearchPaths = true,
diagnosticMode = "workspace",
useLibraryCodeForTypes = true,
}
}
},
}
Код: Выделить всё
:LspLogКод: Выделить всё
[START][2022-07-15 11:11:05] LSP logging initiated
[WARN][2022-07-15 11:11:09] ...lsp/handlers.lua:109 "The language server pyright triggers a registerCapability handler despite dynamicRegistration set to false. Report upstream, this warning is harmless"
[WARN][2022-07-15 11:11:09] ...lsp/handlers.lua:456 "stubPath typings is not a valid directory."
[WARN][2022-07-15 11:11:20] ...lsp/handlers.lua:109 "The language server pyright triggers a registerCapability handler despite dynamicRegistration set to false. Report upstream, this warning is harmless"
Поскольку я новичок в Python, способ импорта и структурирования классов может быть необычным и может быть проблемой, которая может вызвать эту проблему.
- В качестве основной точки входа у меня есть файл main.py в корневой папке.
- Все остальные исходные файлы находятся в папке program/, которая нет __init__.py
- Внутри программы/ есть папки, в каждой из которых есть файл __init__.py, например. ядро/
Код: Выделить всё
core/__init__.py:
from .myClass import myClass
Код: Выделить всё
from subfolder.core import myClass
myClass.newMethod() # this is only recognized by lsp/pyright after the file is closed and reopen