[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Help-smalltalk] Debugging smalltalk-mode.el
From: |
Mathieu Suen |
Subject: |
[Help-smalltalk] Debugging smalltalk-mode.el |
Date: |
Fri, 23 Jul 2010 11:48:40 +0000 (GMT) |
Hi All,
In emacs the smalltalk-mode have a bug with the new syntax when writing a
keyword method signature.
foo: a [
...
]
When writing the colon you end up in a parse error:
Debugger entered--Lisp error: (scan-error "Unbalanced parentheses" 2479 2446)
apply(debug error (scan-error "Unbalanced parentheses" 2479 2446))
edebug(error (scan-error "Unbalanced parentheses" 2479 2446))
signal(scan-error ("Unbalanced parentheses" 2479 2446))
edebug-signal(scan-error ("Unbalanced parentheses" 2479 2446))
scan-sexps(2480 -1)
forward-sexp(-1)
backward-sexp(1)
smalltalk-backward-sexp(1)
smalltalk-find-statement-begin()
smalltalk-indent-for-colon()
(edebug-after (edebug-before 37) 38 (smalltalk-indent-for-colon))
(and (edebug-after 0 36 needs-indent) (edebug-after (edebug-before 37) 38
(smalltalk-indent-for-colon)))
(edebug-after (edebug-before 35) 39 (and (edebug-after 0 36 needs-indent)
(edebug-after ... 38 ...)))
(progn (edebug-after (edebug-before 16) 34 (save-excursion ... ...))
(edebug-after (edebug-before 35) 39 (and ... ...)))
(edebug-after (edebug-before 15) 40 (progn (edebug-after ... 34 ...)
(edebug-after ... 39 ...)))
(if (edebug-after (edebug-before 10) 14 (null ...)) (edebug-after
(edebug-before 15) 40 (progn ... ...)))
(edebug-after (edebug-before 9) 41 (if (edebug-after ... 14 ...)
(edebug-after
... 40 ...)))
(let (needs-indent state (parse-sexp-ignore-comments t)) (edebug-after
(edebug-before 1) 8 (setq state ...)) (edebug-after (edebug-before 9) 41 (if
...
...)) (edebug-after (edebug-before 42) 43 (self-insert-command 1)))
(edebug-after (edebug-before 0) 44 (let (needs-indent state ...)
(edebug-after
... 8 ...) (edebug-after ... 41 ...) (edebug-after ... 43 ...)))
(lambda nil (edebug-after (edebug-before 0) 44 (let ... ... ... ...)))()
edebug-enter(smalltalk-colon nil (lambda nil (edebug-after (edebug-before 0)
44 (let ... ... ... ...))))
edebug-enter(smalltalk-colon nil (lambda nil (edebug-after (edebug-before 0)
44 (let ... ... ... ...))))
smalltalk-colon()
I think the issue is in #'smalltalk-indent-for-colon who should check if you
are
being writing a method pattern or just sending a message.
I am trying to fix it but since I am not an emacs expert tell me if you have an
idea of how to fix it.
Thanks
Mathieu
- [Help-smalltalk] Debugging smalltalk-mode.el,
Mathieu Suen <=