vscode-css-languageservice 6.0.1 → 6.1.0

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 (87) hide show
  1. package/CHANGELOG.md +3 -1
  2. package/SECURITY.md +41 -0
  3. package/lib/esm/beautify/beautify-css.js +11 -4
  4. package/lib/esm/cssLanguageService.d.ts +38 -37
  5. package/lib/esm/cssLanguageService.js +73 -72
  6. package/lib/esm/cssLanguageTypes.d.ts +238 -238
  7. package/lib/esm/cssLanguageTypes.js +42 -42
  8. package/lib/esm/data/webCustomData.js +22089 -21959
  9. package/lib/esm/languageFacts/builtinData.js +142 -142
  10. package/lib/esm/languageFacts/colors.js +469 -469
  11. package/lib/esm/languageFacts/dataManager.js +88 -88
  12. package/lib/esm/languageFacts/dataProvider.js +73 -73
  13. package/lib/esm/languageFacts/entry.js +137 -137
  14. package/lib/esm/languageFacts/facts.js +8 -8
  15. package/lib/esm/parser/cssErrors.js +48 -48
  16. package/lib/esm/parser/cssNodes.js +1511 -1502
  17. package/lib/esm/parser/cssParser.js +1606 -1534
  18. package/lib/esm/parser/cssScanner.js +592 -592
  19. package/lib/esm/parser/cssSymbolScope.js +311 -311
  20. package/lib/esm/parser/lessParser.js +715 -714
  21. package/lib/esm/parser/lessScanner.js +57 -57
  22. package/lib/esm/parser/scssErrors.js +18 -18
  23. package/lib/esm/parser/scssParser.js +806 -796
  24. package/lib/esm/parser/scssScanner.js +95 -95
  25. package/lib/esm/services/cssCodeActions.js +77 -77
  26. package/lib/esm/services/cssCompletion.js +1054 -1054
  27. package/lib/esm/services/cssFolding.js +190 -190
  28. package/lib/esm/services/cssFormatter.js +136 -136
  29. package/lib/esm/services/cssHover.js +148 -148
  30. package/lib/esm/services/cssNavigation.js +441 -378
  31. package/lib/esm/services/cssSelectionRange.js +47 -47
  32. package/lib/esm/services/cssValidation.js +41 -41
  33. package/lib/esm/services/lessCompletion.js +378 -378
  34. package/lib/esm/services/lint.js +518 -518
  35. package/lib/esm/services/lintRules.js +76 -76
  36. package/lib/esm/services/lintUtil.js +196 -196
  37. package/lib/esm/services/pathCompletion.js +157 -157
  38. package/lib/esm/services/scssCompletion.js +354 -354
  39. package/lib/esm/services/scssNavigation.js +82 -82
  40. package/lib/esm/services/selectorPrinting.js +492 -492
  41. package/lib/esm/utils/arrays.js +40 -40
  42. package/lib/esm/utils/objects.js +11 -11
  43. package/lib/esm/utils/resources.js +11 -11
  44. package/lib/esm/utils/strings.js +102 -102
  45. package/lib/umd/beautify/beautify-css.js +11 -4
  46. package/lib/umd/cssLanguageService.d.ts +38 -37
  47. package/lib/umd/cssLanguageService.js +104 -99
  48. package/lib/umd/cssLanguageTypes.d.ts +238 -238
  49. package/lib/umd/cssLanguageTypes.js +89 -89
  50. package/lib/umd/data/webCustomData.js +22102 -21972
  51. package/lib/umd/languageFacts/builtinData.js +154 -154
  52. package/lib/umd/languageFacts/colors.js +492 -492
  53. package/lib/umd/languageFacts/dataManager.js +101 -101
  54. package/lib/umd/languageFacts/dataProvider.js +86 -86
  55. package/lib/umd/languageFacts/entry.js +152 -152
  56. package/lib/umd/languageFacts/facts.js +33 -29
  57. package/lib/umd/parser/cssErrors.js +61 -61
  58. package/lib/umd/parser/cssNodes.js +1597 -1587
  59. package/lib/umd/parser/cssParser.js +1619 -1547
  60. package/lib/umd/parser/cssScanner.js +606 -606
  61. package/lib/umd/parser/cssSymbolScope.js +328 -328
  62. package/lib/umd/parser/lessParser.js +728 -727
  63. package/lib/umd/parser/lessScanner.js +70 -70
  64. package/lib/umd/parser/scssErrors.js +31 -31
  65. package/lib/umd/parser/scssParser.js +819 -809
  66. package/lib/umd/parser/scssScanner.js +108 -108
  67. package/lib/umd/services/cssCodeActions.js +90 -90
  68. package/lib/umd/services/cssCompletion.js +1067 -1067
  69. package/lib/umd/services/cssFolding.js +203 -203
  70. package/lib/umd/services/cssFormatter.js +150 -150
  71. package/lib/umd/services/cssHover.js +161 -161
  72. package/lib/umd/services/cssNavigation.js +454 -391
  73. package/lib/umd/services/cssSelectionRange.js +60 -60
  74. package/lib/umd/services/cssValidation.js +54 -54
  75. package/lib/umd/services/lessCompletion.js +391 -391
  76. package/lib/umd/services/lint.js +531 -531
  77. package/lib/umd/services/lintRules.js +91 -91
  78. package/lib/umd/services/lintUtil.js +210 -210
  79. package/lib/umd/services/pathCompletion.js +171 -171
  80. package/lib/umd/services/scssCompletion.js +367 -367
  81. package/lib/umd/services/scssNavigation.js +95 -95
  82. package/lib/umd/services/selectorPrinting.js +510 -510
  83. package/lib/umd/utils/arrays.js +55 -55
  84. package/lib/umd/utils/objects.js +25 -25
  85. package/lib/umd/utils/resources.js +26 -26
  86. package/lib/umd/utils/strings.js +120 -120
  87. package/package.json +13 -12
