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: