├── .check.exs ├── .credo.exs ├── .formatter.exs ├── .github ├── dependabot.yml └── workflows │ └── elixir.yml ├── .gitignore ├── .tool-versions ├── .tool-versions.license ├── CHANGELOG.md ├── LICENSES └── MIT.txt ├── README.md ├── benchmarks └── options.exs ├── config └── config.exs ├── documentation ├── how_to │ ├── setup-autocomplete.md │ ├── split-up-large-dsls.md │ ├── upgrade-to-2.0.md │ ├── use-source-annotations.md │ └── writing-extensions.md └── tutorials │ └── get-started-with-spark.md ├── lib ├── mix │ ├── helpers.ex │ └── tasks │ │ ├── spark.cheat_sheets.ex │ │ ├── spark.cheat_sheets_in_search.ex │ │ ├── spark.formatter.ex │ │ ├── spark.install.ex │ │ └── spark.replace_doc_links.ex ├── spark.ex └── spark │ ├── cheat_sheet.ex │ ├── code_helpers.ex │ ├── docs.ex │ ├── dsl.ex │ ├── dsl │ ├── builder.ex │ ├── entity.ex │ ├── entity │ │ └── meta.ex │ ├── extension.ex │ ├── extension │ │ ├── entity.ex │ │ ├── entity_option.ex │ │ ├── imports.ex │ │ └── section_option.ex │ ├── fragment.ex │ ├── patch │ │ └── add_entity.ex │ ├── section.ex │ ├── transformer.ex │ ├── verifier.ex │ └── verifiers │ │ └── verify_entity_uniqueness.ex │ ├── elixir_sense │ ├── aliases.ex │ ├── entity.ex │ └── plugin.ex │ ├── error │ └── dsl_error.ex │ ├── formatter.ex │ ├── igniter.ex │ ├── info_generator.ex │ ├── options │ ├── docs.ex │ ├── helpers.ex │ ├── options.ex │ ├── validation_error.ex │ └── validator.ex │ ├── options_helpers.ex │ ├── regex.ex │ └── warning.ex ├── logos └── logo.svg ├── mix.exs ├── mix.lock ├── mix.lock.license ├── test ├── add_extension_test.exs ├── code_helpers_test.exs ├── cross_extension_recursive_patch_test.exs ├── dsl_test.exs ├── dsl_validation_test.exs ├── elixir_sense │ └── plugin_test.exs ├── formatter_test.exs ├── igniter_test.exs ├── options │ ├── impl_validator_test.exs │ ├── mixed_list_test.exs │ └── validator_test.exs ├── recursive_test.exs ├── spark_test.exs ├── support │ ├── contact │ │ ├── contact.ex │ │ ├── contact_patcher.ex │ │ ├── contacter.ex │ │ ├── fragment.ex │ │ ├── info.ex │ │ ├── ted_dansen.ex │ │ └── verifiers │ │ │ └── verify_not_gandalf.ex │ ├── example_contacter.ex │ ├── example_options.ex │ ├── info │ │ ├── my_extension.ex │ │ └── my_extension_info.ex │ ├── recursive │ │ ├── atom.ex │ │ ├── info.ex │ │ ├── recursive.ex │ │ └── step.ex │ └── top_level │ │ ├── info.ex │ │ └── top_level.ex ├── test_helper.exs ├── top_level_test.exs └── transformer_test.exs └── usage-rules.md /.check.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/.check.exs -------------------------------------------------------------------------------- /.credo.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/.credo.exs -------------------------------------------------------------------------------- /.formatter.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/.formatter.exs -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/.github/dependabot.yml -------------------------------------------------------------------------------- /.github/workflows/elixir.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/.github/workflows/elixir.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/.gitignore -------------------------------------------------------------------------------- /.tool-versions: -------------------------------------------------------------------------------- 1 | erlang 27.0.1 2 | elixir 1.18.4 3 | pipx 1.8.0 4 | -------------------------------------------------------------------------------- /.tool-versions.license: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/.tool-versions.license -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/CHANGELOG.md -------------------------------------------------------------------------------- /LICENSES/MIT.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/LICENSES/MIT.txt -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/README.md -------------------------------------------------------------------------------- /benchmarks/options.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/benchmarks/options.exs -------------------------------------------------------------------------------- /config/config.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/config/config.exs -------------------------------------------------------------------------------- /documentation/how_to/setup-autocomplete.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/documentation/how_to/setup-autocomplete.md -------------------------------------------------------------------------------- /documentation/how_to/split-up-large-dsls.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/documentation/how_to/split-up-large-dsls.md -------------------------------------------------------------------------------- /documentation/how_to/upgrade-to-2.0.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/documentation/how_to/upgrade-to-2.0.md -------------------------------------------------------------------------------- /documentation/how_to/use-source-annotations.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/documentation/how_to/use-source-annotations.md -------------------------------------------------------------------------------- /documentation/how_to/writing-extensions.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/documentation/how_to/writing-extensions.md -------------------------------------------------------------------------------- /documentation/tutorials/get-started-with-spark.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/documentation/tutorials/get-started-with-spark.md -------------------------------------------------------------------------------- /lib/mix/helpers.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/lib/mix/helpers.ex -------------------------------------------------------------------------------- /lib/mix/tasks/spark.cheat_sheets.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/lib/mix/tasks/spark.cheat_sheets.ex -------------------------------------------------------------------------------- /lib/mix/tasks/spark.cheat_sheets_in_search.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/lib/mix/tasks/spark.cheat_sheets_in_search.ex -------------------------------------------------------------------------------- /lib/mix/tasks/spark.formatter.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/lib/mix/tasks/spark.formatter.ex -------------------------------------------------------------------------------- /lib/mix/tasks/spark.install.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/lib/mix/tasks/spark.install.ex -------------------------------------------------------------------------------- /lib/mix/tasks/spark.replace_doc_links.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/lib/mix/tasks/spark.replace_doc_links.ex -------------------------------------------------------------------------------- /lib/spark.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/lib/spark.ex -------------------------------------------------------------------------------- /lib/spark/cheat_sheet.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/lib/spark/cheat_sheet.ex -------------------------------------------------------------------------------- /lib/spark/code_helpers.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/lib/spark/code_helpers.ex -------------------------------------------------------------------------------- /lib/spark/docs.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/lib/spark/docs.ex -------------------------------------------------------------------------------- /lib/spark/dsl.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/lib/spark/dsl.ex -------------------------------------------------------------------------------- /lib/spark/dsl/builder.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/lib/spark/dsl/builder.ex -------------------------------------------------------------------------------- /lib/spark/dsl/entity.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/lib/spark/dsl/entity.ex -------------------------------------------------------------------------------- /lib/spark/dsl/entity/meta.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/lib/spark/dsl/entity/meta.ex -------------------------------------------------------------------------------- /lib/spark/dsl/extension.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/lib/spark/dsl/extension.ex -------------------------------------------------------------------------------- /lib/spark/dsl/extension/entity.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/lib/spark/dsl/extension/entity.ex -------------------------------------------------------------------------------- /lib/spark/dsl/extension/entity_option.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/lib/spark/dsl/extension/entity_option.ex -------------------------------------------------------------------------------- /lib/spark/dsl/extension/imports.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/lib/spark/dsl/extension/imports.ex -------------------------------------------------------------------------------- /lib/spark/dsl/extension/section_option.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/lib/spark/dsl/extension/section_option.ex -------------------------------------------------------------------------------- /lib/spark/dsl/fragment.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/lib/spark/dsl/fragment.ex -------------------------------------------------------------------------------- /lib/spark/dsl/patch/add_entity.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/lib/spark/dsl/patch/add_entity.ex -------------------------------------------------------------------------------- /lib/spark/dsl/section.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/lib/spark/dsl/section.ex -------------------------------------------------------------------------------- /lib/spark/dsl/transformer.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/lib/spark/dsl/transformer.ex -------------------------------------------------------------------------------- /lib/spark/dsl/verifier.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/lib/spark/dsl/verifier.ex -------------------------------------------------------------------------------- /lib/spark/dsl/verifiers/verify_entity_uniqueness.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/lib/spark/dsl/verifiers/verify_entity_uniqueness.ex -------------------------------------------------------------------------------- /lib/spark/elixir_sense/aliases.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/lib/spark/elixir_sense/aliases.ex -------------------------------------------------------------------------------- /lib/spark/elixir_sense/entity.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/lib/spark/elixir_sense/entity.ex -------------------------------------------------------------------------------- /lib/spark/elixir_sense/plugin.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/lib/spark/elixir_sense/plugin.ex -------------------------------------------------------------------------------- /lib/spark/error/dsl_error.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/lib/spark/error/dsl_error.ex -------------------------------------------------------------------------------- /lib/spark/formatter.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/lib/spark/formatter.ex -------------------------------------------------------------------------------- /lib/spark/igniter.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/lib/spark/igniter.ex -------------------------------------------------------------------------------- /lib/spark/info_generator.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/lib/spark/info_generator.ex -------------------------------------------------------------------------------- /lib/spark/options/docs.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/lib/spark/options/docs.ex -------------------------------------------------------------------------------- /lib/spark/options/helpers.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/lib/spark/options/helpers.ex -------------------------------------------------------------------------------- /lib/spark/options/options.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/lib/spark/options/options.ex -------------------------------------------------------------------------------- /lib/spark/options/validation_error.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/lib/spark/options/validation_error.ex -------------------------------------------------------------------------------- /lib/spark/options/validator.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/lib/spark/options/validator.ex -------------------------------------------------------------------------------- /lib/spark/options_helpers.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/lib/spark/options_helpers.ex -------------------------------------------------------------------------------- /lib/spark/regex.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/lib/spark/regex.ex -------------------------------------------------------------------------------- /lib/spark/warning.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/lib/spark/warning.ex -------------------------------------------------------------------------------- /logos/logo.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/logos/logo.svg -------------------------------------------------------------------------------- /mix.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/mix.exs -------------------------------------------------------------------------------- /mix.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/mix.lock -------------------------------------------------------------------------------- /mix.lock.license: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/mix.lock.license -------------------------------------------------------------------------------- /test/add_extension_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/test/add_extension_test.exs -------------------------------------------------------------------------------- /test/code_helpers_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/test/code_helpers_test.exs -------------------------------------------------------------------------------- /test/cross_extension_recursive_patch_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/test/cross_extension_recursive_patch_test.exs -------------------------------------------------------------------------------- /test/dsl_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/test/dsl_test.exs -------------------------------------------------------------------------------- /test/dsl_validation_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/test/dsl_validation_test.exs -------------------------------------------------------------------------------- /test/elixir_sense/plugin_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/test/elixir_sense/plugin_test.exs -------------------------------------------------------------------------------- /test/formatter_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/test/formatter_test.exs -------------------------------------------------------------------------------- /test/igniter_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/test/igniter_test.exs -------------------------------------------------------------------------------- /test/options/impl_validator_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/test/options/impl_validator_test.exs -------------------------------------------------------------------------------- /test/options/mixed_list_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/test/options/mixed_list_test.exs -------------------------------------------------------------------------------- /test/options/validator_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/test/options/validator_test.exs -------------------------------------------------------------------------------- /test/recursive_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/test/recursive_test.exs -------------------------------------------------------------------------------- /test/spark_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/test/spark_test.exs -------------------------------------------------------------------------------- /test/support/contact/contact.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/test/support/contact/contact.ex -------------------------------------------------------------------------------- /test/support/contact/contact_patcher.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/test/support/contact/contact_patcher.ex -------------------------------------------------------------------------------- /test/support/contact/contacter.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/test/support/contact/contacter.ex -------------------------------------------------------------------------------- /test/support/contact/fragment.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/test/support/contact/fragment.ex -------------------------------------------------------------------------------- /test/support/contact/info.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/test/support/contact/info.ex -------------------------------------------------------------------------------- /test/support/contact/ted_dansen.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/test/support/contact/ted_dansen.ex -------------------------------------------------------------------------------- /test/support/contact/verifiers/verify_not_gandalf.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/test/support/contact/verifiers/verify_not_gandalf.ex -------------------------------------------------------------------------------- /test/support/example_contacter.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/test/support/example_contacter.ex -------------------------------------------------------------------------------- /test/support/example_options.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/test/support/example_options.ex -------------------------------------------------------------------------------- /test/support/info/my_extension.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/test/support/info/my_extension.ex -------------------------------------------------------------------------------- /test/support/info/my_extension_info.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/test/support/info/my_extension_info.ex -------------------------------------------------------------------------------- /test/support/recursive/atom.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/test/support/recursive/atom.ex -------------------------------------------------------------------------------- /test/support/recursive/info.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/test/support/recursive/info.ex -------------------------------------------------------------------------------- /test/support/recursive/recursive.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/test/support/recursive/recursive.ex -------------------------------------------------------------------------------- /test/support/recursive/step.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/test/support/recursive/step.ex -------------------------------------------------------------------------------- /test/support/top_level/info.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/test/support/top_level/info.ex -------------------------------------------------------------------------------- /test/support/top_level/top_level.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/test/support/top_level/top_level.ex -------------------------------------------------------------------------------- /test/test_helper.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/test/test_helper.exs -------------------------------------------------------------------------------- /test/top_level_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/test/top_level_test.exs -------------------------------------------------------------------------------- /test/transformer_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/test/transformer_test.exs -------------------------------------------------------------------------------- /usage-rules.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ash-project/spark/HEAD/usage-rules.md --------------------------------------------------------------------------------