diff --git a/extensions/markdown-language-features/package.json b/extensions/markdown-language-features/package.json index 43e55685b12..49c00bf6154 100644 --- a/extensions/markdown-language-features/package.json +++ b/extensions/markdown-language-features/package.json @@ -434,81 +434,63 @@ "experimental" ] }, - "markdown.experimental.validate.enabled": { + "markdown.validate.enabled": { "type": "boolean", "scope": "resource", - "description": "%configuration.markdown.experimental.validate.enabled.description%", - "default": false, - "tags": [ - "experimental" - ] + "description": "%configuration.markdown.validate.enabled.description%", + "default": false }, - "markdown.experimental.validate.referenceLinks.enabled": { + "markdown.validate.referenceLinks.enabled": { "type": "string", "scope": "resource", - "markdownDescription": "%configuration.markdown.experimental.validate.referenceLinks.enabled.description%", + "markdownDescription": "%configuration.markdown.validate.referenceLinks.enabled.description%", "default": "warning", "enum": [ "ignore", "warning", "error" - ], - "tags": [ - "experimental" ] }, - "markdown.experimental.validate.fragmentLinks.enabled": { + "markdown.validate.fragmentLinks.enabled": { "type": "string", "scope": "resource", - "markdownDescription": "%configuration.markdown.experimental.validate.fragmentLinks.enabled.description%", + "markdownDescription": "%configuration.markdown.validate.fragmentLinks.enabled.description%", "default": "warning", "enum": [ "ignore", "warning", "error" - ], - "tags": [ - "experimental" ] }, - "markdown.experimental.validate.fileLinks.enabled": { + "markdown.validate.fileLinks.enabled": { "type": "string", "scope": "resource", - "markdownDescription": "%configuration.markdown.experimental.validate.fileLinks.enabled.description%", + "markdownDescription": "%configuration.markdown.validate.fileLinks.enabled.description%", "default": "warning", "enum": [ "ignore", "warning", "error" - ], - "tags": [ - "experimental" ] }, - "markdown.experimental.validate.fileLinks.markdownFragmentLinks": { + "markdown.validate.fileLinks.markdownFragmentLinks": { "type": "string", "scope": "resource", - "markdownDescription": "%configuration.markdown.experimental.validate.fileLinks.markdownFragmentLinks.description%", + "markdownDescription": "%configuration.markdown.validate.fileLinks.markdownFragmentLinks.description%", "default": "ignore", "enum": [ "ignore", "warning", "error" - ], - "tags": [ - "experimental" ] }, - "markdown.experimental.validate.ignoreLinks": { + "markdown.validate.ignoredLinks": { "type": "array", "scope": "resource", - "markdownDescription": "%configuration.markdown.experimental.validate.ignoreLinks.description%", + "markdownDescription": "%configuration.markdown.validate.ignoredLinks.description%", "items": { "type": "string" - }, - "tags": [ - "experimental" - ] + } }, "markdown.experimental.updateLinksOnFileMove.enabled": { "type": "string", diff --git a/extensions/markdown-language-features/package.nls.json b/extensions/markdown-language-features/package.nls.json index d4cea703cc2..3aae783308d 100644 --- a/extensions/markdown-language-features/package.nls.json +++ b/extensions/markdown-language-features/package.nls.json @@ -31,12 +31,12 @@ "configuration.markdown.suggest.paths.enabled.description": "Enable/disable path suggestions for markdown links", "configuration.markdown.editor.drop.enabled": "Enable/disable dropping into the markdown editor to insert shift. Requires enabling `#editor.dropIntoEditor.enabled#`.", "configuration.markdown.editor.pasteLinks.enabled": "Enable/disable pasting files into a Markdown editor inserts Markdown links. Requires enabling `#editor.experimental.pasteActions.enabled#`.", - "configuration.markdown.experimental.validate.enabled.description": "Enable/disable all error reporting in Markdown files.", - "configuration.markdown.experimental.validate.referenceLinks.enabled.description": "Validate reference links in Markdown files, e.g. `[link][ref]`. Requires enabling `#markdown.experimental.validate.enabled#`.", - "configuration.markdown.experimental.validate.fragmentLinks.enabled.description": "Validate fragment links to headers in the current Markdown file, e.g. `[link](#header)`. Requires enabling `#markdown.experimental.validate.enabled#`.", - "configuration.markdown.experimental.validate.fileLinks.enabled.description": "Validate links to other files in Markdown files, e.g. `[link](/path/to/file.md)`. This checks that the target files exists. Requires enabling `#markdown.experimental.validate.enabled#`.", - "configuration.markdown.experimental.validate.fileLinks.markdownFragmentLinks.description": "Validate the fragment part of links to headers in other files in Markdown files, e.g. `[link](/path/to/file.md#header)`. Inherits the setting value from `#markdown.experimental.validate.fragmentLinks.enabled#` by default.", - "configuration.markdown.experimental.validate.ignoreLinks.description": "Configure links that should not be validated. For example `/about` would not validate the link `[about](/about)`, while the glob `/assets/**/*.svg` would let you skip validation for any link to `.svg` files under the `assets` directory.", + "configuration.markdown.validate.enabled.description": "Enable/disable all error reporting in Markdown files.", + "configuration.markdown.validate.referenceLinks.enabled.description": "Validate reference links in Markdown files, e.g. `[link][ref]`. Requires enabling `#markdown.validate.enabled#`.", + "configuration.markdown.validate.fragmentLinks.enabled.description": "Validate fragment links to headers in the current Markdown file, e.g. `[link](#header)`. Requires enabling `#markdown.validate.enabled#`.", + "configuration.markdown.validate.fileLinks.enabled.description": "Validate links to other files in Markdown files, e.g. `[link](/path/to/file.md)`. This checks that the target files exists. Requires enabling `#markdown.validate.enabled#`.", + "configuration.markdown.validate.fileLinks.markdownFragmentLinks.description": "Validate the fragment part of links to headers in other files in Markdown files, e.g. `[link](/path/to/file.md#header)`. Inherits the setting value from `#markdown.validate.fragmentLinks.enabled#` by default.", + "configuration.markdown.validate.ignoredLinks.description": "Configure links that should not be validated. For example adding `/about` would not validate the link `[about](/about)`, while the glob `/assets/**/*.svg` would let you skip validation for any link to `.svg` files under the `assets` directory.", "configuration.markdown.experimental.updateLinksOnFileMove.enabled": "Try to update links in Markdown files when a file is renamed/moved in the workspace. Use `#markdown.experimental.updateLinksOnFileMove.externalFileGlobs#` to configure which files trigger link updates.", "configuration.markdown.experimental.updateLinksOnFileMove.enabled.prompt": "Prompt on each file move.", "configuration.markdown.experimental.updateLinksOnFileMove.enabled.always": "Always update links automatically.", diff --git a/extensions/markdown-language-features/server/README.md b/extensions/markdown-language-features/server/README.md index 49670fc800d..761baf37719 100644 --- a/extensions/markdown-language-features/server/README.md +++ b/extensions/markdown-language-features/server/README.md @@ -36,7 +36,7 @@ This server uses the [Markdown Language Service](https://github.com/microsoft/vs - (experimental) Updating links when a file is moved / renamed. Uses a custom `markdown/getEditForFileRenames` message. -- (experimental) [Pull diagnostics (validation)](https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#textDocument_pullDiagnostics) for links. +- [Pull diagnostics (validation)](https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#textDocument_pullDiagnostics) for links. ## Client requirements @@ -56,17 +56,16 @@ The server supports the following settings: - `suggest` - `paths` - `enabled` — Enable/disable path suggestions. - - `experimental` - - `validate` - - `enabled` — Enable/disable all validation. - - `referenceLinks` - - `enabled` — Enable/disable validation of reference links: `[text][ref]` - - `fragmentLinks` - - `enabled` — Enable/disable validation of links to fragments in the current files: `[text](#head)` - - `fileLinks` - - `enabled` — Enable/disable validation of links to file in the workspace. - - `markdownFragmentLinks` — Enable/disable validation of links to headers in other Markdown files. - - `ignoreLinks` — Array of glob patterns for files that should not be validated. + - `validate` + - `enabled` — Enable/disable all validation. + - `referenceLinks` + - `enabled` — Enable/disable validation of reference links: `[text][ref]` + - `fragmentLinks` + - `enabled` — Enable/disable validation of links to fragments in the current files: `[text](#head)` + - `fileLinks` + - `enabled` — Enable/disable validation of links to file in the workspace. + - `markdownFragmentLinks` — Enable/disable validation of links to headers in other Markdown files. + - `ignoredLinks` — Array of glob patterns for files that should not be validated. ### Custom requests diff --git a/extensions/markdown-language-features/server/src/configuration.ts b/extensions/markdown-language-features/server/src/configuration.ts index 5066b3110a6..69358261f82 100644 --- a/extensions/markdown-language-features/server/src/configuration.ts +++ b/extensions/markdown-language-features/server/src/configuration.ts @@ -16,21 +16,19 @@ interface Settings { }; }; - readonly experimental: { - readonly validate: { - readonly enabled: true; - readonly referenceLinks: { - readonly enabled: ValidateEnabled; - }; - readonly fragmentLinks: { - readonly enabled: ValidateEnabled; - }; - readonly fileLinks: { - readonly enabled: ValidateEnabled; - readonly markdownFragmentLinks: ValidateEnabled; - }; - readonly ignoreLinks: readonly string[]; + readonly validate: { + readonly enabled: true; + readonly referenceLinks: { + readonly enabled: ValidateEnabled; }; + readonly fragmentLinks: { + readonly enabled: ValidateEnabled; + }; + readonly fileLinks: { + readonly enabled: ValidateEnabled; + readonly markdownFragmentLinks: ValidateEnabled; + }; + readonly ignoredLinks: readonly string[]; }; }; } @@ -56,4 +54,4 @@ export class ConfigurationManager extends Disposable { public getSettings(): Settings | undefined { return this._settings; } -} \ No newline at end of file +} diff --git a/extensions/markdown-language-features/server/src/languageFeatures/diagnostics.ts b/extensions/markdown-language-features/server/src/languageFeatures/diagnostics.ts index 092f337f949..d0f4d9c73af 100644 --- a/extensions/markdown-language-features/server/src/languageFeatures/diagnostics.ts +++ b/extensions/markdown-language-features/server/src/languageFeatures/diagnostics.ts @@ -5,10 +5,10 @@ import { Connection, FullDocumentDiagnosticReport, TextDocuments, UnchangedDocumentDiagnosticReport } from 'vscode-languageserver'; import * as md from 'vscode-markdown-languageservice'; -import { disposeAll } from 'vscode-markdown-languageservice/out/util/dispose'; import { Disposable } from 'vscode-notebook-renderer/events'; import { URI } from 'vscode-uri'; import { ConfigurationManager, ValidateEnabled } from '../configuration'; +import { disposeAll } from '../util/dispose'; const defaultDiagnosticOptions: md.DiagnosticOptions = { validateFileLinks: md.DiagnosticLevel.ignore, @@ -34,11 +34,11 @@ function getDiagnosticsOptions(config: ConfigurationManager): md.DiagnosticOptio } return { - validateFileLinks: convertDiagnosticLevel(settings.markdown.experimental.validate.fileLinks.enabled), - validateReferences: convertDiagnosticLevel(settings.markdown.experimental.validate.referenceLinks.enabled), - validateFragmentLinks: convertDiagnosticLevel(settings.markdown.experimental.validate.fragmentLinks.enabled), - validateMarkdownFileLinkFragments: convertDiagnosticLevel(settings.markdown.experimental.validate.fileLinks.markdownFragmentLinks), - ignoreLinks: settings.markdown.experimental.validate.ignoreLinks, + validateFileLinks: convertDiagnosticLevel(settings.markdown.validate.fileLinks.enabled), + validateReferences: convertDiagnosticLevel(settings.markdown.validate.referenceLinks.enabled), + validateFragmentLinks: convertDiagnosticLevel(settings.markdown.validate.fragmentLinks.enabled), + validateMarkdownFileLinkFragments: convertDiagnosticLevel(settings.markdown.validate.fileLinks.markdownFragmentLinks), + ignoreLinks: settings.markdown.validate.ignoredLinks, }; } @@ -69,7 +69,7 @@ export function registerValidateSupport( connection.languages.diagnostics.on(async (params, token): Promise => { logger.log(md.LogLevel.Trace, 'Server: connection.languages.diagnostics.on', params.textDocument.uri); - if (!config.getSettings()?.markdown.experimental.validate.enabled) { + if (!config.getSettings()?.markdown.validate.enabled) { return emptyDiagnosticsResponse; } diff --git a/extensions/markdown-language-features/src/languageFeatures/diagnostics.ts b/extensions/markdown-language-features/src/languageFeatures/diagnostics.ts index 6ae36b84aaf..30c6b5be49c 100644 --- a/extensions/markdown-language-features/src/languageFeatures/diagnostics.ts +++ b/extensions/markdown-language-features/src/languageFeatures/diagnostics.ts @@ -33,7 +33,7 @@ class AddToIgnoreLinksQuickFixProvider implements vscode.CodeActionProvider { const commandReg = commandManager.register({ id: AddToIgnoreLinksQuickFixProvider._addToIgnoreLinksCommandId, execute(resource: vscode.Uri, path: string) { - const settingId = 'experimental.validate.ignoreLinks'; + const settingId = 'validate.ignoredLinks'; const config = vscode.workspace.getConfiguration('markdown', resource); const paths = new Set(config.get(settingId, [])); paths.add(path);