devel.rst revision 99a1ad0f
199a1ad0fSDmitri TikhonovDeveloping lsquic
299a1ad0fSDmitri Tikhonov=================
399a1ad0fSDmitri Tikhonov
499a1ad0fSDmitri TikhonovGenerating Tags
599a1ad0fSDmitri Tikhonov---------------
699a1ad0fSDmitri Tikhonov
799a1ad0fSDmitri TikhonovOver the years, we have developed a wrapper around `Universal Ctags`_
899a1ad0fSDmitri Tikhonovto generate convenient tags so that, for example, ``ci_packet_in`` will
999a1ad0fSDmitri Tikhonovbe able to take you to any of its implementations such as
1099a1ad0fSDmitri Tikhonov``full_conn_ci_packet_in()``, ``evanescent_conn_ci_packet_in()``, and
1199a1ad0fSDmitri Tikhonovothers.
1299a1ad0fSDmitri Tikhonov
1399a1ad0fSDmitri Tikhonov_Exuberant_ Ctags will work, too, but the more recent and maintained fork
1499a1ad0fSDmitri Tikhonovof it, the _Universal_ Ctags, is preferred.  (If you are on Ubuntu, you
1599a1ad0fSDmitri Tikhonovshould clone Universal Ctags from GitHub and compiled it yourself.  The
1699a1ad0fSDmitri Tikhonovversion that comes in the Ubuntu package -- at the time of this writing
1799a1ad0fSDmitri Tikhonov-- is so slow as to be considered broken).
1899a1ad0fSDmitri Tikhonov
1999a1ad0fSDmitri TikhonovThe wrapper is ``tools/gen-tags.pl``.  Run it in the source directory:
2099a1ad0fSDmitri Tikhonov
2199a1ad0fSDmitri Tikhonov.. highlight:: bash
2299a1ad0fSDmitri Tikhonov
2399a1ad0fSDmitri Tikhonov::
2499a1ad0fSDmitri Tikhonov
2599a1ad0fSDmitri Tikhonov    sh$ cd lsquic
2699a1ad0fSDmitri Tikhonov    sh$ ./tools/gen-tags.pl
2799a1ad0fSDmitri Tikhonov
2899a1ad0fSDmitri TikhonovMaintaining Documentation
2999a1ad0fSDmitri Tikhonov-------------------------
3099a1ad0fSDmitri Tikhonov
3199a1ad0fSDmitri TikhonovDocumentation -- the ``*.rst`` files under ``docs/`` should be kept up-to-date
3299a1ad0fSDmitri Tikhonovwith changes in the API in ``include/lsquic.h``.
3399a1ad0fSDmitri Tikhonov
3499a1ad0fSDmitri TikhonovFor convenience, tags for the documentation files can be generated by passing
3599a1ad0fSDmitri Tikhonovthe ``--docs`` argument to ``tools/gen-tags.pl``.
3699a1ad0fSDmitri Tikhonov
3799a1ad0fSDmitri Tikhonov.. _`Universal Ctags`: https://ctags.io/
38