Skip to content

GSOC 2022 PROJECT

Improve HLS Support for Record-Dot-Syntax

Contributor
Colten
Mentors
Michael Peyton Jones, Dom Mills
Organization
Haskell.orgProgramming languages
Program
GSoC 2022Completed

About this project

Description from the program archive

For GHC 9.2.x to achieve more widespread adoption, tooling will need to support its best features. For years users have been frustrated by Haskell's conspicuous lack of support for namespacing features common in other languages. Haskell provides a limited form of namespacing with qualified imports, but using it to namespace field selectors tends to require hacky file structures. Fortunately, Haskell now provides `DuplicateRecordFields`, and GHC 9.2 introduced the `OverloadedRecordDot` language extension. These together provide a cleaner and more ergonomic interface for working with record types, a step towards better namespace support in Haskell.

HLS already supports record dot-syntax to a small extent. For example, in the line `y = x.a`, type information is available when hovering over `y` or `x`. To unlock the full potential of this syntax though, HLS users should be able to "dot into" the record to see its fields, enabling IDE-driven API exploration. Additionally, type information for the `.a` part should be available to the user on hover. These are the main features I propose to add to HLS for this project.

Tags

From the people who did it

No proposal or progress posts shared yet

Worked on this project? Share the proposal that got you selected and the posts you wrote.

Claim this project
  1. Operating Chrome with Haskell

    Arsalan CheemaMentored by Jasper Van der Jeugt, Albert Krewinkel

  2. Hackage - Package Rank

    KubanekOMentored by Gershom

  3. [Haskell.org] Support more LSP features in Haskell Language Server

    Aarush Bhat (sloorush)Mentored by Michael Peyton Jones

  4. Modularizing GHC

    Dominik PetelerMentored by Ericson2314

  5. reimplement `cabal check`

    Francesco AriisMentored by Jasper Van der Jeugt, Andreas Abel

  6. Implementing a GPU Backend for Advanced Machine Learning Algorithms

    Zarak MahmudMentored by Sacha Sokoloski, Junji Hashimoto

  7. Formalising Konnakol using Haskell

    Aravind MohandasMentored by Alex McLean

  8. New Hackage Features

    Alias QliMentored by Gershom

Data: Google Summer of Code public archive. This project in the official archive