@@ -32,13 +32,21 @@ export class DebugContentProvider implements IWorkbenchContribution, ITextModelC
3232 public provideTextContent ( resource : uri ) : TPromise < IModel > {
3333
3434 let process : IProcess ;
35+ let sourceRef : number ;
36+
3537 if ( resource . query ) {
3638 const keyvalues = resource . query . split ( '&' ) ;
3739 for ( let keyvalue of keyvalues ) {
3840 const pair = keyvalue . split ( '=' ) ;
39- if ( pair . length === 2 && pair [ 0 ] === 'session' ) {
40- process = this . debugService . findProcessByUUID ( decodeURIComponent ( pair [ 1 ] ) ) ;
41- break ;
41+ if ( pair . length === 2 ) {
42+ switch ( pair [ 0 ] ) {
43+ case 'session' :
44+ process = this . debugService . findProcessByUUID ( decodeURIComponent ( pair [ 1 ] ) ) ;
45+ break ;
46+ case 'sourceRef' :
47+ sourceRef = parseInt ( pair [ 1 ] ) ;
48+ break ;
49+ }
4250 }
4351 }
4452 }
@@ -55,18 +63,26 @@ export class DebugContentProvider implements IWorkbenchContribution, ITextModelC
5563 let rawSource : DebugProtocol . Source ;
5664 if ( source ) {
5765 rawSource = source . raw ;
66+ if ( ! sourceRef ) {
67+ sourceRef = source . reference ;
68+ }
5869 } else {
59- // Remove debug: scheme
60- rawSource = { path : resource . with ( { scheme : '' , query : '' } ) . toString ( true ) } ;
70+ // create a Source
71+ rawSource = {
72+ path : resource . with ( { scheme : '' , query : '' } ) . toString ( true ) , // Remove debug: scheme
73+ sourceReference : sourceRef
74+ } ;
6175 }
6276
63- return process . session . source ( { sourceReference : source ? source . reference : undefined , source : rawSource } ) . then ( response => {
77+ return process . session . source ( { sourceReference : sourceRef , source : rawSource } ) . then ( response => {
78+
6479 const mime = response . body . mimeType || guessMimeTypes ( resource . toString ( ) ) [ 0 ] ;
6580 const modePromise = this . modeService . getOrCreateMode ( mime ) ;
6681 const model = this . modelService . createModel ( response . body . content , modePromise , resource ) ;
6782
6883 return model ;
6984 } , ( err : DebugProtocol . ErrorResponse ) => {
85+
7086 this . debugService . sourceIsNotAvailable ( resource ) ;
7187 const modePromise = this . modeService . getOrCreateMode ( MIME_TEXT ) ;
7288 const model = this . modelService . createModel ( err . message , modePromise , resource ) ;
0 commit comments