track dependencies from files with errors separately

from when the file doesn't have an error

More precisely, keep two sets of depndencies for a given
open tab. If the file expanded without error then we consider
that authoratative and keep that set of dependencies around
even if a later expansion fails. So there are two sets of
dependencies for each tab. When expansion succeeds, we reset
both of them, but if expansion fails then we reset only one,
preserving the set we got from the last successful expansion

please include in the release
(cherry picked from commit 11f74fc571)
This commit is contained in:
Robby Findler 2013-04-15 21:10:09 -05:00 committed by Ryan Culpepper
parent a7806102f3
commit f9cc17670c

View File

@ -1072,9 +1072,17 @@
(update-little-dot))
(define dep-paths (set))
(define/public (set-dep-paths d) (set! dep-paths d))
(define/public (set-dirty-if-dep path)
(when (set-member? dep-paths path)
(define error-dep-paths (set))
(define/public (set-dep-paths d error?)
(cond
[error?
(set! error-dep-paths d)]
[else
(set! dep-paths d)
(set! error-dep-paths (set))]))
(define/public (set-dirty-if-dep path)
(when (or (set-member? dep-paths path)
(set-member? error-dep-paths path))
(oc-set-dirty this)))
(super-new)))
@ -1944,7 +1952,7 @@
val))))
(send running-tab set-oc-status (clean #f #f '()))
(send running-tab set-dep-paths (list->set (vector-ref res 2)))]
(send running-tab set-dep-paths (list->set (vector-ref res 2)) #f)]
[else
(line-of-interest)
(send running-tab set-oc-status
@ -1953,7 +1961,7 @@
sc-abnormal-termination
(vector-ref res 1))
(vector-ref res 2)))
(send running-tab set-dep-paths (list->set (vector-ref res 3)))])
(send running-tab set-dep-paths (list->set (vector-ref res 3)) #t)])
(oc-maybe-start-something)))
(define/oc-log (oc-status-message sym str)