src/Tools/VSCode/extension/src/preview.ts
changeset 65987 44e44bfc738a
parent 65986 d2b2f08533c5
child 65994 46123b9dadc8
equal deleted inserted replaced
65986:d2b2f08533c5 65987:44e44bfc738a
    72   content_provider = new Content_Provider()
    72   content_provider = new Content_Provider()
    73   context.subscriptions.push(
    73   context.subscriptions.push(
    74     workspace.registerTextDocumentContentProvider(preview_uri_scheme, content_provider),
    74     workspace.registerTextDocumentContentProvider(preview_uri_scheme, content_provider),
    75     content_provider)
    75     content_provider)
    76 
    76 
    77   language_client.onNotification(protocol.preview_response_type,
    77   language_client.onNotification(protocol.preview_response_type, params =>
    78     params => show_preview(Uri.parse(params.uri), params.column, params.label, params.content))
    78     {
       
    79       const preview_uri = encode_preview(Uri.parse(params.uri))
       
    80       if (preview_uri) {
       
    81         preview_content.set(preview_uri.toString(), params.content)
       
    82         if (params.column == 0) content_provider.update(preview_uri)
       
    83         else commands.executeCommand("vscode.previewHtml", preview_uri, params.column, params.label)
       
    84       }
       
    85     })
    79 }
    86 }
    80 
    87 
    81 
    88 
    82 /* commands */
    89 /* commands */
    83 
    90 
    89   else if (!split) return active_editor.viewColumn
    96   else if (!split) return active_editor.viewColumn
    90   else if (active_editor.viewColumn === ViewColumn.One) return ViewColumn.Two
    97   else if (active_editor.viewColumn === ViewColumn.One) return ViewColumn.Two
    91   else return ViewColumn.Three
    98   else return ViewColumn.Three
    92 }
    99 }
    93 
   100 
    94 export function update_preview(preview_uri: Uri)
   101 export function request(uri?: Uri, split: boolean = false)
    95 {
       
    96   const document_uri = decode_preview(preview_uri)
       
    97   if (document_uri && language_client) {
       
    98     language_client.sendNotification(protocol.preview_request_type,
       
    99       { uri: document_uri.toString(), column: 0 })
       
   100   }
       
   101 }
       
   102 
       
   103 export function request_preview(uri?: Uri, split: boolean = false)
       
   104 {
   102 {
   105   const document_uri = uri || window.activeTextEditor.document.uri
   103   const document_uri = uri || window.activeTextEditor.document.uri
   106   const preview_uri = encode_preview(document_uri)
   104   const preview_uri = encode_preview(document_uri)
   107   if (preview_uri && language_client) {
   105   if (preview_uri && language_client) {
   108     language_client.sendNotification(protocol.preview_request_type,
   106     language_client.sendNotification(protocol.preview_request_type,
   109       { uri: document_uri.toString(), column: preview_column(split) })
   107       { uri: document_uri.toString(), column: preview_column(split) })
   110   }
   108   }
   111 }
   109 }
   112 
   110 
   113 export function show_preview(document_uri: Uri, column: number, label: string, content: string)
   111 export function update(preview_uri: Uri)
   114 {
   112 {
   115   const preview_uri = encode_preview(document_uri)
   113   const document_uri = decode_preview(preview_uri)
   116   if (preview_uri && content_provider) {
   114   if (document_uri && language_client) {
   117     preview_content.set(preview_uri.toString(), content)
   115     language_client.sendNotification(protocol.preview_request_type,
   118     if (column == 0) content_provider.update(preview_uri)
   116       { uri: document_uri.toString(), column: 0 })
   119     else commands.executeCommand("vscode.previewHtml", preview_uri, column, label)
       
   120   }
   117   }
   121 }
   118 }
   122 
   119 
   123 export function show_source(preview_uri: Uri)
   120 export function source(preview_uri: Uri)
   124 {
   121 {
   125   const document_uri = decode_preview(preview_uri)
   122   const document_uri = decode_preview(preview_uri)
   126   if (document_uri) {
   123   if (document_uri) {
   127     const editor =
   124     const editor =
   128       window.visibleTextEditors.find(editor =>
   125       window.visibleTextEditors.find(editor =>