Pretty new to elixir, coming here from Elm. How do you guys integrate Dyalizer into your workflow?Using it on the command line? In your text editor / IDE?
I’m using Atom myself, there are no plugins that integrate Dyalizer though one says it does, but doesn’t work for me: https://atom.io/packages/build-elixir
I do not rely on any editor feature in my work flow. I do appreciate some annotations, but the ultimate source of truth for me is the actual output of the mix runs on the terminal.
As such I simply use dialyxir from the CLI, often aliased to run alltogether with credo and InchEx.
Also I do use git-hooks to avoid commiting code that is faulty in the eyes of any of the tools mentioned above.
I respect a KISS solution like that, less cruft, dependencies and more reliable. I’ve used such a setup myself quite a bit.
The reason I wanted a more involved setup is simply workflow.
Type Code -> Get Snippet Completion -> Tab through, fill out snippet -> Compile -> Jump to error -> Fix -> Compile -> Dyalizer Analyze -> Open docs in editor pane (informative and non intrusive) -> Run Tests -> etc.
All of this quickly without leaving the keyboard. Without an involved editor, I would have to switch between the terminal(and it’s commands), browser(and possibly tabs) and the editor.
I’ve got all that in Atom without much hassle. Also got it in Spacemacs with Alchemist, but trying Atom right now because of the better information presentation.
Just wondering, doesn’t it bother you when you can’t just trigger stuff like the above with a keybinding to keep the flow going?
Since I am already using emacs most of the time, there is no difference between terminal, editor or browser.
It is my understanding that the dialyzer static analysis process can quickly become rather time consuming even for moderately sized projects - so I wouldn’t imagine that making it a pre-requisite to running unit tests is a good idea anyway. In essence you should plan on running dialyzer when all test are green and you need some slack time.
Oh I know that. I didn’t mean this as a pipeline or processes I always run, but rather just some random sequence of steps I might possibly take. Each step triggered by a keybinding when necessary.
I would just hit a keybinding to run Dialyzer when I want it to run. (making use of the time between thinking and writing for example)