2010-06-03 19 views
7

Tôi làm việc trên dự án Django của tôi với emacs. Trong tập lệnh virtualenv "postactivate" của tôi, tôi có lệnh đơn giản sau:Có thể làm cho Python etag thông minh hơn một chút với các emac không?

find -L . -type f -name "*.py" | xargs etags -e > /dev/null 2>&1 & 

Tệp TAGS chỉ tạo ra tốt nhưng hệ thống có vẻ khá ngu ngốc. Khi con trỏ là cuộc gọi bộ lọc mô hình, ví dụ:

MyModel.objects.filter(...) 

và tôi nhấn M-., Đôi khi emacs đưa tôi đến nơi MyModel được nhập tại thời điểm tệp (câu lệnh nhập thực tế). Tôi chỉ muốn truy cập lớp học, phương pháp và định nghĩa chức năng.

Có cách nào để làm cho etags thông minh hơn không?

Cảm ơn, Ryan Kaskel

Trả lời

3

Bắt phân tích mô-đun đúng với một ngôn ngữ như python là rất khó, do bản chất năng động của mình là cách tốt nhất để có được thông tin chính xác đang làm phân tích tĩnh hoặc chẩn đoán.

Hiện tại, tốt nhất tôi tìm thấy là khám phá các phương pháp có phần mở rộng ropemacs có các tính năng tuyệt vời như hỗ trợ mã (khá thông minh) và chú thích.

Thật không may là nó không dễ dàng để làm cho nó phù hợp với ropemacs, bạn nên cài đặt pymacs đầu tiên và sau đó cấu hình cài đặt thư viện dây khác nhau. (Tôi đang làm việc trên một packaged version of it)

Một gói tĩnh sẽ phân tích mã python của bạn và sản xuất "thẻ thông minh" sẽ là một cái gì đó giống như pysmell, nhưng tôi đã không sử dụng nó rộng rãi

Các vấn đề liên quan