monaco-editor-core 0.58.0-dev-20261107 → 0.58.0-dev-20261108
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/esm/nls.messages.cs.js +1 -1
- package/esm/nls.messages.de.js +1 -1
- package/esm/nls.messages.es.js +1 -1
- package/esm/nls.messages.fr.js +1 -1
- package/esm/nls.messages.it.js +1 -1
- package/esm/nls.messages.ja.js +1 -1
- package/esm/nls.messages.ko.js +1 -1
- package/esm/nls.messages.pl.js +1 -1
- package/esm/nls.messages.pt-br.js +1 -1
- package/esm/nls.messages.ru.js +1 -1
- package/esm/nls.messages.tr.js +1 -1
- package/esm/nls.messages.zh-cn.js +1 -1
- package/esm/nls.messages.zh-tw.js +1 -1
- package/esm/vs/editor/browser/viewParts/minimap/minimap.js +74 -33
- package/esm/vs/editor/browser/viewParts/minimap/minimap.js.map +1 -1
- package/esm/vs/editor/browser/viewParts/minimap/minimapDirtyRows.js +91 -0
- package/esm/vs/editor/browser/viewParts/minimap/minimapDirtyRows.js.map +1 -0
- package/esm/vs/platform/quickinput/browser/quickInputController.js +7 -0
- package/esm/vs/platform/quickinput/browser/quickInputController.js.map +1 -1
- package/package.json +2 -2
package/esm/nls.messages.cs.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!-----------------------------------------------------------
|
|
2
2
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
-
* Version: 0.58.0-dev-
|
|
3
|
+
* Version: 0.58.0-dev-20261108(5359a3330383137dfdf8897ba1d93d943fec4027)
|
|
4
4
|
* Released under the MIT license
|
|
5
5
|
* https://github.com/microsoft/vscode/blob/main/LICENSE.txt
|
|
6
6
|
*-----------------------------------------------------------*/
|
package/esm/nls.messages.de.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!-----------------------------------------------------------
|
|
2
2
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
-
* Version: 0.58.0-dev-
|
|
3
|
+
* Version: 0.58.0-dev-20261108(5359a3330383137dfdf8897ba1d93d943fec4027)
|
|
4
4
|
* Released under the MIT license
|
|
5
5
|
* https://github.com/microsoft/vscode/blob/main/LICENSE.txt
|
|
6
6
|
*-----------------------------------------------------------*/
|
package/esm/nls.messages.es.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!-----------------------------------------------------------
|
|
2
2
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
-
* Version: 0.58.0-dev-
|
|
3
|
+
* Version: 0.58.0-dev-20261108(5359a3330383137dfdf8897ba1d93d943fec4027)
|
|
4
4
|
* Released under the MIT license
|
|
5
5
|
* https://github.com/microsoft/vscode/blob/main/LICENSE.txt
|
|
6
6
|
*-----------------------------------------------------------*/
|
package/esm/nls.messages.fr.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!-----------------------------------------------------------
|
|
2
2
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
-
* Version: 0.58.0-dev-
|
|
3
|
+
* Version: 0.58.0-dev-20261108(5359a3330383137dfdf8897ba1d93d943fec4027)
|
|
4
4
|
* Released under the MIT license
|
|
5
5
|
* https://github.com/microsoft/vscode/blob/main/LICENSE.txt
|
|
6
6
|
*-----------------------------------------------------------*/
|
package/esm/nls.messages.it.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!-----------------------------------------------------------
|
|
2
2
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
-
* Version: 0.58.0-dev-
|
|
3
|
+
* Version: 0.58.0-dev-20261108(5359a3330383137dfdf8897ba1d93d943fec4027)
|
|
4
4
|
* Released under the MIT license
|
|
5
5
|
* https://github.com/microsoft/vscode/blob/main/LICENSE.txt
|
|
6
6
|
*-----------------------------------------------------------*/
|
package/esm/nls.messages.ja.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!-----------------------------------------------------------
|
|
2
2
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
-
* Version: 0.58.0-dev-
|
|
3
|
+
* Version: 0.58.0-dev-20261108(5359a3330383137dfdf8897ba1d93d943fec4027)
|
|
4
4
|
* Released under the MIT license
|
|
5
5
|
* https://github.com/microsoft/vscode/blob/main/LICENSE.txt
|
|
6
6
|
*-----------------------------------------------------------*/
|
package/esm/nls.messages.ko.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!-----------------------------------------------------------
|
|
2
2
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
-
* Version: 0.58.0-dev-
|
|
3
|
+
* Version: 0.58.0-dev-20261108(5359a3330383137dfdf8897ba1d93d943fec4027)
|
|
4
4
|
* Released under the MIT license
|
|
5
5
|
* https://github.com/microsoft/vscode/blob/main/LICENSE.txt
|
|
6
6
|
*-----------------------------------------------------------*/
|
package/esm/nls.messages.pl.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!-----------------------------------------------------------
|
|
2
2
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
-
* Version: 0.58.0-dev-
|
|
3
|
+
* Version: 0.58.0-dev-20261108(5359a3330383137dfdf8897ba1d93d943fec4027)
|
|
4
4
|
* Released under the MIT license
|
|
5
5
|
* https://github.com/microsoft/vscode/blob/main/LICENSE.txt
|
|
6
6
|
*-----------------------------------------------------------*/
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!-----------------------------------------------------------
|
|
2
2
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
-
* Version: 0.58.0-dev-
|
|
3
|
+
* Version: 0.58.0-dev-20261108(5359a3330383137dfdf8897ba1d93d943fec4027)
|
|
4
4
|
* Released under the MIT license
|
|
5
5
|
* https://github.com/microsoft/vscode/blob/main/LICENSE.txt
|
|
6
6
|
*-----------------------------------------------------------*/
|
package/esm/nls.messages.ru.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!-----------------------------------------------------------
|
|
2
2
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
-
* Version: 0.58.0-dev-
|
|
3
|
+
* Version: 0.58.0-dev-20261108(5359a3330383137dfdf8897ba1d93d943fec4027)
|
|
4
4
|
* Released under the MIT license
|
|
5
5
|
* https://github.com/microsoft/vscode/blob/main/LICENSE.txt
|
|
6
6
|
*-----------------------------------------------------------*/
|
package/esm/nls.messages.tr.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!-----------------------------------------------------------
|
|
2
2
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
-
* Version: 0.58.0-dev-
|
|
3
|
+
* Version: 0.58.0-dev-20261108(5359a3330383137dfdf8897ba1d93d943fec4027)
|
|
4
4
|
* Released under the MIT license
|
|
5
5
|
* https://github.com/microsoft/vscode/blob/main/LICENSE.txt
|
|
6
6
|
*-----------------------------------------------------------*/
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!-----------------------------------------------------------
|
|
2
2
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
-
* Version: 0.58.0-dev-
|
|
3
|
+
* Version: 0.58.0-dev-20261108(5359a3330383137dfdf8897ba1d93d943fec4027)
|
|
4
4
|
* Released under the MIT license
|
|
5
5
|
* https://github.com/microsoft/vscode/blob/main/LICENSE.txt
|
|
6
6
|
*-----------------------------------------------------------*/
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!-----------------------------------------------------------
|
|
2
2
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
-
* Version: 0.58.0-dev-
|
|
3
|
+
* Version: 0.58.0-dev-20261108(5359a3330383137dfdf8897ba1d93d943fec4027)
|
|
4
4
|
* Released under the MIT license
|
|
5
5
|
* https://github.com/microsoft/vscode/blob/main/LICENSE.txt
|
|
6
6
|
*-----------------------------------------------------------*/
|
|
@@ -19,6 +19,7 @@ import { minimapSelection, minimapBackground, minimapForegroundOpacity, editorFo
|
|
|
19
19
|
import { Selection } from '../../../common/core/selection.js';
|
|
20
20
|
import { EventType, Gesture } from '../../../../base/browser/touch.js';
|
|
21
21
|
import { MinimapCharRendererFactory } from './minimapCharRendererFactory.js';
|
|
22
|
+
import { RecordedFrame, RowSignatures } from './minimapDirtyRows.js';
|
|
22
23
|
import { createSingleCallFunction } from '../../../../base/common/functional.js';
|
|
23
24
|
import { LRUCache } from '../../../../base/common/map.js';
|
|
24
25
|
import { DEFAULT_FONT_FAMILY } from '../../../../base/browser/fonts.js';
|
|
@@ -116,6 +117,7 @@ class MinimapOptions {
|
|
|
116
117
|
&& this.minimapCharWidth === other.minimapCharWidth
|
|
117
118
|
&& this.sectionHeaderFontSize === other.sectionHeaderFontSize
|
|
118
119
|
&& this.sectionHeaderLetterSpacing === other.sectionHeaderLetterSpacing
|
|
120
|
+
&& this.sectionHeaderFontColor.equals(other.sectionHeaderFontColor)
|
|
119
121
|
&& this.defaultBackgroundColor && this.defaultBackgroundColor.equals(other.defaultBackgroundColor)
|
|
120
122
|
&& this.backgroundColor && this.backgroundColor.equals(other.backgroundColor)
|
|
121
123
|
&& this.foregroundAlpha === other.foregroundAlpha);
|
|
@@ -892,6 +894,11 @@ export class Minimap extends ViewPart {
|
|
|
892
894
|
class InnerMinimap extends Disposable {
|
|
893
895
|
constructor(theme, model) {
|
|
894
896
|
super();
|
|
897
|
+
/**
|
|
898
|
+
* What each row of `_decorationsCanvas` shows, so that the next frame only redraws
|
|
899
|
+
* the rows that change. Drawing on all of a visible canvas makes the browser repaint all of it.
|
|
900
|
+
*/
|
|
901
|
+
this._lastDecorationsRows = null;
|
|
895
902
|
this._renderDecorations = false;
|
|
896
903
|
this._gestureInProgress = false;
|
|
897
904
|
this._isMouseOverMinimap = false;
|
|
@@ -1086,6 +1093,7 @@ class InnerMinimap extends Disposable {
|
|
|
1086
1093
|
this._decorationsCanvas.setHeight(this._model.options.canvasOuterHeight);
|
|
1087
1094
|
this._decorationsCanvas.domNode.width = this._model.options.canvasInnerWidth;
|
|
1088
1095
|
this._decorationsCanvas.domNode.height = this._model.options.canvasInnerHeight;
|
|
1096
|
+
this._lastDecorationsRows = null;
|
|
1089
1097
|
this._slider.setWidth(this._model.options.minimapWidth);
|
|
1090
1098
|
}
|
|
1091
1099
|
_getBuffer() {
|
|
@@ -1195,26 +1203,41 @@ class InnerMinimap extends Disposable {
|
|
|
1195
1203
|
const minimapLineHeight = this._model.options.minimapLineHeight;
|
|
1196
1204
|
const minimapCharWidth = this._model.options.minimapCharWidth;
|
|
1197
1205
|
const tabSize = this._model.getOptions().tabSize;
|
|
1206
|
+
if (canvasInnerWidth === 0 || canvasInnerHeight === 0) {
|
|
1207
|
+
return;
|
|
1208
|
+
}
|
|
1198
1209
|
const canvasContext = this._decorationsCanvas.domNode.getContext('2d');
|
|
1199
|
-
|
|
1210
|
+
const frame = new RecordedFrame(canvasInnerHeight);
|
|
1200
1211
|
// We first need to render line highlights and then render decorations on top of those.
|
|
1201
1212
|
// But we need to pick a single color for each line, and use that as a line highlight.
|
|
1202
1213
|
// This needs to be the color of the decoration with the highest `zIndex`, but priority
|
|
1203
1214
|
// is given to the selection.
|
|
1204
1215
|
const highlightedLines = new ContiguousLineMap(layout.startLineNumber, layout.endLineNumber, false);
|
|
1205
|
-
this._renderSelectionLineHighlights(
|
|
1206
|
-
this._renderDecorationsLineHighlights(
|
|
1216
|
+
this._renderSelectionLineHighlights(frame, selections, highlightedLines, layout, minimapLineHeight, canvasInnerWidth);
|
|
1217
|
+
this._renderDecorationsLineHighlights(frame, decorations, highlightedLines, layout, minimapLineHeight, canvasInnerWidth);
|
|
1207
1218
|
const lineOffsetMap = new ContiguousLineMap(layout.startLineNumber, layout.endLineNumber, null);
|
|
1208
|
-
this._renderSelectionsHighlights(
|
|
1209
|
-
this._renderDecorationsHighlights(
|
|
1210
|
-
this._renderSectionHeaders(layout);
|
|
1211
|
-
|
|
1212
|
-
|
|
1213
|
-
|
|
1219
|
+
this._renderSelectionsHighlights(frame, selections, lineOffsetMap, layout, minimapLineHeight, tabSize, minimapCharWidth, canvasInnerWidth);
|
|
1220
|
+
this._renderDecorationsHighlights(frame, decorations, lineOffsetMap, layout, minimapLineHeight, tabSize, minimapCharWidth, canvasInnerWidth);
|
|
1221
|
+
this._renderSectionHeaders(frame, canvasContext, layout);
|
|
1222
|
+
// Only redraw the rows that look different from the last frame
|
|
1223
|
+
const dirty = RowSignatures.diff(this._lastDecorationsRows, frame.rows);
|
|
1224
|
+
this._lastDecorationsRows = frame.rows;
|
|
1225
|
+
if (dirty) {
|
|
1226
|
+
canvasContext.save();
|
|
1227
|
+
canvasContext.beginPath();
|
|
1228
|
+
canvasContext.rect(0, dirty.start, canvasInnerWidth, dirty.end - dirty.start);
|
|
1229
|
+
canvasContext.clip();
|
|
1230
|
+
canvasContext.clearRect(0, dirty.start, canvasInnerWidth, dirty.end - dirty.start);
|
|
1231
|
+
frame.replay(canvasContext, dirty);
|
|
1232
|
+
canvasContext.restore();
|
|
1233
|
+
}
|
|
1234
|
+
}
|
|
1235
|
+
}
|
|
1236
|
+
_renderSelectionLineHighlights(frame, selections, highlightedLines, layout, minimapLineHeight, canvasInnerWidth) {
|
|
1214
1237
|
if (!this._selectionColor || this._selectionColor.isTransparent()) {
|
|
1215
1238
|
return;
|
|
1216
1239
|
}
|
|
1217
|
-
|
|
1240
|
+
const fillStyle = this._selectionColor.transparent(0.5).toString();
|
|
1218
1241
|
let y1 = 0;
|
|
1219
1242
|
let y2 = 0;
|
|
1220
1243
|
for (const selection of selections) {
|
|
@@ -1236,7 +1259,7 @@ class InnerMinimap extends Disposable {
|
|
|
1236
1259
|
else {
|
|
1237
1260
|
if (y2 > y1) {
|
|
1238
1261
|
// flush
|
|
1239
|
-
|
|
1262
|
+
frame.fillRect(fillStyle, MINIMAP_GUTTER_WIDTH, y1, canvasInnerWidth, y2 - y1);
|
|
1240
1263
|
}
|
|
1241
1264
|
y1 = yy1;
|
|
1242
1265
|
y2 = yy2;
|
|
@@ -1244,10 +1267,10 @@ class InnerMinimap extends Disposable {
|
|
|
1244
1267
|
}
|
|
1245
1268
|
if (y2 > y1) {
|
|
1246
1269
|
// flush
|
|
1247
|
-
|
|
1270
|
+
frame.fillRect(fillStyle, MINIMAP_GUTTER_WIDTH, y1, canvasInnerWidth, y2 - y1);
|
|
1248
1271
|
}
|
|
1249
1272
|
}
|
|
1250
|
-
_renderDecorationsLineHighlights(
|
|
1273
|
+
_renderDecorationsLineHighlights(frame, decorations, highlightedLines, layout, minimapLineHeight, canvasInnerWidth) {
|
|
1251
1274
|
const highlightColors = new Map();
|
|
1252
1275
|
// Loop backwards to hit first decorations with higher `zIndex`
|
|
1253
1276
|
for (let i = decorations.length - 1; i >= 0; i--) {
|
|
@@ -1271,18 +1294,17 @@ class InnerMinimap extends Disposable {
|
|
|
1271
1294
|
highlightColor = decorationColor.transparent(0.5).toString();
|
|
1272
1295
|
highlightColors.set(decorationColor.toString(), highlightColor);
|
|
1273
1296
|
}
|
|
1274
|
-
canvasContext.fillStyle = highlightColor;
|
|
1275
1297
|
for (let line = startLineNumber; line <= endLineNumber; line++) {
|
|
1276
1298
|
if (highlightedLines.has(line)) {
|
|
1277
1299
|
continue;
|
|
1278
1300
|
}
|
|
1279
1301
|
highlightedLines.set(line, true);
|
|
1280
1302
|
const y = layout.getYForLineNumber(line, minimapLineHeight);
|
|
1281
|
-
|
|
1303
|
+
frame.fillRect(highlightColor, MINIMAP_GUTTER_WIDTH, y, canvasInnerWidth, minimapLineHeight);
|
|
1282
1304
|
}
|
|
1283
1305
|
}
|
|
1284
1306
|
}
|
|
1285
|
-
_renderSelectionsHighlights(
|
|
1307
|
+
_renderSelectionsHighlights(frame, selections, lineOffsetMap, layout, lineHeight, tabSize, characterWidth, canvasInnerWidth) {
|
|
1286
1308
|
if (!this._selectionColor || this._selectionColor.isTransparent()) {
|
|
1287
1309
|
return;
|
|
1288
1310
|
}
|
|
@@ -1294,11 +1316,11 @@ class InnerMinimap extends Disposable {
|
|
|
1294
1316
|
}
|
|
1295
1317
|
const [startLineNumber, endLineNumber] = intersection;
|
|
1296
1318
|
for (let line = startLineNumber; line <= endLineNumber; line++) {
|
|
1297
|
-
this.renderDecorationOnLine(
|
|
1319
|
+
this.renderDecorationOnLine(frame, lineOffsetMap, selection, this._selectionColor, layout, line, lineHeight, lineHeight, tabSize, characterWidth, canvasInnerWidth);
|
|
1298
1320
|
}
|
|
1299
1321
|
}
|
|
1300
1322
|
}
|
|
1301
|
-
_renderDecorationsHighlights(
|
|
1323
|
+
_renderDecorationsHighlights(frame, decorations, lineOffsetMap, layout, minimapLineHeight, tabSize, characterWidth, canvasInnerWidth) {
|
|
1302
1324
|
// Loop forwards to hit first decorations with lower `zIndex`
|
|
1303
1325
|
for (const decoration of decorations) {
|
|
1304
1326
|
const minimapOptions = decoration.options.minimap;
|
|
@@ -1318,19 +1340,19 @@ class InnerMinimap extends Disposable {
|
|
|
1318
1340
|
for (let line = startLineNumber; line <= endLineNumber; line++) {
|
|
1319
1341
|
switch (minimapOptions.position) {
|
|
1320
1342
|
case 1 /* MinimapPosition.Inline */:
|
|
1321
|
-
this.renderDecorationOnLine(
|
|
1343
|
+
this.renderDecorationOnLine(frame, lineOffsetMap, decoration.range, decorationColor, layout, line, minimapLineHeight, minimapLineHeight, tabSize, characterWidth, canvasInnerWidth);
|
|
1322
1344
|
continue;
|
|
1323
1345
|
case 2 /* MinimapPosition.Gutter */: {
|
|
1324
1346
|
const y = layout.getYForLineNumber(line, minimapLineHeight);
|
|
1325
1347
|
const x = 2;
|
|
1326
|
-
this.renderDecoration(
|
|
1348
|
+
this.renderDecoration(frame, decorationColor, x, y, GUTTER_DECORATION_WIDTH, minimapLineHeight);
|
|
1327
1349
|
continue;
|
|
1328
1350
|
}
|
|
1329
1351
|
}
|
|
1330
1352
|
}
|
|
1331
1353
|
}
|
|
1332
1354
|
}
|
|
1333
|
-
renderDecorationOnLine(
|
|
1355
|
+
renderDecorationOnLine(frame, lineOffsetMap, decorationRange, decorationColor, layout, lineNumber, height, minimapLineHeight, tabSize, charWidth, canvasInnerWidth) {
|
|
1334
1356
|
const y = layout.getYForLineNumber(lineNumber, minimapLineHeight);
|
|
1335
1357
|
// Skip rendering the line if it's vertically outside our viewport
|
|
1336
1358
|
if (y + height < 0 || y > this._model.options.canvasInnerHeight) {
|
|
@@ -1341,7 +1363,7 @@ class InnerMinimap extends Disposable {
|
|
|
1341
1363
|
const endColumn = (endLineNumber === lineNumber ? decorationRange.endColumn : this._model.getLineMaxColumn(lineNumber));
|
|
1342
1364
|
const x1 = this.getXOffsetForPosition(lineOffsetMap, lineNumber, startColumn, tabSize, charWidth, canvasInnerWidth);
|
|
1343
1365
|
const x2 = this.getXOffsetForPosition(lineOffsetMap, lineNumber, endColumn, tabSize, charWidth, canvasInnerWidth);
|
|
1344
|
-
this.renderDecoration(
|
|
1366
|
+
this.renderDecoration(frame, decorationColor, x1, y, x2 - x1, height);
|
|
1345
1367
|
}
|
|
1346
1368
|
getXOffsetForPosition(lineOffsetMap, lineNumber, column, tabSize, charWidth, canvasInnerWidth) {
|
|
1347
1369
|
if (column === 1) {
|
|
@@ -1383,11 +1405,12 @@ class InnerMinimap extends Disposable {
|
|
|
1383
1405
|
// goes over the canvas width
|
|
1384
1406
|
return canvasInnerWidth;
|
|
1385
1407
|
}
|
|
1386
|
-
renderDecoration(
|
|
1387
|
-
|
|
1388
|
-
|
|
1408
|
+
renderDecoration(frame, decorationColor, x, y, width, height) {
|
|
1409
|
+
if (decorationColor) {
|
|
1410
|
+
frame.fillRect(decorationColor.toString(), x, y, width, height);
|
|
1411
|
+
}
|
|
1389
1412
|
}
|
|
1390
|
-
_renderSectionHeaders(layout) {
|
|
1413
|
+
_renderSectionHeaders(frame, canvasContext, layout) {
|
|
1391
1414
|
const minimapLineHeight = this._model.options.minimapLineHeight;
|
|
1392
1415
|
const sectionHeaderFontSize = this._model.options.sectionHeaderFontSize;
|
|
1393
1416
|
const sectionHeaderLetterSpacing = this._model.options.sectionHeaderLetterSpacing;
|
|
@@ -1401,13 +1424,19 @@ class InnerMinimap extends Disposable {
|
|
|
1401
1424
|
const foregroundColor = this._model.options.sectionHeaderFontColor;
|
|
1402
1425
|
const foregroundFill = `rgb(${foregroundColor.r} ${foregroundColor.g} ${foregroundColor.b})`;
|
|
1403
1426
|
const separatorStroke = foregroundFill;
|
|
1404
|
-
const
|
|
1405
|
-
|
|
1406
|
-
|
|
1407
|
-
|
|
1408
|
-
|
|
1427
|
+
const letterSpacing = sectionHeaderLetterSpacing + 'px';
|
|
1428
|
+
const font = '500 ' + sectionHeaderFontSize + 'px ' + this._model.options.sectionHeaderFontFamily;
|
|
1429
|
+
const style = `${letterSpacing}:${font}:${backgroundFill}:${foregroundFill}:${horizontalScale}:${labelAreaWidth}`;
|
|
1430
|
+
const setStyle = (target) => {
|
|
1431
|
+
target.letterSpacing = letterSpacing;
|
|
1432
|
+
target.font = font;
|
|
1433
|
+
target.strokeStyle = separatorStroke;
|
|
1434
|
+
target.lineWidth = 0.4;
|
|
1435
|
+
target.scale(horizontalScale, 1);
|
|
1436
|
+
};
|
|
1437
|
+
// Measure the labels with the style they are drawn with
|
|
1409
1438
|
canvasContext.save();
|
|
1410
|
-
canvasContext
|
|
1439
|
+
setStyle(canvasContext);
|
|
1411
1440
|
const decorations = this._model.getSectionHeaderDecorationsInViewport(layout.startLineNumber, layout.endLineNumber);
|
|
1412
1441
|
decorations.sort((a, b) => a.range.startLineNumber - b.range.startLineNumber);
|
|
1413
1442
|
const fitWidth = InnerMinimap._fitSectionHeader.bind(null, canvasContext, labelAreaWidth - MINIMAP_GUTTER_WIDTH);
|
|
@@ -1423,7 +1452,19 @@ class InnerMinimap extends Disposable {
|
|
|
1423
1452
|
if (headerText) {
|
|
1424
1453
|
nextLabelY = backgroundFillY + backgroundFillHeight;
|
|
1425
1454
|
}
|
|
1426
|
-
|
|
1455
|
+
const hasSeparatorLine = decoration.options.minimap?.sectionHeaderStyle === 2 /* MinimapSectionHeaderStyle.Underlined */;
|
|
1456
|
+
if (!headerText && !hasSeparatorLine) {
|
|
1457
|
+
continue;
|
|
1458
|
+
}
|
|
1459
|
+
// Glyphs can reach out of the label background, so give the label some room
|
|
1460
|
+
const top = backgroundFillY - sectionHeaderFontSize;
|
|
1461
|
+
const bottom = backgroundFillY + backgroundFillHeight + sectionHeaderFontSize;
|
|
1462
|
+
frame.add(top, bottom - top, `label:${style}:${hasSeparatorLine}:${headerText}`, false, target => {
|
|
1463
|
+
target.save();
|
|
1464
|
+
setStyle(target);
|
|
1465
|
+
InnerMinimap._renderSectionLabel(target, headerText, hasSeparatorLine, backgroundFill, foregroundFill, labelAreaWidth, backgroundFillY, backgroundFillHeight, y, separatorY);
|
|
1466
|
+
target.restore();
|
|
1467
|
+
});
|
|
1427
1468
|
}
|
|
1428
1469
|
canvasContext.restore();
|
|
1429
1470
|
}
|