Comments (10)
More info - debug on quit log
Debugger entered--Lisp error: (quit)
syntax-ppss(22578)
byte-code("\212\302\303�!8\206}��dW\203���fz\304>\203���f\305=?\206}�\306�!@\211�\205|�\307\310\311\312" "\313U\204>�\302\303�\314!8\206|�\307\310\311\315" "\313U\204S�\302\303�T!8\206|�\307\310\311\316" "\313U\204h�\302\303�S!8\206|�\307\310\311\317" "\313U?\205|�\302\303�\314Z!8))\207" [p s 4 syntax-ppss (60 62) 10 syntax-after logand lsh 1 16 0 2 17 18 19] 5)
sp-point-in-comment()
sp-get-comment-bounds()
evil-cp-delete-or-splice-region(22558 22754)
evil-cp-delete-char-or-splice(22558 22754 line nil)
call-interactively(evil-cp-delete-char-or-splice nil nil)
command-execute(evil-cp-delete-char-or-splice)
from evil-cleverparens.
Maybe @Fuco1 has a better idea here since the hang originates from smartparens code.
Another trace, 100% reproducible.
Debugger entered--Lisp error: (quit)
#[0 "\302\242\203=�\300\242\302\242Z
\306HA
\306H@T\245\307_W\203=�
\310H\211�@t\240\266�
\310H\211�A\300\242\302\242Z\241\266�\311\302\242\300\242\312\211\301%\207\302\242\204\214�\301\203\214�\304\313\301!\206P�\307\3018\240\203\214�\304\242\300\242X\203\214�\300\242\304\242Z��W\203\214�
\314H\211�@t\240\266�
\314H\211�A\300\242\304\242Z\241\266�\303\311\304\242\300\242"\240\210\202E�\312��ee\312�\203\254�\300\242�\211@@\262�W\203\254��\262��A\262�\202\222��\203\301��\211@@\262�\262�\303�\211@A\262�\240\210��\204\322���\204\322�\315\316\317\320\211$\210\302\242\203\336�\302\242�W\203\350��\262�\303\242\262�\202��
\321H\211�@t\240\266�
\321H\211�A\300\242\302\242Z\241\266�\302\242\262�\301\262���\204 �\322\323!\203 ���\203 �\324\325!\210������\203a�\300\242b\210�� \210�V\203a�
\300\242W\203a�\326\327\"\330>\204a� \306H\211�@T\240\266� \306H\211�A\300\242
Z\241\266�\262�\312\262�\300\242�Z��W\203\222� \307H\211�@T\240\266� \307H\211�A\300\242�Z\\241\266�\303\311�\300\242\312\211��%\240\210\202C� \331H\211�@T\240\266� \331H\211�A\300\242��Z\\241\266�\300\242�Z��\307_V\203\350�\303\311�\211\300\242\\307\245\211\262�\312\211\303\242%\240\210�\303\242B�\203\336��\211��AB\241\266�\202\344�\211��B��\210\202\253�\303\311�\300\242\312\211\303\242%\240\210\300\242\303\242B�\203���\211@@\262�\300\242Z��V\203���\211��AB\241\266�\202B���\240\210\202B���\2034���\211@@\262�\300\242Z��V\203=�\211��B��\202B����\240\210\210\266�\300\242\303\242B��\303\242\207" [(20840) (2 19507 19562 nil nil nil 0 nil nil (17220 19507)) (19585) (nil) (1) syntax-ppss-stats 5 2 0 parse-partial-sexp nil syntax-ppss-toplevel-pos 1 add-hook before-change-functions syntax-ppss-flush-cache t 4 boundp font-lock-beginning-of-syntax-function make-local-variable syntax-begin-function get-text-property face (font-lock-string-face font-lock-doc-face font-lock-comment-face) 3 syntax-ppss-max-span syntax-ppss-cache syntax-ppss-last] 12 "\n\n(fn)"]() funcall(#[0 "\302\242\203=�\300\242\302\242Z \306HA \306H@T\245\307_W\203=� \310H\211�@T\240\266� \310H\211�A\300\242\302\242Z\\241\266�\311\302\242\300\242\312\211\301%\207\302\242\204\214�\301\203\214�\304\313\301!\206P�\307\3018\240\203\214�\304\242\300\242X\203\214�\300\242\304\242Z��W\203\214� \314H\211�@T\240\266� \314H\211�A\300\242\304\242Z\\241\266�\303\311\304\242\300\242\"\240\210\202E�\312��ee\312�\203\254�\300\242�\211@@\262�W\203\254��\262��A\262�\202\222��\203\301��\211@@\262�\262�\303�\211@A\262�\240\210��\204\322���\204\322�\315\316\317\320\211$\210\302\242\203\336�\302\242�W\203\350��\262�\303\242\262�\202�� \321H\211�@T\240\266� \321H\211�A\300\242\302\242Z\\241\266�\302\242\262�\301\262���\204 �\322\323!\203 ���\203 �\324\325!\210������\203a�\300\242b\210�� \210
�V\203a�\300\242W\203a�\326
\327"\330>\204a�
\306H\211�@t\240\266�
\306H\211�A\300\242Z\\241\266�
\262�\312\262�\300\242�Z��W\203\222�
\307H\211�@t\240\266�
\307H\211�A\300\242�Z\241\266�\303\311�\300\242\312\211��%\240\210\202C�
\331H\211�@t\240\266�
\331H\211�A\300\242��Z\241\266�\300\242�Z��\307_V\203\350�\303\311�\211\300\242\307\245\211\262�\312\211\303\242%\240\210�\303\242B�\203\336��\211��AB\241\266�\202\344�\211��B��\210\202\253�\303\311�\300\242\312\211\303\242%\240\210\300\242\303\242B�\203���\211@@\262�\300\242Z��V\203���\211��AB\241\266�\202B���\240\210\202B���\2034���\211@@\262�\300\242Z��V\203=�\211��B��\202B����\240\210\210\266�\300\242\303\242B��\303\242\207" [(20840) (2 19507 19562 nil nil nil 0 nil nil (17220 19507)) (19585) (nil) (1) syntax-ppss-stats 5 2 0 parse-partial-sexp nil syntax-ppss-toplevel-pos 1 add-hook before-change-functions syntax-ppss-flush-cache t 4 boundp font-lock-beginning-of-syntax-function make-local-variable syntax-begin-function get-text-property face (font-lock-string-face font-lock-doc-face font-lock-comment-face) 3 syntax-ppss-max-span syntax-ppss-cache syntax-ppss-last] 12 "\n\n(fn)"])
syntax-ppss(20840)
byte-code("\212\302\303�!8\206}��dW\203���fz\304>\203���f\305=?\206}�\306�!@\211�\205|�\307\310\311\312" "\313U\204>�\302\303�\314!8\206|�\307\310\311\315" "\313U\204S�\302\303�T!8\206|�\307\310\311\316" "\313U\204h�\302\303�S!8\206|�\307\310\311\317" "\313U?\205|�\302\303�\314Z!8))\207" [p s 4 syntax-ppss (60 62) 10 syntax-after logand lsh 1 16 0 2 17 18 19] 5)
sp-point-in-comment()
sp-get-comment-bounds()
evil-cp-delete-or-splice-region(20820 21027)
evil-cp-delete-char-or-splice(20820 21027 line nil)
call-interactively(evil-cp-delete-char-or-splice nil nil)
command-execute(evil-cp-delete-char-or-splice)
from evil-cleverparens.
I think it would help if you load the .el files and not the compiled code, the backtraces will be a lot more readable.
I know nothing about this package though :/
from evil-cleverparens.
Hopefully this is better,
Debugger entered--Lisp error: (quit)
syntax-ppss(20889)
(nth 4 (syntax-ppss p))
(or (nth 4 (syntax-ppss p)) (and (< p (point-max)) (memq (char-syntax (char-after p)) (quote (60 62))) (not (eq (char-after p) 10))) (let ((s (car (syntax-after p)))) (if s (progn (or (and (/= 0 (logand ... s)) (nth 4 (syntax-ppss ...))) (and (/= 0 (logand ... s)) (nth 4 (syntax-ppss ...))) (and (/= 0 (logand ... s)) (nth 4 (syntax-ppss ...))) (and (/= 0 (logand ... s)) (nth 4 (syntax-ppss ...))))))))
(save-excursion (or (nth 4 (syntax-ppss p)) (and (< p (point-max)) (memq (char-syntax (char-after p)) (quote (60 62))) (not (eq (char-after p) 10))) (let ((s (car (syntax-after p)))) (if s (progn (or (and (/= 0 ...) (nth 4 ...)) (and (/= 0 ...) (nth 4 ...)) (and (/= 0 ...) (nth 4 ...)) (and (/= 0 ...) (nth 4 ...))))))))
(progn (save-excursion (or (nth 4 (syntax-ppss p)) (and (< p (point-max)) (memq (char-syntax (char-after p)) (quote (60 62))) (not (eq (char-after p) 10))) (let ((s (car (syntax-after p)))) (if s (progn (or (and ... ...) (and ... ...) (and ... ...) (and ... ...))))))))
(condition-case nil (progn (save-excursion (or (nth 4 (syntax-ppss p)) (and (< p (point-max)) (memq (char-syntax (char-after p)) (quote (60 62))) (not (eq (char-after p) 10))) (let ((s (car ...))) (if s (progn (or ... ... ... ...))))))) (error nil))
sp-point-in-comment()
(or (sp-point-in-comment) (save-excursion (backward-char 1) (looking-at "[[:space:]]+\s<")))
(and (not (bobp)) (or (sp-point-in-comment) (save-excursion (backward-char 1) (looking-at "[[:space:]]+\s<"))))
(while (and (not (bobp)) (or (sp-point-in-comment) (save-excursion (backward-char 1) (looking-at "[[:space:]]+\s<")))) (backward-char 1))
(save-excursion (while (and (not (bobp)) (or (sp-point-in-comment) (save-excursion (backward-char 1) (looking-at "[[:space:]]+\s<")))) (backward-char 1)) (if (not (or (bobp) (or (sp-point-in-comment) (save-excursion (backward-char 1) (looking-at "[[:space:]]+\s<"))))) (progn (forward-char))) (point))
(let ((open (save-excursion (while (and (not (bobp)) (or (sp-point-in-comment) (save-excursion ... ...))) (backward-char 1)) (if (not (or (bobp) (or ... ...))) (progn (forward-char))) (point))) (close (save-excursion (while (and (not (eobp)) (or (sp-point-in-comment) (looking-at "[[:space:]]+\s<"))) (forward-char 1)) (let ((pp (1- ...))) (if (not (or ... ... ... ... ... ...)) (progn (backward-char 1)))) (point)))) (cons open close))
(progn (let ((open (save-excursion (while (and (not ...) (or ... ...)) (backward-char 1)) (if (not (or ... ...)) (progn (forward-char))) (point))) (close (save-excursion (while (and (not ...) (or ... ...)) (forward-char 1)) (let ((pp ...)) (if (not ...) (progn ...))) (point)))) (cons open close)))
(if (or (sp-point-in-comment) (looking-at "[[:space:]]+\s<")) (progn (let ((open (save-excursion (while (and ... ...) (backward-char 1)) (if (not ...) (progn ...)) (point))) (close (save-excursion (while (and ... ...) (forward-char 1)) (let (...) (if ... ...)) (point)))) (cons open close))))
sp-get-comment-bounds()
(or (sp-get-comment-bounds) (sp-get-quoted-string-bounds))
(cdr (or (sp-get-comment-bounds) (sp-get-quoted-string-bounds)))
(let* ((ending (cdr (or (sp-get-comment-bounds) (sp-get-quoted-string-bounds)))) (diff (- (min end ending) (point)))) (delete-char diff) (setq chars-left (- chars-left diff)))
(cond ((evil-cp--point-in-string-or-comment) (let* ((ending (cdr (or (sp-get-comment-bounds) (sp-get-quoted-string-bounds)))) (diff (- (min end ending) (point)))) (delete-char diff) (setq chars-left (- chars-left diff)))) ((evil-cp--looking-at-opening-p) (let ((other-paren (evil-cp--matching-paren-pos))) (if (< (point) other-paren end) (let ((char-count (let ... ...))) (delete-char char-count) (setq chars-left (- chars-left char-count))) (evil-cp--splice-form) (setq chars-left (1- chars-left))))) ((evil-cp--looking-at-string-opening-p) (let ((other-quote (evil-cp--matching-paren-pos))) (if (< (point) other-quote end) (let ((char-count (let ... ...))) (delete-char char-count) (setq chars-left (- chars-left char-count))) (forward-char) (setq chars-left (1- chars-left))))) ((evil-cp--looking-at-paren-p) (evil-cp--splice-form) (setq chars-left (1- chars-left))) ((evil-cp--looking-at-string-delimiter-p) (forward-char) (setq chars-left (1- chars-left))) (t (delete-char 1) (setq chars-left (1- chars-left))))
(while (> chars-left 0) (cond ((evil-cp--point-in-string-or-comment) (let* ((ending (cdr (or ... ...))) (diff (- (min end ending) (point)))) (delete-char diff) (setq chars-left (- chars-left diff)))) ((evil-cp--looking-at-opening-p) (let ((other-paren (evil-cp--matching-paren-pos))) (if (< (point) other-paren end) (let ((char-count ...)) (delete-char char-count) (setq chars-left (- chars-left char-count))) (evil-cp--splice-form) (setq chars-left (1- chars-left))))) ((evil-cp--looking-at-string-opening-p) (let ((other-quote (evil-cp--matching-paren-pos))) (if (< (point) other-quote end) (let ((char-count ...)) (delete-char char-count) (setq chars-left (- chars-left char-count))) (forward-char) (setq chars-left (1- chars-left))))) ((evil-cp--looking-at-paren-p) (evil-cp--splice-form) (setq chars-left (1- chars-left))) ((evil-cp--looking-at-string-delimiter-p) (forward-char) (setq chars-left (1- chars-left))) (t (delete-char 1) (setq chars-left (1- chars-left)))))
(let ((chars-left (- end beg))) (while (> chars-left 0) (cond ((evil-cp--point-in-string-or-comment) (let* ((ending (cdr ...)) (diff (- ... ...))) (delete-char diff) (setq chars-left (- chars-left diff)))) ((evil-cp--looking-at-opening-p) (let ((other-paren (evil-cp--matching-paren-pos))) (if (< (point) other-paren end) (let (...) (delete-char char-count) (setq chars-left ...)) (evil-cp--splice-form) (setq chars-left (1- chars-left))))) ((evil-cp--looking-at-string-opening-p) (let ((other-quote (evil-cp--matching-paren-pos))) (if (< (point) other-quote end) (let (...) (delete-char char-count) (setq chars-left ...)) (forward-char) (setq chars-left (1- chars-left))))) ((evil-cp--looking-at-paren-p) (evil-cp--splice-form) (setq chars-left (1- chars-left))) ((evil-cp--looking-at-string-delimiter-p) (forward-char) (setq chars-left (1- chars-left))) (t (delete-char 1) (setq chars-left (1- chars-left))))))
evil-cp-delete-or-splice-region(20873 21041)
(cond ((or (evil-cp--balanced-block-p beg end) (evil-cp--override)) (evil-delete-char beg end type register)) ((eq type (quote block)) (evil-cp--yank-rectangle beg end register yank-handler) (evil-apply-on-block (function evil-cp-delete-or-splice-region) beg end nil)) (t (if evil-cleverparens-complete-parens-in-yanked-region (evil-cp-yank beg end type register yank-handler) (evil-yank beg end type register yank-handler)) (evil-cp-delete-or-splice-region beg end)))
(if (and evil-inhibit-operator (called-interactively-p (quote any))) nil (cond ((or (evil-cp--balanced-block-p beg end) (evil-cp--override)) (evil-delete-char beg end type register)) ((eq type (quote block)) (evil-cp--yank-rectangle beg end register yank-handler) (evil-apply-on-block (function evil-cp-delete-or-splice-region) beg end nil)) (t (if evil-cleverparens-complete-parens-in-yanked-region (evil-cp-yank beg end type register yank-handler) (evil-yank beg end type register yank-handler)) (evil-cp-delete-or-splice-region beg end))))
(let ((evil-inhibit-operator evil-inhibit-operator-value)) (if (and evil-inhibit-operator (called-interactively-p (quote any))) nil (cond ((or (evil-cp--balanced-block-p beg end) (evil-cp--override)) (evil-delete-char beg end type register)) ((eq type (quote block)) (evil-cp--yank-rectangle beg end register yank-handler) (evil-apply-on-block (function evil-cp-delete-or-splice-region) beg end nil)) (t (if evil-cleverparens-complete-parens-in-yanked-region (evil-cp-yank beg end type register yank-handler) (evil-yank beg end type register yank-handler)) (evil-cp-delete-or-splice-region beg end)))))
(unwind-protect (let ((evil-inhibit-operator evil-inhibit-operator-value)) (if (and evil-inhibit-operator (called-interactively-p (quote any))) nil (cond ((or (evil-cp--balanced-block-p beg end) (evil-cp--override)) (evil-delete-char beg end type register)) ((eq type (quote block)) (evil-cp--yank-rectangle beg end register yank-handler) (evil-apply-on-block (function evil-cp-delete-or-splice-region) beg end nil)) (t (if evil-cleverparens-complete-parens-in-yanked-region (evil-cp-yank beg end type register yank-handler) (evil-yank beg end type register yank-handler)) (evil-cp-delete-or-splice-region beg end))))) (setq evil-inhibit-operator-value nil))
evil-cp-delete-char-or-splice(20873 21041 line nil)
call-interactively(evil-cp-delete-char-or-splice nil nil)
command-execute(evil-cp-delete-char-or-splice)
from evil-cleverparens.
Thanks, much better indeed! I'll take a look.
from evil-cleverparens.
I'm seeing the same error in Spacemacs in a Clojure file:
Debugger entered--Lisp error: (wrong-type-argument char-or-string-p nil)
insert(nil)
(progn (insert region) (sp-region-ok-p (point-min) (point-max)))
(unwind-protect (progn (insert region) (sp-region-ok-p (point-min) (point-max))) (and (buffer-name temp-buffer) (kill-buffer temp-buffer)))
(save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (insert region) (sp-region-ok-p (point-min) (point-max))) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))
(let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (insert region) (sp-region-ok-p (point-min) (point-max))) (and (buffer-name temp-buffer) (kill-buffer temp-buffer)))))
(let ((region (evil-yank-rectangle beg end))) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (insert region) (sp-region-ok-p (point-min) (point-max))) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))))
evil-cp--balanced-block-p(1670 1671)
evil-cp-delete-char-or-splice(1670 1671 exclusive nil)
funcall-interactively(evil-cp-delete-char-or-splice 1670 1671 exclusive nil)
call-interactively(evil-cp-delete-char-or-splice nil nil)
command-execute(evil-cp-delete-char-or-splice)
It breaks x
(though not backspace). Which is a shame because otherwise cleverparens is absolutely terrific!
from evil-cleverparens.
I'd recommend Lispyville instead.
This bug along with #56 makes evil-cleverparens breaks evil a little too much for me.
from evil-cleverparens.
The insert originates in cp code though, the call to sp-region-ok-p
is never executed (from the stacktrace)
from evil-cleverparens.
@jojojames I'm going through old evil-cleverparens issues looking to fix or close them. The link to the video is long dead. Any repro steps I can try?
from evil-cleverparens.
Closing as I can't replicate. Feel free to reopen with repro instructions.
from evil-cleverparens.
Related Issues (20)
- disable evil-cleverparens `x` behavior HOT 1
- x/X causes "Wrong type argument: char-or-string-p, nil" HOT 4
- add additional delimiters to form text object HOT 1
- HELP HOT 2
- evil-cp-change must move the cursor
- Text objects does not work HOT 2
- Minor bug in `yy`/`dd` HOT 1
- Different style parens are auto-completed wrongly
- Make evil-cleverparens-swap-move-by-word-and-symbol have effect in operator mode HOT 1
- key binding for paredit-splice-sexp-killing-backward? HOT 1
- `evil-cp-*-symbol-*` does not skip `#()` HOT 1
- evil-cleverparens shadows evil-snipe s/S binds HOT 5
- Transfer to emacs-evil HOT 8
- x/X splices outer sexp rather than one on cursor HOT 7
- point jumps after barfing HOT 5
- Using a form that contains an escaped bracket character breaks HOT 18
- Backspacing over an opening paren deletes only that paren HOT 1
- Using x/X on double-quotes marks not working as expected HOT 3
- dd not deleting a line HOT 4
- evil-cleverparens *requires* smartparens and paredit
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from evil-cleverparens.