jak-project/common/util
Tyler Wilding 39658dfd71
docs: Automatically generate documentation from goal_src code (#2214)
This automatically generates documentation from goal_src docstrings,
think doxygen/java-docs/rust docs/etc. It mostly supports everything
already, but here are the following things that aren't yet complete:
- file descriptions
- high-level documentation to go along with this (think pure markdown
docs describing overall systems that would be co-located in goal_src for
organizational purposes)
- enums
- states
- std-lib functions (all have empty strings right now for docs anyway)

The job of the new `gen-docs` function is solely to generate a bunch of
JSON data which should give you everything you need to generate some
decent documentation (outputting markdown/html/pdf/etc). It is not it's
responsibility to do that nice formatting -- this is by design to
intentionally delegate that responsibility elsewhere. Side-note, this is
about 12-15MB of minified json for jak 2 so far :)

In our normal "goal_src has changed" action -- we will generate this
data, and the website can download it -- use the information to generate
the documentation at build time -- and it will be included in the site.
Likewise, if we wanted to include docs along with releases for offline
viewing, we could do so in a similar fashion (just write a formatting
script to generate said documentation).

Lastly this work somewhat paves the way for doing more interesting
things in the LSP like:
- whats the docstring for this symbol?
- autocompleting function arguments
- type checking function arguments
- where is this symbol defined?
- etc

Fixes #2215
2023-02-20 19:49:37 -05:00
..
Assert.cpp logs: replace every fmt::print with a lg call instead (#1368) 2022-10-01 11:58:36 -04:00
Assert.h [decomp] finish up debug.gc, get boundary rendering working (#1944) 2022-10-08 17:02:40 -04:00
BinaryReader.h lint: add include sorting config to clang-format (#1517) 2022-06-22 23:37:46 -04:00
BinaryWriter.h extractor: cleanup, support unicode properly, and add multi-game support (#1609) 2022-07-05 20:38:13 -04:00
BitUtils.cpp update readme and fix always playing str (#1139) 2022-02-08 19:02:47 -05:00
BitUtils.h lint: add include sorting config to clang-format (#1517) 2022-06-22 23:37:46 -04:00
colors.h [graphics] Ocean Mid (in progress) (#1232) 2022-03-14 19:47:29 -04:00
compress.cpp lint: add include sorting config to clang-format (#1517) 2022-06-22 23:37:46 -04:00
compress.h Fix GCC 12 build (#1530) 2022-06-23 16:16:48 -04:00
CopyOnWrite.h lint: add include sorting config to clang-format (#1517) 2022-06-22 23:37:46 -04:00
crc32.cpp CI: Add a macOS Github runner (#2064) 2022-12-22 18:12:59 -05:00
crc32.h lint: add include sorting config to clang-format (#1517) 2022-06-22 23:37:46 -04:00
dgo_util.cpp lint: add include sorting config to clang-format (#1517) 2022-06-22 23:37:46 -04:00
dgo_util.h lint: add include sorting config to clang-format (#1517) 2022-06-22 23:37:46 -04:00
DgoReader.cpp lint: add include sorting config to clang-format (#1517) 2022-06-22 23:37:46 -04:00
DgoReader.h lint: add include sorting config to clang-format (#1517) 2022-06-22 23:37:46 -04:00
DgoWriter.cpp [jak2] support for multiple out/ directories (#1585) 2022-06-30 21:11:58 -04:00
DgoWriter.h extractor: cleanup, support unicode properly, and add multi-game support (#1609) 2022-07-05 20:38:13 -04:00
diff.cpp goalc/repl: cleanup of goalc/REPL code and some QoL improvements (#2104) 2023-01-07 11:24:02 -05:00
diff.h goalc/repl: cleanup of goalc/REPL code and some QoL improvements (#2104) 2023-01-07 11:24:02 -05:00
FileUtil.cpp jak2: significantly reduce the verbosity of the game.gp file (#2103) 2023-01-28 20:15:58 -05:00
FileUtil.h jak2: significantly reduce the verbosity of the game.gp file (#2103) 2023-01-28 20:15:58 -05:00
FilteredValue.h [graphics] TIE extractor (#1026) 2021-12-26 12:33:51 -05:00
FontUtils.cpp Create Hungarian translation of game text for Jak 1 (#2141) 2023-02-04 20:01:22 -05:00
FontUtils.h d/jak2: finish progress menu code and initialize the camera (#1945) 2022-10-11 18:30:26 -04:00
FrameLimiter.cpp support c++ tools on macos (#2063) 2022-12-22 17:12:05 -05:00
FrameLimiter.h add more comments/docstrings on first 58 files, try new windows-specific framelimiting (#1134) 2022-02-05 16:30:50 -05:00
json_util.cpp lint: add include sorting config to clang-format (#1517) 2022-06-22 23:37:46 -04:00
json_util.h lint: add include sorting config to clang-format (#1517) 2022-06-22 23:37:46 -04:00
math_util.h Update documentation and clean up (#129) 2020-11-21 12:52:38 -05:00
os.cpp support c++ tools on macos (#2063) 2022-12-22 17:12:05 -05:00
os.h [graphics] reduce the size of fr3 files (#1175) 2022-02-16 22:13:18 -05:00
print_float.cpp [decomp] collectables, fix float bug in a few files (#2082) 2023-01-01 18:05:31 -05:00
print_float.h [decomp] collectables, fix float bug in a few files (#2082) 2023-01-01 18:05:31 -05:00
Range.h [goalc] register allocator v2 (#731) 2021-08-01 17:46:55 -04:00
read_iso_file.cpp support c++ tools on macos (#2063) 2022-12-22 17:12:05 -05:00
read_iso_file.h support c++ tools on macos (#2063) 2022-12-22 17:12:05 -05:00
Serializer.h [tie] support per-proto visibility flags (#2212) 2023-02-11 12:00:05 -05:00
set_util.h decomp: don't mutate allowed/banned object lists (#2073) 2022-12-30 23:57:01 -05:00
SimpleThreadGroup.cpp lint: add include sorting config to clang-format (#1517) 2022-06-22 23:37:46 -04:00
SimpleThreadGroup.h lint: add include sorting config to clang-format (#1517) 2022-06-22 23:37:46 -04:00
SmallVector.h lint: add include sorting config to clang-format (#1517) 2022-06-22 23:37:46 -04:00
string_util.cpp docs: Automatically generate documentation from goal_src code (#2214) 2023-02-20 19:49:37 -05:00
string_util.h docs: Automatically generate documentation from goal_src code (#2214) 2023-02-20 19:49:37 -05:00
term_util.cpp tests: make the offline tests aware of the current terminals row count (#2105) 2023-01-07 10:35:12 -05:00
term_util.h tests: make the offline tests aware of the current terminals row count (#2105) 2023-01-07 10:35:12 -05:00
Timer.cpp support c++ tools on macos (#2063) 2022-12-22 17:12:05 -05:00
Timer.h lint: add include sorting config to clang-format (#1517) 2022-06-22 23:37:46 -04:00
Trie.h docs: Automatically generate documentation from goal_src code (#2214) 2023-02-20 19:49:37 -05:00
unicode_util.cpp Fix UTF-8 handling when running the game, env-vars, and setting the project path (#1632) 2022-07-10 19:03:24 -04:00
unicode_util.h utf8: fix locale mis-handling on linux (#1698) 2022-07-23 10:30:23 -04:00