Skip to content

Improve Gleam syntax highlighting #4

@JosephTLyons

Description

@JosephTLyons

This issue was moved from the zed repository, originally filed by @ghivert:

Hi! I'm not sure where to talk about the subject, so I prefer open an issue. 🙂

Those days, I was trying to see if we can improve the syntax highlighting for Gleam.
Currently, in the syntax highlighting, we got all functions calls highlighted as records access when they're done in a fully qualified way.

import my_package
pub fn main() {
  my_package.function() // <-- On Zed, this is highlighted as record property, and not function.
}

What do you think to modify the Gleam syntax highlighting (i.e. highlights.scm) to highlight every functions used from records with proper functions highlighting? I tried to implement it here to figure out how it can be. (I'm absolutely not sure it's correctly implemented, I mainly wanted to prove myself it was possible.) I also joined two screenshots on how it feels directly in the editor.

I know tree sitter can not know if the field is a function or not (because we can have a constant, so calling it will result in an error), but the LSP could take care of this, and — in my opinion — having a proper function highlighting for fields called as functions will improve readability.

Function syntax highlighted

Capture d’écran 2024-08-26 à 15 29 38

Record syntax highlighted

Capture d’écran 2024-08-26 à 15 29 46

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions