vscode-json-languageservice 5.7.2 → 6.0.0-next.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/lib/esm/jsonContributions.d.ts +1 -1
  3. package/lib/esm/jsonLanguageService.d.ts +2 -2
  4. package/lib/esm/jsonLanguageService.js +13 -13
  5. package/lib/esm/jsonLanguageTypes.d.ts +2 -2
  6. package/lib/esm/parser/jsonParser.js +15 -3
  7. package/lib/esm/services/configuration.js +2 -2
  8. package/lib/esm/services/jsonCompletion.js +5 -5
  9. package/lib/esm/services/jsonDocumentSymbols.js +4 -4
  10. package/lib/esm/services/jsonFolding.js +1 -1
  11. package/lib/esm/services/jsonHover.js +2 -2
  12. package/lib/esm/services/jsonLinks.js +1 -1
  13. package/lib/esm/services/jsonSchemaService.js +5 -5
  14. package/lib/esm/services/jsonSelectionRanges.js +1 -1
  15. package/lib/esm/services/jsonValidation.js +2 -2
  16. package/lib/esm/services/schemas/draft-2019-09-flat.d.ts +1 -1
  17. package/lib/esm/services/schemas/draft-2020-12-flat.d.ts +1 -1
  18. package/lib/esm/utils/format.js +1 -1
  19. package/lib/esm/utils/sort.js +3 -3
  20. package/package.json +17 -14
  21. package/lib/umd/jsonContributions.d.ts +0 -21
  22. package/lib/umd/jsonContributions.js +0 -12
  23. package/lib/umd/jsonLanguageService.d.ts +0 -30
  24. package/lib/umd/jsonLanguageService.js +0 -79
  25. package/lib/umd/jsonLanguageTypes.d.ts +0 -305
  26. package/lib/umd/jsonLanguageTypes.js +0 -109
  27. package/lib/umd/jsonSchema.d.ts +0 -92
  28. package/lib/umd/jsonSchema.js +0 -12
  29. package/lib/umd/parser/jsonParser.js +0 -1365
  30. package/lib/umd/services/configuration.js +0 -536
  31. package/lib/umd/services/jsonCompletion.js +0 -982
  32. package/lib/umd/services/jsonDocumentSymbols.js +0 -285
  33. package/lib/umd/services/jsonFolding.js +0 -133
  34. package/lib/umd/services/jsonHover.js +0 -125
  35. package/lib/umd/services/jsonLinks.js +0 -85
  36. package/lib/umd/services/jsonSchemaService.js +0 -631
  37. package/lib/umd/services/jsonSelectionRanges.js +0 -74
  38. package/lib/umd/services/jsonValidation.js +0 -165
  39. package/lib/umd/services/schemas/draft-2019-09-flat.d.ts +0 -278
  40. package/lib/umd/services/schemas/draft-2019-09-flat.js +0 -314
  41. package/lib/umd/services/schemas/draft-2020-12-flat.d.ts +0 -276
  42. package/lib/umd/services/schemas/draft-2020-12-flat.js +0 -307
  43. package/lib/umd/utils/colors.js +0 -83
  44. package/lib/umd/utils/format.js +0 -33
  45. package/lib/umd/utils/glob.js +0 -137
  46. package/lib/umd/utils/json.js +0 -55
  47. package/lib/umd/utils/objects.js +0 -86
  48. package/lib/umd/utils/propertyTree.js +0 -90
  49. package/lib/umd/utils/sort.js +0 -384
  50. package/lib/umd/utils/strings.js +0 -97
package/CHANGELOG.md CHANGED
@@ -1,3 +1,11 @@
1
+ 6.0.0-next.1 / 2026-03-04
2
+ ================
3
+ * Breaking: the package is now ESM-only (`"type": "module"`) and exposes ESM entry points through `exports`.
4
+ * Breaking: CommonJS/UMD output is no longer produced. Build, test and sample scripts now target `lib/esm`.
5
+ * Updated TypeScript configuration to `NodeNext` module settings for Node ESM compatibility.
6
+ * Removed `tsconfig.esm.json` as a separate build target (the main tsconfig now covers ESM output).
7
+ * Converted build scripts in `build/` to ESM and added `npm run bundle-schemas`.
8
+
1
9
  5.7.0 / 2026-01-12
2
10
  ================
3
11
  * the error code for `SchemaResolveError` is now 0x10000 plus the error code returned by the request service.
