2010-03-23 40 views
13

Tất cả các lớp của thư viện của tôi được xác định trong một không gian tên. Khi tôi tạo một trang chính cho Doxygen, tôi phải sử dụng một cách rõ ràng vùng tên này trong các bình luận để làm cho Doxygen tạo ra các liên kết. Tôi muốn sử dụng một cái gì đó như "sử dụng không gian tên" cho toàn bộ khối bình luận."sử dụng không gian tên" cho các bình luận Doxygen

Một ví dụ:

/** 
* \mainpage My Library 
* 
* Use MyLibraryNamespace::MyClass to ... 
*/ 

Đây Doxygen tự động tạo ra một liên kết đến tài liệu của MyLibraryNamespace :: MyClass.

/** 
* \mainpage My Library 
* 
* Use MyClass to ... 
*/ 

Đây Doxygen không tạo ra một liên kết đến tài liệu của MyLibraryNamespace :: MyClass (vì có thể có nhiều định nghĩa MyClass trong không gian tên khác nhau tôi giả sử). Để dễ đọc, tôi muốn bỏ qua tiền tố không gian tên trong nhận xét. Điều đó có thể thực hiện mà không cần phải nhập \ref MyLibraryNamespace::MyClass "MyClass" mỗi lần?

Trả lời

14

Bạn có thể thực hiện công việc này cho một không gian tên bằng cách đặt nhận xét của bạn bên trong không gian tên. Điều này gây lỗi cho tôi đáng kể khi chúng tôi có nhiều không gian tên lồng nhau và tôi ghét phải sử dụng chúng trong các bình luận của Doxygen.

namespace MyLibraryNamespace { 
/** 
* \mainpage My Library 
* 
* Use MyClass to ... 
*/ 
}; 

2016 Update từ Markdown Perspective

Tôi đang sử dụng Doxygen cho C# tài liệu cho Realm (có Doxygen xử lý các điển hình C# comment XML định dạng quá!). Trang chính Markdown sử dụng @ref để tham khảo đến các lớp học namespaced:

The main classes you will use are: 

- [Realm](@ref Realms.Realm) 
- [RealmObject](@ref Realms.RealmObject) 
- [RealmList](@ref Realms.RealmList) 
- [Transaction](@ref Realms.Transaction) 

Bạn có thể thấy một phiên bản trả online here

2

Bạn có thể sử dụng bí danh như thế này:

ALIASES += refmylib{1}="@ref MyLibraryNamespace::\1 \"\1\""

Đây là ví dụ sử dụng:

/** * \mainpage My Library * * Use @refmylib{MyClass} to ... */

Và trên sẽ được xử lý bởi doxygen như thế này:

/** * \mainpage My Library * * Use @ref MyLibraryNamespace::MyClass "MyClass" to ... */

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