mirror of
https://github.com/voideditor/void.git
synced 2025-03-15 07:27:58 +00:00
update build
This commit is contained in:
@ -55,7 +55,7 @@ const dirs = [
|
||||
'.vscode/extensions/vscode-selfhost-test-provider',
|
||||
|
||||
// Void added these:
|
||||
'extensions/void',
|
||||
// 'extensions/void',
|
||||
'void-imports',
|
||||
|
||||
];
|
||||
|
1540
package-lock.json
generated
1540
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -115,6 +115,7 @@
|
||||
"yazl": "^2.4.3"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@anthropic-ai/sdk": "^0.32.1",
|
||||
"@playwright/test": "^1.46.1",
|
||||
"@swc/core": "1.3.62",
|
||||
"@types/cookie": "^0.3.3",
|
||||
@ -125,6 +126,8 @@
|
||||
"@types/minimist": "^1.2.1",
|
||||
"@types/mocha": "^9.1.1",
|
||||
"@types/node": "20.x",
|
||||
"@types/react": "^18.3.12",
|
||||
"@types/react-dom": "^18.3.1",
|
||||
"@types/sinon": "^10.0.2",
|
||||
"@types/sinon-test": "^2.4.2",
|
||||
"@types/trusted-types": "^1.0.6",
|
||||
@ -198,6 +201,7 @@
|
||||
"mocha-junit-reporter": "^2.2.1",
|
||||
"mocha-multi-reporters": "^1.5.1",
|
||||
"npm-run-all": "^4.1.5",
|
||||
"openai": "^4.71.1",
|
||||
"opn": "^6.0.0",
|
||||
"original-fs": "^1.2.0",
|
||||
"os-browserify": "^0.3.0",
|
||||
@ -207,6 +211,8 @@
|
||||
"postcss-nesting": "^12.0.2",
|
||||
"pump": "^1.0.1",
|
||||
"rcedit": "^1.1.0",
|
||||
"react": "^18.3.1",
|
||||
"react-dom": "^18.3.1",
|
||||
"rimraf": "^2.2.8",
|
||||
"sinon": "^12.0.1",
|
||||
"sinon-test": "^3.1.3",
|
||||
@ -217,6 +223,7 @@
|
||||
"ts-node": "^10.9.1",
|
||||
"tsec": "0.2.7",
|
||||
"tslib": "^2.6.3",
|
||||
"tsup": "^8.3.5",
|
||||
"typescript": "^5.7.0-dev.20240903",
|
||||
"util": "^0.12.4",
|
||||
"webpack": "^5.94.0",
|
||||
|
@ -1 +1 @@
|
||||
dist/
|
||||
void-imports/
|
||||
|
66
src/vs/workbench/contrib/void/browser/registerViewPane.ts
Normal file
66
src/vs/workbench/contrib/void/browser/registerViewPane.ts
Normal file
@ -0,0 +1,66 @@
|
||||
import { Registry } from '../../../../platform/registry/common/platform.js';
|
||||
import {
|
||||
Extensions as ViewContainerExtensions, IViewContainersRegistry,
|
||||
ViewContainerLocation, IViewsRegistry, Extensions as ViewExtensions,
|
||||
} from '../../../common/views.js';
|
||||
|
||||
import * as nls from '../../../../nls.js';
|
||||
|
||||
import { VoidViewPane } from './voidViewPane.js';
|
||||
|
||||
import { Codicon } from '../../../../base/common/codicons.js';
|
||||
import { localize } from '../../../../nls.js';
|
||||
import { registerIcon } from '../../../../platform/theme/common/iconRegistry.js';
|
||||
import { ViewPaneContainer } from '../../../browser/parts/views/viewPaneContainer.js';
|
||||
|
||||
import { SyncDescriptor } from '../../../../platform/instantiation/common/descriptors.js';
|
||||
import { KeyCode, KeyMod } from '../../../../base/common/keyCodes.js';
|
||||
|
||||
|
||||
const voidThemeIcon = Codicon.search;
|
||||
const voidViewIcon = registerIcon('void-view-icon', voidThemeIcon, localize('voidViewIcon', 'View icon of the Void chat view.'));
|
||||
|
||||
|
||||
// compare against search.contribution.ts and https://app.greptile.com/chat/w1nsmt3lauwzculipycpn?repo=github%3Amain%3Amicrosoft%2Fvscode
|
||||
// and debug.contribution.ts, scm.contribution.ts (source control)
|
||||
|
||||
// called VIEWLET_ID in other places for some reason
|
||||
const VIEW_CONTAINER_ID = 'workbench.view.void'
|
||||
|
||||
// Register view container
|
||||
const viewContainerRegistry = Registry.as<IViewContainersRegistry>(ViewContainerExtensions.ViewContainersRegistry);
|
||||
const viewContainer = viewContainerRegistry.registerViewContainer({
|
||||
id: VIEW_CONTAINER_ID,
|
||||
title: nls.localize2('void', 'Void'), // this is used to say "Void" (Ctrl + L)
|
||||
ctorDescriptor: new SyncDescriptor(ViewPaneContainer, [VIEW_CONTAINER_ID, { mergeViewWithContainerWhenSingleView: true }]),
|
||||
hideIfEmpty: false,
|
||||
icon: voidViewIcon,
|
||||
order: 1,
|
||||
}, ViewContainerLocation.AuxiliaryBar, { doNotRegisterOpenCommand: true, });
|
||||
|
||||
|
||||
|
||||
// Register search default location to the container (sidebar)
|
||||
const viewsRegistry = Registry.as<IViewsRegistry>(ViewExtensions.ViewsRegistry);
|
||||
viewsRegistry.registerViews([{
|
||||
id: VIEW_CONTAINER_ID, // not sure if we can change this
|
||||
hideByDefault: false, // start open
|
||||
containerIcon: voidViewIcon,
|
||||
name: nls.localize2('void chat', "Chat"), // this says ... : CHAT
|
||||
ctorDescriptor: new SyncDescriptor(VoidViewPane),
|
||||
canToggleVisibility: false,
|
||||
canMoveView: true,
|
||||
openCommandActionDescriptor: {
|
||||
id: viewContainer.id,
|
||||
keybindings: {
|
||||
primary: KeyMod.CtrlCmd | KeyCode.KeyL, // we don't need to disable the original ctrl+L (probably because it brings panel into focus first)
|
||||
},
|
||||
order: 1
|
||||
// mnemonicTitle: nls.localize({ key: 'miViewSearch', comment: ['&& denotes a mnemonic'] }, "&&Search"),
|
||||
}
|
||||
}], viewContainer);
|
||||
|
||||
|
||||
// TODO can add a configuration for the user to choose config options - see search.contribution.ts
|
||||
|
||||
|
@ -1,74 +1,3 @@
|
||||
import { Registry } from '../../../../platform/registry/common/platform.js';
|
||||
import {
|
||||
Extensions as ViewContainerExtensions, IViewContainersRegistry,
|
||||
ViewContainerLocation, IViewsRegistry, Extensions as ViewExtensions,
|
||||
IViewDescriptor
|
||||
} from '../../../../workbench/common/views.js';
|
||||
|
||||
import * as nls from '../../../../nls.js';
|
||||
|
||||
import { VoidViewPane } from '../../../../workbench/contrib/void/browser/voidViewPane.js';
|
||||
|
||||
import { Codicon } from '../../../../base/common/codicons.js';
|
||||
import { localize } from '../../../../nls.js';
|
||||
import { registerIcon } from '../../../../platform/theme/common/iconRegistry.js';
|
||||
import { ViewPaneContainer } from '../../../../workbench/browser/parts/views/viewPaneContainer.js';
|
||||
|
||||
import { SyncDescriptor } from '../../../../platform/instantiation/common/descriptors.js';
|
||||
import { KeyCode, KeyMod } from '../../../../base/common/keyCodes.js';
|
||||
|
||||
import * as React from './dist/openai.js'
|
||||
console.log('React', React)
|
||||
|
||||
const voidViewIcon = registerIcon('void-view-icon', Codicon.search, localize('voidViewIcon', 'View icon of the Void chat view.'));
|
||||
|
||||
|
||||
// compare against search.contribution.ts and https://app.greptile.com/chat/w1nsmt3lauwzculipycpn?repo=github%3Amain%3Amicrosoft%2Fvscode
|
||||
// and debug.contribution.ts, scm.contribution.ts (source control)
|
||||
|
||||
const VIEW_CONTAINER_ID = 'workbench.view.void' // called VIEWLET_ID in other places for some reason
|
||||
|
||||
// Register view container
|
||||
const viewContainerRegistry = Registry.as<IViewContainersRegistry>(ViewContainerExtensions.ViewContainersRegistry);
|
||||
const viewContainer = viewContainerRegistry.registerViewContainer({
|
||||
id: VIEW_CONTAINER_ID,
|
||||
title: nls.localize2('void', 'Void'), // this is used to say "Void" (Ctrl + L)
|
||||
ctorDescriptor: new SyncDescriptor(ViewPaneContainer, [VIEW_CONTAINER_ID, { mergeViewWithContainerWhenSingleView: true }]),
|
||||
hideIfEmpty: false,
|
||||
icon: voidViewIcon,
|
||||
order: 1,
|
||||
}, ViewContainerLocation.AuxiliaryBar, { doNotRegisterOpenCommand: true });
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// this is called a descriptor, but it's the actual View that gets used inside the view container
|
||||
const VIEW_ID = VIEW_CONTAINER_ID // not sure if we can change this
|
||||
const viewDescriptor: IViewDescriptor = {
|
||||
id: VIEW_ID,
|
||||
containerIcon: voidViewIcon,
|
||||
name: nls.localize2('void chat', "Chat"), // this says ... : CHAT
|
||||
ctorDescriptor: new SyncDescriptor(VoidViewPane),
|
||||
canToggleVisibility: false,
|
||||
canMoveView: true,
|
||||
openCommandActionDescriptor: {
|
||||
id: viewContainer.id,
|
||||
keybindings: {
|
||||
primary: KeyMod.CtrlCmd | KeyCode.KeyL, // we don't need to disable the original ctrl+L (probably because it brings panel into focus first)
|
||||
},
|
||||
order: 1
|
||||
// mnemonicTitle: nls.localize({ key: 'miViewSearch', comment: ['&& denotes a mnemonic'] }, "&&Search"),
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
// Register search default location to the container (sidebar)
|
||||
Registry.as<IViewsRegistry>(ViewExtensions.ViewsRegistry).registerViews([viewDescriptor], viewContainer);
|
||||
|
||||
|
||||
// TODO can add a configuration for the user to choose config options - see search.contribution.ts
|
||||
import './registerViewPane.js'
|
||||
|
||||
|
||||
|
@ -17,4 +17,4 @@ export const initPosthog = () => {
|
||||
person_profiles: 'identified_only' // we only track events from identified users. We identify them in Sidebar
|
||||
}
|
||||
)
|
||||
}
|
||||
}
|
||||
|
@ -1,7 +1,7 @@
|
||||
|
||||
|
||||
|
||||
import { ViewPane } from '../../../../workbench/browser/parts/views/viewPane.js';
|
||||
import { ViewPane } from '../../../browser/parts/views/viewPane.js';
|
||||
|
||||
// import { IConfigurationService } from 'vs/platform/configuration/common/configuration';
|
||||
// import { IContextKeyService } from 'vs/platform/contextkey/common/contextkey';
|
||||
@ -15,6 +15,8 @@ import { ViewPane } from '../../../../workbench/browser/parts/views/viewPane.js'
|
||||
// import { IViewDescriptorService } from 'vs/workbench/common/views';
|
||||
// import { IHoverService } from 'vs/platform/hover/browser/hover';
|
||||
|
||||
import React from './void-imports/react.js'
|
||||
import { render } from './void-imports/react-dom.js'
|
||||
|
||||
export class VoidViewPane extends ViewPane {
|
||||
|
||||
@ -34,6 +36,24 @@ export class VoidViewPane extends ViewPane {
|
||||
// super(options, keybindingService, contextMenuService, configurationService, contextKeyService, viewDescriptorService, instantiationService, openerService, themeService, telemetryService, hoverService);
|
||||
// }
|
||||
|
||||
|
||||
|
||||
protected override renderBody(parent: HTMLElement): void {
|
||||
super.renderBody(parent);
|
||||
|
||||
|
||||
const x = <>
|
||||
|
||||
</>
|
||||
|
||||
|
||||
|
||||
render()
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
// register a singleton service that mounts the ViewPane here
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
import tsup from 'tsup'
|
||||
import tsup from 'tsup' // Void added tsup as a dependency
|
||||
import * as fs from 'fs'
|
||||
import * as path from 'path'
|
||||
|
||||
@ -6,8 +6,8 @@ const buildFiles = (imports, to_be_built_folder) => {
|
||||
// create a file with name importName that imports importName and immediately re-exports it
|
||||
for (const importName of imports) {
|
||||
const content = `\
|
||||
export { default } from '${importName}'
|
||||
export * from '${importName}'
|
||||
import * as mod from '${importName}'
|
||||
export default mod
|
||||
`
|
||||
const dir = path.dirname(importName);
|
||||
const file = path.basename(importName);
|
||||
@ -24,7 +24,7 @@ const compileFiles = async (imports, to_be_built_folder, outDir) => {
|
||||
const fileEntries = imports.map((importName) => path.join(to_be_built_folder, `${importName}.ts`))
|
||||
await tsup.build({
|
||||
entry: fileEntries,
|
||||
format: ['esm'],
|
||||
format: ['cjs'],
|
||||
sourcemap: false,
|
||||
bundle: true,
|
||||
clean: true,
|
||||
@ -34,6 +34,9 @@ const compileFiles = async (imports, to_be_built_folder, outDir) => {
|
||||
noExternal: [/.*/], // This bundles everything
|
||||
platform: 'browser', // Important for browser compatibility
|
||||
target: 'es2020',
|
||||
banner: {
|
||||
js: '/* eslint-disable */'
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@ -43,6 +46,6 @@ fs.rmSync(to_be_built_folder, { recursive: true, force: true });
|
||||
const imports = ['openai', '@anthropic-ai/sdk', 'react', 'react-dom']
|
||||
buildFiles(imports, to_be_built_folder)
|
||||
|
||||
const OUT_DIR = '../src/vs/workbench/contrib/void/browser/dist'
|
||||
const OUT_DIR = '../src/vs/workbench/contrib/void/browser/void-imports'
|
||||
compileFiles(imports, to_be_built_folder, OUT_DIR)
|
||||
|
||||
|
2134
void-imports/package-lock.json
generated
2134
void-imports/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -1,20 +0,0 @@
|
||||
{
|
||||
"name": "void-imports",
|
||||
"main": "index.js",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"build": "node build-index.mjs"
|
||||
},
|
||||
"author": "",
|
||||
"description": "",
|
||||
"dependencies": {
|
||||
"@anthropic-ai/sdk": "^0.32.1",
|
||||
"openai": "^4.71.0",
|
||||
"react": "^18.3.1",
|
||||
"react-dom": "^18.3.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"tsup": "^8.3.5",
|
||||
"typescript": "^5.6.3"
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user