* Use `cat` instead of `read -r` to stream stdin to file
* Cleanup dmd-wrapper
* Fix typo
* Make wrapper work on macOS
* Use fifo instead of temporary file
* Fix stdin-wrapper
* Use `awk` instead of `read` hackery
* Finish refactoring
* Fix `exec` issue
* Add myself as an coauthor of wrapper scripts (no shame at all :P)
* Fix dmd-wrapper
* Extract check_dubfile
This PR first and formost implements support for dot-seperate filetypes,
a very trivial change.
This closes#132
But more importantly, this PR vastly improves the test quality for
`ale#linter#Get`. It enables us to reset the state of ale's internal
linter cache, to facilitate better testing, as well as making use of
mocked linters instead of depending on linters on disk (which may
change). In addition, a dummy linter is defined to test the autoloading
behavior.
Header guards were removed from all linters as:
* A: ale won't try and load linters if they already exist in memory
* B: we can't reset state for testing if they can't be loaded again
* Add Credo linter for Elixir
* Add requested changes
TODO: check if all message types are covered in `if` chain.
* Add information about Credo linter to README
* Add information about Credo linter to doc
The statusbar now keeps its state in a separate variable, in order to
avoid excess iterations. The engine now updates said variable on run,
and a new function is made available for external statusbars to call (to
avoid dependencies on internal implementation details of ale).
To keep things light, the status bar code is not loaded unless invoked
by the user or an external plugin. On the first load it will update
itself from the global loclist, after that, the engine will handle all
updates.
The external integration function, `ale#statusline#Count()`, will return
a tuple in the format [E, W] (where E is errors, W is warnings), unless
no data exists (ie, the plugin doesn't have a linter for a file or has
not run yet), in which case it returns 0/false.