gleam-lang/gleam

LSP doesn't show auto complete on case statement

Open

#5404 opened on Feb 28, 2026

View on GitHub
 (19 comments) (3 reactions) (0 assignees)Rust (21,417 stars) (960 forks)batch import
help wanted

Description

How to reproduce:

type Foo {
  Foo(bar: List(String))
}

pub fn main() -> Nil {
  let foo_list = [Foo(bar: ["hello"])]
  
  case list.first(foo_list) {
    Ok(foo) -> foo. // auto complete doesn't show
    Error(_) -> io.println("world")
  }
}

When enclosing the statement within a block, the auto complete showed up.

type Foo {
  Foo(bar: List(String))
}

pub fn main() -> Nil {
  let foo_list = [Foo(bar: ["hello"])]
  
  case list.first(foo_list) {
    Ok(foo) -> {foo.} // auto complete showed up
    Error(_) -> io.println("world")
  }
}

But if you type one letter, the auto complete showed up even without block.

type Foo {
  Foo(bar: List(String))
}

pub fn main() -> Nil {
  let foo_list = [Foo(bar: ["hello"])]
  
  case list.first(foo_list) {
    Ok(foo) -> foo.b // auto complete showed up
    Error(_) -> io.println("world")
  }
}

Gleam version: v1.14

Contributor guide