@@ -20,6 +20,7 @@ import { createDocument } from './razorDocumentFactory';
20
20
import { razorInitializeCommand } from '../../../lsptoolshost/razor/razorCommands' ;
21
21
import { PlatformInformation } from '../../../shared/platform' ;
22
22
import { v4 as uuidv4 } from 'uuid' ;
23
+ import { ServerTextChange } from '../rpc/serverTextChange' ;
23
24
24
25
export class RazorDocumentManager implements IRazorDocumentManager {
25
26
public roslynActivated = false ;
@@ -158,7 +159,7 @@ export class RazorDocumentManager implements IRazorDocumentManager {
158
159
159
160
const document = this . _getDocument ( uri ) ;
160
161
161
- this . notifyDocumentChange ( document , RazorDocumentChangeKind . opened ) ;
162
+ this . notifyDocumentChange ( document , RazorDocumentChangeKind . opened , [ ] ) ;
162
163
}
163
164
164
165
public async ensureRazorInitialized ( ) {
@@ -189,7 +190,7 @@ export class RazorDocumentManager implements IRazorDocumentManager {
189
190
}
190
191
}
191
192
192
- this . notifyDocumentChange ( document , RazorDocumentChangeKind . closed ) ;
193
+ this . notifyDocumentChange ( document , RazorDocumentChangeKind . closed , [ ] ) ;
193
194
}
194
195
195
196
private addDocument ( uri : vscode . Uri ) : IRazorDocument {
@@ -203,7 +204,7 @@ export class RazorDocumentManager implements IRazorDocumentManager {
203
204
document = createDocument ( uri ) ;
204
205
this . razorDocuments [ document . path ] = document ;
205
206
206
- this . notifyDocumentChange ( document , RazorDocumentChangeKind . added ) ;
207
+ this . notifyDocumentChange ( document , RazorDocumentChangeKind . added , [ ] ) ;
207
208
208
209
return document ;
209
210
}
@@ -212,7 +213,7 @@ export class RazorDocumentManager implements IRazorDocumentManager {
212
213
const document = this . _getDocument ( uri ) ;
213
214
delete this . razorDocuments [ document . path ] ;
214
215
215
- this . notifyDocumentChange ( document , RazorDocumentChangeKind . removed ) ;
216
+ this . notifyDocumentChange ( document , RazorDocumentChangeKind . removed , [ ] ) ;
216
217
}
217
218
218
219
private findDocument ( path : string ) {
@@ -237,16 +238,6 @@ export class RazorDocumentManager implements IRazorDocumentManager {
237
238
) ;
238
239
}
239
240
240
- if ( updateBufferRequest . changes . length === 0 && ! updateBufferRequest . previousWasEmpty ) {
241
- if ( this . logger . verboseEnabled ) {
242
- this . logger . logVerbose (
243
- `Update for '${ updateBufferRequest . hostDocumentFilePath } ' was empty. This shouldn't happen because it means the language server is doing extra work.`
244
- ) ;
245
- }
246
-
247
- return ;
248
- }
249
-
250
241
const hostDocumentUri = vscode . Uri . file ( updateBufferRequest . hostDocumentFilePath ) ;
251
242
const document = this . _getDocument ( hostDocumentUri ) ;
252
243
const projectedDocument = document . csharpDocument ;
@@ -277,7 +268,7 @@ export class RazorDocumentManager implements IRazorDocumentManager {
277
268
updateBufferRequest . encodingCodePage
278
269
) ;
279
270
280
- this . notifyDocumentChange ( document , RazorDocumentChangeKind . csharpChanged ) ;
271
+ this . notifyDocumentChange ( document , RazorDocumentChangeKind . csharpChanged , updateBufferRequest . changes ) ;
281
272
} else {
282
273
this . logger . logWarning (
283
274
'Failed to update the C# document buffer. This is unexpected and may result in incorrect C# interactions.'
@@ -320,24 +311,27 @@ export class RazorDocumentManager implements IRazorDocumentManager {
320
311
321
312
htmlProjectedDocument . update ( updateBufferRequest . changes , updateBufferRequest . hostDocumentVersion ) ;
322
313
323
- this . notifyDocumentChange ( document , RazorDocumentChangeKind . htmlChanged ) ;
314
+ this . notifyDocumentChange ( document , RazorDocumentChangeKind . htmlChanged , updateBufferRequest . changes ) ;
324
315
} else {
325
316
this . logger . logWarning (
326
317
'Failed to update the HTML document buffer. This is unexpected and may result in incorrect HTML interactions.'
327
318
) ;
328
319
}
329
320
}
330
321
331
- private notifyDocumentChange ( document : IRazorDocument , kind : RazorDocumentChangeKind ) {
322
+ private notifyDocumentChange ( document : IRazorDocument , kind : RazorDocumentChangeKind , changes : ServerTextChange [ ] ) {
332
323
if ( this . logger . verboseEnabled ) {
333
324
this . logger . logVerbose (
334
- `Notifying document '${ getUriPath ( document . uri ) } ' changed '${ RazorDocumentChangeKind [ kind ] } '`
325
+ `Notifying document '${ getUriPath ( document . uri ) } ' changed '${ RazorDocumentChangeKind [ kind ] } ' with '${
326
+ changes . length
327
+ } ' changes.`
335
328
) ;
336
329
}
337
330
338
331
const args : IRazorDocumentChangeEvent = {
339
332
document,
340
333
kind,
334
+ changes,
341
335
} ;
342
336
343
337
this . onChangeEmitter . fire ( args ) ;
0 commit comments