Case splitting works in Emacs!
This commit is contained in:
parent
40cd5b7deb
commit
3ef1979f67
@ -257,7 +257,7 @@ sig opt file lineNo colNo = ghandle handler body
|
|||||||
modSum <- Gap.fileModSummary file
|
modSum <- Gap.fileModSummary file
|
||||||
sigTy <- getSignature modSum lineNo colNo
|
sigTy <- getSignature modSum lineNo colNo
|
||||||
case sigTy of
|
case sigTy of
|
||||||
Nothing -> return ""
|
Nothing -> return $ convert opt ([] :: [String])
|
||||||
Just (Signature loc names ty) -> do
|
Just (Signature loc names ty) -> do
|
||||||
return $ convert opt $ ( "function"
|
return $ convert opt $ ( "function"
|
||||||
, fourInts loc
|
, fourInts loc
|
||||||
|
@ -23,14 +23,17 @@
|
|||||||
(let ((info (ghc-obtain-case-split)))
|
(let ((info (ghc-obtain-case-split)))
|
||||||
(if (null info)
|
(if (null info)
|
||||||
(message "Cannot split in cases")
|
(message "Cannot split in cases")
|
||||||
(let ((varinfo (car info))
|
(let* ((current-line (line-number-at-pos))
|
||||||
(declinfo (cadr info))
|
(begin-line (ghc-sinfo-get-beg-line info))
|
||||||
(cases (caddr info)))
|
(begin-line-diff (+ 1 (- begin-line current-line)))
|
||||||
(message cases)
|
(begin-line-pos (line-beginning-position begin-line-diff))
|
||||||
)
|
(begin-pos (- (+ begin-line-pos (ghc-sinfo-get-beg-column info)) 1))
|
||||||
)
|
(end-line (ghc-sinfo-get-end-line info))
|
||||||
)
|
(end-line-diff (+ 1 (- end-line current-line)))
|
||||||
)
|
(end-line-pos (line-beginning-position end-line-diff))
|
||||||
|
(end-pos (- (+ end-line-pos (ghc-sinfo-get-end-column info)) 1)) )
|
||||||
|
(delete-region begin-pos end-pos)
|
||||||
|
(insert (ghc-sinfo-get-info info)) ) )))
|
||||||
|
|
||||||
(defun ghc-obtain-case-split ()
|
(defun ghc-obtain-case-split ()
|
||||||
(let* ((ln (int-to-string (line-number-at-pos)))
|
(let* ((ln (int-to-string (line-number-at-pos)))
|
||||||
|
Loading…
Reference in New Issue
Block a user