Skip to content

Commit 5edf93f

Browse files
committed
Fix Bugs
1 parent 9935aae commit 5edf93f

File tree

11 files changed

+57
-44
lines changed

11 files changed

+57
-44
lines changed

CodeEdit.xcodeproj/project.pbxproj

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
archiveVersion = 1;
44
classes = {
55
};
6-
objectVersion = 55;
6+
objectVersion = 60;
77
objects = {
88

99
/* Begin PBXBuildFile section */
@@ -376,6 +376,7 @@
376376
6C1A7E942D5D557D001B951C /* CodeEditSourceEditor in Frameworks */ = {isa = PBXBuildFile; productRef = 6C5246732D1E612700F57F11 /* CodeEditSourceEditor */; };
377377
6C1A7E962D5D5762001B951C /* LanguageServerDocument.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6C1A7E952D5D5762001B951C /* LanguageServerDocument.swift */; };
378378
6C1A7E9B2D5D5E0E001B951C /* LanguageServer+DocumentObjects.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6C1A7E9A2D5D5E0E001B951C /* LanguageServer+DocumentObjects.swift */; };
379+
6C1A7EA02D5F9BFB001B951C /* CodeEditSourceEditor in Frameworks */ = {isa = PBXBuildFile; productRef = 6C1A7E9F2D5F9BFB001B951C /* CodeEditSourceEditor */; };
379380
6C1CC9982B1E770B0002349B /* AsyncFileIterator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6C1CC9972B1E770B0002349B /* AsyncFileIterator.swift */; };
380381
6C1CC99B2B1E7CBC0002349B /* FindNavigatorIndexBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6C1CC99A2B1E7CBC0002349B /* FindNavigatorIndexBar.swift */; };
381382
6C1F3DA22C18C55800F6DEF6 /* ShellIntegrationTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6C1F3DA12C18C55800F6DEF6 /* ShellIntegrationTests.swift */; };
@@ -1372,6 +1373,7 @@
13721373
6C85BB402C2105ED00EB5DEF /* CodeEditKit in Frameworks */,
13731374
6C66C31329D05CDC00DE9ED2 /* GRDB in Frameworks */,
13741375
58F2EB1E292FB954004A9BDE /* Sparkle in Frameworks */,
1376+
6C1A7EA02D5F9BFB001B951C /* CodeEditSourceEditor in Frameworks */,
13751377
6C147C4529A329350089B630 /* OrderedCollections in Frameworks */,
13761378
6CE21E872C650D2C0031B056 /* SwiftTerm in Frameworks */,
13771379
6CC00A8B2CBEF150004E8134 /* CodeEditSourceEditor in Frameworks */,
@@ -3892,6 +3894,7 @@
38923894
6CB94D022CA1205100E8651C /* AsyncAlgorithms */,
38933895
6CC00A8A2CBEF150004E8134 /* CodeEditSourceEditor */,
38943896
6C5246732D1E612700F57F11 /* CodeEditSourceEditor */,
3897+
6C1A7E9F2D5F9BFB001B951C /* CodeEditSourceEditor */,
38953898
);
38963899
productName = CodeEdit;
38973900
productReference = B658FB2C27DA9E0F00EA4DBD /* CodeEdit.app */;
@@ -3989,7 +3992,7 @@
39893992
303E88462C276FD600EEA8D9 /* XCRemoteSwiftPackageReference "LanguageServerProtocol" */,
39903993
6C4E37FA2C73E00700AEE7B5 /* XCRemoteSwiftPackageReference "SwiftTerm" */,
39913994
6CB94D012CA1205100E8651C /* XCRemoteSwiftPackageReference "swift-async-algorithms" */,
3992-
6C9DB9E22D55656300ACD86E /* XCRemoteSwiftPackageReference "CodeEditSourceEditor" */,
3995+
6C1A7E9E2D5F9BFB001B951C /* XCLocalSwiftPackageReference "../CodeEditSourceEditor" */,
39933996
);
39943997
productRefGroup = B658FB2D27DA9E0F00EA4DBD /* Products */;
39953998
projectDirPath = "";
@@ -5795,6 +5798,13 @@
57955798
};
57965799
/* End XCConfigurationList section */
57975800

