[Haskell-cafe] What features should an (fictitious) IDE for Haskell have?

YueCompl compl.yue at icloud.com
Mon Dec 7 13:45:19 UTC 2020


Speak of this detection by hlint, I can not figure out how I'm supposed to improve it for identical or nearly identical where clauses, e.g.

```log
Reduce duplication
Found:
	!eac = el'context eas
	diags = el'ctx'diags eac
	returnAsExpr = el'Exit eas exit $ EL'Expr xsrc

Why not:
  Combine with /xxx/Analyze.hs:741:7-27
hlint(Reduce duplication)
```

While yes, that's verbatim copy as of a where clause, but how to *combine* them?

```hs
    where
      !eac = el'context eas
      diags = el'ctx'diags eac
      returnAsExpr = el'Exit eas exit $ EL'Expr xsrc
```

Regards,
Compl


> On 2020-12-07, at 21:32, Doug Burke <dburke.gw at gmail.com> wrote:
> 
> 
> hlint does this to some extent (at least I have some copy-pasted code it keeps on pleading me to remove duplication).
> 
> Doug
> 
> On Mon, Dec 7, 2020 at 8:24 AM Johannes Waldmann <johannes.waldmann at htwk-leipzig.de <mailto:johannes.waldmann at htwk-leipzig.de>> wrote:
> >  very cool feature would be if I could select a program phrase
> > and let it find /similar/ phrases, where a similarity metric
> > could be edit-distance with respect to language tokens ...
> 
> I often wanted a tool that finds (nearly) duplicate AST sub-trees
> in a large code base, and suggests refactorings.
> 
> Of course, in an IDE, it could alert me on-the-fly
> that I'm typing some code that's already present elsewhere.
> 
> How might one go about implementing this?
> Actual (approximate) sub-tree matching seems the easy part;
> but I have no clear idea about whether this
> should just use syntax, or needs types as well (my guess is: yes)
> what libraries are there to provide the (annotated) ASTs, etc.
> 
> - J.W.
> _______________________________________________
> Haskell-Cafe mailing list
> To (un)subscribe, modify options or view archives go to:
> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe <http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe>
> Only members subscribed via the mailman list are allowed to post.
> _______________________________________________
> Haskell-Cafe mailing list
> To (un)subscribe, modify options or view archives go to:
> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
> Only members subscribed via the mailman list are allowed to post.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/haskell-cafe/attachments/20201207/28d31a9f/attachment.html>


More information about the Haskell-Cafe mailing list