Closed rainbyte closed 7 years ago
I'm hesitant to say that any Haskell editor or IDE has "best" possible support for anything, it's all pretty immature compared to languages like Java. That said, here's my take for HaskForce.
Code Completion - π - Performed via indexing the source and optionally with the help of ghc-mod Lint - π - Performed with the help of hlint Code Format - π - Performed with the help of stylish-haskell or HIndent, your choice Goto Def - π - Performed by indexing the source, Find Usages - π - Performed by indexing the source Stepwise Debugger - πΆ Doc. tooltips - πΆ - While there is support to view quick definitions via the doc tooltip, it doesn't actually display documentation, so I consider this feature unimplemented Snippets - π - IntelliJ has built in support for this Hoogle - πΆ
First, thanks for the hard work! I have included your suggestions in the table.
In the case of Snippets
, it has π level for now, matching the other plug-ins.
Maybe most of them should be updated to π level, I'm not sure.
Are you ok with this change?
Also, do you know about Error Reporting
and REPL Integration
support?
We could close this issue after filling those 2 items.
I hadn't made this clear, but I'm the owner and primary contributor to HaskForce, so feel free to reach out as this chart evolves.
Are you ok with this change?
The code levels are still a little nebulous to me, so I'd say it's up to you.
Also, do you know about Error Reporting and REPL Integration support?
Error Reporting - I believe that all Haskell IDEs and editors require some sort of external tool. HaskForce uses ghc-mod, so it's probably somewhere between π² and π
REPL Integration - πΆ - IntelliJ does provide terminal support, so you can start your own ghci session, but it doesn't provide any special enhancements. Not sure what the other editors provide here and whether you'd consider that π²-level support or not.
I thinks high support level indicates that feature is easy to enable (install included) and it works well. It does not matter if extra plug-ins are needed to make a feature work, if they are easy to install.
Error reporting - if HaskForce provides this (even if it is via external plug-in) and it works without problem, I would say :car: is ok. If feature is provided automatically, without any effort from the user, I would say it is :rocket:
REPL Integration - if Intellij only provides a terminal, the integration part is missing, so it would be :walking_man: level. Other editors (eg. emacs) provide some way to start ghci loading current buffer, and reload the repl when needed, this would be :bike: or :car: (it depends how well this works and if is easy to use). REPL autocompletion and syntax highlighting presence would mean at least :car: level (assuming they all work ok).
Yes, all of this is subjetive and it could change later. I'm sure levels would be updated or refined when new items appear for a certain feature (eg. maybe repl autocompletion was not important before, but today users want it) or if some feature stop working (sometimes I have perceived problems with some editor, which were not there before)
I have updated the table with those two items. If is it ok, we can close this issue.
Feel free to make more suggestions for the table opening new issues :)
It seems that this is fixed.
Items to fill:
πΆπ²ππ