SLY: Add sly-narrow-to-prompt.
parent
0ee966dcb0
commit
38a8b40df2
|
@ -0,0 +1,41 @@
|
||||||
|
;; Requires `ambrevar/sly-end-of-prompt-p'.
|
||||||
|
|
||||||
|
(defun ambrevar/sly-prompt-begin-position ()
|
||||||
|
(cond
|
||||||
|
((and (get-text-property (point) 'sly-mrepl--prompt)
|
||||||
|
(not (get-text-property (1- (point)) 'sly-mrepl--prompt)))
|
||||||
|
(point))
|
||||||
|
((or (get-text-property (point) 'sly-mrepl--prompt)
|
||||||
|
(ambrevar/sly-end-of-prompt-p))
|
||||||
|
(previous-single-char-property-change
|
||||||
|
(point) 'sly-mrepl--prompt))
|
||||||
|
(t (previous-single-char-property-change
|
||||||
|
(previous-single-char-property-change
|
||||||
|
(point) 'sly-mrepl--prompt)
|
||||||
|
'sly-mrepl--prompt))))
|
||||||
|
|
||||||
|
(defun ambrevar/sly-prompt-end-position ()
|
||||||
|
(save-excursion
|
||||||
|
(goto-char (ambrevar/sly-prompt-begin-position))
|
||||||
|
(call-interactively #'sly-mrepl-next-prompt)
|
||||||
|
(point)))
|
||||||
|
|
||||||
|
(defun ambrevar/sly-output-end-position ()
|
||||||
|
(if (get-text-property (point) 'sly-mrepl--prompt)
|
||||||
|
(next-single-char-property-change
|
||||||
|
(next-single-char-property-change
|
||||||
|
(point) 'sly-mrepl--prompt)
|
||||||
|
'sly-mrepl--prompt)
|
||||||
|
(next-single-char-property-change
|
||||||
|
(point) 'sly-mrepl--prompt)))
|
||||||
|
|
||||||
|
(defun ambrevar/sly-narrow-to-prompt ()
|
||||||
|
"Narrow buffer to prompt at point."
|
||||||
|
(interactive)
|
||||||
|
(narrow-to-region
|
||||||
|
(ambrevar/sly-prompt-begin-position)
|
||||||
|
(ambrevar/sly-output-end-position)))
|
||||||
|
|
||||||
|
(define-key sly-mrepl-mode-map (kbd "C-x n d") 'ambrevar/sly-narrow-to-prompt)
|
||||||
|
|
||||||
|
(provive 'init-sly-narrow)
|
|
@ -316,4 +316,6 @@ returns a string."
|
||||||
(advice-add 'sly-mrepl-next-prompt :override #'ambrevar/sly-mrepl-next-prompt)
|
(advice-add 'sly-mrepl-next-prompt :override #'ambrevar/sly-mrepl-next-prompt)
|
||||||
(advice-add 'sly-mrepl-previous-prompt :override #'ambrevar/sly-mrepl-previous-prompt)
|
(advice-add 'sly-mrepl-previous-prompt :override #'ambrevar/sly-mrepl-previous-prompt)
|
||||||
|
|
||||||
|
(require 'init-sly-narrow)
|
||||||
|
|
||||||
(provide 'init-sly)
|
(provide 'init-sly)
|
||||||
|
|
Loading…
Reference in New Issue