Capstone.New.Project (Capstone v0.33.3)

Copy Markdown View Source

Edits to the freshly generated project.

render_config/1 uses a hand-rolled heredoc rather than calling Capstone.Config's own encoder-equivalent, even though that codec is compiled locally in this project (lib/capstone/config.ex) and is perfectly reachable from here. That's a deliberate choice, not a limitation: unifying the reader and the writer behind one encoder is explicit future work, not done here. This project's own test/capstone/config_test.exs and test/integration/target_project_test.exs assert the rendered file is readable by Capstone.Config, which is the guarantee that actually matters in the meantime.

Summary

Functions

Splices dep_line in as the first entry of the generated project's deps/0.

Renders target.exs — the SDD 8.1 slim input shape.

Functions

patch_mix_exs(source, dep_line)

@spec patch_mix_exs(binary(), binary()) ::
  {:ok, binary()} | {:error, :deps_not_found | :already_patched}

Splices dep_line in as the first entry of the generated project's deps/0.

render_config(opts)

@spec render_config(Capstone.New.Options.t()) :: binary()

Renders target.exs — the SDD 8.1 slim input shape.