Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

matching with record syntax in let and case expressions breaks indentation #12

Open
gomain opened this issue Jun 27, 2021 · 5 comments
Open

Comments

@gomain
Copy link

gomain commented Jun 27, 2021

In let and case expressions

test1 a
  = let { x } = a
    in x -- parse error from here

test2 a
  = let { x: y } = a
    in y -- parse error from here

test3 a
  = case a of
    { x }
      -> x -- parse error from here

test4 a 
  = case a of
    { x: y }
      -> y -- parse error from here

In function argument it works fine

test { x }
  = x -- this works
@purefunctor
Copy link

I investigated this today and figured this seems to be leftover from haskell-mode's layouts code. I've only tested this patch minimally but it eliminates said parse errors.

diff --git a/purescript-indentation.el b/purescript-indentation.el
index 1040964..257c19e 100644
--- a/purescript-indentation.el
+++ b/purescript-indentation.el
@@ -765,9 +765,7 @@ autofill-mode."
            (throw 'parse-end nil)))))
 
 (defun purescript-indentation-layout (parser)
-  (if (string= current-token "{")
-      (purescript-indentation-list parser "}" ";" nil)
-    (purescript-indentation-implicit-layout-list parser)))
+  (purescript-indentation-implicit-layout-list parser))
 
 (defun purescript-indentation-expression-token (token)
   (member token '("if" "let" "do" "case" "\\" "(" "[" "{" "::"

@umanwizard
Copy link

The patch above fixes the issue for me.

@kritzcreek , any chance of this getting landed in the repo?

@kritzcreek
Copy link
Contributor

kritzcreek commented Mar 9, 2023

Sure I can merge, I just can't test it on my own at the moment, I'll rely on your judgement then ;)

@kritzcreek
Copy link
Contributor

Actually looks like the PR I merged fixes a separate syntax issue with indentation. If you can open a PR for the patch above I'm happy to merge that as well.

@Hi-Angel
Copy link
Contributor

Hi-Angel commented Oct 2, 2024

Though not fixed, but should be much better with this PR #21

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants