Skip to content

indentations in computation expressions not working #300

Open
@ruffianeo

Description

@ruffianeo

Description

Statements in computation expressions, which should indent the following lines, but do not, include (those I found so far):

  • for
  • then
  • else

They seem to work outside computation expressions.

Repro steps

  1. use emacs in fsharp-mode and type the following (and be amazed by the non-indenting!):
module issues

let indent_in_computation_expressions_not_working () =
    seq {
        for i = 0 to 10 do
        if i % 2 = 0
        then
        yield "even"
        else
        yield "odd"
        }
  1. in fsi (dotnet fsi): #load "issues.fs"

#load "issue.fs";;
[Loading /home/.../dev/fs/issue.fs]
/home/.../dev/fs/issue.fs(8,9): warning FS0058: Possible incorrect indentation: this token is offside of context started at position (6:9). Try indenting this token further or using standard formatting conventions.
/home/.../dev/fs/issue.fs(8,9): warning FS0058: Possible incorrect indentation: this token is offside of context
started at position (6:9). Try indenting this token further or using standard formatting conventions.

Expected behavior

The indenting should be right, but it is as shown above.

module issues

let indent_in_computation_expressions_not_working () =
    seq {
        for i = 0 to 10 do
            if i % 2 = 0
            then
                yield "even"
            else
                yield "odd"
        }

Actual behavior

module issues

let indent_in_computation_expressions_not_working () =
    seq {
        for i = 0 to 10 do
        if i % 2 = 0
        then
        yield "even"
        else
        yield "odd"
        }

Known workarounds

use C-c> to indent every line in such a block individually.

Related information

  • Operating system linux
  • Branch
  • Emacs version GNU Emacs 27.1 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.24, cairo version 1.16.0)
    of 2021-03-28, modified by Debian
  • .NET Runtime, CoreCLR or Mono Version dotnet --version
    5.0.202
  • Performance information, links to performance testing scripts

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions