[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/idris-mode b39a08790e 13/18: Merge pull request #583 from
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/idris-mode b39a08790e 13/18: Merge pull request #583 from keram/update-pr-465 |
Date: |
Thu, 8 Dec 2022 05:59:08 -0500 (EST) |
branch: elpa/idris-mode
commit b39a08790e60db3be513d564924ec25063ed17b3
Merge: 4a36953e76 cab95f1fca
Author: Jan de Muijnck-Hughes <jfdm@users.noreply.github.com>
Commit: GitHub <noreply@github.com>
Merge pull request #583 from keram/update-pr-465
Restore position after case split
---
idris-commands.el | 54 ++++++++++++++++++++++++++++++++----------------------
inferior-idris.el | 1 +
2 files changed, 33 insertions(+), 22 deletions(-)
diff --git a/idris-commands.el b/idris-commands.el
index 54f3d1cc55..f69f2d00b6 100644
--- a/idris-commands.el
+++ b/idris-commands.el
@@ -90,24 +90,33 @@
(idris-run)
(idris-repl-buffer))
+(defvar idris-retry 0)
+
(defun idris-switch-working-directory (new-working-directory)
"Switch working directory to NEW-WORKING-DIRECTORY."
- (unless (string= idris-process-current-working-directory
new-working-directory)
- (idris-ensure-process-and-repl-buffer)
- (let* ((path (if (> idris-protocol-version 1)
- (prin1-to-string new-working-directory)
- new-working-directory))
- (eval-result (idris-eval `(:interpret ,(concat ":cd " path))))
- (result-msg (or (car-safe eval-result) "")))
- ;; Check if the message from Idris contains the new directory path.
- ;; Before check drop the last character (slash) in the path
- ;; as the message does not include it.
- (if (string-match-p (file-truename (substring new-working-directory 0
-1))
- result-msg)
- (progn
- (message result-msg)
- (setq idris-process-current-working-directory
new-working-directory))
- (error "Failed to switch the working directory %s" eval-result)))))
+ (if (= idris-protocol-version 0)
+ (progn
+ (message "-t- idris-switch-working-directory connection not yet
complete %s" idris-retry)
+ (sit-for 0.05)
+ (if (< 1 5)
+ (setq idris-retry (1+ idris-retry))
+ (idris-switch-working-directory new-working-directory)))
+ (setq idris-retry 0)
+ (unless (string= idris-process-current-working-directory
new-working-directory)
+ (let* ((path (if (> idris-protocol-version 1)
+ (prin1-to-string new-working-directory)
+ new-working-directory))
+ (eval-result (idris-eval `(:interpret ,(concat ":cd " path))))
+ (result-msg (or (car-safe eval-result) "")))
+ ;; Check if the message from Idris contains the new directory path.
+ ;; Before check drop the last character (slash) in the path
+ ;; as the message does not include it.
+ (if (string-match-p (file-truename (substring new-working-directory 0
-1))
+ result-msg)
+ (progn
+ (message result-msg)
+ (setq idris-process-current-working-directory
new-working-directory))
+ (error "Failed to switch the working directory %s" eval-result))))))
(defun idris-list-holes-on-load ()
"Use the user's settings from customize to determine whether to list the
holes."
@@ -570,19 +579,20 @@ Useful for writing papers or slides."
(defun idris-case-split ()
- "Case split the pattern variable at point"
+ "Case split the pattern variable at point."
(interactive)
(let ((what (idris-thing-at-point)))
(when (car what)
(save-excursion (idris-load-file-sync))
- (let ((result (car (idris-eval `(:case-split ,(cdr what) ,(car what))))))
+ (let ((result (car (idris-eval `(:case-split ,(cdr what) ,(car what)))))
+ (initial-position (point)))
(if (<= (length result) 2)
(message "Can't case split %s" (car what))
(delete-region (line-beginning-position) (line-end-position))
(if (> idris-protocol-version 1)
(insert (substring result 0 (length result)))
- (insert (substring result 0 (1- (length result))))
- ))))))
+ (insert (substring result 0 (1- (length result)))))
+ (goto-char initial-position))))))
(defun idris-make-cases-from-hole ()
"Make a case expression from the metavariable at point."
@@ -596,8 +606,8 @@ Useful for writing papers or slides."
(delete-region (line-beginning-position) (line-end-position))
(if (> idris-protocol-version 1)
(insert (substring result 0 (length result)))
- (insert (substring result 0 (1- (length result))))
- ))))))
+ (insert (substring result 0 (1- (length result)))))
+ (search-backward "_ of\n"))))))
(defun idris-case-dwim ()
"If point is on a hole name, make it into a case expression.
diff --git a/inferior-idris.el b/inferior-idris.el
index ba2ea128b5..6f077adde7 100644
--- a/inferior-idris.el
+++ b/inferior-idris.el
@@ -75,6 +75,7 @@
(defun idris-version-hook-function (event)
(pcase event
(`(:protocol-version ,version ,minor)
+ (message "-t- idris-version-hook-function 1")
(setf idris-protocol-version version)
(setf idris-protocol-version-minor minor)
(remove-hook 'idris-event-hooks 'idris-version-hook-function)
- [nongnu] elpa/idris-mode 51caa5f3a5 15/18: Merge pull request #585 from keram/emacs28-and-cache-v3, (continued)
- [nongnu] elpa/idris-mode 51caa5f3a5 15/18: Merge pull request #585 from keram/emacs28-and-cache-v3, ELPA Syncer, 2022/12/08
- [nongnu] elpa/idris-mode 43aead3c46 05/18: Make idris-compiler-notes-list-show more similar with idris-hole-list-show, ELPA Syncer, 2022/12/08
- [nongnu] elpa/idris-mode 68fe8e115f 06/18: Move idris-list-compiler-notes into idris-commands.el, ELPA Syncer, 2022/12/08
- [nongnu] elpa/idris-mode 80861674a6 08/18: Debug CI idris2 failure 2 - try retry to wait for idris version in idris-switch-working-directory, ELPA Syncer, 2022/12/08
- [nongnu] elpa/idris-mode 94a88cdb99 07/18: Restore position after case split, ELPA Syncer, 2022/12/08
- [nongnu] elpa/idris-mode 888bf9614f 04/18: Make notes buffer special and make the show function similar to holes one, ELPA Syncer, 2022/12/08
- [nongnu] elpa/idris-mode 063a63b770 17/18: Merge pull request #586 from idris-hackers/revert-583-update-pr-465, ELPA Syncer, 2022/12/08
- [nongnu] elpa/idris-mode 9a4a9641b9 10/18: [ new ] intro command - backport from idris2-mode, ELPA Syncer, 2022/12/08
- [nongnu] elpa/idris-mode 5b3c88dc1d 11/18: Add test for idris-refine, ELPA Syncer, 2022/12/08
- [nongnu] elpa/idris-mode a9d12c89e2 12/18: Add Emacs 28.2 to test matrix and, ELPA Syncer, 2022/12/08
- [nongnu] elpa/idris-mode b39a08790e 13/18: Merge pull request #583 from keram/update-pr-465,
ELPA Syncer <=
- [nongnu] elpa/idris-mode 744f773bb4 18/18: Merge pull request #578 from keram/backport-pr-21-intro, ELPA Syncer, 2022/12/08
- [nongnu] elpa/idris-mode cab95f1fca 09/18: wip test, ELPA Syncer, 2022/12/08
- [nongnu] elpa/idris-mode 9ebd0a7d26 16/18: Revert "Restore position after case split", ELPA Syncer, 2022/12/08