Function: haskell-indentation-separated
haskell-indentation-separated is a natively compiled function defined
in haskell-indentation.el.
Signature
(haskell-indentation-separated PARSER SEPARATOR &optional STMT-SEPARATOR)
Documentation
Evaluate PARSER separated by SEPARATOR and STMT-SEPARATOR.
If STMT-SEPARATOR is not NIL, it will be used to set a new starter-indent.
For example:
[ i | i <- [1..10]
,
Source Code
;; Defined in /nix/store/9lz2mhw95f9fqxr9mnq46k3f6qz3aq83-emacs-packages-deps/share/emacs/site-lisp/elpa/haskell-mode-20260904.1042/haskell-indentation.el
(defun haskell-indentation-separated (parser separator &optional stmt-separator)
"Evaluate PARSER separated by SEPARATOR and STMT-SEPARATOR.
If STMT-SEPARATOR is not NIL, it will be used to set a new starter-indent.
For example:
[ i | i <- [1..10]
,"
(catch 'return
(unless (listp separator)
(setq separator (list separator)))
(unless (listp stmt-separator)
(setq stmt-separator (list stmt-separator)))
(while t
(funcall parser)
(cond ((member current-token separator)
(haskell-indentation-at-separator))
((member current-token stmt-separator)
(setq starter-indent (current-column))
(haskell-indentation-at-separator))
((eq current-token 'end-tokens)
(when (or (member following-token separator)
(member following-token stmt-separator))
;; Set an indentation before a separator, for example:
;; [ 1 or [ 1 | a
;; , 2 , 20
(haskell-indentation-add-indentation starter-indent)
(when (< left-indent starter-indent)
(haskell-indentation-add-indentation left-indent))
(throw 'parse-end nil))
(when (equal following-token 'no-following-token)
;; Set an indentation before a separator, for example:
;; [ 1 or [ 1 | a
;; , 2 , 20
(haskell-indentation-add-indentation starter-indent)
(haskell-indentation-add-indentation left-indent))
(throw 'return nil))
(t (throw 'return nil))))))