Đây là trích đoạn từ trang CDT mô tả cách phân tích cú pháp và lập chỉ mục của chúng (CDT/designs/Overview of Parsing). Nó đưa ra một mô tả khá tốt về những gì sự khác biệt là gì và ở đâu indexer nhanh có thể thất bại:
Parsing và giải quyết ràng buộc là một quá trình chậm , đây là một vấn đề vì người sử dụng mong muốn chỉnh sửa mã tính năng như nội dung hỗ trợ là nhanh. Vì lý do này, CDT lưu trữ thông tin ràng buộc trong bộ nhớ cache trên đĩa được gọi là “chỉ mục” hoặc “PDOM” (Mẫu đối tượng tài liệu kiên trì) theo số để có thể cung cấp các tính năng phản hồi nhanh chóng các yêu cầu của người dùng.
Xây dựng chỉ mục bao gồm phân tích cú pháp tất cả mã trong một dự án, giải quyết tất cả các ràng buộc và viết các ràng buộc đó vào chỉ mục. Chỉ mục là sau đó được cập nhật từng lần người dùng chỉnh sửa tệp.
Phiên bản cũ hơn của hỗ trợ CDT ba các chế độ lập chỉ mục khác nhau, nhanh chóng lập chỉ mục, lập chỉ mục đầy đủ và không có chỉ mục . Cài đặt mặc định là trình lập chỉ mục nhanh vì lập chỉ mục một dự án lớn có thể tốn thời gian quá trình . Sự khác biệt giữa các chỉ mục nhanh chóng và đầy đủ là trình lập chỉ mục nhanh sẽ bỏ qua các tệp tiêu đề đã được phân tích cú pháp một lần, trong khi trình chỉ mục đầy đủ sẽ luôn phân tách một tệp tiêu đề mỗi khi nó được bao gồm. Tuy nhiên, điều quan trọng là để hiểu rằng chỉ mục đầy đủ, mặc dù tên của nó, vẫn không hoàn toàn chính xác .
Khi tệp tiêu đề được bao gồm trong tệp nguồn , nó tuân theo bất kỳ macro nào đã được xác định tại điểm đó. Một số tiêu đề thư viện sử dụng macro kết hợp với tiền xử lý điều kiện (#ifdefs) cho một phần bao gồm tệp tiêu đề. Đôi khi tệp tiêu đề được bao gồm nhiều hơn một lần trong dự án, nếu các macro tiêu đề phụ thuộc vào khác nhau mỗi khi tiêu đề được bao gồm thì các phần khác nhau của tiêu đề có thể là được bao gồm trong các tệp nguồn khác nhau. Cả trình chỉ mục sẽ không chính xác trong trường hợp này bởi vì nó sẽ chỉ lập chỉ mục tiêu đề lần đầu tiên là gặp phải.
Trình đánh chỉ mục đầy đủ sẽ phân tích lại tiêu đề nó đã gặp phải, nhưng sẽ không lập chỉ mục lại chúng. Do đó, các tệp nguồn có tiêu đề có thể được phân tích cú pháp chính xác hơn, nhưng chính tiêu đề sẽ chỉ được lập chỉ mục một lần. Trình lập chỉ mục đầy đủ nhiều hơn chậm hơn trình lập chỉ mục nhanh vì phân tích cú pháp bổ sung, nhưng chỉ chính xác hơn một chút. Đối với lý do này chỉ mục Đầy đủ không được đề xuất là và đã bị xóa khỏi phiên bản CDT hiện tại.
Mỗi dự án có một PDOM được liên kết với nó. PDOM được lưu trữ trên đĩa dưới dạng tệp nhị phân phẳng. Chỉ mục sẽ chỉ lập chỉ mục các tiêu đề mà được bao gồm trong tệp nguồn, vì vậy nếu có tệp .h trong dự án không được bao gồm trong bất kỳ tệp .c hoặc .cpp nào thì bình thường nó sẽ không nhận được được lập chỉ mục. Tuy nhiên, có một cài đặt ưu tiên là để lập chỉ mục tất cả các tệp trong dự án .
Vẫn còn trong trường hợp, trong Eclipse Kepler, có hai trình lập chỉ mục có sẵn không? Tôi không thấy hai ... có lẽ một người đã bị loại bỏ? – einpoklum