Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Browser-only static extension support #14776

Open
wants to merge 38 commits into
base: master
Choose a base branch
from
Open
Changes from 1 commit
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
70e7153
Initial setup and experiments with OPFS
robertjndw Sep 28, 2024
a28a085
Add missing methods and event emitter
robertjndw Sep 28, 2024
6578c25
Remove references to browserfs and replace it with OPFS
robertjndw Oct 3, 2024
e928eec
Improve coding style and remove logging
robertjndw Oct 4, 2024
28d70de
Merge branch 'eclipse-theia:master' into feat/switch-to-opfs
robertjndw Oct 7, 2024
05e26ad
Update CHANGELOG.md
robertjndw Oct 7, 2024
4fa4158
Add yarn.lock file and AsyncIterable to base tsconfig
robertjndw Oct 16, 2024
263815e
Implement feedback from PR and fix directory renaming bug
robertjndw Oct 16, 2024
e24978c
Adapt eslintrc config
robertjndw Oct 17, 2024
8fa511b
Fix linting issues
robertjndw Oct 17, 2024
39ab4f2
Add empty files for the plugin-ext for browser-only
robertjndw Oct 23, 2024
969c31b
Add initial implementation; still WIP
robertjndw Nov 18, 2024
459dbce
Add browser-only terminal frontend implementation
robertjndw Nov 26, 2024
3a693bb
Remove unused pluginDirectory property from PluginLocalOptions
robertjndw Nov 26, 2024
d0e4de7
Add example mock-plugin-metadata file
robertjndw Nov 26, 2024
c4620b0
Add script to move plugins for static browser-only implementation
robertjndw Nov 26, 2024
82d34b0
Update getDefaultShell method to return an empty string instead of 'n…
robertjndw Nov 27, 2024
3bf06fe
Add mock plugin metadata and update prepare-plugins script for browse…
robertjndw Dec 5, 2024
42a50f4
Fix lifecycle methods and activation events
robertjndw Dec 12, 2024
fbd9da8
Filter deployed plugins by specified plugin IDs in getDeployedPlugins…
robertjndw Jan 7, 2025
a1bc7e8
Rename mock plugin metadata to static plugin metadata
robertjndw Jan 7, 2025
82baacd
Refactor plugin ID handling to use PluginIdentifiers for consistency
robertjndw Jan 9, 2025
8fea9e5
Add documentation for Browser-Only static extension support and updat…
robertjndw Jan 25, 2025
f1ea8c0
Add TypeScript plugins and enhance ADOPTING.md
robertjndw Jan 25, 2025
4853c5c
Merge branch 'master' of github.com:robertjndw/theia into feat/browse…
robertjndw Jan 27, 2025
a46f214
Update commands in ADOPTING.md and package.json to use npm
robertjndw Jan 27, 2025
26837bf
Code cleanup
robertjndw Jan 27, 2025
3394ee3
Fix linting error
robertjndw Jan 27, 2025
6cacac4
More linting fixes
robertjndw Jan 27, 2025
42be38e
Ignore metadata file for linting
robertjndw Jan 27, 2025
d4b40fb
Apply suggestions to ADOPTING.md from review
robertjndw Jan 31, 2025
fff759b
Update packages/terminal/src/browser-only/terminal-frontend-only-modu…
robertjndw Jan 31, 2025
ec01e70
Update copyright information
robertjndw Jan 31, 2025
0b00454
Remove backendinit from example-static-plugin-metadata.ts
robertjndw Jan 31, 2025
e35cbc9
Remove backendInitPath from ADOPTING.md
robertjndw Jan 31, 2025
358f37a
Clarify the process for unpacking and installing extensions in ADOPTI…
robertjndw Jan 31, 2025
17f3871
Add check to skip existing plugin directories in prepare-plugins.js
robertjndw Jan 31, 2025
4c9fe81
Fix prepare-plugins.js
robertjndw Jan 31, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Add TypeScript plugins and enhance ADOPTING.md
robertjndw committed Jan 25, 2025
commit f1ea8c05854597ac84b1b5e1e6ef57c8a4ca8a5a
6 changes: 5 additions & 1 deletion ADOPTING.md
Original file line number Diff line number Diff line change
@@ -56,11 +56,15 @@ metadata: {
'entryPoint': {
'frontend': 'dist/web/extension.js' // specified by the 'browser' field in the 'package.json' file for VScode web extensions or 'frontend' field for Theia plugins
}
iconUrl: 'hostedPlugin/theia_helloworld_web_sample/media%2Ficon.png', // optional: the path to the extension's icon; prefixed with 'hostedPlugin' and URL encoded
l10n: undefined,
readmeUrl: 'hostedPlugin/theia_helloworld_web_sample/.%2FREADME.md', // optional: the path to the extension's README file; prefixed with 'hostedPlugin' and URL encoded
licenseUrl: 'hostedPlugin/theia_helloworld_web_sample/.%2FLICENSE', // optional: the path to the extension's LICENSE file; prefixed with 'hostedPlugin' and URL encoded
},
'lifecycle': {
'startMethod': 'activate', // the method to call when the extension is activated; typically 'activate' for VS Code extensions and 'start' for Theia plugins
'stopMethod': 'deactivate', // the method to call when the extension is deactivated; typically 'deactivate' for VS Code extensions and 'stop' for Theia plugins
'frontendModuleName': 'theia_helloworld_web_sample', // the id specified above but with underscores instead of dots and dashes
'frontendModuleName': 'theia_helloworld_web_sample', // the id specified above but with underscores instead of dots and dashes similar to iconUrl, readmeUrl, and licenseUrl
'frontendInitPath': 'plugin-vscode-init-fe.js', // the path to the frontend initialization script; only required for VS Code extensions
'backendInitPath': '/Users/user/theia/examples/browser/lib/backend/plugin-vscode-init' // the path to the backend initialization script; for Theia plugins, this path ends with 'backend-init-theia'
},
13,841 changes: 13,763 additions & 78 deletions examples/api-samples/src/browser-only/plugin-sample/example-static-plugin-metadata.ts

Large diffs are not rendered by default.

5 changes: 4 additions & 1 deletion examples/browser-only/package.json
Original file line number Diff line number Diff line change
@@ -15,7 +15,10 @@
}
},
"theiaPluginsDir": "plugins",
"theiaPlugins": {},
"theiaPlugins": {
"vscode.typescript": "https://open-vsx.org/api/vscode/typescript/1.95.3/file/vscode.typescript-1.95.3.vsix",
"vscode.typescript-language-features": "https://open-vsx.org/api/vscode/typescript-language-features/1.95.3/file/vscode.typescript-language-features-1.95.3.vsix"
},
"dependencies": {
"@theia/ai-chat": "1.54.0",
"@theia/ai-chat-ui": "1.54.0",