From 258f29c9b11d040bac85bd43be4ac858146d0bcf Mon Sep 17 00:00:00 2001 From: Sean Whitton Date: Wed, 13 May 2020 11:44:50 -0700 Subject: fix the indentation of line containing 'where' if needed Signed-off-by: Sean Whitton --- NEWS.md | 3 +++ haskell-tab-indent.el | 8 +++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/NEWS.md b/NEWS.md index d46fcd5..aeadaae 100644 --- a/NEWS.md +++ b/NEWS.md @@ -15,6 +15,9 @@ - Always indent the first line of the contents of a where clause to one plus the level of the line containing 'where'. + When doing so, fix the indentation of the line containing 'where' if + it's not correct. + - When one of the above cases does not apply, default to indenting to the same level of the previous line, unless the user explicitly invoked `indent-for-tab-command' (e.g. by hitting the tab key), in diff --git a/haskell-tab-indent.el b/haskell-tab-indent.el index 15686cb..9680749 100644 --- a/haskell-tab-indent.el +++ b/haskell-tab-indent.el @@ -92,7 +92,13 @@ (prev-line-decl prev-line-tabs) ;; if the previous line was the beginning of a where ;; clause, indent should be exactly one more - (prev-line-where (1+ prev-line-tabs)) + (prev-line-where + ;; also ensure indentation of the 'where' is + ;; correct + (save-excursion + (forward-line -1) + (haskell-tab-indent)) + (1+ prev-line-tabs)) ;; if the user explicitly requested an indent ;; change, cycle through the plausible indents ((eq this-command 'indent-for-tab-command) -- cgit v1.2.3