package/CHANGELOG.md CHANGED
@@ -1,4 +1,6 @@
1
-
1
+ 6.1.0 / 2022-09-02
2
+ ================
3
+ * new API `LanguageService.findDocumentSymbols2`, returning `DocumentSymbol[]`
2
4
 
3
5
  6.0.0 / 2022-05-18
4
6
  ================
package/SECURITY.md ADDED
@@ -0,0 +1,41 @@
1
+ <!-- BEGIN MICROSOFT SECURITY.MD V0.0.7 BLOCK -->
2
+
3
+ ## Security
4
+
5
+ Microsoft takes the security of our software products and services seriously, which includes all source code repositories managed through our GitHub organizations, which include [Microsoft](https://github.com/Microsoft), [Azure](https://github.com/Azure), [DotNet](https://github.com/dotnet), [AspNet](https://github.com/aspnet), [Xamarin](https://github.com/xamarin), and [our GitHub organizations](https://opensource.microsoft.com/).
6
+
7
+ If you believe you have found a security vulnerability in any Microsoft-owned repository that meets [Microsoft's definition of a security vulnerability](https://aka.ms/opensource/security/definition), please report it to us as described below.
8
+
9
+ ## Reporting Security Issues
10
+
11
+ **Please do not report security vulnerabilities through public GitHub issues.**
12
+
13
+ Instead, please report them to the Microsoft Security Response Center (MSRC) at [https://msrc.microsoft.com/create-report](https://aka.ms/opensource/security/create-report).
14
+
15
+ If you prefer to submit without logging in, send email to [secure@microsoft.com](mailto:secure@microsoft.com). If possible, encrypt your message with our PGP key; please download it from the [Microsoft Security Response Center PGP Key page](https://aka.ms/opensource/security/pgpkey).
16
+
17
+ You should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your original message. Additional information can be found at [microsoft.com/msrc](https://aka.ms/opensource/security/msrc).
18
+
19
+ Please include the requested information listed below (as much as you can provide) to help us better understand the nature and scope of the possible issue:
20
+
21
+ * Type of issue (e.g. buffer overflow, SQL injection, cross-site scripting, etc.)
22
+ * Full paths of source file(s) related to the manifestation of the issue
23
+ * The location of the affected source code (tag/branch/commit or direct URL)
24
+ * Any special configuration required to reproduce the issue
25
+ * Step-by-step instructions to reproduce the issue
26
+ * Proof-of-concept or exploit code (if possible)
27
+ * Impact of the issue, including how an attacker might exploit the issue
28
+
29
+ This information will help us triage your report more quickly.
30
+
31
+ If you are reporting for a bug bounty, more complete reports can contribute to a higher bounty award. Please visit our [Microsoft Bug Bounty Program](https://aka.ms/opensource/security/bounty) page for more details about our active programs.
32
+
33
+ ## Preferred Languages
34
+
35
+ We prefer all communications to be in English.
36
+
37
+ ## Policy
38
+
39
+ Microsoft follows the principle of [Coordinated Vulnerability Disclosure](https://aka.ms/opensource/security/cvd).
40
+
41
+ <!-- END MICROSOFT SECURITY.MD BLOCK -->
@@ -1,5 +1,5 @@
1
1
  // copied from js-beautify/js/lib/beautify-css.js
2
- // version: 1.14.3
2
+ // version: 1.14.6
3
3
  /* AUTO-GENERATED. DO NOT MODIFY. */
4
4
  /*
5
5
 
@@ -1090,6 +1090,7 @@ function Beautifier(source_text, options) {
1090
1090
  "@document": true
1091
1091
  };
1092
1092
  this.NON_SEMICOLON_NEWLINE_PROPERTY = [
1093
+ "grid-template-areas",
1093
1094
  "grid-template"
1094
1095
  ];
1095
1096
 
@@ -1421,7 +1422,8 @@ Beautifier.prototype.beautify = function() {
1421
1422
  }
1422
1423
  }
1423
1424
  } else if (this._ch === '"' || this._ch === '\'') {
1424
- this.preserveSingleSpace(isAfterSpace);
1425
+ var preserveQuoteSpace = previous_ch === '"' || previous_ch === '\'';
1426
+ this.preserveSingleSpace(preserveQuoteSpace || isAfterSpace);
1425
1427
  this.print_string(this._ch + this.eatString(this._ch));
1426
1428
  this.eatWhitespace(true);
1427
1429
  } else if (this._ch === ';') {
@@ -1465,7 +1467,12 @@ Beautifier.prototype.beautify = function() {
1465
1467
  }
1466
1468
  }
1467
1469
  } else {
1468
- this.preserveSingleSpace(isAfterSpace);
1470
+ var space_needed = false;
1471
+ if (this._input.lookBack("with")) {
1472
+ // look back is not an accurate solution, we need tokens to confirm without whitespaces
1473
+ space_needed = true;
1474
+ }
1475
+ this.preserveSingleSpace(isAfterSpace || space_needed);
1469
1476
  this.print_string(this._ch);
1470
1477
 
1471
1478
  // handle scss/sass map
@@ -1523,7 +1530,7 @@ Beautifier.prototype.beautify = function() {
1523
1530
  this._ch = '';
1524
1531
  }
1525
1532
  } else if (this._ch === '!' && !this._input.lookBack("\\")) { // !important
1526
- this.print_string(' ');
1533
+ this._output.space_before_token = true;
1527
1534
  this.print_string(this._ch);
1528
1535
  } else {
1529
1536
  var preserveAfterSpace = previous_ch === '"' || previous_ch === '\'';
@@ -1,37 +1,38 @@
1
- import { LanguageSettings, ICompletionParticipant, DocumentContext, LanguageServiceOptions, Diagnostic, Position, CompletionList, Hover, Location, DocumentHighlight, DocumentLink, SymbolInformation, Range, CodeActionContext, Command, CodeAction, ColorInformation, Color, ColorPresentation, WorkspaceEdit, FoldingRange, SelectionRange, TextDocument, ICSSDataProvider, CSSDataV1, HoverSettings, CompletionSettings, TextEdit, CSSFormatConfiguration } from './cssLanguageTypes';
2
- export declare type Stylesheet = {};
3
- export * from './cssLanguageTypes';
4
- export interface LanguageService {
5
- configure(raw?: LanguageSettings): void;
6
- setDataProviders(useDefaultDataProvider: boolean, customDataProviders: ICSSDataProvider[]): void;
7
- doValidation(document: TextDocument, stylesheet: Stylesheet, documentSettings?: LanguageSettings): Diagnostic[];
8
- parseStylesheet(document: TextDocument): Stylesheet;
9
- doComplete(document: TextDocument, position: Position, stylesheet: Stylesheet, settings?: CompletionSettings): CompletionList;
10
- doComplete2(document: TextDocument, position: Position, stylesheet: Stylesheet, documentContext: DocumentContext, settings?: CompletionSettings): Promise<CompletionList>;
11
- setCompletionParticipants(registeredCompletionParticipants: ICompletionParticipant[]): void;
12
- doHover(document: TextDocument, position: Position, stylesheet: Stylesheet, settings?: HoverSettings): Hover | null;
13
- findDefinition(document: TextDocument, position: Position, stylesheet: Stylesheet): Location | null;
14
- findReferences(document: TextDocument, position: Position, stylesheet: Stylesheet): Location[];
15
- findDocumentHighlights(document: TextDocument, position: Position, stylesheet: Stylesheet): DocumentHighlight[];
16
- findDocumentLinks(document: TextDocument, stylesheet: Stylesheet, documentContext: DocumentContext): DocumentLink[];
17
- /**
18
- * Return statically resolved links, and dynamically resolved links if `fsProvider` is proved.
19
- */
20
- findDocumentLinks2(document: TextDocument, stylesheet: Stylesheet, documentContext: DocumentContext): Promise<DocumentLink[]>;
21
- findDocumentSymbols(document: TextDocument, stylesheet: Stylesheet): SymbolInformation[];
22
- doCodeActions(document: TextDocument, range: Range, context: CodeActionContext, stylesheet: Stylesheet): Command[];
23
- doCodeActions2(document: TextDocument, range: Range, context: CodeActionContext, stylesheet: Stylesheet): CodeAction[];
24
- findDocumentColors(document: TextDocument, stylesheet: Stylesheet): ColorInformation[];
25
- getColorPresentations(document: TextDocument, stylesheet: Stylesheet, color: Color, range: Range): ColorPresentation[];
26
- doRename(document: TextDocument, position: Position, newName: string, stylesheet: Stylesheet): WorkspaceEdit;
27
- getFoldingRanges(document: TextDocument, context?: {
28
- rangeLimit?: number;
29
- }): FoldingRange[];
30
- getSelectionRanges(document: TextDocument, positions: Position[], stylesheet: Stylesheet): SelectionRange[];
31
- format(document: TextDocument, range: Range | undefined, options: CSSFormatConfiguration): TextEdit[];
32
- }
33
- export declare function getDefaultCSSDataProvider(): ICSSDataProvider;
34
- export declare function newCSSDataProvider(data: CSSDataV1): ICSSDataProvider;
35
- export declare function getCSSLanguageService(options?: LanguageServiceOptions): LanguageService;
36
- export declare function getSCSSLanguageService(options?: LanguageServiceOptions): LanguageService;
37
- export declare function getLESSLanguageService(options?: LanguageServiceOptions): LanguageService;
1
+ import { LanguageSettings, ICompletionParticipant, DocumentContext, LanguageServiceOptions, Diagnostic, Position, CompletionList, Hover, Location, DocumentHighlight, DocumentLink, SymbolInformation, Range, CodeActionContext, Command, CodeAction, ColorInformation, Color, ColorPresentation, WorkspaceEdit, FoldingRange, SelectionRange, TextDocument, ICSSDataProvider, CSSDataV1, HoverSettings, CompletionSettings, TextEdit, CSSFormatConfiguration, DocumentSymbol } from './cssLanguageTypes';
2
+ export declare type Stylesheet = {};
3
+ export * from './cssLanguageTypes';
4
+ export interface LanguageService {
5
+ configure(raw?: LanguageSettings): void;
6
+ setDataProviders(useDefaultDataProvider: boolean, customDataProviders: ICSSDataProvider[]): void;
7
+ doValidation(document: TextDocument, stylesheet: Stylesheet, documentSettings?: LanguageSettings): Diagnostic[];
8
+ parseStylesheet(document: TextDocument): Stylesheet;
9
+ doComplete(document: TextDocument, position: Position, stylesheet: Stylesheet, settings?: CompletionSettings): CompletionList;
10
+ doComplete2(document: TextDocument, position: Position, stylesheet: Stylesheet, documentContext: DocumentContext, settings?: CompletionSettings): Promise<CompletionList>;
11
+ setCompletionParticipants(registeredCompletionParticipants: ICompletionParticipant[]): void;
12
+ doHover(document: TextDocument, position: Position, stylesheet: Stylesheet, settings?: HoverSettings): Hover | null;
13
+ findDefinition(document: TextDocument, position: Position, stylesheet: Stylesheet): Location | null;
14
+ findReferences(document: TextDocument, position: Position, stylesheet: Stylesheet): Location[];
15
+ findDocumentHighlights(document: TextDocument, position: Position, stylesheet: Stylesheet): DocumentHighlight[];
16
+ findDocumentLinks(document: TextDocument, stylesheet: Stylesheet, documentContext: DocumentContext): DocumentLink[];
17
+ /**
18
+ * Return statically resolved links, and dynamically resolved links if `fsProvider` is proved.
19
+ */
20
+ findDocumentLinks2(document: TextDocument, stylesheet: Stylesheet, documentContext: DocumentContext): Promise<DocumentLink[]>;
21
+ findDocumentSymbols(document: TextDocument, stylesheet: Stylesheet): SymbolInformation[];
22
+ findDocumentSymbols2(document: TextDocument, stylesheet: Stylesheet): DocumentSymbol[];
23
+ doCodeActions(document: TextDocument, range: Range, context: CodeActionContext, stylesheet: Stylesheet): Command[];
24
+ doCodeActions2(document: TextDocument, range: Range, context: CodeActionContext, stylesheet: Stylesheet): CodeAction[];
25
+ findDocumentColors(document: TextDocument, stylesheet: Stylesheet): ColorInformation[];
26
+ getColorPresentations(document: TextDocument, stylesheet: Stylesheet, color: Color, range: Range): ColorPresentation[];
27
+ doRename(document: TextDocument, position: Position, newName: string, stylesheet: Stylesheet): WorkspaceEdit;
28
+ getFoldingRanges(document: TextDocument, context?: {
29
+ rangeLimit?: number;
30
+ }): FoldingRange[];
31
+ getSelectionRanges(document: TextDocument, positions: Position[], stylesheet: Stylesheet): SelectionRange[];
32
+ format(document: TextDocument, range: Range | undefined, options: CSSFormatConfiguration): TextEdit[];
33
+ }
34
+ export declare function getDefaultCSSDataProvider(): ICSSDataProvider;
35
+ export declare function newCSSDataProvider(data: CSSDataV1): ICSSDataProvider;
36
+ export declare function getCSSLanguageService(options?: LanguageServiceOptions): LanguageService;
37
+ export declare function getSCSSLanguageService(options?: LanguageServiceOptions): LanguageService;
38
+ export declare function getLESSLanguageService(options?: LanguageServiceOptions): LanguageService;
@@ -1,72 +1,73 @@
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
- 'use strict';
6
- import { Parser } from './parser/cssParser';
7
- import { CSSCompletion } from './services/cssCompletion';
8
- import { CSSHover } from './services/cssHover';
9
- import { CSSNavigation } from './services/cssNavigation';
10
- import { CSSCodeActions } from './services/cssCodeActions';
11
- import { CSSValidation } from './services/cssValidation';
12
- import { SCSSParser } from './parser/scssParser';
13
- import { SCSSCompletion } from './services/scssCompletion';
14
- import { LESSParser } from './parser/lessParser';
15
- import { LESSCompletion } from './services/lessCompletion';
16
- import { getFoldingRanges } from './services/cssFolding';
17
- import { format } from './services/cssFormatter';
18
- import { CSSDataManager } from './languageFacts/dataManager';
19
- import { CSSDataProvider } from './languageFacts/dataProvider';
20
- import { getSelectionRanges } from './services/cssSelectionRange';
21
- import { SCSSNavigation } from './services/scssNavigation';
22
- import { cssData } from './data/webCustomData';
23
- export * from './cssLanguageTypes';
24
- export function getDefaultCSSDataProvider() {
25
- return newCSSDataProvider(cssData);
26
- }
27
- export function newCSSDataProvider(data) {
28
- return new CSSDataProvider(data);
29
- }
30
- function createFacade(parser, completion, hover, navigation, codeActions, validation, cssDataManager) {
31
- return {
32
- configure: (settings) => {
33
- validation.configure(settings);
34
- completion.configure(settings?.completion);
35
- hover.configure(settings?.hover);
36
- },
37
- setDataProviders: cssDataManager.setDataProviders.bind(cssDataManager),
38
- doValidation: validation.doValidation.bind(validation),
39
- parseStylesheet: parser.parseStylesheet.bind(parser),
40
- doComplete: completion.doComplete.bind(completion),
41
- doComplete2: completion.doComplete2.bind(completion),
42
- setCompletionParticipants: completion.setCompletionParticipants.bind(completion),
43
- doHover: hover.doHover.bind(hover),
44
- format,
45
- findDefinition: navigation.findDefinition.bind(navigation),
46
- findReferences: navigation.findReferences.bind(navigation),
47
- findDocumentHighlights: navigation.findDocumentHighlights.bind(navigation),
48
- findDocumentLinks: navigation.findDocumentLinks.bind(navigation),
49
- findDocumentLinks2: navigation.findDocumentLinks2.bind(navigation),
50
- findDocumentSymbols: navigation.findDocumentSymbols.bind(navigation),
51
- doCodeActions: codeActions.doCodeActions.bind(codeActions),
52
- doCodeActions2: codeActions.doCodeActions2.bind(codeActions),
53
- findDocumentColors: navigation.findDocumentColors.bind(navigation),
54
- getColorPresentations: navigation.getColorPresentations.bind(navigation),
55
- doRename: navigation.doRename.bind(navigation),
56
- getFoldingRanges,
57
- getSelectionRanges
58
- };
59
- }
60
- const defaultLanguageServiceOptions = {};
61
- export function getCSSLanguageService(options = defaultLanguageServiceOptions) {
62
- const cssDataManager = new CSSDataManager(options);
63
- return createFacade(new Parser(), new CSSCompletion(null, options, cssDataManager), new CSSHover(options && options.clientCapabilities, cssDataManager), new CSSNavigation(options && options.fileSystemProvider, false), new CSSCodeActions(cssDataManager), new CSSValidation(cssDataManager), cssDataManager);
64
- }
65
- export function getSCSSLanguageService(options = defaultLanguageServiceOptions) {
66
- const cssDataManager = new CSSDataManager(options);
67
- return createFacade(new SCSSParser(), new SCSSCompletion(options, cssDataManager), new CSSHover(options && options.clientCapabilities, cssDataManager), new SCSSNavigation(options && options.fileSystemProvider), new CSSCodeActions(cssDataManager), new CSSValidation(cssDataManager), cssDataManager);
68
- }
69
- export function getLESSLanguageService(options = defaultLanguageServiceOptions) {
70
- const cssDataManager = new CSSDataManager(options);
71
- return createFacade(new LESSParser(), new LESSCompletion(options, cssDataManager), new CSSHover(options && options.clientCapabilities, cssDataManager), new CSSNavigation(options && options.fileSystemProvider, true), new CSSCodeActions(cssDataManager), new CSSValidation(cssDataManager), cssDataManager);
72
- }
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
+ 'use strict';
6
+ import { Parser } from './parser/cssParser';
7
+ import { CSSCompletion } from './services/cssCompletion';
8
+ import { CSSHover } from './services/cssHover';
9
+ import { CSSNavigation } from './services/cssNavigation';
10
+ import { CSSCodeActions } from './services/cssCodeActions';
11
+ import { CSSValidation } from './services/cssValidation';
12
+ import { SCSSParser } from './parser/scssParser';
13
+ import { SCSSCompletion } from './services/scssCompletion';
14
+ import { LESSParser } from './parser/lessParser';
15
+ import { LESSCompletion } from './services/lessCompletion';
16
+ import { getFoldingRanges } from './services/cssFolding';
17
+ import { format } from './services/cssFormatter';
18
+ import { CSSDataManager } from './languageFacts/dataManager';
19
+ import { CSSDataProvider } from './languageFacts/dataProvider';
20
+ import { getSelectionRanges } from './services/cssSelectionRange';
21
+ import { SCSSNavigation } from './services/scssNavigation';
22
+ import { cssData } from './data/webCustomData';
23
+ export * from './cssLanguageTypes';
24
+ export function getDefaultCSSDataProvider() {
25
+ return newCSSDataProvider(cssData);
26
+ }
27
+ export function newCSSDataProvider(data) {
28
+ return new CSSDataProvider(data);
29
+ }
30
+ function createFacade(parser, completion, hover, navigation, codeActions, validation, cssDataManager) {
31
+ return {
32
+ configure: (settings) => {
33
+ validation.configure(settings);
34
+ completion.configure(settings?.completion);
35
+ hover.configure(settings?.hover);
36
+ },
37
+ setDataProviders: cssDataManager.setDataProviders.bind(cssDataManager),
38
+ doValidation: validation.doValidation.bind(validation),
39
+ parseStylesheet: parser.parseStylesheet.bind(parser),
40
+ doComplete: completion.doComplete.bind(completion),
41
+ doComplete2: completion.doComplete2.bind(completion),
42
+ setCompletionParticipants: completion.setCompletionParticipants.bind(completion),
43
+ doHover: hover.doHover.bind(hover),
44
+ format,
45
+ findDefinition: navigation.findDefinition.bind(navigation),
46
+ findReferences: navigation.findReferences.bind(navigation),
47
+ findDocumentHighlights: navigation.findDocumentHighlights.bind(navigation),
48
+ findDocumentLinks: navigation.findDocumentLinks.bind(navigation),
49
+ findDocumentLinks2: navigation.findDocumentLinks2.bind(navigation),
50
+ findDocumentSymbols: navigation.findSymbolInformations.bind(navigation),
51
+ findDocumentSymbols2: navigation.findDocumentSymbols.bind(navigation),
52
+ doCodeActions: codeActions.doCodeActions.bind(codeActions),
53
+ doCodeActions2: codeActions.doCodeActions2.bind(codeActions),
54
+ findDocumentColors: navigation.findDocumentColors.bind(navigation),
55
+ getColorPresentations: navigation.getColorPresentations.bind(navigation),
56
+ doRename: navigation.doRename.bind(navigation),
57
+ getFoldingRanges,
58
+ getSelectionRanges
59
+ };
60
+ }
61
+ const defaultLanguageServiceOptions = {};
62
+ export function getCSSLanguageService(options = defaultLanguageServiceOptions) {
63
+ const cssDataManager = new CSSDataManager(options);
64
+ return createFacade(new Parser(), new CSSCompletion(null, options, cssDataManager), new CSSHover(options && options.clientCapabilities, cssDataManager), new CSSNavigation(options && options.fileSystemProvider, false), new CSSCodeActions(cssDataManager), new CSSValidation(cssDataManager), cssDataManager);
65
+ }
66
+ export function getSCSSLanguageService(options = defaultLanguageServiceOptions) {
67
+ const cssDataManager = new CSSDataManager(options);
68
+ return createFacade(new SCSSParser(), new SCSSCompletion(options, cssDataManager), new CSSHover(options && options.clientCapabilities, cssDataManager), new SCSSNavigation(options && options.fileSystemProvider), new CSSCodeActions(cssDataManager), new CSSValidation(cssDataManager), cssDataManager);
69
+ }
70
+ export function getLESSLanguageService(options = defaultLanguageServiceOptions) {
71
+ const cssDataManager = new CSSDataManager(options);
72
+ return createFacade(new LESSParser(), new LESSCompletion(options, cssDataManager), new CSSHover(options && options.clientCapabilities, cssDataManager), new CSSNavigation(options && options.fileSystemProvider, true), new CSSCodeActions(cssDataManager), new CSSValidation(cssDataManager), cssDataManager);
73
+ }