119 |
119 |
120 def loaded_files( |
120 def loaded_files( |
121 syntax: Outer_Syntax, |
121 syntax: Outer_Syntax, |
122 name: Document.Node.Name, |
122 name: Document.Node.Name, |
123 spans: List[Command_Span.Span] |
123 spans: List[Command_Span.Span] |
124 ) : List[Path] = { |
124 ) : List[Document.Node.Name] = { |
125 val dir = name.master_dir_path |
125 for (span <- spans; file <- span.loaded_files(syntax).files) |
126 for { span <- spans; file <- span.loaded_files(syntax).files } |
126 yield Document.Node.Name(append_path(name.master_dir, Path.explode(file))) |
127 yield (dir + Path.explode(file)).expand |
127 } |
128 } |
128 |
129 |
129 def pure_files(syntax: Outer_Syntax): List[Document.Node.Name] = |
130 def pure_files(syntax: Outer_Syntax): List[Path] = |
|
131 (for { |
130 (for { |
132 (name, theory) <- Thy_Header.ml_roots.iterator |
131 (file, theory) <- Thy_Header.ml_roots.iterator |
133 node = append_path("~~/src/Pure", Path.explode(name)) |
132 node = append_path("~~/src/Pure", Path.explode(file)) |
134 node_name = Document.Node.Name(node, theory = theory) |
133 node_name = Document.Node.Name(node, theory = theory) |
135 file <- loaded_files(syntax, node_name, load_commands(syntax, node_name)()).iterator |
134 name <- loaded_files(syntax, node_name, load_commands(syntax, node_name)()).iterator |
136 } yield file).toList |
135 } yield name).toList |
137 |
136 |
138 def global_theory(theory: String): Boolean = |
137 def global_theory(theory: String): Boolean = |
139 sessions_structure.global_theories.isDefinedAt(theory) |
138 sessions_structure.global_theories.isDefinedAt(theory) |
140 |
139 |
141 def literal_theory(theory: String): Boolean = |
140 def literal_theory(theory: String): Boolean = |
412 .filter(p => p._2.nonEmpty) |
411 .filter(p => p._2.nonEmpty) |
413 |
412 |
414 def loaded_files( |
413 def loaded_files( |
415 name: Document.Node.Name, |
414 name: Document.Node.Name, |
416 spans: List[Command_Span.Span] |
415 spans: List[Command_Span.Span] |
417 ) : (String, List[Path]) = { |
416 ) : (String, List[Document.Node.Name]) = { |
418 val theory = name.theory |
417 val theory = name.theory |
419 val syntax = get_syntax(name) |
418 val syntax = get_syntax(name) |
420 val files1 = resources.loaded_files(syntax, name, spans) |
419 val files1 = resources.loaded_files(syntax, name, spans) |
421 val files2 = if (theory == Thy_Header.PURE) pure_files(syntax) else Nil |
420 val files2 = if (theory == Thy_Header.PURE) pure_files(syntax) else Nil |
422 (theory, files1 ::: files2) |
421 (theory, files1 ::: files2) |
423 } |
422 } |
424 |
423 |
425 def loaded_files: List[Path] = |
424 def loaded_files: List[Document.Node.Name] = |
426 for { |
425 for { |
427 (name, spans) <- load_commands |
426 (name, spans) <- load_commands |
428 file <- loaded_files(name, spans)._2 |
427 file <- loaded_files(name, spans)._2 |
429 } yield file |
428 } yield file |
430 |
429 |