FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

Add files by new src · unlicense-code/code-oss@ff41c23 · GitHub

Add files by new src · unlicense-code/code-oss@ff41c23 · GitHub
Skip to content

Navigation Menu

Commit ff41c23

Browse files
committed
Add files by new src
1 parent 8312ce6 commit ff41c23

58 files changed

Lines changed: 5551 additions & 0 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
import { DisposableStore, IDisposable } from '../common/lifecycle.js';
2+
export declare function isGlobalStylesheet(node: Node): boolean;
3+
/**
4+
* A version of createStyleSheet which has a unified API to initialize/set the style content.
5+
*/
6+
export declare function createStyleSheet2(): WrappedStyleElement;
7+
declare class WrappedStyleElement {
8+
private _currentCssStyle;
9+
private _styleSheet;
10+
setStyle(cssStyle: string): void;
11+
dispose(): void;
12+
}
13+
export declare function createStyleSheet(container?: HTMLElement, beforeAppend?: (style: HTMLStyleElement) => void, disposableStore?: DisposableStore): HTMLStyleElement;
14+
export declare function cloneGlobalStylesheets(targetWindow: Window): IDisposable;
15+
export declare function createCSSRule(selector: string, cssText: string, style?: HTMLStyleElement): void;
16+
export declare function removeCSSRulesContainingSelector(ruleName: string, style?: HTMLStyleElement): void;
17+
export {};
Lines changed: 138 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,138 @@
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+
import { DisposableStore, toDisposable } from '../common/lifecycle.js';
6+
import { getWindows, sharedMutationObserver } from './dom.js';
7+
import { mainWindow } from './window.js';
8+
const globalStylesheets = new Map();
9+
export function isGlobalStylesheet(node) {
10+
return globalStylesheets.has(node);
11+
}
12+
/**
13+
* A version of createStyleSheet which has a unified API to initialize/set the style content.
14+
*/
15+
export function createStyleSheet2() {
16+
return new WrappedStyleElement();
17+
}
18+
class WrappedStyleElement {
19+
constructor() {
20+
this._currentCssStyle = '';
21+
this._styleSheet = undefined;
22+
}
23+
setStyle(cssStyle) {
24+
if (cssStyle === this._currentCssStyle) {
25+
return;
26+
}
27+
this._currentCssStyle = cssStyle;
28+
if (!this._styleSheet) {
29+
this._styleSheet = createStyleSheet(mainWindow.document.head, (s) => s.innerText = cssStyle);
30+
}
31+
else {
32+
this._styleSheet.innerText = cssStyle;
33+
}
34+
}
35+
dispose() {
36+
if (this._styleSheet) {
37+
this._styleSheet.remove();
38+
this._styleSheet = undefined;
39+
}
40+
}
41+
}
42+
export function createStyleSheet(container = mainWindow.document.head, beforeAppend, disposableStore) {
43+
const style = document.createElement('style');
44+
style.type = 'text/css';
45+
style.media = 'screen';
46+
beforeAppend?.(style);
47+
container.appendChild(style);
48+
if (disposableStore) {
49+
disposableStore.add(toDisposable(() => style.remove()));
50+
}
51+
// With <head> as container, the stylesheet becomes global and is tracked
52+
// to support auxiliary windows to clone the stylesheet.
53+
if (container === mainWindow.document.head) {
54+
const globalStylesheetClones = new Set();
55+
globalStylesheets.set(style, globalStylesheetClones);
56+
for (const { window: targetWindow, disposables } of getWindows()) {
57+
if (targetWindow === mainWindow) {
58+
continue; // main window is already tracked
59+
}
60+
const cloneDisposable = disposables.add(cloneGlobalStyleSheet(style, globalStylesheetClones, targetWindow));
61+
disposableStore?.add(cloneDisposable);
62+
}
63+
}
64+
return style;
65+
}
66+
export function cloneGlobalStylesheets(targetWindow) {
67+
const disposables = new DisposableStore();
68+
for (const [globalStylesheet, clonedGlobalStylesheets] of globalStylesheets) {
69+
disposables.add(cloneGlobalStyleSheet(globalStylesheet, clonedGlobalStylesheets, targetWindow));
70+
}
71+
return disposables;
72+
}
73+
function cloneGlobalStyleSheet(globalStylesheet, globalStylesheetClones, targetWindow) {
74+
const disposables = new DisposableStore();
75+
const clone = globalStylesheet.cloneNode(true);
76+
targetWindow.document.head.appendChild(clone);
77+
disposables.add(toDisposable(() => clone.remove()));
78+
for (const rule of getDynamicStyleSheetRules(globalStylesheet)) {
79+
clone.sheet?.insertRule(rule.cssText, clone.sheet?.cssRules.length);
80+
}
81+
disposables.add(sharedMutationObserver.observe(globalStylesheet, disposables, { childList: true })(() => {
82+
clone.textContent = globalStylesheet.textContent;
83+
}));
84+
globalStylesheetClones.add(clone);
85+
disposables.add(toDisposable(() => globalStylesheetClones.delete(clone)));
86+
return disposables;
87+
}
88+
let _sharedStyleSheet = null;
89+
function getSharedStyleSheet() {
90+
if (!_sharedStyleSheet) {
91+
_sharedStyleSheet = createStyleSheet();
92+
}
93+
return _sharedStyleSheet;
94+
}
95+
function getDynamicStyleSheetRules(style) {
96+
if (style?.sheet?.rules) {
97+
// Chrome, IE
98+
return style.sheet.rules;
99+
}
100+
if (style?.sheet?.cssRules) {
101+
// FF
102+
return style.sheet.cssRules;
103+
}
104+
return [];
105+
}
106+
export function createCSSRule(selector, cssText, style = getSharedStyleSheet()) {
107+
if (!style || !cssText) {
108+
return;
109+
}
110+
style.sheet?.insertRule(`${selector} {${cssText}}`, 0);
111+
// Apply rule also to all cloned global stylesheets
112+
for (const clonedGlobalStylesheet of globalStylesheets.get(style) ?? []) {
113+
createCSSRule(selector, cssText, clonedGlobalStylesheet);
114+
}
115+
}
116+
export function removeCSSRulesContainingSelector(ruleName, style = getSharedStyleSheet()) {
117+
if (!style) {
118+
return;
119+
}
120+
const rules = getDynamicStyleSheetRules(style);
121+
const toDelete = [];
122+
for (let i = 0; i < rules.length; i++) {
123+
const rule = rules[i];
124+
if (isCSSStyleRule(rule) && rule.selectorText.indexOf(ruleName) !== -1) {
125+
toDelete.push(i);
126+
}
127+
}
128+
for (let i = toDelete.length - 1; i >= 0; i--) {
129+
style.sheet?.deleteRule(toDelete[i]);
130+
}
131+
// Remove rules also from all cloned global stylesheets
132+
for (const clonedGlobalStylesheet of globalStylesheets.get(style) ?? []) {
133+
removeCSSRulesContainingSelector(ruleName, clonedGlobalStylesheet);
134+
}
135+
}
136+
function isCSSStyleRule(rule) {
137+
return typeof rule.selectorText === 'string';
138+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import { Disposable } from '../../../../base/common/lifecycle.js';
2+
import { INativeEnvironmentService } from '../../../../platform/environment/common/environment.js';
3+
import { INativeServerExtensionManagementService } from '../../../../platform/extensionManagement/node/extensionManagementService.js';
4+
import { ILogService } from '../../../../platform/log/common/log.js';
5+
import { IStorageService } from '../../../../platform/storage/common/storage.js';
6+
import { IFileService } from '../../../../platform/files/common/files.js';
7+
export declare class DefaultExtensionsInitializer extends Disposable {
8+
private readonly environmentService;
9+
private readonly extensionManagementService;
10+
private readonly fileService;
11+
private readonly logService;
12+
constructor(environmentService: INativeEnvironmentService, extensionManagementService: INativeServerExtensionManagementService, storageService: IStorageService, fileService: IFileService, logService: ILogService);
13+
private initializeDefaultExtensions;
14+
private getDefaultExtensionVSIXsLocation;
15+
}
Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
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 __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
6+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
7+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
8+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
9+
return c > 3 && r && Object.defineProperty(target, key, r), r;
10+
};
11+
var __param = (this && this.__param) || function (paramIndex, decorator) {
12+
return function (target, key) { decorator(target, key, paramIndex); }
13+
};
14+
import { dirname, join } from 'path';
15+
import { Disposable } from '../../../../base/common/lifecycle.js';
16+
import { isWindows } from '../../../../base/common/platform.js';
17+
import { URI } from '../../../../base/common/uri.js';
18+
import { INativeEnvironmentService } from '../../../../platform/environment/common/environment.js';
19+
import { INativeServerExtensionManagementService } from '../../../../platform/extensionManagement/node/extensionManagementService.js';
20+
import { ILogService } from '../../../../platform/log/common/log.js';
21+
import { IStorageService } from '../../../../platform/storage/common/storage.js';
22+
import { IFileService, toFileOperationResult } from '../../../../platform/files/common/files.js';
23+
import { getErrorMessage } from '../../../../base/common/errors.js';
24+
const defaultExtensionsInitStatusKey = 'initializing-default-extensions';
25+
let DefaultExtensionsInitializer = class DefaultExtensionsInitializer extends Disposable {
26+
constructor(environmentService, extensionManagementService, storageService, fileService, logService) {
27+
super();
28+
this.environmentService = environmentService;
29+
this.extensionManagementService = extensionManagementService;
30+
this.fileService = fileService;
31+
this.logService = logService;
32+
if (isWindows && storageService.getBoolean(defaultExtensionsInitStatusKey, -1 /* StorageScope.APPLICATION */, true)) {
33+
storageService.store(defaultExtensionsInitStatusKey, true, -1 /* StorageScope.APPLICATION */, 1 /* StorageTarget.MACHINE */);
34+
this.initializeDefaultExtensions().then(() => storageService.store(defaultExtensionsInitStatusKey, false, -1 /* StorageScope.APPLICATION */, 1 /* StorageTarget.MACHINE */));
35+
}
36+
}
37+
async initializeDefaultExtensions() {
38+
const extensionsLocation = this.getDefaultExtensionVSIXsLocation();
39+
let stat;
40+
try {
41+
stat = await this.fileService.resolve(extensionsLocation);
42+
if (!stat.children) {
43+
this.logService.debug('There are no default extensions to initialize', extensionsLocation.toString());
44+
return;
45+
}
46+
}
47+
catch (error) {
48+
if (toFileOperationResult(error) === 1 /* FileOperationResult.FILE_NOT_FOUND */) {
49+
this.logService.debug('There are no default extensions to initialize', extensionsLocation.toString());
50+
return;
51+
}
52+
this.logService.error('Error initializing extensions', error);
53+
return;
54+
}
55+
const vsixs = stat.children.filter(child => child.name.endsWith('.vsix'));
56+
if (vsixs.length === 0) {
57+
this.logService.debug('There are no default extensions to initialize', extensionsLocation.toString());
58+
return;
59+
}
60+
this.logService.info('Initializing default extensions', extensionsLocation.toString());
61+
await Promise.all(vsixs.map(async (vsix) => {
62+
this.logService.info('Installing default extension', vsix.resource.toString());
63+
try {
64+
await this.extensionManagementService.install(vsix.resource, { donotIncludePackAndDependencies: true, keepExisting: false });
65+
this.logService.info('Default extension installed', vsix.resource.toString());
66+
}
67+
catch (error) {
68+
this.logService.error('Error installing default extension', vsix.resource.toString(), getErrorMessage(error));
69+
}
70+
}));
71+
this.logService.info('Default extensions initialized', extensionsLocation.toString());
72+
}
73+
getDefaultExtensionVSIXsLocation() {
74+
// appRoot = C:\Users\<name>\AppData\Local\Programs\Microsoft VS Code Insiders\resources\app
75+
// extensionsPath = C:\Users\<name>\AppData\Local\Programs\Microsoft VS Code Insiders\extras\extensions
76+
return URI.file(join(dirname(dirname(this.environmentService.appRoot)), 'extras', 'extensions'));
77+
}
78+
};
79+
DefaultExtensionsInitializer = __decorate([
80+
__param(0, INativeEnvironmentService),
81+
__param(1, INativeServerExtensionManagementService),
82+
__param(2, IStorageService),
83+
__param(3, IFileService),
84+
__param(4, ILogService)
85+
], DefaultExtensionsInitializer);
86+
export { DefaultExtensionsInitializer };
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
import * as viewEvents from '../../../common/viewEvents.js';
2+
import { ViewContext } from '../../../common/viewModel/viewContext.js';
3+
import { DynamicViewOverlay } from '../../view/dynamicViewOverlay.js';
4+
import { RenderingContext } from '../../view/renderingContext.js';
5+
import './gpuMark.css';
6+
/**
7+
* A mark on lines to make identification of GPU-rendered lines vs DOM easier.
8+
*/
9+
export declare class GpuMarkOverlay extends DynamicViewOverlay {
10+
static readonly CLASS_NAME = "gpu-mark";
11+
private readonly _context;
12+
private _renderResult;
13+
constructor(context: ViewContext);
14+
dispose(): void;
15+
onConfigurationChanged(e: viewEvents.ViewConfigurationChangedEvent): boolean;
16+
onCursorStateChanged(e: viewEvents.ViewCursorStateChangedEvent): boolean;
17+
onFlushed(e: viewEvents.ViewFlushedEvent): boolean;
18+
onLinesChanged(e: viewEvents.ViewLinesChangedEvent): boolean;
19+
onLinesDeleted(e: viewEvents.ViewLinesDeletedEvent): boolean;
20+
onLinesInserted(e: viewEvents.ViewLinesInsertedEvent): boolean;
21+
onScrollChanged(e: viewEvents.ViewScrollChangedEvent): boolean;
22+
onZonesChanged(e: viewEvents.ViewZonesChangedEvent): boolean;
23+
onDecorationsChanged(e: viewEvents.ViewDecorationsChangedEvent): boolean;
24+
prepareRender(ctx: RenderingContext): void;
25+
render(startLineNumber: number, lineNumber: number): string;
26+
}
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
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+
import { ViewGpuContext } from '../../gpu/viewGpuContext.js';
6+
import { DynamicViewOverlay } from '../../view/dynamicViewOverlay.js';
7+
import { ViewLineOptions } from '../viewLines/viewLineOptions.js';
8+
import './gpuMark.css';
9+
/**
10+
* A mark on lines to make identification of GPU-rendered lines vs DOM easier.
11+
*/
12+
export class GpuMarkOverlay extends DynamicViewOverlay {
13+
static { this.CLASS_NAME = 'gpu-mark'; }
14+
constructor(context) {
15+
super();
16+
this._context = context;
17+
this._renderResult = null;
18+
this._context.addEventHandler(this);
19+
}
20+
dispose() {
21+
this._context.removeEventHandler(this);
22+
this._renderResult = null;
23+
super.dispose();
24+
}
25+
// --- begin event handlers
26+
onConfigurationChanged(e) {
27+
return true;
28+
}
29+
onCursorStateChanged(e) {
30+
return true;
31+
}
32+
onFlushed(e) {
33+
return true;
34+
}
35+
onLinesChanged(e) {
36+
return true;
37+
}
38+
onLinesDeleted(e) {
39+
return true;
40+
}
41+
onLinesInserted(e) {
42+
return true;
43+
}
44+
onScrollChanged(e) {
45+
return e.scrollTopChanged;
46+
}
47+
onZonesChanged(e) {
48+
return true;
49+
}
50+
onDecorationsChanged(e) {
51+
return true;
52+
}
53+
// --- end event handlers
54+
prepareRender(ctx) {
55+
const visibleStartLineNumber = ctx.visibleRange.startLineNumber;
56+
const visibleEndLineNumber = ctx.visibleRange.endLineNumber;
57+
const viewportData = ctx.viewportData;
58+
const options = new ViewLineOptions(this._context.configuration, this._context.theme.type);
59+
const output = [];
60+
for (let lineNumber = visibleStartLineNumber; lineNumber <= visibleEndLineNumber; lineNumber++) {
61+
const lineIndex = lineNumber - visibleStartLineNumber;
62+
const cannotRenderReasons = ViewGpuContext.canRenderDetailed(options, viewportData, lineNumber);
63+
output[lineIndex] = cannotRenderReasons.length ? `<div class="${GpuMarkOverlay.CLASS_NAME}" title="Cannot render on GPU: ${cannotRenderReasons.join(', ')}"></div>` : '';
64+
}
65+
this._renderResult = output;
66+
}
67+
render(startLineNumber, lineNumber) {
68+
if (!this._renderResult) {
69+
return '';
70+
}
71+
const lineIndex = lineNumber - startLineNumber;
72+
if (lineIndex < 0 || lineIndex >= this._renderResult.length) {
73+
return '';
74+
}
75+
return this._renderResult[lineIndex];
76+
}
77+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import { IHistory } from '../../../../base/common/history.js';
2+
import { IStorageService } from '../../../../platform/storage/common/storage.js';
3+
export declare class FindWidgetSearchHistory implements IHistory<string> {
4+
private readonly storageService;
5+
static readonly FIND_HISTORY_KEY = "workbench.find.history";
6+
private inMemoryValues;
7+
constructor(storageService: IStorageService);
8+
delete(t: string): boolean;
9+
add(t: string): this;
10+
has(t: string): boolean;
11+
clear(): void;
12+
forEach(callbackfn: (value: string, value2: string, set: Set<string>) => void, thisArg?: any): void;
13+
replace?(t: string[]): void;
14+
load(): void;
15+
save(): Promise<void>;
16+
}

0 commit comments

Comments
 (0)

Footer

© 2026 GitHub, Inc.

Back | FazBrowse Home | New Git URL