modern-monaco 0.3.8 → 0.4.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.
package/dist/index.mjs CHANGED
@@ -4720,7 +4720,7 @@ var css_default = {
4720
4720
  "property-keywords": {
4721
4721
  patterns: [
4722
4722
  {
4723
- match: "(?i)(?<![-\\w])(above|absolute|active|add|additive|after-edge|alias|all|all-petite-caps|all-scroll|all-small-caps|alpha|alphabetic|alternate|alternate-reverse|always|antialiased|auto|auto-fill|auto-fit|auto-pos|available|avoid|avoid-column|avoid-page|avoid-region|backwards|balance|baseline|before-edge|below|bevel|bidi-override|blink|block|block-axis|block-start|block-end|bold|bolder|border|border-box|both|bottom|bottom-outside|break-all|break-word|bullets|butt|capitalize|caption|cell|center|central|char|circle|clip|clone|close-quote|closest-corner|closest-side|col-resize|collapse|color|color-burn|color-dodge|column|column-reverse|common-ligatures|compact|condensed|contain|content|content-box|contents|context-menu|contextual|copy|cover|crisp-edges|crispEdges|crosshair|cyclic|dark|darken|dashed|decimal|default|dense|diagonal-fractions|difference|digits|disabled|disc|discretionary-ligatures|distribute|distribute-all-lines|distribute-letter|distribute-space|dot|dotted|double|double-circle|downleft|downright|e-resize|each-line|ease|ease-in|ease-in-out|ease-out|economy|ellipse|ellipsis|embed|end|evenodd|ew-resize|exact|exclude|exclusion|expanded|extends|extra-condensed|extra-expanded|fallback|farthest-corner|farthest-side|fill|fill-available|fill-box|filled|fit-content|fixed|flat|flex|flex-end|flex-start|flip|flow-root|forwards|freeze|from-image|full-width|geometricPrecision|georgian|grab|grabbing|grayscale|grid|groove|hand|hanging|hard-light|help|hidden|hide|historical-forms|historical-ligatures|horizontal|horizontal-tb|hue|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|infinite|inherit|initial|inline|inline-axis|inline-block|inline-end|inline-flex|inline-grid|inline-list-item|inline-start|inline-table|inset|inside|inter-character|inter-ideograph|inter-word|intersect|invert|isolate|isolate-override|italic|jis04|jis78|jis83|jis90|justify|justify-all|kannada|keep-all|landscape|larger??|left|light|lighten|lighter|line|line-edge|line-through|linear|linearRGB|lining-nums|list-item|local|loose|lowercase|lr|lr-tb|ltr|luminance|luminosity|main-size|mandatory|manipulation|manual|margin-box|match-parent|match-source|mathematical|max-content|medium|menu|message-box|middle|min-content|miter|mixed|move|multiply|n-resize|narrower|ne-resize|nearest-neighbor|nesw-resize|newspaper|no-change|no-clip|no-close-quote|no-common-ligatures|no-contextual|no-discretionary-ligatures|no-drop|no-historical-ligatures|no-open-quote|no-repeat|none|nonzero|normal|not-allowed|nowrap|ns-resize|numbers|numeric|nw-resize|nwse-resize|oblique|oldstyle-nums|open|open-quote|optimizeLegibility|optimizeQuality|optimizeSpeed|optional|ordinal|outset|outside|over|overlay|overline|padding|padding-box|page|painted|pan-down|pan-left|pan-right|pan-up|pan-x|pan-y|paused|petite-caps|pixelated|plaintext|pointer|portrait|pre|pre-line|pre-wrap|preserve-3d|progress|progressive|proportional-nums|proportional-width|proximity|radial|recto|region|relative|remove|repeat|repeat-[xy]|reset-size|reverse|revert|ridge|right|rl|rl-tb|round|row|row-resize|row-reverse|row-severse|rtl|ruby|ruby-base|ruby-base-container|ruby-text|ruby-text-container|run-in|running|s-resize|saturation|scale-down|screen|scroll|scroll-position|se-resize|semi-condensed|semi-expanded|separate|sesame|show|sideways|sideways-left|sideways-lr|sideways-right|sideways-rl|simplified|slashed-zero|slice|small|small-caps|small-caption|smaller|smooth|soft-light|solid|space|space-around|space-between|space-evenly|spell-out|square|sRGB|stacked-fractions|start|static|status-bar|swap|step-end|step-start|sticky|stretch|strict|stroke|stroke-box|style|sub|subgrid|subpixel-antialiased|subtract|super|sw-resize|symbolic|table|table-caption|table-cell|table-column|table-column-group|table-footer-group|table-header-group|table-row|table-row-group|tabular-nums|tb|tb-rl|text|text-after-edge|text-before-edge|text-bottom|text-top|thick|thin|titling-caps|top|top-outside|touch|traditional|transparent|triangle|ultra-condensed|ultra-expanded|under|underline|unicase|unset|upleft|uppercase|upright|use-glyph-orientation|use-script|verso|vertical|vertical-ideographic|vertical-lr|vertical-rl|vertical-text|view-box|visible|visibleFill|visiblePainted|visibleStroke|w-resize|wait|wavy|weight|whitespace|wider|words|wrap|wrap-reverse|x|x-large|x-small|xx-large|xx-small|y|zero|zoom-in|zoom-out)(?![-\\w])",
4723
+ match: "(?i)(?<![-\\w])(above|absolute|active|add|additive|after-edge|alias|all|all-petite-caps|all-scroll|all-small-caps|alpha|alphabetic|alternate|alternate-reverse|always|antialiased|auto|auto-fill|auto-fit|auto-pos|available|avoid|avoid-column|avoid-page|avoid-region|backwards|balance|baseline|before-edge|below|bevel|bidi-override|blink|block|block-axis|block-start|block-end|bold|bolder|border|border-box|both|bottom|bottom-outside|break-all|break-word|bullets|butt|capitalize|caption|cell|center|central|char|circle|clip|clone|close-quote|closest-corner|closest-side|col-resize|collapse|color|color-burn|color-dodge|column|column-reverse|common-ligatures|compact|condensed|contain|content|content-box|contents|context-menu|contextual|copy|cover|crisp-edges|crispEdges|crosshair|cyclic|dark|darken|dashed|decimal|default|dense|diagonal-fractions|difference|digits|disabled|disc|discretionary-ligatures|distribute|distribute-all-lines|distribute-letter|distribute-space|dot|dotted|double|double-circle|downleft|downright|e-resize|each-line|ease|ease-in|ease-in-out|ease-out|economy|ellipse|ellipsis|embed|end|evenodd|ew-resize|exact|exclude|exclusion|expanded|extends|extra-condensed|extra-expanded|fallback|farthest-corner|farthest-side|fill|fill-available|fill-box|filled|fit-content|fixed|flat|flex|flex-end|flex-start|flip|flow|flow-root|forwards|freeze|from-image|full-width|geometricPrecision|georgian|grab|grabbing|grayscale|grid|groove|hand|hanging|hard-light|help|hidden|hide|historical-forms|historical-ligatures|horizontal|horizontal-tb|hue|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|infinite|inherit|initial|inline|inline-axis|inline-block|inline-end|inline-flex|inline-grid|inline-list-item|inline-start|inline-table|inset|inside|inter-character|inter-ideograph|inter-word|intersect|invert|isolate|isolate-override|italic|jis04|jis78|jis83|jis90|justify|justify-all|kannada|keep-all|landscape|larger??|left|light|lighten|lighter|line|line-edge|line-through|linear|linearRGB|lining-nums|list-item|local|loose|lowercase|lr|lr-tb|ltr|luminance|luminosity|main-size|mandatory|manipulation|manual|margin-box|match-parent|match-source|mathematical|max-content|medium|menu|message-box|middle|min-content|miter|mixed|move|multiply|n-resize|narrower|ne-resize|nearest-neighbor|nesw-resize|newspaper|no-change|no-clip|no-close-quote|no-common-ligatures|no-contextual|no-discretionary-ligatures|no-drop|no-historical-ligatures|no-open-quote|no-repeat|none|nonzero|normal|not-allowed|nowrap|ns-resize|numbers|numeric|nw-resize|nwse-resize|oblique|oldstyle-nums|open|open-quote|optimizeLegibility|optimizeQuality|optimizeSpeed|optional|ordinal|outset|outside|over|overlay|overline|padding|padding-box|page|painted|pan-down|pan-left|pan-right|pan-up|pan-x|pan-y|paused|petite-caps|pixelated|plaintext|pointer|portrait|pre|pre-line|pre-wrap|preserve-3d|progress|progressive|proportional-nums|proportional-width|proximity|radial|recto|region|relative|remove|repeat|repeat-[xy]|reset-size|reverse|revert|revert-layer|ridge|right|rl|rl-tb|round|row|row-resize|row-reverse|row-severse|rtl|ruby|ruby-base|ruby-base-container|ruby-text|ruby-text-container|run-in|running|s-resize|saturation|scale-down|screen|scroll|scroll-position|se-resize|semi-condensed|semi-expanded|separate|sesame|show|sideways|sideways-left|sideways-lr|sideways-right|sideways-rl|simplified|slashed-zero|slice|small|small-caps|small-caption|smaller|smooth|soft-light|solid|space|space-around|space-between|space-evenly|spell-out|square|sRGB|stacked-fractions|start|static|status-bar|swap|step-end|step-start|sticky|stretch|strict|stroke|stroke-box|style|sub|subgrid|subpixel-antialiased|subtract|super|sw-resize|symbolic|table|table-caption|table-cell|table-column|table-column-group|table-footer-group|table-header-group|table-row|table-row-group|tabular-nums|tb|tb-rl|text|text-after-edge|text-before-edge|text-bottom|text-top|thick|thin|titling-caps|top|top-outside|touch|traditional|transparent|triangle|ultra-condensed|ultra-expanded|under|underline|unicase|unset|upleft|uppercase|upright|use-glyph-orientation|use-script|verso|vertical|vertical-ideographic|vertical-lr|vertical-rl|vertical-text|view-box|visible|visibleFill|visiblePainted|visibleStroke|w-resize|wait|wavy|weight|whitespace|wider|words|wrap|wrap-reverse|x|x-large|x-small|xx-large|xx-small|y|zero|zoom-in|zoom-out)(?![-\\w])",
4724
4724
  name: "support.constant.property-value.css"
4725
4725
  },
4726
4726
  {
@@ -1230,7 +1230,7 @@ function lspRequest(req, token) {
1230
1230
  });
1231
1231
  }
1232
1232
  var registry = /* @__PURE__ */ new Map();
1233
- function registerBasicFeatures(languageId, worker, completionTriggerCharacters, workspace) {
1233
+ function registerBasicFeatures(languageId, worker, completionTriggerCharacters, workspace, diagnosticsOptions) {
1234
1234
  const { editor, languages } = monaco;
1235
1235
  const onDispose = async (model) => {
1236
1236
  const workerProxy = await worker.withSyncedResources([]);
@@ -1246,7 +1246,9 @@ function registerBasicFeatures(languageId, worker, completionTriggerCharacters,
1246
1246
  onDispose(model);
1247
1247
  }
1248
1248
  });
1249
- registerDiagnostics(languageId, worker);
1249
+ if (diagnosticsOptions?.validate ?? true) {
1250
+ registerDiagnostics(languageId, worker, diagnosticsOptions);
1251
+ }
1250
1252
  languages.registerCompletionItemProvider(languageId, new CompletionAdapter(worker, completionTriggerCharacters));
1251
1253
  languages.registerHoverProvider(languageId, new HoverAdapter(worker));
1252
1254
  languages.registerDocumentSymbolProvider(languageId, new DocumentSymbolAdapter(worker));
@@ -1277,14 +1279,28 @@ function registerBasicFeatures(languageId, worker, completionTriggerCharacters,
1277
1279
  });
1278
1280
  }
1279
1281
  }
