+9
-2
Package.swift
+9
-2
Package.swift
······
+15
Sources/PterodactylBuild/FXValue+Conformances.swift
+15
Sources/PterodactylBuild/FXValue+Conformances.swift
···
+11
-8
Sources/PterodactylBuild/Keys/AnalyseImports.swift
Sources/PterodactylBuild/Keys/Blob-local operations/BlobImports.swift
+11
-8
Sources/PterodactylBuild/Keys/AnalyseImports.swift
Sources/PterodactylBuild/Keys/Blob-local operations/BlobImports.swift
·········
+22
Sources/PterodactylBuild/Keys/Blob-local operations/BlobContents.swift
+22
Sources/PterodactylBuild/Keys/Blob-local operations/BlobContents.swift
···
+26
Sources/PterodactylBuild/Keys/Blob-local operations/BlobSyntaxTree.swift
+26
Sources/PterodactylBuild/Keys/Blob-local operations/BlobSyntaxTree.swift
···
+25
Sources/PterodactylBuild/Keys/Blob-local operations/BlobTokens.swift
+25
Sources/PterodactylBuild/Keys/Blob-local operations/BlobTokens.swift
···
+1
Sources/PterodactylBuild/Keys/Blob-local operations/README.md
+1
Sources/PterodactylBuild/Keys/Blob-local operations/README.md
···+Certain operations do not require knowledge of the entire source tree, only a specific blob inside the source tree. These include import analysis, tokenisation, line maps, parsing, etc.
+2
-4
Sources/PterodactylBuild/Keys/DependencyGraphOfSourceTree.swift
+2
-4
Sources/PterodactylBuild/Keys/DependencyGraphOfSourceTree.swift
···-static let versionDependencies: [any FXVersioning.Type] = [Keys.UnitMapOfSourceTree.self, Keys.AnalyseImports.self]+static let versionDependencies: [any FXVersioning.Type] = [Keys.UnitMapOfSourceTree.self, Keys.BlobImports.self]···
+4
-6
Sources/PterodactylBuild/Keys/NarrowSourceTree.swift
+4
-6
Sources/PterodactylBuild/Keys/NarrowSourceTree.swift
···static let versionDependencies: [any FXVersioning.Type] = [TransitiveDependencies.self, UnitMapOfSourceTree.self]-let dependencies = try await ctx.request(TransitiveDependencies(sourceTreeId: sourceTreeId, unitName: unitName)).dependencies+let dependencies = try await ctx.request(TransitiveDependencies(sourceTreeId: sourceTreeId, unitName: unitName))···
-32
Sources/PterodactylBuild/Keys/SourceCode.swift
-32
Sources/PterodactylBuild/Keys/SourceCode.swift
···
+2
-4
Sources/PterodactylBuild/Keys/TransitiveDependencies.swift
+2
-4
Sources/PterodactylBuild/Keys/TransitiveDependencies.swift
······let graph = try await ctx.request(Keys.DependencyGraphOfSourceTree(sourceTreeId: sourceTreeId))
+44
-16
Sources/PterodactylSyntax/Cursor.swift
+44
-16
Sources/PterodactylSyntax/Cursor.swift
···
+63
Sources/PterodactylSyntax/FoldingRanges.swift
+63
Sources/PterodactylSyntax/FoldingRanges.swift
···+if let foldingRangeKind = node.tree?.metadata?.delimitedFoldingRangeKind, let visibleUtf16Range {+let foldingRange = FoldingRange(startLine: startLocation.line, endLine: endLocation.line, kind: foldingRangeKind)
+16
-5
Sources/PterodactylSyntax/Grammar.swift
+16
-5
Sources/PterodactylSyntax/Grammar.swift
······
+51
Sources/PterodactylSyntax/Grammar/Document.swift
+51
Sources/PterodactylSyntax/Grammar/Document.swift
···+parser.advance(error: "Expected to see either an import or a theory declaration, but instead got \(parser.currentToken.kind): \(parser.currentToken.text)")
+46
Sources/PterodactylSyntax/Grammar/Document/Import.swift
+46
Sources/PterodactylSyntax/Grammar/Document/Import.swift
···
+33
Sources/PterodactylSyntax/Grammar/Document/Theory.swift
+33
Sources/PterodactylSyntax/Grammar/Document/Theory.swift
···
+52
Sources/PterodactylSyntax/Grammar/Document/Theory/Declaration.swift
+52
Sources/PterodactylSyntax/Grammar/Document/Theory/Declaration.swift
···+if parser.eat(kind: .punctuation(cell.key), metadata: TokenMetadata(semanticTokenType: .operator)) {
+19
Sources/PterodactylSyntax/Grammar/Document/Theory/Declaration/Lhs.swift
+19
Sources/PterodactylSyntax/Grammar/Document/Theory/Declaration/Lhs.swift
···
+19
Sources/PterodactylSyntax/Grammar/Document/Theory/Declaration/Rhs.swift
+19
Sources/PterodactylSyntax/Grammar/Document/Theory/Declaration/Rhs.swift
···
+46
Sources/PterodactylSyntax/Grammar/Document/Theory/TheoryBlock.swift
+46
Sources/PterodactylSyntax/Grammar/Document/Theory/TheoryBlock.swift
···
+23
Sources/PterodactylSyntax/Grammar/Document/Theory/TheoryName.swift
+23
Sources/PterodactylSyntax/Grammar/Document/Theory/TheoryName.swift
···
+130
-69
Sources/PterodactylSyntax/Lexer.swift
+130
-69
Sources/PterodactylSyntax/Lexer.swift
···
+30
Sources/PterodactylSyntax/LineMap.swift
+30
Sources/PterodactylSyntax/LineMap.swift
···
+52
-23
Sources/PterodactylSyntax/Parser.swift
+52
-23
Sources/PterodactylSyntax/Parser.swift
······+public mutating func close(mark: MarkOpened, kind: SyntaxTreeKind, metadata: SyntaxTreeMetadata?) {······+public mutating func eat(kindSatisfying predicate: (TokenKind) -> Bool, metadata: TokenMetadata?) -> Bool {+public mutating func expect(kind: TokenKind, metadata: TokenMetadata?, error: String? = nil) {···
+69
Sources/PterodactylSyntax/SemanticToken.swift
+69
Sources/PterodactylSyntax/SemanticToken.swift
···
+40
-15
Sources/PterodactylSyntax/SyntaxTree.swift
+40
-15
Sources/PterodactylSyntax/SyntaxTree.swift
···-public init(kind: SyntaxTreeKind, metadata: SyntaxTreeMetadata? = nil, children: [SyntaxTree.Child]) {+public init(kind: SyntaxTreeKind, metadata: SyntaxTreeMetadata? = nil, children: [SyntaxTree.Child]) {+/// A mutable version of ``SyntaxTree`` that does not keep track of textual length, for use when constructing trees.···
+21
Sources/PterodactylSyntax/SyntaxView.swift
+21
Sources/PterodactylSyntax/SyntaxView.swift
···
+1
-1
Sources/PterodactylSyntax/Token.swift
+1
-1
Sources/PterodactylSyntax/Token.swift
+60
-30
Sources/PterodactylSyntax/Types.swift
+60
-30
Sources/PterodactylSyntax/Types.swift
···
+1
-1
Tests/PterodactylBuildTests/Test.swift
+1
-1
Tests/PterodactylBuildTests/Test.swift
···-let dependenciesOfBaz = try await engine.build(key: Keys.TransitiveDependencies(sourceTreeId: treeID, unitName: baz), ctx).get().dependencies+let dependenciesOfBaz = try await engine.build(key: Keys.TransitiveDependencies(sourceTreeId: treeID, unitName: baz), ctx).get()