From 758e4771cdc20dff7c39a90bd99d52887e5d966b Mon Sep 17 00:00:00 2001 From: edam Date: Mon, 29 Apr 2019 14:53:32 +0100 Subject: [PATCH 1/3] set :end correctly when no next sexp in sp-get-hybrid-sexp --- smartparens.el | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/smartparens.el b/smartparens.el index a08c20a9..bab00dd4 100644 --- a/smartparens.el +++ b/smartparens.el @@ -5084,8 +5084,12 @@ See `sp-get-hybrid-sexp' for definition." (le (line-end-position)) (cur (--if-let (save-excursion (sp-forward-sexp)) it (list :beg (1+ (point-max))))) ;hack last) - (if (> (sp-get cur :beg) le) - (if (sp-point-in-blank-line) le (skip-prefix-backward le)) + (if (sp-get cur (or (< :beg p) (> :beg le))) + ;; if next sexp began after line end or there wasn't one (in which + ;; case we got parent sexp, which began before point) then return + ;; up to line end (or end of parent sexp, if it is before line end) + (if (sp-point-in-blank-line) le + (skip-prefix-backward (min le (1- (sp-get cur :end))))) (while (sp-get cur (and cur (< :beg le) From 6f53803d84cf9f721950ba6650bb58b2224912e6 Mon Sep 17 00:00:00 2001 From: edam Date: Wed, 1 May 2019 12:14:36 +0100 Subject: [PATCH 2/3] correctly determine the point inside close paren in last commit! --- smartparens.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/smartparens.el b/smartparens.el index bab00dd4..a1d97991 100644 --- a/smartparens.el +++ b/smartparens.el @@ -5089,7 +5089,7 @@ See `sp-get-hybrid-sexp' for definition." ;; case we got parent sexp, which began before point) then return ;; up to line end (or end of parent sexp, if it is before line end) (if (sp-point-in-blank-line) le - (skip-prefix-backward (min le (1- (sp-get cur :end))))) + (skip-prefix-backward (min le (sp-get cur :end-in)))) (while (sp-get cur (and cur (< :beg le) From 9885b8df27ef7ede927f6080c2730924758acd9d Mon Sep 17 00:00:00 2001 From: edam Date: Fri, 15 Jul 2022 14:07:49 +0100 Subject: [PATCH 3/3] fixed 9yo "hack" sexp so later (sp-get cur :end) and :end-in work! --- smartparens.el | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/smartparens.el b/smartparens.el index a1d97991..4e20ccc0 100644 --- a/smartparens.el +++ b/smartparens.el @@ -5082,7 +5082,8 @@ See `sp-get-hybrid-sexp' for definition." (point))))) (let ((p (progn (when (sp-point-in-symbol) (sp-backward-sexp)) (point))) (le (line-end-position)) - (cur (--if-let (save-excursion (sp-forward-sexp)) it (list :beg (1+ (point-max))))) ;hack + (cur (--if-let (save-excursion (sp-forward-sexp)) it + (list :beg (1+ (point-max)) :end (1+ (point-max))))) ;hack last) (if (sp-get cur (or (< :beg p) (> :beg le))) ;; if next sexp began after line end or there wasn't one (in which