help-smalltalk
[Top][All Lists]
Advanced

[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







reply via email to

[Prev in Thread] Current Thread [Next in Thread]