jak-project/common
Tyler Wilding abf61a94fb
docs: add support for :override-doc in method declarations as well as documenting state handlers (#2139)
Adding support for better child-type method docstrings. This is a
problem unique to methods.

Usually, a child-type will have the same signature and a common name
will apply, but the implementation is different. This means, you
probably want a different docstring to describe what is happening.

Currently this is possible to do via `:replace`. The problem with
replace is two fold:
- a replaced method ends up in the generated `deftype`...because you
usually change the signature!
- we don't put docstrings in the `deftype` in normal GOAL, this is just
something we do for the `all-types` file (they go in the `defmethod`
instead)
- more importantly, this means anytime you now want to change the
parent's name/args/return type -- you have to apply that change
everywhere.

So this is a better design you can now just declare the method like so:
```clj
(:override-doc "my new docstring" <method_id>)
```

And internally a pseudo-replaced method will be added, but it will
inherit everything from the parent (except the docstring of course)

Unrelated - I also made all the keyword args for declaring methods not
depend on ordering

This also adds support for documenting virtual and non-virtual state
handlers. For example:

```clj
  (:states
    (part-tester-idle (:event "test") symbol))
```

or

```clj
(idle () _type_ :state (:event "test") 20)
```

I will probably add the ability to give some sort of over-view docstring
at a later date.

Co-authored-by: water <awaterford111445@gmail.com>
2023-01-21 20:45:45 -05:00
..
audio logs: replace every fmt::print with a lg call instead (#1368) 2022-10-01 11:58:36 -04:00
cross_os_debug game/debugger: handle uncaught loader thread exceptions and better handle that situation on the windows debugger (#2075) 2023-01-01 12:31:12 -05:00
cross_sockets goalc/repl: cleanup of goalc/REPL code and some QoL improvements (#2104) 2023-01-07 11:24:02 -05:00
custom_data [decomp] Decompile some time-of-day stuff, support new style Jak 2 time of day (#1943) 2022-10-08 13:33:03 -04:00
dma offline-test: Partition by DGO and colorize/condense output (#2045) 2022-12-22 13:41:33 -05:00
global_profiler support c++ tools on macos (#2063) 2022-12-22 17:12:05 -05:00
goos goalc/repl: cleanup of goalc/REPL code and some QoL improvements (#2104) 2023-01-07 11:24:02 -05:00
log fix deadlock on shutdown (#1937) 2022-10-01 12:29:08 -04:00
math [decomp] make defpart and defpartgroup work in jak 2 (#1947) 2022-10-09 12:53:44 -04:00
repl [jak2] workaround for cutscene playing (#2131) 2023-01-16 13:37:29 -05:00
serialization/subtitles logs: replace every fmt::print with a lg call instead (#1368) 2022-10-01 11:58:36 -04:00
texture W/misc fixes (#1838) 2022-09-05 20:29:12 -04:00
type_system docs: add support for :override-doc in method declarations as well as documenting state handlers (#2139) 2023-01-21 20:45:45 -05:00
util [jak2] workaround for cutscene playing (#2131) 2023-01-16 13:37:29 -05:00
CMakeLists.txt goalc/repl: cleanup of goalc/REPL code and some QoL improvements (#2104) 2023-01-07 11:24:02 -05:00
common_types.h support c++ tools on macos (#2063) 2022-12-22 17:12:05 -05:00
goal_constants.h tools: Fix the memory dump analysis tool (#1690) 2022-07-22 11:55:18 -04:00
link_types.h [goalc] compile/run code for jak2 ckernel, set up dummy KERNEL.CGO (#1625) 2022-07-08 19:23:49 -04:00
listener_common.h improve performance on intel graphics (#1041) 2021-12-30 19:38:18 -05:00
symbols.h [goalc] compile/run code for jak2 ckernel, set up dummy KERNEL.CGO (#1625) 2022-07-08 19:23:49 -04:00
versions.cpp goalc/repl: cleanup of goalc/REPL code and some QoL improvements (#2104) 2023-01-07 11:24:02 -05:00
versions.h goalc/repl: cleanup of goalc/REPL code and some QoL improvements (#2104) 2023-01-07 11:24:02 -05:00