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:
parent
a7806102f3
commit
f9cc17670c
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue
Block a user