{"id":18546431,"url":"https://github.com/adroll/rebar3_typer","last_synced_at":"2025-10-27T04:02:17.196Z","repository":{"id":42189687,"uuid":"451358108","full_name":"AdRoll/rebar3_typer","owner":"AdRoll","description":"Rebar3 plugin wrapper around TypEr","archived":false,"fork":false,"pushed_at":"2024-10-30T15:52:47.000Z","size":84,"stargazers_count":12,"open_issues_count":5,"forks_count":2,"subscribers_count":10,"default_branch":"main","last_synced_at":"2025-03-24T11:12:14.450Z","etag":null,"topics":["erlang","hacktoberfest","tools","types"],"latest_commit_sha":null,"homepage":"","language":"Erlang","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AdRoll.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-01-24T07:23:03.000Z","updated_at":"2024-10-30T15:52:26.000Z","dependencies_parsed_at":"2024-11-06T20:32:29.830Z","dependency_job_id":null,"html_url":"https://github.com/AdRoll/rebar3_typer","commit_stats":{"total_commits":37,"total_committers":7,"mean_commits":5.285714285714286,"dds":0.6756756756756757,"last_synced_commit":"3c7de37401c5593712c5fa1fd47b53daf5c009f1"},"previous_names":[],"tags_count":4,"template":false,"template_full_name":"vkatsuba/rebar3_plugin","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AdRoll%2Frebar3_typer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AdRoll%2Frebar3_typer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AdRoll%2Frebar3_typer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AdRoll%2Frebar3_typer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AdRoll","download_url":"https://codeload.github.com/AdRoll/rebar3_typer/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248107179,"owners_count":21048873,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["erlang","hacktoberfest","tools","types"],"created_at":"2024-11-06T20:24:57.452Z","updated_at":"2025-10-27T04:02:17.072Z","avatar_url":"https://github.com/AdRoll.png","language":"Erlang","funding_links":[],"categories":[],"sub_categories":[],"readme":"# rebar3_typer\n\nA rebar3 plugin wrapper around [TypEr](https://www.erlang.org/doc/man/typer.html)\n\n## Build and Test\n\n```sh\n$ rebar3 test\n```\n\n## Use\n\nAdd the plugin to your rebar config:\n\n```erlang\n{project_plugins, [{rebar3_typer, \"~\u003e 0.0.0\"}]}.\n```\n\nThen just call your plugin directly in an existing application:\n```sh\n$ rebar3 typer\n===\u003e Fetching rebar3_typer\n===\u003e Compiling rebar3_typer\n\u003cPlugin Output\u003e\n```\n\n## Configuration\n\nYou can basically use the same command-line options as you can use with the original TypEr:\n\n```man\nUsage: rebar3 typer [-r \u003crecursive\u003e] [-f \u003cfiles\u003e]\n                    [--show [\u003cshow\u003e]]\n                    [--show-exported [\u003cshow_exported\u003e]]\n                    [--show_exported [\u003cshow_exported\u003e]]\n                    [--show-success-typings [\u003cshow_success_typings\u003e]]\n                    [--show_success_typings [\u003cshow_success_typings\u003e]]\n                    [--annotate [\u003cannotate\u003e]]\n                    [--annotate-inc-files [\u003cannotate_inc_files\u003e]]\n                    [--annotate-in-place [\u003cannotate_in_place\u003e]]\n                    [--annotate_in_place [\u003cannotate_in_place\u003e]]\n                    [--no_spec [\u003cno_spec\u003e]] [--edoc [\u003cedoc\u003e]]\n                    [--plt \u003cplt\u003e] [-T \u003ctypespec_files\u003e]\n\n  -r                      Search comma-separated directories recursively\n                          for .erl files below them.\n  -f                      Files to analyze.\n  --show                  Print type specifications for all functions on\n                          stdout. [default: false]\n  --show-exported         Same as --show, but print specifications for\n                          exported functions only. Specs are displayed\n                          sorted alphabetically on the function's name.\n                          [default: false]\n  --show_exported         Same as --show-exported. [default: false]\n  --show-success-typings  Show the success typings inferred by Dialyzer /\n                          Typer. This is an undocumented option. [default:\n                          false]\n  --show_success_typings  Same as --show-success-typings. This is an\n                          undocumented option. [default: false]\n  --annotate              Annotate the specified files with type\n                          specifications. [default: false]\n  --annotate-inc-files    Same as --annotate but annotates all -include()\n                          files as well as all .erl files. (Use this\n                          option with caution - it has not been tested\n                          much). [default: false]\n  --annotate-in-place     Annotate directly on the source code files,\n                          instead of dumping the annotated files in a\n                          different directory. [default: false]\n  --annotate_in_place     Same as --annotate-in-place. [default: false]\n  --no_spec               Ignore the specs from the files. This is an\n                          undocumented option. [default: false]\n  --edoc                  Print type information as Edoc @spec comments,\n                          not as type specs. [default: false]\n  --plt                   Use the specified dialyzer PLT file rather than\n                          the default one from the profile's base\n                          directory.\n  -T                      The specified file(s) already contain type\n                          specifications and these are to be trusted in\n                          order to print specs for the rest of the files.\n                          (Multiple files or dirs, separated by commas,\n                          can be specified.)\n```\n\nYou can also put those options directly in your `rebar.config` file:\n\n```erlang\n{typer,\n    [{mode, show},                  %% Results mode: show | show_exported | annotate | annotate_inc_files | annotate_in_place\n     {edoc, false},                 %% Print type information as Edoc @spec comments, not as type specs.\n     {plt, \"/path/to/plt\"},         %% Use the specified dialyzer PLT file rather than the default one.\n     {show_success_typings, false}, %% Show the success typings inferred by Dialyzer / Typer.\n     {no_spec, false},              %% Ignore existing function specs.\n     {recursive, [\"d1/\", \"d2/\"]},   %% Search directories recursively for .erl files.\n     {files, [\"foo.erl\"]},          %% Analyze listed .erl files, non-recursively.\n     {typespec_files, [\"f1\", \"f2\"]} %% The specified file(s) already contain type specifications.\n    ]}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadroll%2Frebar3_typer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fadroll%2Frebar3_typer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadroll%2Frebar3_typer/lists"}