1280
- function registerDiagnostics(languageId, worker) {
1282
+ function registerDiagnostics(languageId, worker, options) {
1281
1283
  const { editor } = monaco;
1282
1284
  const modelChangeListeners = /* @__PURE__ */ new Map();
1283
1285
  const doValidate = async (model) => {
1284
1286
  const workerProxy = await worker.withSyncedResources([model.uri]);
1285
1287
  const diagnostics = await workerProxy.doValidation(model.uri.toString());
1286
1288
  if (diagnostics && !model.isDisposed()) {
1287
- const markers = diagnostics.map(diagnosticToMarker);
1289
+ let markers = diagnostics.map(diagnosticToMarker);
1290
+ if (options?.filter) {
1291
+ markers = markers.filter(options.filter);
1292
+ }
1293
+ if (options?.codesToIgnore) {
1294
+ markers = markers.filter((marker) => {
1295
+ const code = typeof marker.code === "string" ? marker.code : marker.code?.value;
1296
+ for (const codeToIgnore of options.codesToIgnore) {
1297
+ if (code && code === String(codeToIgnore)) {
1298
+ return false;
1299
+ }
1300
+ }
1301
+ return true;
1302
+ });
1303
+ }
1288
1304
  monaco.editor.setModelMarkers(model, languageId, markers);
1289
1305
  }
1290
1306
  };
@@ -1371,6 +1387,8 @@ var CompletionAdapter = class {
1371
1387
  this._worker = _worker;
1372
1388
  this._triggerCharacters = _triggerCharacters;
1373
1389
  }
1390
+ _worker;
1391
+ _triggerCharacters;
1374
1392
  get triggerCharacters() {
1375
1393
  return this._triggerCharacters;
1376
1394
  }
@@ -1529,6 +1547,7 @@ var HoverAdapter = class {
1529
1547
  constructor(_worker) {
1530
1548
  this._worker = _worker;
1531
1549
  }
1550
+ _worker;
1532
1551
  async provideHover(model, position, token) {
1533
1552
  const worker = await lspRequest(() => this._worker.withSyncedResources([model.uri]), token);
1534
1553
  const info = await lspRequest(() => worker?.doHover(model.uri.toString(), fromPosition(position)), token);
@@ -1572,6 +1591,8 @@ var SignatureHelpAdapter = class {
1572
1591
  this._worker = _worker;
1573
1592
  this._triggerCharacters = _triggerCharacters;
1574
1593
  }
1594
+ _worker;
1595
+ _triggerCharacters;
1575
1596
  get signatureHelpTriggerCharacters() {
1576
1597
  return this._triggerCharacters;
1577
1598
  }
@@ -1600,6 +1621,7 @@ var CodeActionAdaptor = class {
1600
1621
  constructor(_worker) {
1601
1622
  this._worker = _worker;
1602
1623
  }
1624
+ _worker;
1603
1625
  async provideCodeActions(model, range, context, token) {
1604
1626
  const worker = await lspRequest(() => this._worker.withSyncedResources([model.uri]), token);
1605
1627
  const codeActions = await lspRequest(
@@ -1662,6 +1684,7 @@ var RenameAdapter = class {
1662
1684
  constructor(_worker) {
1663
1685
  this._worker = _worker;
1664
1686
  }
1687
+ _worker;
1665
1688
  async provideRenameEdits(model, position, newName, token) {
1666
1689
  const worker = await lspRequest(() => this._worker.withSyncedResources([model.uri]), token);
1667
1690
  const edit = await lspRequest(() => worker?.doRename(model.uri.toString(), fromPosition(position), newName), token);
@@ -1694,6 +1717,7 @@ var DocumentFormattingEditProvider = class {
1694
1717
  constructor(_worker) {
1695
1718
  this._worker = _worker;
1696
1719
  }
1720
+ _worker;
1697
1721
  async provideDocumentFormattingEdits(model, options, token) {
1698
1722
  const worker = await lspRequest(() => this._worker.withSyncedResources([model.uri]), token);
1699
1723
  const edits = await lspRequest(() => worker?.doFormat(model.uri.toString(), null, options), token);
@@ -1706,6 +1730,7 @@ var DocumentRangeFormattingEditProvider = class {
1706
1730
  constructor(_worker) {
1707
1731
  this._worker = _worker;
1708
1732
  }
1733
+ _worker;
1709
1734
  async provideDocumentRangeFormattingEdits(model, range, options, token) {
1710
1735
  const worker = await lspRequest(() => this._worker.withSyncedResources([model.uri]), token);
1711
1736
  const edits = await lspRequest(() => worker?.doFormat(model.uri.toString(), fromRange(range), options), token);
@@ -1768,6 +1793,7 @@ var DocumentSymbolAdapter = class {
1768
1793
  constructor(_worker) {
1769
1794
  this._worker = _worker;
1770
1795
  }
1796
+ _worker;
1771
1797
  async provideDocumentSymbols(model, token) {
1772
1798
  const worker = await lspRequest(() => this._worker.withSyncedResources([model.uri]), token);
1773
1799
  const items = await lspRequest(() => worker?.findDocumentSymbols(model.uri.toString()), token);
@@ -1850,6 +1876,7 @@ var DefinitionAdapter = class {
1850
1876
  constructor(_worker) {
1851
1877
  this._worker = _worker;
1852
1878
  }
1879
+ _worker;
1853
1880
  async provideDefinition(model, position, token) {
1854
1881
  const worker = await lspRequest(() => this._worker.withSyncedResources([model.uri]), token);
1855
1882
  const definition = await lspRequest(() => worker?.findDefinition(model.uri.toString(), fromPosition(position)), token);
@@ -1906,6 +1933,7 @@ var ReferenceAdapter = class {
1906
1933
  constructor(_worker) {
1907
1934
  this._worker = _worker;
1908
1935
  }
1936
+ _worker;
1909
1937
  async provideReferences(model, position, context, token) {
1910
1938
  const worker = await lspRequest(() => this._worker.withSyncedResources([model.uri]), token);
1911
1939
  const references = await lspRequest(() => worker?.findReferences(model.uri.toString(), fromPosition(position)), token);
@@ -1923,6 +1951,7 @@ var DocumentLinkAdapter = class {
1923
1951
  constructor(_worker) {
1924
1952
  this._worker = _worker;
1925
1953
  }
1954
+ _worker;
1926
1955
  async provideLinks(model, token) {
1927
1956
  const worker = await lspRequest(() => this._worker.withSyncedResources([model.uri]), token);
1928
1957
  const items = await lspRequest(() => worker?.findDocumentLinks(model.uri.toString()), token);
@@ -1942,6 +1971,7 @@ var DocumentColorAdapter = class {
1942
1971
  constructor(_worker) {
1943
1972
  this._worker = _worker;
1944
1973
  }
1974
+ _worker;
1945
1975
  async provideDocumentColors(model, token) {
1946
1976
  const worker = await lspRequest(() => this._worker.withSyncedResources([model.uri]), token);
1947
1977
  const colors = await lspRequest(() => worker?.findDocumentColors(model.uri.toString()), token);
@@ -1971,6 +2001,7 @@ var DocumentHighlightAdapter = class {
1971
2001
  constructor(_worker) {
1972
2002
  this._worker = _worker;
1973
2003
  }
2004
+ _worker;
1974
2005
  async provideDocumentHighlights(model, position, token) {
1975
2006
  const worker = await lspRequest(() => this._worker.withSyncedResources([model.uri]), token);
1976
2007
  const entries = await lspRequest(() => worker?.findDocumentHighlights(model.uri.toString(), fromPosition(position)), token);
@@ -1999,6 +2030,7 @@ var FoldingRangeAdapter = class {
1999
2030
  constructor(_worker) {
2000
2031
  this._worker = _worker;
2001
2032
  }
2033
+ _worker;
2002
2034
  async provideFoldingRanges(model, context, token) {
2003
2035
  const worker = await lspRequest(() => this._worker.withSyncedResources([model.uri]), token);
2004
2036
  const ranges = await lspRequest(() => worker?.getFoldingRanges(model.uri.toString(), context), token);
@@ -2031,6 +2063,7 @@ var SelectionRangeAdapter = class {
2031
2063
  constructor(_worker) {
2032
2064
  this._worker = _worker;
2033
2065
  }
2066
+ _worker;
2034
2067
  async provideSelectionRanges(model, positions, token) {
2035
2068
  const worker = await lspRequest(() => this._worker.withSyncedResources([model.uri]), token);
2036
2069
  const selectionRanges = await lspRequest(() => worker?.getSelectionRanges(model.uri.toString(), positions.map(fromPosition)), token);
@@ -2052,6 +2085,7 @@ var LinkedEditingRangeAdapter = class {
2052
2085
  constructor(_worker) {
2053
2086
  this._worker = _worker;
2054
2087
  }
2088
+ _worker;
2055
2089
  async provideLinkedEditingRanges(model, position, token) {
2056
2090
  const worker = await lspRequest(() => this._worker.withSyncedResources([model.uri]), token);
2057
2091
  const editingRange = await lspRequest(
@@ -2071,6 +2105,7 @@ var InlayHintsAdapter = class {
2071
2105
  constructor(_worker) {
2072
2106
  this._worker = _worker;
2073
2107
  }
2108
+ _worker;
2074
2109
  async provideInlayHints(model, range, token) {
2075
2110
  const worker = await lspRequest(() => this._worker.withSyncedResources([model.uri]), token);
2076
2111
  const hints = await lspRequest(() => worker?.provideInlayHints(model.uri.toString(), fromRange(range)), token);
@@ -1,12 +1,20 @@
1
1
  // src/lsp/css/setup.ts
2
2
  import * as client from "../client.mjs";
3
3
  async function setup(monaco, languageId, languageSettings, formattingOptions, workspace) {
4
+ const validProperties = languageSettings?.validProperties;
5
+ const dataProviders = { ...languageSettings?.dataProviders };
6
+ if (validProperties) {
7
+ dataProviders["#valid-properties"] = {
8
+ version: 1.1,
9
+ properties: validProperties.map((property) => ({ name: property }))
10
+ };
11
+ }
4
12
  const { tabSize, insertSpaces, insertFinalNewline, trimFinalNewlines } = formattingOptions ?? {};
5
13
  const createData = {
6
14
  language: languageId,
7
15
  data: {
8
- useDefaultDataProvider: true,
9
- ...languageSettings
16
+ useDefaultDataProvider: languageSettings?.useDefaultDataProvider ?? true,
17
+ dataProviders
10
18
  },
11
19
  format: {
12
20
  tabSize,
@@ -25,7 +33,7 @@ async function setup(monaco, languageId, languageSettings, formattingOptions, wo
25
33
  host: client.createHost(workspace)
26
34
  });
27
35
  client.init(monaco);
28
- client.registerBasicFeatures(languageId, worker, ["/", "-", ":", "("], workspace);
36
+ client.registerBasicFeatures(languageId, worker, ["/", "-", ":", "("], workspace, languageSettings?.diagnosticsOptions);
29
37
  client.registerCodeAction(languageId, worker);
30
38
  client.registerColorPresentation(languageId, worker);
31
39
  client.registerDocumentLinks(languageId, worker);