Tôi đang sử dụng jedi qua YCM trong vim và tôi nhận thấy một số hành vi kỳ lạ trong dự án của mình liên quan đến việc sử dụng máy chủ jediHttp công dụng
điểm cuối. Về cơ bản, nó chỉ có thể tìm thấy một tập hợp con nhỏ cách sử dụng của một lớp hoặc hàm trong dự án của tôi. Nó tìm thấy tất cả các cách sử dụng trong tệp hiện tại, nhưng không tìm thấy phần lớn trong các tệp khác. Đi tới
Lệnh hoạt động tốt và sẽ mở một bộ đệm mới ở bất kỳ đâu trong dự án như mong đợi. Tuy nhiên, khi tôi bắt đầu từ định nghĩa và cố gắng vượt qua GoToTài liệu tham khảo
lệnh xem tất cả công dụng
Vào thời điểm đó, nó chỉ tạo ra khoảng 20% lượng sử dụng thực tế.
Tôi đã thử tạo một dự án giả để tái tạo hành vi và có vẻ như nó đã hoạt động. Đây là cấu trúc dự án đơn giản:
> cây -I __pycache__
.
├── setup.py
└── test_jedi
├── class.py
├── __init__.py
├── mod1
│ ├── __init__.py
│ └── recessed.py
└── script.py
2 thư mục, 6 tập tin
Nội dung của các tập tin này như sau:
lớp.py
lớpFoo:
def __init__(self, a):
tự.a = a
chắc chắn make_a(tự):
in('xin chào')
mod1/recessed.py:
từ test_jedi.classes nhập Foo
Foo(5).make_a()
print('Chạy cái này')
script.py:
từ các lớp nhập Foo
a = Foo(5)
a.make_a()
Bây giờ, trong vim có recessed.py trong bộ đệm, tôi có thể Foo
上使用 Đi tới
Mở ngay bây giờ lớp.py
bộ đệm. Sau đó khi tôi đi từ lớp.py
thử đệm GoToTài liệu tham khảo
khi đó, tôi chỉ script.py
Vàlớp.py
. Tôi không biết tại sao jedi không cho tôi xem recessed.py
Cách sử dụng trong
Đây là bộ đệm quickfix được hiển thị:
class.py|2 col 7| lớp Foo
script.py|2 col 21| từ các lớp nhập Foo
script.py|5 col 5| a = Foo(5)
Nhưng rõ ràng mod1/recessed.py không được tham chiếu, rõ ràng là nó sử dụng Foo
.
Có ý tưởng gì không?
Tôi biết câu hỏi này đã 1,5 năm tuổi, nhưng vì lợi ích của những người gặp phải vấn đề này như tôi, nó liên quan đến vấn đề Chưa được giải quyết hiện tại trong Jedi.
Jedi script.usages
Bởi YouCompleteMe trong đó GoToTài liệu tham khảo
được sử dụng trong các hàm. Tuy nhiên, theo tác giả,script.usages
Có sai sót ở nhiều chỗ. Anh ấy nhận thức rõ vấn đề, nhưng hiện tại nó không được ưu tiên nhiều.
Liên kết đến vấn đề
Tôi là một lập trình viên xuất sắc, rất giỏi!