@@ -83,7 +83,7 @@ public partial record FileCreate : FileOperationItem;
8383 [ GenerateRequestMethods ( typeof ( IWorkspaceLanguageClient ) , typeof ( ILanguageClient ) ) ]
8484 [ RegistrationOptions ( typeof ( DidRenameFileRegistrationOptions ) ) ]
8585 [ Capability ( typeof ( FileOperationsWorkspaceClientCapabilities ) ) ]
86- public partial record DidRenameFileParams : FileOperationParams < FileRename > , IRequest
86+ public partial record DidRenameFileParams : RenameFileOperationParams , IRequest
8787 {
8888 public static implicit operator WillRenameFileParams ( DidRenameFileParams @params )
8989 {
@@ -99,16 +99,44 @@ public static implicit operator WillRenameFileParams(DidRenameFileParams @params
9999 [ GenerateRequestMethods ( typeof ( IWorkspaceLanguageClient ) , typeof ( ILanguageClient ) ) ]
100100 [ RegistrationOptions ( typeof ( WillRenameFileRegistrationOptions ) ) ]
101101 [ Capability ( typeof ( FileOperationsWorkspaceClientCapabilities ) ) ]
102- public partial record WillRenameFileParams : FileOperationParams < FileRename > , IRequest < WorkspaceEdit ? >
102+ public partial record WillRenameFileParams : RenameFileOperationParams , IRequest < WorkspaceEdit ? >
103103 {
104104 public static implicit operator DidRenameFileParams ( WillRenameFileParams @params )
105105 {
106106 return new ( ) { Files = @params . Files } ;
107107 }
108108 }
109109
110- /// <inheritdoc cref="FileOperationItem" />
111- public partial record FileRename : FileOperationItem ;
110+ /// <summary>
111+ /// The parameters sent in notifications/requests for user-initiated renames
112+ /// of files.
113+ ///
114+ /// @since 3.16.0
115+ /// </summary>
116+ public abstract record RenameFileOperationParams
117+ {
118+ /// <summary>
119+ /// An array of all files/folders renamed in this operation.
120+ /// When a folder is renamed, only the folder will be included, and not its children.
121+ /// </summary>
122+ public Container < FileRename > Files { get ; init ; } = null ! ;
123+ }
124+
125+ /// <summary>
126+ /// Represents information on a file/folder rename.
127+ /// </summary>
128+ public partial record FileRename
129+ {
130+ /// <summary>
131+ /// A file:// URI for the original location of the file/folder being renamed.
132+ /// </summary>
133+ public Uri OldUri { get ; init ; } = null ! ;
134+
135+ /// <summary>
136+ /// A file:// URI for the new location of the file/folder being renamed.
137+ /// </summary>
138+ public Uri NewUri { get ; init ; } = null ! ;
139+ }
112140
113141 /// <inheritdoc cref="FileOperationParams{T}" />
114142 [ Parallel ]
0 commit comments