@@ -46,13 +46,22 @@ private func assertSingleFileRename(
46
46
let uri = DocumentURI . for ( . swift, testName: testName)
47
47
let positions = testClient. openDocument ( markedSource, uri: uri)
48
48
for marker in positions. allMarkers {
49
- let response = try await testClient. send (
50
- RenameRequest (
51
- textDocument: TextDocumentIdentifier ( uri) ,
52
- position: positions [ marker] ,
53
- newName: newName
49
+ let response : WorkspaceEdit ?
50
+ do {
51
+ response = try await testClient. send (
52
+ RenameRequest (
53
+ textDocument: TextDocumentIdentifier ( uri) ,
54
+ position: positions [ marker] ,
55
+ newName: newName
56
+ )
54
57
)
55
- )
58
+ } catch let error as ResponseError {
59
+ if error. message == " Running sourcekit-lsp with a version of sourcekitd that does not support rename " {
60
+ throw XCTSkip ( error. message)
61
+ } else {
62
+ throw error
63
+ }
64
+ }
56
65
let edits = try XCTUnwrap ( response? . changes ? [ uri] , " while performing rename at \( marker) " , file: file, line: line)
57
66
let source = extractMarkers ( markedSource) . textWithoutMarkers
58
67
let renamed = apply ( edits: edits, to: source)
@@ -127,9 +136,18 @@ private func assertMultiFileRename(
127
136
ws. testClient. send ( DidCloseTextDocumentNotification ( textDocument: TextDocumentIdentifier ( uri) ) )
128
137
}
129
138
for marker in markers {
130
- let response = try await ws. testClient. send (
131
- RenameRequest ( textDocument: TextDocumentIdentifier ( uri) , position: positions [ marker] , newName: newName)
132
- )
139
+ let response : WorkspaceEdit ?
140
+ do {
141
+ response = try await ws. testClient. send (
142
+ RenameRequest ( textDocument: TextDocumentIdentifier ( uri) , position: positions [ marker] , newName: newName)
143
+ )
144
+ } catch let error as ResponseError {
145
+ if error. message == " Running sourcekit-lsp with a version of sourcekitd that does not support rename " {
146
+ throw XCTSkip ( error. message)
147
+ } else {
148
+ throw error
149
+ }
150
+ }
133
151
let changes = try XCTUnwrap ( response? . changes)
134
152
try assertRenamedSourceMatches (
135
153
originalFiles: files,
@@ -696,9 +714,18 @@ final class RenameTests: XCTestCase {
696
714
""" ,
697
715
uri: uri
698
716
)
699
- let response = try await testClient. send (
700
- PrepareRenameRequest ( textDocument: TextDocumentIdentifier ( uri) , position: positions [ " 1️⃣ " ] )
701
- )
717
+ let response : PrepareRenameResponse ?
718
+ do {
719
+ response = try await testClient. send (
720
+ PrepareRenameRequest ( textDocument: TextDocumentIdentifier ( uri) , position: positions [ " 1️⃣ " ] )
721
+ )
722
+ } catch let error as ResponseError {
723
+ if error. message == " Running sourcekit-lsp with a version of sourcekitd that does not support rename " {
724
+ throw XCTSkip ( error. message)
725
+ } else {
726
+ throw error
727
+ }
728
+ }
702
729
let range = try XCTUnwrap ( response? . range)
703
730
let placeholder = try XCTUnwrap ( response? . placeholder)
704
731
XCTAssertEqual ( range, positions [ " 1️⃣ " ] ..< positions [ " 2️⃣ " ] )
@@ -715,9 +742,18 @@ final class RenameTests: XCTestCase {
715
742
""" ,
716
743
uri: uri
717
744
)
718
- let response = try await testClient. send (
719
- PrepareRenameRequest ( textDocument: TextDocumentIdentifier ( uri) , position: positions [ " 1️⃣ " ] )
720
- )
745
+ let response : PrepareRenameResponse ?
746
+ do {
747
+ response = try await testClient. send (
748
+ PrepareRenameRequest ( textDocument: TextDocumentIdentifier ( uri) , position: positions [ " 1️⃣ " ] )
749
+ )
750
+ } catch let error as ResponseError {
751
+ if error. message == " Running sourcekit-lsp with a version of sourcekitd that does not support rename " {
752
+ throw XCTSkip ( error. message)
753
+ } else {
754
+ throw error
755
+ }
756
+ }
721
757
let range = try XCTUnwrap ( response? . range)
722
758
let placeholder = try XCTUnwrap ( response? . placeholder)
723
759
XCTAssertEqual ( range, positions [ " 1️⃣ " ] ..< positions [ " 2️⃣ " ] )
0 commit comments