adds component explorer

This commit is contained in:
Henning Dieterichs
2026-02-20 16:03:42 +01:00
committed by Henning Dieterichs
parent 7c127d91a5
commit 2751fb4d2f
44 changed files with 1323 additions and 317 deletions

View File

@@ -0,0 +1,77 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import { URI } from '../../../../base/common/uri.js';
import { ComponentFixtureContext, createEditorServices, defineThemedFixtureGroup, defineComponentFixture, createTextModel } from './fixtureUtils.js';
import { ICodeEditorWidgetOptions, CodeEditorWidget } from '../../../../editor/browser/widget/codeEditor/codeEditorWidget.js';
const SAMPLE_CODE = `// Welcome to VS Code
function greet(name: string): string {
return \`Hello, \${name}!\`;
}
class Counter {
private _count = 0;
increment(): void {
this._count++;
}
get count(): number {
return this._count;
}
}
const counter = new Counter();
counter.increment();
console.log(greet('World'));
console.log(\`Count: \${counter.count}\`);
`;
function renderCodeEditor({ container, disposableStore, theme }: ComponentFixtureContext): HTMLElement {
container.style.width = '600px';
container.style.height = '400px';
container.style.border = '1px solid var(--vscode-editorWidget-border)';
const instantiationService = createEditorServices(disposableStore, { colorTheme: theme });
const model = disposableStore.add(createTextModel(
instantiationService,
SAMPLE_CODE,
URI.parse('inmemory://sample.ts'),
'typescript'
));
const editorOptions: ICodeEditorWidgetOptions = {
contributions: []
};
const editor = disposableStore.add(instantiationService.createInstance(
CodeEditorWidget,
container,
{
automaticLayout: true,
minimap: { enabled: true },
lineNumbers: 'on',
scrollBeyondLastLine: false,
fontSize: 14,
fontFamily: 'Consolas, "Courier New", monospace',
renderWhitespace: 'selection',
bracketPairColorization: { enabled: true },
},
editorOptions
));
editor.setModel(model);
return container;
}
export default defineThemedFixtureGroup({
CodeEditor: defineComponentFixture({
render: (context) => renderCodeEditor(context),
}),
});