diff --git a/.scripts/samples.js b/.scripts/samples.js index aa321d27..150cba2c 100644 --- a/.scripts/samples.js +++ b/.scripts/samples.js @@ -65,27 +65,6 @@ const samples = [{ contributions: [] }, // { description: 'legacy-samples', path: 'legacy-samples', guide: null, apis: [], contributions: [] }, - { - description: 'LSP Sample', - path: 'lsp-sample', - guide: '/api/language-extensions/smart-editing-lsp-guide', - apis: [], - contributions: [] - }, - { - description: 'LSP Log Streaming Sample', - path: 'lsp-log-streaming-sample', - guide: null, - apis: [], - contributions: [] - }, - { - description: 'LSP Multi Root Server Sample', - path: 'lsp-multi-server-sample', - guide: 'https://github.com/Microsoft/vscode/wiki/Extension-Authoring:-Adopting-Multi-Root-Workspace-APIs#language-client--language-server', - apis: [], - contributions: [] - }, // { description: 'multi-diagnostics-sample', path: 'multi-diagnostics-sample', guide: null, apis: [], contributions: [] }, // { description: 'nodefs-provider-sample', path: 'nodefs-provider-sample', guide: null, apis: [], contributions: [] }, // { description: 'progress-sample', path: 'progress-sample', guide: null, apis: [], contributions: [] }, @@ -117,4 +96,32 @@ const samples = [{ // { description: 'webpack-sample', path: 'webpack-sample', guide: null, apis: [], contributions: [] }, ]; -module.exports = samples; \ No newline at end of file +/** @type {Sample[]} */ +const lspSamples = [ + { + description: 'LSP Sample', + path: 'lsp-sample', + guide: '/api/language-extensions/smart-editing-lsp-guide', + apis: [], + contributions: [] + }, + { + description: 'LSP Log Streaming Sample', + path: 'lsp-log-streaming-sample', + guide: null, + apis: [], + contributions: [] + }, + { + description: 'LSP Multi Root Server Sample', + path: 'lsp-multi-server-sample', + guide: 'https://github.com/Microsoft/vscode/wiki/Extension-Authoring:-Adopting-Multi-Root-Workspace-APIs#language-client--language-server', + apis: [], + contributions: [] + }, +] + +module.exports = { + samples, + lspSamples +} diff --git a/.scripts/update-readme.js b/.scripts/update-readme.js index c9a59a35..b3b687a6 100644 --- a/.scripts/update-readme.js +++ b/.scripts/update-readme.js @@ -1,12 +1,15 @@ const fs = require('fs') -const SAMPLES = require('./samples') +const { samples, lspSamples } = require('./samples') const TABLE_HEAD = ` | Sample | Guide on VS Code Website | API & Contribution | | ------ | ----- | --- |` - const TABLE_END = `` +const LSP_TABLE_HEAD = ` +| Sample | Guide on VS Code Website | API & Contribution | +| ------ | ----- | --- |` +const LSP_TABLE_END = `` const getTableRow = sample => { const descriptionCell = `[${sample.description}](${sample.path})` @@ -38,7 +41,17 @@ ${samplesMd} ${TABLE_END.trim()}` } +const getLSPSamplesTable = samples => { + const samplesMd = samples.map(s => getTableRow(s)).join('\n') + + return `${LSP_TABLE_HEAD.trim()} +${samplesMd} +${LSP_TABLE_END.trim()}` +} + const readme = fs.readFileSync('README.md', 'utf-8') -const newReadme = readme.replace(/(.|\n)*/gm, getSamplesTable(SAMPLES)) +const newReadme = readme + .replace(/(.|\n)*/gm, getSamplesTable(samples)) + .replace(/(.|\n)*/gm, getLSPSamplesTable(lspSamples)) fs.writeFileSync('README.md', newReadme) diff --git a/README.md b/README.md index f1b74574..f1e99684 100644 --- a/README.md +++ b/README.md @@ -19,12 +19,21 @@ You can expect from each sample: | [Multi Root Sample](basic-multi-root-sample) | N/A | [workspace.getWorkspaceFolder](https://vscode-ext-docs.azurewebsites.net/api/references/vscode-api#workspace.getWorkspaceFolder)
[workspace.onDidChangeWorkspaceFolders](https://vscode-ext-docs.azurewebsites.net/api/references/vscode-api#workspace.onDidChangeWorkspaceFolders) | | [Webview Sample](webview-sample) | [/api/extension-guides/webview](https://vscode-ext-docs.azurewebsites.net/api/extension-guides/webview) | [window.createWebviewPanel](https://vscode-ext-docs.azurewebsites.net/api/references/vscode-api#window.createWebviewPanel)
[window.registerWebviewPanelSerializer](https://vscode-ext-docs.azurewebsites.net/api/references/vscode-api#window.registerWebviewPanelSerializer) | | [Status Bar](statusbar-sample) | [/api/extension-guides/status-bar](https://vscode-ext-docs.azurewebsites.net/api/extension-guides/status-bar) | [StatusBarItem](https://vscode-ext-docs.azurewebsites.net/api/references/vscode-api#StatusBarItem) | +| [completions-sample](completions-sample) | N/A | [languages.registerCompletionItemProvider](https://vscode-ext-docs.azurewebsites.net/api/references/vscode-api#languages.registerCompletionItemProvider)
[CompletionItem](https://vscode-ext-docs.azurewebsites.net/api/references/vscode-api#CompletionItem)
[SnippetString](https://vscode-ext-docs.azurewebsites.net/api/references/vscode-api#SnippetString) | | [File System Provider Sample](fsprovider-sample) | N/A | [workspace.registerFileSystemProvider](https://vscode-ext-docs.azurewebsites.net/api/references/vscode-api#workspace.registerFileSystemProvider) | +| [terminal-sample](terminal-sample) | N/A | [window.createTerminal](https://vscode-ext-docs.azurewebsites.net/api/references/vscode-api#window.createTerminal)
[window.onDidChangeActiveTerminal](https://vscode-ext-docs.azurewebsites.net/api/references/vscode-api#window.onDidChangeActiveTerminal)
[window.onDidCloseTerminal](https://vscode-ext-docs.azurewebsites.net/api/references/vscode-api#window.onDidCloseTerminal)
[window.onDidOpenTerminal](https://vscode-ext-docs.azurewebsites.net/api/references/vscode-api#window.onDidOpenTerminal)
[window.Terminal](https://vscode-ext-docs.azurewebsites.net/api/references/vscode-api#window.Terminal)
[window.terminals](https://vscode-ext-docs.azurewebsites.net/api/references/vscode-api#window.terminals) | +| [tree-view-sample](tree-view-sample) | [/api/extension-guides/tree-view](https://vscode-ext-docs.azurewebsites.net/api/extension-guides/tree-view) | [window.createTreeView](https://vscode-ext-docs.azurewebsites.net/api/references/vscode-api#window.createTreeView)
[window.registerTreeDataProvider](https://vscode-ext-docs.azurewebsites.net/api/references/vscode-api#window.registerTreeDataProvider)
[TreeView](https://vscode-ext-docs.azurewebsites.net/api/references/vscode-api#TreeView)
[TreeDataProvider](https://vscode-ext-docs.azurewebsites.net/api/references/vscode-api#TreeDataProvider)
[views](https://vscode-ext-docs.azurewebsites.net/api/references/contribution-points#views)
[viewsContainers](https://vscode-ext-docs.azurewebsites.net/api/references/contribution-points#viewsContainers) | + + +### Language Protocol Server Samples + + +| Sample | Guide on VS Code Website | API & Contribution | +| ------ | ----- | --- | | [LSP Sample](lsp-sample) | [/api/language-extensions/smart-editing-lsp-guide](https://vscode-ext-docs.azurewebsites.net/api/language-extensions/smart-editing-lsp-guide) | | | [LSP Log Streaming Sample](lsp-log-streaming-sample) | N/A | | | [LSP Multi Root Server Sample](lsp-multi-server-sample) | https://github.com/Microsoft/vscode/wiki/Extension-Authoring:-Adopting-Multi-Root-Workspace-APIs#language-client--language-server | | -| [terminal-sample](terminal-sample) | N/A | [window.createTerminal](https://vscode-ext-docs.azurewebsites.net/api/references/vscode-api#window.createTerminal)
[window.onDidChangeActiveTerminal](https://vscode-ext-docs.azurewebsites.net/api/references/vscode-api#window.onDidChangeActiveTerminal)
[window.onDidCloseTerminal](https://vscode-ext-docs.azurewebsites.net/api/references/vscode-api#window.onDidCloseTerminal)
[window.onDidOpenTerminal](https://vscode-ext-docs.azurewebsites.net/api/references/vscode-api#window.onDidOpenTerminal)
[window.Terminal](https://vscode-ext-docs.azurewebsites.net/api/references/vscode-api#window.Terminal)
[window.terminals](https://vscode-ext-docs.azurewebsites.net/api/references/vscode-api#window.terminals) | - + ## :warning: Legacy Samples :warning: