2012-03-12 39 views
7

Có một số lệnh doxygen có mục đích là tạo liên kết trong tài liệu (@link, @ref).
Tôi hiện đang sử dụng lệnh @ref để tạo liên kết tới tệp tùy chỉnh, được viết bằng ngôn ngữ không được hỗ trợ bởi doxygen (xml).
Tôi muốn thay đổi liên kết này để nó trỏ đến một dòng chính xác trong tệp.
Có lệnh doxygen cho phép thực hiện điều đó không?Trong tài liệu doxygen cách tạo liên kết đến một dòng cụ thể của một tệp

Trả lời

6

Tôi không chắc chắn rằng \ref hoặc \link có thể thực hiện việc này. Tuy nhiên, nếu có thể, một vấn đề khi áp dụng phương pháp này là các liên kết sẽ trở nên không hợp lệ nếu bạn thay đổi nội dung của tệp mà bạn đang liên kết mà không thay đổi liên kết. Đây là một trong những vấn đề về tách mã nguồn và tài liệu.

Thay vì liên kết đến một dòng cụ thể trong một tệp khác, tại sao bạn không bao gồm phần cụ thể của tệp mà bạn quan tâm trong tài liệu? Bạn có thể một trong hai:

  • bao gồm toàn bộ tập tin với \include (đó cũng là \includelineno) và chỉ cần tham khảo phần liên quan của nó trong văn bản (ví dụ: "chức năng xxx trong mã bên dưới"), hoặc
  • bao gồm các đoạn của tệp mà bạn cần tham chiếu đến chúng trong tài liệu bằng cách sử dụng \snippet.

Sửa: Ngoài ra, bạn có thể sử dụng lệnh \dontinclude đó, cùng với \line, \skip, \skipline, và \until lệnh cho phép bạn bao gồm dòng/khối của một tập tin đặc biệt cụ thể. Xem ví dụ trong tài liệu \dontinclude.

+0

Cảm ơn đề xuất của bạn. Lệnh '\ snippet' có vẻ đầy hứa hẹn, tuy nhiên nó chỉ hoạt động đối với đoạn mã từ _source files_, trong khi tôi muốn hiển thị dữ liệu từ tệp tài nguyên _xml của tôi_. Tôi không thể thêm các thẻ xác định vị trí đoạn trích vào tệp xml của tôi vì các nhận xét kiểu doxygen sẽ "ngắt" nó. Việc sử dụng \ include cũng rất thông minh, nhưng nó là một tệp lớn và tôi không muốn bao gồm nó mỗi lần (tài liệu sẽ bị xóa bởi dữ liệu không liên quan). Tuy nhiên, khi tôi sử dụng \ ref vào tệp của mình, tôi đã tham khảo các phần có liên quan, như bạn đề xuất. Tôi chỉ tìm kiếm một cách tốt hơn nữa. – wil

+1

@wil Không sao cả. Tôi cũng đã thêm một lưu ý vào lệnh '\ dontinclude', điều này sẽ tốt hơn cho bạn so với lệnh' \ snippet' vì nó không yêu cầu bất kỳ thẻ nào được thêm vào tệp tài nguyên của bạn. Tuy nhiên, theo các tài liệu hướng dẫn có vẻ như lệnh này chỉ hoạt động trên các tập tin nguồn (tôi đã không thử nghiệm này, vì vậy tôi không chắc chắn nếu điều này thực sự là trường hợp). Bạn cũng có thể bao gồm XML trực tiếp trong tài liệu của mình. Không có điều này tôi sợ bạn chỉ có thể phải sống với phương pháp '\ ref' của bạn. – Chris

+0

Tôi đã thử các lệnh '\ dontinclude' và nó cũng hoạt động đối với các tệp xml! Tôi đã giải quyết cho giải pháp này và đặt câu trả lời của bạn là "được chấp nhận" :-) – wil

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