vscode-css-languageservice 5.3.0 → 6.0.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 +9 -0
  2. package/README.md +1 -0
  3. package/lib/esm/beautify/beautify-css.js +57 -15
  4. package/lib/esm/cssLanguageService.d.ts +37 -37
  5. package/lib/esm/cssLanguageService.js +72 -75
  6. package/lib/esm/cssLanguageTypes.d.ts +238 -228
  7. package/lib/esm/cssLanguageTypes.js +42 -42
  8. package/lib/esm/data/webCustomData.js +21965 -21959
  9. package/lib/esm/languageFacts/builtinData.js +142 -142
  10. package/lib/esm/languageFacts/colors.js +469 -472
  11. package/lib/esm/languageFacts/dataManager.js +88 -92
  12. package/lib/esm/languageFacts/dataProvider.js +73 -79
  13. package/lib/esm/languageFacts/entry.js +137 -138
  14. package/lib/esm/languageFacts/facts.js +8 -8
  15. package/lib/esm/parser/cssErrors.js +48 -50
  16. package/lib/esm/parser/cssNodes.js +1502 -2019
  17. package/lib/esm/parser/cssParser.js +1534 -1566
  18. package/lib/esm/parser/cssScanner.js +592 -599
  19. package/lib/esm/parser/cssSymbolScope.js +311 -341
  20. package/lib/esm/parser/lessParser.js +714 -740
  21. package/lib/esm/parser/lessScanner.js +57 -78
  22. package/lib/esm/parser/scssErrors.js +18 -20
  23. package/lib/esm/parser/scssParser.js +796 -818
  24. package/lib/esm/parser/scssScanner.js +95 -116
  25. package/lib/esm/services/cssCodeActions.js +77 -81
  26. package/lib/esm/services/cssCompletion.js +1054 -1149
  27. package/lib/esm/services/cssFolding.js +190 -193
  28. package/lib/esm/services/cssFormatter.js +136 -117
  29. package/lib/esm/services/cssHover.js +148 -151
  30. package/lib/esm/services/cssNavigation.js +378 -470
  31. package/lib/esm/services/cssSelectionRange.js +47 -47
  32. package/lib/esm/services/cssValidation.js +41 -44
  33. package/lib/esm/services/lessCompletion.js +378 -397
  34. package/lib/esm/services/lint.js +518 -532
  35. package/lib/esm/services/lintRules.js +76 -83
  36. package/lib/esm/services/lintUtil.js +196 -205
  37. package/lib/esm/services/pathCompletion.js +157 -231
  38. package/lib/esm/services/scssCompletion.js +354 -378
  39. package/lib/esm/services/scssNavigation.js +82 -154
  40. package/lib/esm/services/selectorPrinting.js +492 -536
  41. package/lib/esm/utils/arrays.js +40 -46
  42. package/lib/esm/utils/objects.js +11 -11
  43. package/lib/esm/utils/resources.js +11 -24
  44. package/lib/esm/utils/strings.js +102 -104
  45. package/lib/umd/beautify/beautify-css.js +57 -15
  46. package/lib/umd/cssLanguageService.d.ts +37 -37
  47. package/lib/umd/cssLanguageService.js +99 -102
  48. package/lib/umd/cssLanguageTypes.d.ts +238 -228
  49. package/lib/umd/cssLanguageTypes.js +89 -88
  50. package/lib/umd/data/webCustomData.js +21978 -21972
  51. package/lib/umd/languageFacts/builtinData.js +154 -154
  52. package/lib/umd/languageFacts/colors.js +492 -495
  53. package/lib/umd/languageFacts/dataManager.js +101 -104
  54. package/lib/umd/languageFacts/dataProvider.js +86 -91
  55. package/lib/umd/languageFacts/entry.js +152 -153
  56. package/lib/umd/languageFacts/facts.js +29 -29
  57. package/lib/umd/parser/cssErrors.js +61 -62
  58. package/lib/umd/parser/cssNodes.js +1587 -2034
  59. package/lib/umd/parser/cssParser.js +1547 -1578
  60. package/lib/umd/parser/cssScanner.js +606 -611
  61. package/lib/umd/parser/cssSymbolScope.js +328 -353
  62. package/lib/umd/parser/lessParser.js +727 -752
  63. package/lib/umd/parser/lessScanner.js +70 -90
  64. package/lib/umd/parser/scssErrors.js +31 -32
  65. package/lib/umd/parser/scssParser.js +809 -830
  66. package/lib/umd/parser/scssScanner.js +108 -128
  67. package/lib/umd/services/cssCodeActions.js +90 -93
  68. package/lib/umd/services/cssCompletion.js +1067 -1161
  69. package/lib/umd/services/cssFolding.js +203 -206
  70. package/lib/umd/services/cssFormatter.js +150 -131
  71. package/lib/umd/services/cssHover.js +161 -163
  72. package/lib/umd/services/cssNavigation.js +391 -482
  73. package/lib/umd/services/cssSelectionRange.js +60 -60
  74. package/lib/umd/services/cssValidation.js +54 -56
  75. package/lib/umd/services/lessCompletion.js +391 -409
  76. package/lib/umd/services/lint.js +531 -544
  77. package/lib/umd/services/lintRules.js +91 -95
  78. package/lib/umd/services/lintUtil.js +210 -218
  79. package/lib/umd/services/pathCompletion.js +171 -244
  80. package/lib/umd/services/scssCompletion.js +367 -390
  81. package/lib/umd/services/scssNavigation.js +95 -166
  82. package/lib/umd/services/selectorPrinting.js +510 -550
  83. package/lib/umd/utils/arrays.js +55 -61
  84. package/lib/umd/utils/objects.js +25 -25
  85. package/lib/umd/utils/resources.js +26 -39
  86. package/lib/umd/utils/strings.js +120 -122
  87. package/package.json +11 -11
