emacs-fsharp-mode icon indicating copy to clipboard operation
emacs-fsharp-mode copied to clipboard

indentations in computation expressions not working

Open ruffianeo opened this issue 3 years ago • 0 comments

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

ruffianeo avatar May 12 '22 16:05 ruffianeo