atom-language-idris
atom-language-idris copied to clipboard
Possible packages to look at integrating with
Jono Bacon of GitHub wrote a blog post about Atom and mentioned several packages he liked about it, on is Linter. I do not have time to look at it properly, but thought it might be something to note. That is, is it possible to integrate with Linter and provided better error messages.
Other packages in the post and comments might be of interest....
Let me know if there is anything I can help with in terms of feedback. :-)
Linter also has quite a nice UI and is consistent across lots of languages-- definitely good. You might check out the Atom packages ide-haskell and language-haskell for ideas on how to use it.
Hey all
this would be a great addition. I don't have enough time at the moment to do it though :( Can I get back to you when I have the time?
Pullrequests welcome too :)
I have been giving this a stab, and I guess I can complete something in a branch which someone else could polish or give me assistance. There would be several options available - the easiest is to get rid of the type check command and type check everytime the user saves the file. This would automatically trigger the linter, which calls the type checker and displays error messages. Another question which would remain, is whether we would still need the window at the bottom with the type checker results.
I included a mock screenshot, which is result of being called from the linter and displaying an error message in the style of linter without actually calling the typechecker. A git repo with the current results is here: https://github.com/justjoheinz/atom-language-idris/tree/feature/issue88

@archaeron I have a working copy (as in works for me) in the branch which I listed above. I did not test it yet with larger projects, but it seems to work fine. Eventually it is necessary to give the atom linter package in the settings more pixels to be able to view expanded messages. There is also a code smell where I do not know how to work around, that is in language-idris.coffee I set the linter object of the controller. It works, but does not seem to be the atom-way of doing things:
consumeLinter: (indieRegistry) ->
@idrisLinter = indieRegistry.register({ name: 'Idris'})
@subscriptions.add(@idrisLinter)
@controller.linter = @idrisLinter
If you could advise on this one, I am happy to put together a PR.