@@ -1,228 +1,238 @@
1
- import { Range, Position, DocumentUri, MarkupContent, MarkupKind, 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 } from 'vscode-languageserver-types';
2
- import { TextDocument } from 'vscode-languageserver-textdocument';
3
- export { TextDocument, Range, Position, DocumentUri, MarkupContent, MarkupKind, 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 };
4
- export declare type LintSettings = {
5
- [key: string]: any;
6
- };
7
- export interface CompletionSettings {
8
- triggerPropertyValueCompletion: boolean;
9
- completePropertyWithSemicolon?: boolean;
10
- }
11
- export interface LanguageSettings {
12
- validate?: boolean;
13
- lint?: LintSettings;
14
- completion?: CompletionSettings;
15
- hover?: HoverSettings;
16
- }
17
- export interface HoverSettings {
18
- documentation?: boolean;
19
- references?: boolean;
20
- }
21
- export interface PropertyCompletionContext {
22
- propertyName: string;
23
- range: Range;
24
- }
25
- export interface PropertyValueCompletionContext {
26
- propertyName: string;
27
- propertyValue?: string;
28
- range: Range;
29
- }
30
- export interface URILiteralCompletionContext {
31
- uriValue: string;
32
- position: Position;
33
- range: Range;
34
- }
35
- export interface ImportPathCompletionContext {
36
- pathValue: string;
37
- position: Position;
38
- range: Range;
39
- }
40
- export interface MixinReferenceCompletionContext {
41
- mixinName: string;
42
- range: Range;
43
- }
44
- export interface ICompletionParticipant {
45
- onCssProperty?: (context: PropertyCompletionContext) => void;
46
- onCssPropertyValue?: (context: PropertyValueCompletionContext) => void;
47
- onCssURILiteralValue?: (context: URILiteralCompletionContext) => void;
48
- onCssImportPath?: (context: ImportPathCompletionContext) => void;
49
- onCssMixinReference?: (context: MixinReferenceCompletionContext) => void;
50
- }
51
- export interface DocumentContext {
52
- resolveReference(ref: string, baseUrl: string): string | undefined;
53
- }
54
- /**
55
- * Describes what LSP capabilities the client supports
56
- */
57
- export interface ClientCapabilities {
58
- /**
59
- * The text document client capabilities
60
- */
61
- textDocument?: {
62
- /**
63
- * Capabilities specific to completions.
64
- */
65
- completion?: {
66
- /**
67
- * The client supports the following `CompletionItem` specific
68
- * capabilities.
69
- */
70
- completionItem?: {
71
- /**
72
- * Client supports the follow content formats for the documentation
73
- * property. The order describes the preferred format of the client.
74
- */
75
- documentationFormat?: MarkupKind[];
76
- };
77
- };
78
- /**
79
- * Capabilities specific to hovers.
80
- */
81
- hover?: {
82
- /**
83
- * Client supports the follow content formats for the content
84
- * property. The order describes the preferred format of the client.
85
- */
86
- contentFormat?: MarkupKind[];
87
- };
88
- };
89
- }
90
- export declare namespace ClientCapabilities {
91
- const LATEST: ClientCapabilities;
92
- }
93
- export interface LanguageServiceOptions {
94
- /**
95
- * Unless set to false, the default CSS data provider will be used
96
- * along with the providers from customDataProviders.
97
- * Defaults to true.
98
- */
99
- useDefaultDataProvider?: boolean;
100
- /**
101
- * Provide data that could enhance the service's understanding of
102
- * CSS property / at-rule / pseudo-class / pseudo-element
103
- */
104
- customDataProviders?: ICSSDataProvider[];
105
- /**
106
- * Abstract file system access away from the service.
107
- * Used for dynamic link resolving, path completion, etc.
108
- */
109
- fileSystemProvider?: FileSystemProvider;
110
- /**
111
- * Describes the LSP capabilities the client supports.
112
- */
113
- clientCapabilities?: ClientCapabilities;
114
- }
115
- export declare type EntryStatus = 'standard' | 'experimental' | 'nonstandard' | 'obsolete';
116
- export interface IReference {
117
- name: string;
118
- url: string;
119
- }
120
- export interface IPropertyData {
121
- name: string;
122
- description?: string | MarkupContent;
123
- browsers?: string[];
124
- restrictions?: string[];
125
- status?: EntryStatus;
126
- syntax?: string;
127
- values?: IValueData[];
128
- references?: IReference[];
129
- relevance?: number;
130
- }
131
- export interface IAtDirectiveData {
132
- name: string;
133
- description?: string | MarkupContent;
134
- browsers?: string[];
135
- status?: EntryStatus;
136
- references?: IReference[];
137
- }
138
- export interface IPseudoClassData {
139
- name: string;
140
- description?: string | MarkupContent;
141
- browsers?: string[];
142
- status?: EntryStatus;
143
- references?: IReference[];
144
- }
145
- export interface IPseudoElementData {
146
- name: string;
147
- description?: string | MarkupContent;
148
- browsers?: string[];
149
- status?: EntryStatus;
150
- references?: IReference[];
151
- }
152
- export interface IValueData {
153
- name: string;
154
- description?: string | MarkupContent;
155
- browsers?: string[];
156
- status?: EntryStatus;
157
- references?: IReference[];
158
- }
159
- export interface CSSDataV1 {
160
- version: 1 | 1.1;
161
- properties?: IPropertyData[];
162
- atDirectives?: IAtDirectiveData[];
163
- pseudoClasses?: IPseudoClassData[];
164
- pseudoElements?: IPseudoElementData[];
165
- }
166
- export interface ICSSDataProvider {
167
- provideProperties(): IPropertyData[];
168
- provideAtDirectives(): IAtDirectiveData[];
169
- providePseudoClasses(): IPseudoClassData[];
170
- providePseudoElements(): IPseudoElementData[];
171
- }
172
- export declare enum FileType {
173
- /**
174
- * The file type is unknown.
175
- */
176
- Unknown = 0,
177
- /**
178
- * A regular file.
179
- */
180
- File = 1,
181
- /**
182
- * A directory.
183
- */
184
- Directory = 2,
185
- /**
186
- * A symbolic link to a file.
187
- */
188
- SymbolicLink = 64
189
- }
190
- export interface FileStat {
191
- /**
192
- * The type of the file, e.g. is a regular file, a directory, or symbolic link
193
- * to a file.
194
- */
195
- type: FileType;
196
- /**
197
- * The creation timestamp in milliseconds elapsed since January 1, 1970 00:00:00 UTC.
198
- */
199
- ctime: number;
200
- /**
201
- * The modification timestamp in milliseconds elapsed since January 1, 1970 00:00:00 UTC.
202
- */
203
- mtime: number;
204
- /**
205
- * The size in bytes.
206
- */
207
- size: number;
208
- }
209
- export interface FileSystemProvider {
210
- stat(uri: DocumentUri): Promise<FileStat>;
211
- readDirectory?(uri: DocumentUri): Promise<[string, FileType][]>;
212
- }
213
- export interface CSSFormatConfiguration {
214
- /** indentation size. Default: 4 */
215
- tabSize?: number;
216
- /** Whether to use spaces or tabs */
217
- insertSpaces?: boolean;
218
- /** end with a newline: Default: false */
219
- insertFinalNewline?: boolean;
220
- /** separate selectors with newline (e.g. "a,\nbr" or "a, br"): Default: true */
221
- newlineBetweenSelectors?: boolean;
222
- /** add a new line after every css rule: Default: true */
223
- newlineBetweenRules?: boolean;
224
- /** ensure space around selector separators: '>', '+', '~' (e.g. "a>b" -> "a > b"): Default: false */
225
- spaceAroundSelectorSeparator?: boolean;
226
- /** @deprecated Use newlineBetweenSelectors instead*/
227
- selectorSeparatorNewline?: boolean;
228
- }
1
+ import { Range, Position, DocumentUri, MarkupContent, MarkupKind, 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 } from 'vscode-languageserver-types';
2
+ import { TextDocument } from 'vscode-languageserver-textdocument';
3
+ export { TextDocument, Range, Position, DocumentUri, MarkupContent, MarkupKind, 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 };
4
+ export declare type LintSettings = {
5
+ [key: string]: any;
6
+ };
7
+ export interface CompletionSettings {
8
+ triggerPropertyValueCompletion: boolean;
9
+ completePropertyWithSemicolon?: boolean;
10
+ }
11
+ export interface LanguageSettings {
12
+ validate?: boolean;
13
+ lint?: LintSettings;
14
+ completion?: CompletionSettings;
15
+ hover?: HoverSettings;
16
+ }
17
+ export interface HoverSettings {
18
+ documentation?: boolean;
19
+ references?: boolean;
20
+ }
21
+ export interface PropertyCompletionContext {
22
+ propertyName: string;
23
+ range: Range;
24
+ }
25
+ export interface PropertyValueCompletionContext {
26
+ propertyName: string;
27
+ propertyValue?: string;
28
+ range: Range;
29
+ }
30
+ export interface URILiteralCompletionContext {
31
+ uriValue: string;
32
+ position: Position;
33
+ range: Range;
34
+ }
35
+ export interface ImportPathCompletionContext {
36
+ pathValue: string;
37
+ position: Position;
38
+ range: Range;
39
+ }
40
+ export interface MixinReferenceCompletionContext {
41
+ mixinName: string;
42
+ range: Range;
43
+ }
44
+ export interface ICompletionParticipant {
45
+ onCssProperty?: (context: PropertyCompletionContext) => void;
46
+ onCssPropertyValue?: (context: PropertyValueCompletionContext) => void;
47
+ onCssURILiteralValue?: (context: URILiteralCompletionContext) => void;
48
+ onCssImportPath?: (context: ImportPathCompletionContext) => void;
49
+ onCssMixinReference?: (context: MixinReferenceCompletionContext) => void;
50
+ }
51
+ export interface DocumentContext {
52
+ resolveReference(ref: string, baseUrl: string): string | undefined;
53
+ }
54
+ /**
55
+ * Describes what LSP capabilities the client supports
56
+ */
57
+ export interface ClientCapabilities {
58
+ /**
59
+ * The text document client capabilities
60
+ */
61
+ textDocument?: {
62
+ /**
63
+ * Capabilities specific to completions.
64
+ */
65
+ completion?: {
66
+ /**
67
+ * The client supports the following `CompletionItem` specific
68
+ * capabilities.
69
+ */
70
+ completionItem?: {
71
+ /**
72
+ * Client supports the follow content formats for the documentation
73
+ * property. The order describes the preferred format of the client.
74
+ */
75
+ documentationFormat?: MarkupKind[];
76
+ };
77
+ };
78
+ /**
79
+ * Capabilities specific to hovers.
80
+ */
81
+ hover?: {
82
+ /**
83
+ * Client supports the follow content formats for the content
84
+ * property. The order describes the preferred format of the client.
85
+ */
86
+ contentFormat?: MarkupKind[];
87
+ };
88
+ };
89
+ }
90
+ export declare namespace ClientCapabilities {
91
+ const LATEST: ClientCapabilities;
92
+ }
93
+ export interface LanguageServiceOptions {
94
+ /**
95
+ * Unless set to false, the default CSS data provider will be used
96
+ * along with the providers from customDataProviders.
97
+ * Defaults to true.
98
+ */
99
+ useDefaultDataProvider?: boolean;
100
+ /**
101
+ * Provide data that could enhance the service's understanding of
102
+ * CSS property / at-rule / pseudo-class / pseudo-element
103
+ */
104
+ customDataProviders?: ICSSDataProvider[];
105
+ /**
106
+ * Abstract file system access away from the service.
107
+ * Used for dynamic link resolving, path completion, etc.
108
+ */
109
+ fileSystemProvider?: FileSystemProvider;
110
+ /**
111
+ * Describes the LSP capabilities the client supports.
112
+ */
113
+ clientCapabilities?: ClientCapabilities;
114
+ }
115
+ export declare type EntryStatus = 'standard' | 'experimental' | 'nonstandard' | 'obsolete';
116
+ export interface IReference {
117
+ name: string;
118
+ url: string;
119
+ }
120
+ export interface IPropertyData {
121
+ name: string;
122
+ description?: string | MarkupContent;
123
+ browsers?: string[];
124
+ restrictions?: string[];
125
+ status?: EntryStatus;
126
+ syntax?: string;
127
+ values?: IValueData[];
128
+ references?: IReference[];
129
+ relevance?: number;
130
+ }
131
+ export interface IAtDirectiveData {
132
+ name: string;
133
+ description?: string | MarkupContent;
134
+ browsers?: string[];
135
+ status?: EntryStatus;
136
+ references?: IReference[];
137
+ }
138
+ export interface IPseudoClassData {
139
+ name: string;
140
+ description?: string | MarkupContent;
141
+ browsers?: string[];
142
+ status?: EntryStatus;
143
+ references?: IReference[];
144
+ }
145
+ export interface IPseudoElementData {
146
+ name: string;
147
+ description?: string | MarkupContent;
148
+ browsers?: string[];
149
+ status?: EntryStatus;
150
+ references?: IReference[];
151
+ }
152
+ export interface IValueData {
153
+ name: string;
154
+ description?: string | MarkupContent;
155
+ browsers?: string[];
156
+ status?: EntryStatus;
157
+ references?: IReference[];
158
+ }
159
+ export interface CSSDataV1 {
160
+ version: 1 | 1.1;
161
+ properties?: IPropertyData[];
162
+ atDirectives?: IAtDirectiveData[];
163
+ pseudoClasses?: IPseudoClassData[];
164
+ pseudoElements?: IPseudoElementData[];
165
+ }
166
+ export interface ICSSDataProvider {
167
+ provideProperties(): IPropertyData[];
168
+ provideAtDirectives(): IAtDirectiveData[];
169
+ providePseudoClasses(): IPseudoClassData[];
170
+ providePseudoElements(): IPseudoElementData[];
171
+ }
172
+ export declare enum FileType {
173
+ /**
174
+ * The file type is unknown.
175
+ */
176
+ Unknown = 0,
177
+ /**
178
+ * A regular file.
179
+ */
180
+ File = 1,
181
+ /**
182
+ * A directory.
183
+ */
184
+ Directory = 2,
185
+ /**
186
+ * A symbolic link to a file.
187
+ */
188
+ SymbolicLink = 64
189
+ }
190
+ export interface FileStat {
191
+ /**
192
+ * The type of the file, e.g. is a regular file, a directory, or symbolic link
193
+ * to a file.
194
+ */
195
+ type: FileType;
196
+ /**
197
+ * The creation timestamp in milliseconds elapsed since January 1, 1970 00:00:00 UTC.
198
+ */
199
+ ctime: number;
200
+ /**
201
+ * The modification timestamp in milliseconds elapsed since January 1, 1970 00:00:00 UTC.
202
+ */
203
+ mtime: number;
204
+ /**
205
+ * The size in bytes.
206
+ */
207
+ size: number;
208
+ }
209
+ export interface FileSystemProvider {
210
+ stat(uri: DocumentUri): Promise<FileStat>;
211
+ readDirectory?(uri: DocumentUri): Promise<[string, FileType][]>;
212
+ }
213
+ export interface CSSFormatConfiguration {
214
+ /** indentation size. Default: 4 */
215
+ tabSize?: number;
216
+ /** Whether to use spaces or tabs */
217
+ insertSpaces?: boolean;
218
+ /** end with a newline: Default: false */
219
+ insertFinalNewline?: boolean;
220
+ /** separate selectors with newline (e.g. "a,\nbr" or "a, br"): Default: true */
221
+ newlineBetweenSelectors?: boolean;
222
+ /** add a new line after every css rule: Default: true */
223
+ newlineBetweenRules?: boolean;
224
+ /** ensure space around selector separators: '>', '+', '~' (e.g. "a>b" -> "a > b"): Default: false */
225
+ spaceAroundSelectorSeparator?: boolean;
226
+ /** put braces on the same line as rules (`collapse`), or put braces on own line, Allman / ANSI style (`expand`). Default `collapse` */
227
+ braceStyle?: 'collapse' | 'expand';
228
+ /** whether existing line breaks before elements should be preserved. Default: true */
229
+ preserveNewLines?: boolean;
230
+ /** maximum number of line breaks to be preserved in one chunk. Default: unlimited */
231
+ maxPreserveNewLines?: number;
232
+ /** maximum amount of characters per line (0/undefined = disabled). Default: disabled. */
233
+ wrapLineLength?: number;
234
+ /** add indenting whitespace to empty lines. Default: false */
235
+ indentEmptyLines?: boolean;
236
+ /** @deprecated Use newlineBetweenSelectors instead*/
237
+ selectorSeparatorNewline?: boolean;
238
+ }