ash/priv/documentation/topics/development-utilities.md

56 lines
1.3 KiB
Markdown
Raw Normal View History

2022-07-06 06:19:06 +12:00
# Development Utilities
## ElixirSense Plugin
The Ash ElixirSense plugin offers custom auto complete inside of any Ash DSL module (i.e resource/api/flow/registry)
With the release of ElixirLS 0.10.0, there is only one requirement to make this work for your project, which is to add `elixir_sense`
as a dev dependency. We're exploring ways to remove this requirement in the future so that it works with entirely automatically.
`{:elixir_sense, github: "elixir-lsp/elixir_sense", only: [:dev, :test]}`
## Formatter plugin
2022-07-06 06:19:06 +12:00
The underlying DSL tooling `Spark` has a formatter plugin that can help you keep your resources consistent and neat.
2022-07-06 06:19:06 +12:00
### Adding the plugin
2022-07-06 06:19:06 +12:00
Add the following to your `.formatter.exs`
```elixir
[
plugins: [Spark.Formatter], # <- add the plugin here
2022-07-06 06:19:06 +12:00
inputs: ...
]
```
### Configuration
```elixir
config :spark, :formatter,
[
"Ash.Resource": [
section_order: [
:resource,
:identities,
:attributes,
:relationships,
...
]
],
# If you use a different module than Ash.Resource
"MyApp.Resource": [
type: Ash.Resource,
# What extensions might be added by your base module
extensions: [...],
section_order: [
:resource,
:identities,
:attributes,
:relationships,
...
]
]
2022-07-06 06:19:06 +12:00
]
```