@@ -1,4 +1,4 @@
1
- import { MarkedString, CompletionItem } from './jsonLanguageService';
1
+ import { MarkedString, CompletionItem } from './jsonLanguageService.js';
2
2
  export interface JSONWorkerContribution {
3
3
  getInfoContribution(uri: string, location: JSONPath): PromiseLike<MarkedString[]>;
4
4
  collectPropertyCompletions(uri: string, location: JSONPath, currentWord: string, addValue: boolean, isLast: boolean, result: CompletionsCollector): PromiseLike<any>;
@@ -1,10 +1,10 @@
1
- import { ASTNode, Color, ColorInformation, ColorPresentation, LanguageServiceParams, LanguageSettings, DocumentLanguageSettings, FoldingRange, JSONSchema, SelectionRange, FoldingRangesContext, DocumentSymbolsContext, ColorInformationContext as DocumentColorsContext, TextDocument, Position, CompletionItem, CompletionList, Hover, Range, SymbolInformation, Diagnostic, TextEdit, FormattingOptions, DocumentSymbol, DefinitionLink, MatchingSchema, JSONLanguageStatus, SortOptions } from './jsonLanguageTypes';
1
+ import { ASTNode, Color, ColorInformation, ColorPresentation, LanguageServiceParams, LanguageSettings, DocumentLanguageSettings, FoldingRange, JSONSchema, SelectionRange, FoldingRangesContext, DocumentSymbolsContext, ColorInformationContext as DocumentColorsContext, TextDocument, Position, CompletionItem, CompletionList, Hover, Range, SymbolInformation, Diagnostic, TextEdit, FormattingOptions, DocumentSymbol, DefinitionLink, MatchingSchema, JSONLanguageStatus, SortOptions } from './jsonLanguageTypes.js';
2
2
  import { DocumentLink } from 'vscode-languageserver-types';
3
3
  export type JSONDocument = {
4
4
  root: ASTNode | undefined;
5
5
  getNodeFromOffset(offset: number, includeRightBound?: boolean): ASTNode | undefined;
6
6
  };
7
- export * from './jsonLanguageTypes';
7
+ export * from './jsonLanguageTypes.js';
8
8
  export interface LanguageService {
9
9
  configure(settings: LanguageSettings): void;
10
10
  doValidation(document: TextDocument, jsonDocument: JSONDocument, documentSettings?: DocumentLanguageSettings, schema?: JSONSchema): PromiseLike<Diagnostic[]>;
@@ -2,19 +2,19 @@
2
2
  * Copyright (c) Microsoft Corporation. All rights reserved.
3
3
  * Licensed under the MIT License. See License.txt in the project root for license information.
4
4
  *--------------------------------------------------------------------------------------------*/
5
- import { JSONCompletion } from './services/jsonCompletion';
6
- import { JSONHover } from './services/jsonHover';
7
- import { JSONValidation } from './services/jsonValidation';
8
- import { JSONDocumentSymbols } from './services/jsonDocumentSymbols';
9
- import { parse as parseJSON, newJSONDocument } from './parser/jsonParser';
10
- import { schemaContributions } from './services/configuration';
11
- import { JSONSchemaService } from './services/jsonSchemaService';
12
- import { getFoldingRanges } from './services/jsonFolding';
13
- import { getSelectionRanges } from './services/jsonSelectionRanges';
14
- import { sort } from './utils/sort';
15
- import { format } from './utils/format';
16
- import { findLinks } from './services/jsonLinks';
17
- export * from './jsonLanguageTypes';
5
+ import { JSONCompletion } from './services/jsonCompletion.js';
6
+ import { JSONHover } from './services/jsonHover.js';
7
+ import { JSONValidation } from './services/jsonValidation.js';
8
+ import { JSONDocumentSymbols } from './services/jsonDocumentSymbols.js';
9
+ import { parse as parseJSON, newJSONDocument } from './parser/jsonParser.js';
10
+ import { schemaContributions } from './services/configuration.js';
11
+ import { JSONSchemaService } from './services/jsonSchemaService.js';
12
+ import { getFoldingRanges } from './services/jsonFolding.js';
13
+ import { getSelectionRanges } from './services/jsonSelectionRanges.js';
14
+ import { sort } from './utils/sort.js';
15
+ import { format } from './utils/format.js';
16
+ import { findLinks } from './services/jsonLinks.js';
17
+ export * from './jsonLanguageTypes.js';
18
18
  export function getLanguageService(params) {
19
19
  const promise = params.promiseConstructor || Promise;
20
20
  const jsonSchemaService = new JSONSchemaService(params.schemaRequestService, params.workspaceContext, promise);
@@ -1,5 +1,5 @@
1
- import { JSONWorkerContribution, JSONPath, Segment, CompletionsCollector } from './jsonContributions';
2
- import { JSONSchema } from './jsonSchema';
1
+ import { JSONWorkerContribution, JSONPath, Segment, CompletionsCollector } from './jsonContributions.js';
2
+ import { JSONSchema } from './jsonSchema.js';
3
3
  import { Range, Position, DocumentUri, MarkupContent, MarkupKind, Color, ColorInformation, ColorPresentation, FoldingRange, FoldingRangeKind, SelectionRange, Diagnostic, DiagnosticSeverity, CompletionItem, CompletionItemKind, CompletionList, CompletionItemTag, InsertTextFormat, SymbolInformation, SymbolKind, DocumentSymbol, Location, Hover, MarkedString, FormattingOptions as LSPFormattingOptions, DefinitionLink, CodeActionContext, Command, CodeAction, DocumentHighlight, DocumentLink, WorkspaceEdit, TextEdit, CodeActionKind, TextDocumentEdit, VersionedTextDocumentIdentifier, DocumentHighlightKind } from 'vscode-languageserver-types';
4
4
  import { TextDocument, TextDocumentContentChangeEvent } from 'vscode-languageserver-textdocument';
5
5
  export { TextDocument, TextDocumentContentChangeEvent, Range, Position, DocumentUri, MarkupContent, MarkupKind, JSONSchema, JSONWorkerContribution, JSONPath, Segment, CompletionsCollector, Color, ColorInformation, ColorPresentation, FoldingRange, FoldingRangeKind, SelectionRange, Diagnostic, DiagnosticSeverity, CompletionItem, CompletionItemKind, CompletionList, CompletionItemTag, InsertTextFormat, DefinitionLink, SymbolInformation, SymbolKind, DocumentSymbol, Location, Hover, MarkedString, CodeActionContext, Command, CodeAction, DocumentHighlight, DocumentLink, WorkspaceEdit, TextEdit, CodeActionKind, TextDocumentEdit, VersionedTextDocumentIdentifier, DocumentHighlightKind };
@@ -3,9 +3,9 @@
3
3
  * Licensed under the MIT License. See License.txt in the project root for license information.
4
4
  *--------------------------------------------------------------------------------------------*/
5
5
  import * as Json from 'jsonc-parser';
6
- import { isNumber, equals, isBoolean, isString, isDefined, isObject } from '../utils/objects';
7
- import { extendedRegExp, stringLength } from '../utils/strings';
8
- import { ErrorCode, Diagnostic, DiagnosticSeverity, Range, SchemaDraft } from '../jsonLanguageTypes';
6
+ import { isNumber, equals, isBoolean, isString, isDefined, isObject } from '../utils/objects.js';
7
+ import { extendedRegExp, stringLength } from '../utils/strings.js';
8
+ import { ErrorCode, Diagnostic, DiagnosticSeverity, Range, SchemaDraft } from '../jsonLanguageTypes.js';
9
9
  import { URI } from 'vscode-uri';
10
10
  import * as l10n from '@vscode/l10n';
11
11
  const formats = {
@@ -514,6 +514,18 @@ function validate(n, schema, validationResult, matchingSchemas, context) {
514
514
  }
515
515
  valueMap.get(schema.const).push(i);
516
516
  }
517
+ else if (schema.enum && Array.isArray(schema.enum)) {
518
+ for (const enumValue of schema.enum) {
519
+ if (!constMap.has(key)) {
520
+ constMap.set(key, new Map());
521
+ }
522
+ const valueMap = constMap.get(key);
523
+ if (!valueMap.has(enumValue)) {
524
+ valueMap.set(enumValue, []);
525
+ }
526
+ valueMap.get(enumValue).push(i);
527
+ }
528
+ }
517
529
  });
518
530
  }
