(scope-1 local form)
(scope-loop local rest))
+(defvar scope-loop-into-vars nil)
+
(defun scope-loop-collect (local expr rest)
(scope-1 local expr)
(let ((bw (scope-sym-bare (car rest)))
(let* ((var (car more))
(bare (scope-sym-bare var))
(beg (scope-sym-pos var)))
- (when beg
- (scope-report 'variable
- beg (length (symbol-name bare)) beg))
- (scope-loop (scope-local-new bare beg local) (cdr more)))
+ (if (memq bare scope-loop-into-vars)
+ (progn
+ (scope-s local var)
+ (scope-loop local (cdr more)))
+ (when beg
+ (scope-report 'variable
+ beg (length (symbol-name bare)) beg))
+ (let ((scope-loop-into-vars (cons bare scope-loop-into-vars)))
+ (scope-loop (scope-local-new bare beg local) (cdr more)))))
(scope-loop local rest))))
(defun scope-loop-with-and (local rest)
((eq bare 'return)
(scope-1 local (car rest))
(scope-loop local (cdr rest))))
- (scope-loop-do local next rest)))
+ (if (eq (scope-sym-bare (car-safe next)) 'return)
+ (progn
+ (scope-1 local (cadr next))
+ (scope-loop local (cdr rest)))
+ (scope-loop-do local next rest))))
(defun scope-loop-initially (local next rest)
(if (eq (scope-sym-bare next) 'do)
(scope-define-function-analyzer propertize (_string &rest props)
(while props
(cl-case (scope-sym-bare (scope--unqoute (car props)))
- (face
+ ((face mouse-face)
(when-let ((q (scope--unqoute (cadr props)))) (scope-face q))))
(setq props (cddr props))))