rainbyte / haskell-ide-chart

Haskell state of editor/IDE support
https://rainbyte.github.io/haskell-ide-chart/
Creative Commons Attribution Share Alike 4.0 International
249 stars 12 forks source link

Investigate intellij + haskforce support levels #3

Closed rainbyte closed 7 years ago

rainbyte commented 7 years ago

Items to fill:

πŸšΆπŸš²πŸš—πŸš€

carymrobbins commented 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 - 🚢

rainbyte commented 7 years ago

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.

carymrobbins commented 7 years ago

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.

rainbyte commented 7 years ago

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)

rainbyte commented 7 years ago

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 :)

rainbyte commented 7 years ago

It seems that this is fixed.