5801+
/* Begin XCLocalSwiftPackageReference section */
5802+
6C1A7E9E2D5F9BFB001B951C /* XCLocalSwiftPackageReference "../CodeEditSourceEditor" */ = {
5803+
isa = XCLocalSwiftPackageReference;
5804+
relativePath = ../CodeEditSourceEditor;
5805+
};
5806+
/* End XCLocalSwiftPackageReference section */
5807+
57985808
/* Begin XCRemoteSwiftPackageReference section */
57995809
2816F592280CF50500DD548B /* XCRemoteSwiftPackageReference "CodeEditSymbols" */ = {
58005810
isa = XCRemoteSwiftPackageReference;
@@ -5974,6 +5984,10 @@
59745984
package = 6C147C4329A329350089B630 /* XCRemoteSwiftPackageReference "swift-collections" */;
59755985
productName = OrderedCollections;
59765986
};
5987+
6C1A7E9F2D5F9BFB001B951C /* CodeEditSourceEditor */ = {
5988+
isa = XCSwiftPackageProductDependency;
5989+
productName = CodeEditSourceEditor;
5990+
};
59775991
6C4E37FB2C73E00700AEE7B5 /* SwiftTerm */ = {
59785992
isa = XCSwiftPackageProductDependency;
59795993
package = 6C4E37FA2C73E00700AEE7B5 /* XCRemoteSwiftPackageReference "SwiftTerm" */;

CodeEdit.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved

Lines changed: 1 addition & 10 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

CodeEdit/Features/Documents/CodeFileDocument/CodeFileDocument.swift

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -212,5 +212,12 @@ final class CodeFileDocument: NSDocument, ObservableObject {
212212

213213
extension CodeFileDocument: LanguageServerDocument {
214214
/// A stable string to use when identifying documents with language servers.
215-
var languageServerURI: String? { fileURL?.absolutePath }
215+
/// Needs to be a valid URI, so always returns with the `file://` prefix to indicate it's a file URI.
216+
var languageServerURI: String? {
217+
if let path = fileURL?.absolutePath {
218+
return "file://" + path
219+
} else {
220+
return nil
221+
}
222+
}
216223
}

CodeEdit/Features/LSP/Features/DocumentSync/LSPContentCoordinator.swift

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ class LSPContentCoordinator<DocumentType: LanguageServerDocument>: TextViewCoord
2828
}
2929

3030
private var editedRange: LSPRange?
31-
private var stream: AsyncStream<SequenceElement>?
3231
private var sequenceContinuation: AsyncStream<SequenceElement>.Continuation?
3332
private var task: Task<Void, Never>?
3433

@@ -39,16 +38,17 @@ class LSPContentCoordinator<DocumentType: LanguageServerDocument>: TextViewCoord
3938
init(documentURI: String, languageServer: LanguageServer<DocumentType>) {
4039
self.documentURI = documentURI
4140
self.languageServer = languageServer
42-
self.stream = AsyncStream { continuation in
43-
self.sequenceContinuation = continuation
44-
}
4541

4642
setUpUpdatesTask()
4743
}
4844

4945
func setUpUpdatesTask() {
5046
task?.cancel()
51-
guard let stream else { return }
47+
// Create this stream here so it's always set up when the text view is set up, rather than only once on init.
48+
let stream = AsyncStream { continuation in
49+
self.sequenceContinuation = continuation
50+
}
51+
5252
task = Task.detached { [weak self] in
5353
// Send edit events every 250ms
5454
for await events in stream.chunked(by: .repeating(every: .milliseconds(250), clock: .continuous)) {

CodeEdit/Features/LSP/Features/SemanticTokens/SemanticTokenHighlightProvider.swift

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,9 @@ final class SemanticTokenHighlightProvider<
164164
return
165165
}
166166
let rawTokens = storage.getTokensFor(range: lspRange)
167-
let highlights = tokenMap.decode(tokens: rawTokens, using: textView)
167+
let highlights = tokenMap
168+
.decode(tokens: rawTokens, using: textView)
169+
.filter({ $0.capture != nil || !$0.modifiers.isEmpty })
168170
completion(.success(highlights))
169171
}
170172
}

CodeEdit/Features/LSP/Features/SemanticTokens/SemanticTokenMap.swift

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,8 +72,6 @@ struct SemanticTokenMap: Sendable { // swiftlint:enable line_length
7272
let type = Int(token.type)
7373
let capture = tokenTypeMap.indices.contains(type) ? tokenTypeMap[type] : nil
7474

75-
// print(token.line, token.char, token.length, range, capture, modifiers.values)
76-
7775
return HighlightRange(
7876
range: range,
7977
capture: capture,

CodeEdit/Features/LSP/Features/SemanticTokens/SemanticTokenStorage/SemanticTokenStorage.swift

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,6 @@ final class SemanticTokenStorage: GenericSemanticTokenStorage {
5959
}
6060

6161
func setData(_ data: borrowing SemanticTokens) {
62-
print(data.decode())
6362
state = CurrentState(resultId: data.resultId, tokenData: data.data, tokens: data.decode())
6463
}
6564

CodeEdit/Features/LSP/LanguageServer/Capabilities/LanguageServer+SemanticTokens.swift

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import LanguageServerProtocol
1111
extension LanguageServer {
1212
func requestSemanticTokens(for documentURI: String) async throws -> SemanticTokensResponse {
1313
do {
14-
logger.log("Requesting all tokens")
14+
// No logging, called too often
1515
let params = SemanticTokensParams(textDocument: TextDocumentIdentifier(uri: documentURI))
1616
return try await lspInstance.semanticTokensFull(params)
1717
} catch {
@@ -20,25 +20,26 @@ extension LanguageServer {
2020
}
2121
}
2222

23-
func requestSemanticTokens(
24-
for documentURI: String,
25-
forRange range: LSPRange
26-
) async throws -> SemanticTokensResponse {
27-
do {
28-
let params = SemanticTokensRangeParams(textDocument: TextDocumentIdentifier(uri: documentURI), range: range)
29-
return try await lspInstance.semanticTokensRange(params)
30-
} catch {
31-
logger.warning("requestSemanticTokens range: Error \(error)")
32-
throw error
33-
}
34-
}
23+
// Unused
24+
// func requestSemanticTokens(
25+
// for documentURI: String,
26+
// forRange range: LSPRange
27+
// ) async throws -> SemanticTokensResponse {
28+
// do {
29+
// let params = SemanticTokensRangeParams(textDocument: TextDocumentIdentifier(uri: documentURI), range: range)
30+
// return try await lspInstance.semanticTokensRange(params)
31+
// } catch {
32+
// logger.warning("requestSemanticTokens range: Error \(error)")
33+
// throw error
34+
// }
35+
// }
3536

3637
func requestSemanticTokens(
3738
for documentURI: String,
3839
previousResultId: String
3940
) async throws -> SemanticTokensDeltaResponse {
4041
do {
41-
logger.log("Requesting delta tokens")
42+
// No logging, called too often
4243
let params = SemanticTokensDeltaParams(
4344
textDocument: TextDocumentIdentifier(uri: documentURI),
4445
previousResultId: previousResultId

CodeEdit/Features/LSP/LanguageServer/LanguageServer.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -220,7 +220,7 @@ class LanguageServer<DocumentType: LanguageServerDocument> {
220220
processId: nil,
221221
locale: nil,
222222
rootPath: nil,
223-
rootUri: workspacePath,
223+
rootUri: "file://" + workspacePath, // Make it a URI
224224
initializationOptions: [],
225225
capabilities: capabilities,
226226
trace: nil,

CodeEdit/Features/LSP/LanguageServer/LanguageServerFileMap.swift

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,7 @@ class LanguageServerFileMap<DocumentType: LanguageServerDocument> {
5454
}
5555

5656
func document(for uri: DocumentUri) -> DocumentType? {
57-
let url = URL(filePath: uri)
58-
return trackedDocuments.object(forKey: url.absolutePath as NSString)
57+
return trackedDocuments.object(forKey: uri as NSString)
5958
}
6059

6160
func removeDocument(for document: DocumentType) {

0 commit comments

Comments
 (0)