equal
deleted
inserted
replaced
55 (sessions_structure.dest_session_directories, |
55 (sessions_structure.dest_session_directories, |
56 (sessions_structure.bibtex_entries, |
56 (sessions_structure.bibtex_entries, |
57 (command_timings, |
57 (command_timings, |
58 (Command_Span.load_commands.map(cmd => (cmd.name, cmd.position)), |
58 (Command_Span.load_commands.map(cmd => (cmd.name, cmd.position)), |
59 (Scala.functions, |
59 (Scala.functions, |
60 (session_base.global_theories.toList, |
60 (sessions_structure.global_theories.toList, |
61 session_base.loaded_theories.keys))))))))) |
61 session_base.loaded_theories.keys))))))))) |
62 } |
62 } |
63 |
63 |
64 |
64 |
65 /* file formats */ |
65 /* file formats */ |
148 node_name = Document.Node.Name(path.implode, path.dir.implode, theory) |
148 node_name = Document.Node.Name(path.implode, path.dir.implode, theory) |
149 file <- loaded_files(syntax, node_name, load_commands(syntax, node_name)()) |
149 file <- loaded_files(syntax, node_name, load_commands(syntax, node_name)()) |
150 } yield file |
150 } yield file |
151 } |
151 } |
152 |
152 |
|
153 def global_theory(theory: String): Boolean = |
|
154 sessions_structure.global_theories.isDefinedAt(theory) |
|
155 |
153 def theory_name(qualifier: String, theory: String): String = |
156 def theory_name(qualifier: String, theory: String): String = |
154 if (Long_Name.is_qualified(theory) || session_base.global_theories.isDefinedAt(theory)) |
157 if (Long_Name.is_qualified(theory) || global_theory(theory)) theory |
155 theory |
|
156 else Long_Name.qualify(qualifier, theory) |
158 else Long_Name.qualify(qualifier, theory) |
157 |
159 |
158 def find_theory_node(theory: String): Option[Document.Node.Name] = { |
160 def find_theory_node(theory: String): Option[Document.Node.Name] = { |
159 val thy_file = Path.basic(Long_Name.base_name(theory)).thy |
161 val thy_file = Path.basic(Long_Name.base_name(theory)).thy |
160 val session = sessions_structure.theory_qualifier(theory) |
162 val session = sessions_structure.theory_qualifier(theory) |
187 def import_name(info: Sessions.Info, s: String): Document.Node.Name = |
189 def import_name(info: Sessions.Info, s: String): Document.Node.Name = |
188 import_name(info.name, info.dir.implode, s) |
190 import_name(info.name, info.dir.implode, s) |
189 |
191 |
190 def find_theory(file: JFile): Option[Document.Node.Name] = { |
192 def find_theory(file: JFile): Option[Document.Node.Name] = { |
191 for { |
193 for { |
192 qualifier <- session_base.session_directories.get(File.canonical(file).getParentFile) |
194 qualifier <- sessions_structure.session_directories.get(File.canonical(file).getParentFile) |
193 theory_base <- proper_string(Thy_Header.theory_name(file.getName)) |
195 theory_base <- proper_string(Thy_Header.theory_name(file.getName)) |
194 theory = theory_name(qualifier, theory_base) |
196 theory = theory_name(qualifier, theory_base) |
195 theory_node <- find_theory_node(theory) |
197 theory_node <- find_theory_node(theory) |
196 if File.eq(theory_node.path.file, file) |
198 if File.eq(theory_node.path.file, file) |
197 } yield theory_node |
199 } yield theory_node |
206 (session, (info, _)) <- sessions_structure.imports_graph.iterator |
208 (session, (info, _)) <- sessions_structure.imports_graph.iterator |
207 dir <- (if (session == context_session) context_dir.toList else info.dirs).iterator |
209 dir <- (if (session == context_session) context_dir.toList else info.dirs).iterator |
208 theory <- Thy_Header.try_read_dir(dir).iterator |
210 theory <- Thy_Header.try_read_dir(dir).iterator |
209 if Completion.completed(s)(theory) |
211 if Completion.completed(s)(theory) |
210 } yield { |
212 } yield { |
211 if (session == context_session || session_base.global_theories.isDefinedAt(theory)) theory |
213 if (session == context_session || global_theory(theory)) theory |
212 else Long_Name.qualify(session, theory) |
214 else Long_Name.qualify(session, theory) |
213 }).toList.sorted |
215 }).toList.sorted |
214 } |
216 } |
215 |
217 |
216 def with_thy_reader[A](name: Document.Node.Name, f: Reader[Char] => A): A = { |
218 def with_thy_reader[A](name: Document.Node.Name, f: Reader[Char] => A): A = { |