519
531
  return constMap;
@@ -2,8 +2,8 @@
2
2
  * Copyright (c) Microsoft Corporation. All rights reserved.
3
3
  * Licensed under the MIT License. See License.txt in the project root for license information.
4
4
  *--------------------------------------------------------------------------------------------*/
5
- import draft201909Flat from './schemas/draft-2019-09-flat';
6
- import draft202012Flat from './schemas/draft-2020-12-flat';
5
+ import draft201909Flat from './schemas/draft-2019-09-flat.js';
6
+ import draft202012Flat from './schemas/draft-2020-12-flat.js';
7
7
  import * as l10n from '@vscode/l10n';
8
8
  export const schemaContributions = {
9
9
  schemaAssociations: [],
@@ -2,12 +2,12 @@
2
2
  * Copyright (c) Microsoft Corporation. All rights reserved.
3
3
  * Licensed under the MIT License. See License.txt in the project root for license information.
4
4
  *--------------------------------------------------------------------------------------------*/
5
- import * as Parser from '../parser/jsonParser';
5
+ import * as Parser from '../parser/jsonParser.js';
6
6
  import * as Json from 'jsonc-parser';
7
- import { stringifyObject } from '../utils/json';
8
- import { endsWith, extendedRegExp } from '../utils/strings';
9
- import { isDefined } from '../utils/objects';
10
- import { CompletionItem, CompletionItemKind, Range, TextEdit, InsertTextFormat, MarkupKind } from '../jsonLanguageTypes';
7
+ import { stringifyObject } from '../utils/json.js';
8
+ import { endsWith, extendedRegExp } from '../utils/strings.js';
9
+ import { isDefined } from '../utils/objects.js';
10
+ import { CompletionItem, CompletionItemKind, Range, TextEdit, InsertTextFormat, MarkupKind } from '../jsonLanguageTypes.js';
11
11
  import * as l10n from '@vscode/l10n';
12
12
  const valueCommitCharacters = [',', '}', ']'];
13
13
  const propertyCommitCharacters = [':'];
@@ -2,11 +2,11 @@
2
2
  * Copyright (c) Microsoft Corporation. All rights reserved.
3
3
  * Licensed under the MIT License. See License.txt in the project root for license information.
4
4
  *--------------------------------------------------------------------------------------------*/
5
- import * as Parser from '../parser/jsonParser';
6
- import * as Strings from '../utils/strings';
7
- import { colorFromHex } from '../utils/colors';
5
+ import * as Parser from '../parser/jsonParser.js';
6
+ import * as Strings from '../utils/strings.js';
7
+ import { colorFromHex } from '../utils/colors.js';
8
8
  import * as l10n from '@vscode/l10n';
9
- import { Range, TextEdit, SymbolKind, Location } from "../jsonLanguageTypes";
9
+ import { Range, TextEdit, SymbolKind, Location } from "../jsonLanguageTypes.js";
10
10
  export class JSONDocumentSymbols {
11
11
  constructor(schemaService) {
12
12
  this.schemaService = schemaService;
@@ -3,7 +3,7 @@
3
3
  * Licensed under the MIT License. See License.txt in the project root for license information.
4
4
  *--------------------------------------------------------------------------------------------*/
5
5
  import { createScanner } from 'jsonc-parser';
6
- import { FoldingRangeKind, Position } from '../jsonLanguageTypes';
6
+ import { FoldingRangeKind, Position } from '../jsonLanguageTypes.js';
7
7
  export function getFoldingRanges(document, context) {
8
8
  const ranges = [];
9
9
  const nestingLevels = [];
@@ -2,8 +2,8 @@
2
2
  * Copyright (c) Microsoft Corporation. All rights reserved.
3
3
  * Licensed under the MIT License. See License.txt in the project root for license information.
4
4
  *--------------------------------------------------------------------------------------------*/
5
- import * as Parser from '../parser/jsonParser';
6
- import { Range } from '../jsonLanguageTypes';
5
+ import * as Parser from '../parser/jsonParser.js';
6
+ import { Range } from '../jsonLanguageTypes.js';
7
7
  export class JSONHover {
8
8
  constructor(schemaService, contributions = [], promiseConstructor) {
9
9
  this.schemaService = schemaService;
@@ -2,7 +2,7 @@
2
2
  * Copyright (c) Microsoft Corporation. All rights reserved.
3
3
  * Licensed under the MIT License. See License.txt in the project root for license information.
4
4
  *--------------------------------------------------------------------------------------------*/
5
- import { Range } from '../jsonLanguageTypes';
5
+ import { Range } from '../jsonLanguageTypes.js';
6
6
  export function findLinks(document, doc) {
7
7
  const links = [];
8
8
  doc.visit(node => {
@@ -4,12 +4,12 @@
4
4
  *--------------------------------------------------------------------------------------------*/
5
5
  import * as Json from 'jsonc-parser';
6
6
  import { URI } from 'vscode-uri';
7
- import * as Strings from '../utils/strings';
8
- import { asSchema, getSchemaDraftFromId, normalizeId } from '../parser/jsonParser';
9
- import { SchemaDraft, ErrorCode } from '../jsonLanguageTypes';
7
+ import * as Strings from '../utils/strings.js';
8
+ import { asSchema, getSchemaDraftFromId, normalizeId } from '../parser/jsonParser.js';
9
+ import { SchemaDraft, ErrorCode } from '../jsonLanguageTypes.js';
10
10
  import * as l10n from '@vscode/l10n';
11
- import { createRegex } from '../utils/glob';
12
- import { isObject, isString } from '../utils/objects';
11
+ import { createRegex } from '../utils/glob.js';
12
+ import { isObject, isString } from '../utils/objects.js';
13
13
  import { Range } from 'vscode-languageserver-types';
14
14
  const BANG = '!';
15
15
  const PATH_SEP = '/';
@@ -2,7 +2,7 @@
2
2
  * Copyright (c) Microsoft Corporation. All rights reserved.
3
3
  * Licensed under the MIT License. See License.txt in the project root for license information.
4
4
  *--------------------------------------------------------------------------------------------*/
5
- import { Range, SelectionRange } from '../jsonLanguageTypes';
5
+ import { Range, SelectionRange } from '../jsonLanguageTypes.js';
6
6
  import { createScanner } from 'jsonc-parser';
7
7
  export function getSelectionRanges(document, positions, doc) {
8
8
  function getSelectionRange(position) {
@@ -2,9 +2,9 @@
2
2
  * Copyright (c) Microsoft Corporation. All rights reserved.
3
3
  * Licensed under the MIT License. See License.txt in the project root for license information.
4
4
  *--------------------------------------------------------------------------------------------*/
5
- import { ErrorCode, Diagnostic, DiagnosticSeverity, Range } from '../jsonLanguageTypes';
5
+ import { ErrorCode, Diagnostic, DiagnosticSeverity, Range } from '../jsonLanguageTypes.js';
6
6
  import * as l10n from '@vscode/l10n';
7
- import { isBoolean } from '../utils/objects';
7
+ import { isBoolean } from '../utils/objects.js';
8
8
  export class JSONValidation {
9
9
  constructor(jsonSchemaService, promiseConstructor) {
10
10
  this.jsonSchemaService = jsonSchemaService;
@@ -271,7 +271,7 @@ declare const _default: {
271
271
  type: string;
272
272
  };
273
273
  uniqueItems: boolean;
274
- default: any[];
274
+ default: never[];
275
275
  };
276
276
  };
277
277
  };
@@ -269,7 +269,7 @@ declare const _default: {
269
269
  type: string;
270
270
  };
271
271
  uniqueItems: boolean;
272
- default: any[];
272
+ default: never[];
273
273
  };
274
274
  };
275
275
  };
@@ -1,5 +1,5 @@
1
1
  import { format as formatJSON } from 'jsonc-parser';
2
- import { Range, TextEdit } from '../jsonLanguageTypes';
2
+ import { Range, TextEdit } from '../jsonLanguageTypes.js';
3
3
  export function format(documentToFormat, formattingOptions, formattingRange) {
4
4
  let range = undefined;
5
5
  if (formattingRange) {
@@ -3,9 +3,9 @@
3
3
  * Licensed under the MIT License. See License.txt in the project root for license information.
4
4
  *--------------------------------------------------------------------------------------------*/
5
5
  import { createScanner } from 'jsonc-parser';
6
- import { TextDocument, TextEdit, Position, Range } from '../jsonLanguageTypes';
7
- import { format } from './format';
8
- import { PropertyTree, Container } from './propertyTree';
6
+ import { TextDocument, TextEdit, Position, Range } from '../jsonLanguageTypes.js';
7
+ import { format } from './format.js';
8
+ import { PropertyTree, Container } from './propertyTree.js';
9
9
  export function sort(documentToSort, formattingOptions) {
10
10
  const options = {
11
11
  ...formattingOptions,
package/package.json CHANGED
@@ -1,10 +1,15 @@
1
1
  {
2
2
  "name": "vscode-json-languageservice",
3
- "version": "5.7.2",
3
+ "version": "6.0.0-next.1",
4
4
  "description": "Language service for JSON",
5
- "main": "./lib/umd/jsonLanguageService.js",
6
- "typings": "./lib/umd/jsonLanguageService",
7
- "module": "./lib/esm/jsonLanguageService.js",
5
+ "type": "module",
6
+ "types": "./lib/esm/jsonLanguageService.d.ts",
7
+ "exports": {
8
+ ".": {
9
+ "types": "./lib/esm/jsonLanguageService.d.ts",
10
+ "import": "./lib/esm/jsonLanguageService.js"
11
+ }
12
+ },
8
13
  "author": "Microsoft Corporation",
9
14
  "repository": {
10
15
  "type": "git",
@@ -15,36 +20,34 @@
15
20
  "url": "https://github.com/Microsoft/vscode-json-languageservice"
16
21
  },
17
22
  "devDependencies": {
18
- "@types/mocha": "^10.0.10",
19
23
  "@types/node": "22.x",
20
- "@typescript-eslint/eslint-plugin": "^8.56.0",
21
- "@typescript-eslint/parser": "^8.56.0",
22
- "eslint": "^9.39.3",
24
+ "@typescript-eslint/eslint-plugin": "^8.57.0",
25
+ "@typescript-eslint/parser": "^8.57.0",
26
+ "eslint": "^9.39.4",
23
27
  "json-schema-test-suite": "https://github.com/json-schema-org/JSON-Schema-Test-Suite.git#69acf52990b004240839ae19b4bec8fb01d50876",
24
- "mocha": "^11.7.5",
25
28
  "rimraf": "^6.1.3",
26
29
  "typescript": "^5.9.3"
27
30
  },
28
31
  "dependencies": {
29
- "jsonc-parser": "^3.3.1",
32
+ "jsonc-parser": "4.0.0-next.1",
30
33
  "vscode-languageserver-textdocument": "^1.0.12",
31
34
  "vscode-languageserver-types": "^3.17.5",
32
35
  "vscode-uri": "^3.1.0",
33
36
  "@vscode/l10n": "^0.0.18"
34
37
  },
35
38
  "scripts": {
36
- "prepack": "npm run clean && npm run compile-esm && npm run test && npm run remove-sourcemap-refs",
39
+ "prepack": "npm run clean && npm run compile && npm run test && npm run remove-sourcemap-refs",
37
40
  "compile": "tsc -p ./src",
38
- "compile-esm": "tsc -p ./src/tsconfig.esm.json",
39
41
  "clean": "rimraf lib",
42
+ "bundle-schemas": "node ./build/bundle-schemas.js",
40
43
  "remove-sourcemap-refs": "node ./build/remove-sourcemap-refs.js",
41
44
  "watch": "tsc -w -p ./src",
42
45
  "pretest": "npm run compile",
43
- "test": "mocha",
46
+ "test": "node --test ./lib/esm/test/*.test.js",
44
47
  "posttest": "npm run lint",
45
48
  "coverage": "npx nyc -r lcov npm run test",
46
49
  "lint": "eslint src/**/*.ts",
47
50
  "install-types-next": "npm install vscode-languageserver-types@next -f -S && npm install vscode-languageserver-textdocument@next -f -S",
48
- "sample": "npm run compile && node ./lib/umd/example/sample.js"
51
+ "sample": "npm run compile && node ./lib/esm/example/sample.js"
49
52
  }
50
53
  }
@@ -1,21 +0,0 @@
1
- import { MarkedString, CompletionItem } from './jsonLanguageService';
2
- export interface JSONWorkerContribution {
3
- getInfoContribution(uri: string, location: JSONPath): PromiseLike<MarkedString[]>;
4
- collectPropertyCompletions(uri: string, location: JSONPath, currentWord: string, addValue: boolean, isLast: boolean, result: CompletionsCollector): PromiseLike<any>;
5
- collectValueCompletions(uri: string, location: JSONPath, propertyKey: string, result: CompletionsCollector): PromiseLike<any>;
6
- collectDefaultCompletions(uri: string, result: CompletionsCollector): PromiseLike<any>;
7
- resolveCompletion?(item: CompletionItem): PromiseLike<CompletionItem>;
8
- }
9
- export type Segment = string | number;
10
- export type JSONPath = Segment[];
11
- export type JSONCompletionItem = CompletionItem & {
12
- insertText: string;
13
- };
14
- export interface CompletionsCollector {
15
- add(suggestion: JSONCompletionItem & {
16
- insertText: string;
17
- }): void;
18
- error(message: string): void;
19
- setAsIncomplete(): void;
20
- getNumberOfProposals(): number;
21
- }
@@ -1,12 +0,0 @@
1
- (function (factory) {
2
- if (typeof module === "object" && typeof module.exports === "object") {
3
- var v = factory(require, exports);
4
- if (v !== undefined) module.exports = v;
5
- }
6
- else if (typeof define === "function" && define.amd) {
7
- define(["require", "exports"], factory);
8
- }
9
- })(function (require, exports) {
10
- "use strict";
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- });
@@ -1,30 +0,0 @@
1
- import { ASTNode, Color, ColorInformation, ColorPresentation, LanguageServiceParams, LanguageSettings, DocumentLanguageSettings, FoldingRange, JSONSchema, SelectionRange, FoldingRangesContext, DocumentSymbolsContext, ColorInformationContext as DocumentColorsContext, TextDocument, Position, CompletionItem, CompletionList, Hover, Range, SymbolInformation, Diagnostic, TextEdit, FormattingOptions, DocumentSymbol, DefinitionLink, MatchingSchema, JSONLanguageStatus, SortOptions } from './jsonLanguageTypes';
2
- import { DocumentLink } from 'vscode-languageserver-types';
3
- export type JSONDocument = {
4
- root: ASTNode | undefined;
5
- getNodeFromOffset(offset: number, includeRightBound?: boolean): ASTNode | undefined;
6
- };
7
- export * from './jsonLanguageTypes';
8
- export interface LanguageService {
9
- configure(settings: LanguageSettings): void;
10
- doValidation(document: TextDocument, jsonDocument: JSONDocument, documentSettings?: DocumentLanguageSettings, schema?: JSONSchema): PromiseLike<Diagnostic[]>;
11
- parseJSONDocument(document: TextDocument): JSONDocument;
12
- newJSONDocument(rootNode: ASTNode | undefined, syntaxDiagnostics?: Diagnostic[], comments?: Range[]): JSONDocument;
13
- resetSchema(uri: string): boolean;
14
- getMatchingSchemas(document: TextDocument, jsonDocument: JSONDocument, schema?: JSONSchema): PromiseLike<MatchingSchema[]>;
15
- getLanguageStatus(document: TextDocument, jsonDocument: JSONDocument): JSONLanguageStatus;
16
- doResolve(item: CompletionItem): PromiseLike<CompletionItem>;
17
- doComplete(document: TextDocument, position: Position, doc: JSONDocument): PromiseLike<CompletionList | null>;
18
- findDocumentSymbols(document: TextDocument, doc: JSONDocument, context?: DocumentSymbolsContext): SymbolInformation[];
19
- findDocumentSymbols2(document: TextDocument, doc: JSONDocument, context?: DocumentSymbolsContext): DocumentSymbol[];
20
- findDocumentColors(document: TextDocument, doc: JSONDocument, context?: DocumentColorsContext): PromiseLike<ColorInformation[]>;
21
- getColorPresentations(document: TextDocument, doc: JSONDocument, color: Color, range: Range): ColorPresentation[];
22
- doHover(document: TextDocument, position: Position, doc: JSONDocument): PromiseLike<Hover | null>;
23
- getFoldingRanges(document: TextDocument, context?: FoldingRangesContext): FoldingRange[];
24
- getSelectionRanges(document: TextDocument, positions: Position[], doc: JSONDocument): SelectionRange[];
25
- findDefinition(document: TextDocument, position: Position, doc: JSONDocument): PromiseLike<DefinitionLink[]>;
26
- findLinks(document: TextDocument, doc: JSONDocument): PromiseLike<DocumentLink[]>;
27
- format(document: TextDocument, range: Range | undefined, options: FormattingOptions): TextEdit[];
28
- sort(document: TextDocument, options: SortOptions): TextEdit[];
29
- }
30
- export declare function getLanguageService(params: LanguageServiceParams): LanguageService;
@@ -1,79 +0,0 @@
1
- /*---------------------------------------------------------------------------------------------
2
- * Copyright (c) Microsoft Corporation. All rights reserved.
3
- * Licensed under the MIT License. See License.txt in the project root for license information.
4
- *--------------------------------------------------------------------------------------------*/
5
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- var desc = Object.getOwnPropertyDescriptor(m, k);
8
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
- desc = { enumerable: true, get: function() { return m[k]; } };
10
- }
11
- Object.defineProperty(o, k2, desc);
12
- }) : (function(o, m, k, k2) {
13
- if (k2 === undefined) k2 = k;
14
- o[k2] = m[k];
15
- }));
16
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
17
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
18
- };
19
- (function (factory) {
20
- if (typeof module === "object" && typeof module.exports === "object") {
21
- var v = factory(require, exports);
22
- if (v !== undefined) module.exports = v;
23
- }
24
- else if (typeof define === "function" && define.amd) {
25
- define(["require", "exports", "./services/jsonCompletion", "./services/jsonHover", "./services/jsonValidation", "./services/jsonDocumentSymbols", "./parser/jsonParser", "./services/configuration", "./services/jsonSchemaService", "./services/jsonFolding", "./services/jsonSelectionRanges", "./utils/sort", "./utils/format", "./services/jsonLinks", "./jsonLanguageTypes"], factory);
26
- }
27
- })(function (require, exports) {
28
- "use strict";
29
- Object.defineProperty(exports, "__esModule", { value: true });
30
- exports.getLanguageService = getLanguageService;
31
- const jsonCompletion_1 = require("./services/jsonCompletion");
32
- const jsonHover_1 = require("./services/jsonHover");
33
- const jsonValidation_1 = require("./services/jsonValidation");
34
- const jsonDocumentSymbols_1 = require("./services/jsonDocumentSymbols");
35
- const jsonParser_1 = require("./parser/jsonParser");
36
- const configuration_1 = require("./services/configuration");
37
- const jsonSchemaService_1 = require("./services/jsonSchemaService");
38
- const jsonFolding_1 = require("./services/jsonFolding");
39
- const jsonSelectionRanges_1 = require("./services/jsonSelectionRanges");
40
- const sort_1 = require("./utils/sort");
41
- const format_1 = require("./utils/format");
42
- const jsonLinks_1 = require("./services/jsonLinks");
43
- __exportStar(require("./jsonLanguageTypes"), exports);
44
- function getLanguageService(params) {
45
- const promise = params.promiseConstructor || Promise;
46
- const jsonSchemaService = new jsonSchemaService_1.JSONSchemaService(params.schemaRequestService, params.workspaceContext, promise);
47
- jsonSchemaService.setSchemaContributions(configuration_1.schemaContributions);
48
- const jsonCompletion = new jsonCompletion_1.JSONCompletion(jsonSchemaService, params.contributions, promise, params.clientCapabilities);
49
- const jsonHover = new jsonHover_1.JSONHover(jsonSchemaService, params.contributions, promise);
50
- const jsonDocumentSymbols = new jsonDocumentSymbols_1.JSONDocumentSymbols(jsonSchemaService);
51
- const jsonValidation = new jsonValidation_1.JSONValidation(jsonSchemaService, promise);
52
- return {
53
- configure: (settings) => {
54
- jsonSchemaService.clearExternalSchemas();
55
- settings.schemas?.forEach(jsonSchemaService.registerExternalSchema.bind(jsonSchemaService));
56
- jsonValidation.configure(settings);
57
- },
58
- resetSchema: (uri) => jsonSchemaService.onResourceChange(uri),
59
- doValidation: jsonValidation.doValidation.bind(jsonValidation),
60
- getLanguageStatus: jsonValidation.getLanguageStatus.bind(jsonValidation),
61
- parseJSONDocument: (document) => (0, jsonParser_1.parse)(document, { collectComments: true }),
62
- newJSONDocument: (root, diagnostics, comments) => (0, jsonParser_1.newJSONDocument)(root, diagnostics, comments),
63
- getMatchingSchemas: jsonSchemaService.getMatchingSchemas.bind(jsonSchemaService),
64
- doResolve: jsonCompletion.doResolve.bind(jsonCompletion),
65
- doComplete: jsonCompletion.doComplete.bind(jsonCompletion),
66
- findDocumentSymbols: jsonDocumentSymbols.findDocumentSymbols.bind(jsonDocumentSymbols),
67
- findDocumentSymbols2: jsonDocumentSymbols.findDocumentSymbols2.bind(jsonDocumentSymbols),
68
- findDocumentColors: jsonDocumentSymbols.findDocumentColors.bind(jsonDocumentSymbols),
69
- getColorPresentations: jsonDocumentSymbols.getColorPresentations.bind(jsonDocumentSymbols),
70
- doHover: jsonHover.doHover.bind(jsonHover),
71
- getFoldingRanges: jsonFolding_1.getFoldingRanges,
72
- getSelectionRanges: jsonSelectionRanges_1.getSelectionRanges,
73
- findDefinition: () => Promise.resolve([]),
74
- findLinks: jsonLinks_1.findLinks,
75
- format: (document, range, options) => (0, format_1.format)(document, options, range),
76
- sort: (document, options) => (0, sort_1.sort)(document, options)
77
- };
78
- }
79
- });