Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
80 commits
Select commit Hold shift + click to select a range
80fa969
implements a custom workbench for membrane.
aranajhonny Jan 29, 2024
da4139c
changes associated with ts-plugin
aranajhonny Apr 13, 2024
59dbc0e
Update configuration for enhanced compatibility with membrane-web
aranajhonny Apr 29, 2024
39abc45
optional transfer port
aranajhonny May 29, 2024
4de9cc5
add webpack config
aranajhonny May 29, 2024
b4734b2
Formatting and additional comments
juancampa Jun 4, 2024
5a9021e
Fix scheme mixup in FileSystemWatcher
juancampa Jun 4, 2024
65fe98f
Add missing `ts-nul-authority` in `fromResource`
juancampa Jun 4, 2024
1cc67ea
Use a workspace in memfs
juancampa Jun 11, 2024
1497879
Modifications required for CI (#2)
Jun 15, 2024
8a23256
Rename titles of File Explorer
juancampa Jun 18, 2024
f7180ee
Fix build as a submodule (.git folder is hoisted)
juancampa Jun 19, 2024
5b471c4
Fix our SecretStorageProvider
juancampa Jun 20, 2024
5f16bc4
Rip out terminals from VSCode (#3)
juancampa Jun 24, 2024
cd0a940
Fix previous cherry pick errors for rip out terminals.
aranajhonny Nov 21, 2025
995885f
Don't open welcome page by default (#5)
Jun 26, 2024
6f21a49
Add delete program logic (#7)
Jul 2, 2024
052dbc9
Get the Membrane API token using the global authentication function. …
aranajhonny Jul 31, 2024
49712d4
Fix vscode-extensions commands.
aranajhonny Nov 21, 2025
5bdb01a
Remove unused features (#15)
juancampa Aug 2, 2024
b18b629
Move packages to the right. Our views always appear first.
juancampa Jun 22, 2024
6efd09c
disable vscode-node-modules
aranajhonny Aug 23, 2024
7d42eed
T-1223: add `membrane.io` as a trusted domain; add special logout red…
pmillspaugh Oct 24, 2024
bac0bdd
Implement User Settings Sync with Membrane API (#23)
aranajhonny Nov 6, 2024
dbf78e8
Fix import cycle (#27)
juancampa Nov 11, 2024
cbd94b4
Use the same deterministic origin for all membrane webviews
juancampa Nov 13, 2024
c9265d2
Use correct api endpoint (#28)
juancampa Nov 20, 2024
fbe9a84
Exclude unused extensions (#31)
juancampa Nov 22, 2024
aaa180f
Make intellisense/ts-plugin more snappy (#32)
juancampa Nov 22, 2024
09ce744
T-1279: custom theme (#36)
pmillspaugh Dec 13, 2024
dc5a0f2
Add keybindings.json to the list of files we save in the DB (#45)
juancampa Jan 21, 2025
6a86f3f
Update API base URL to `ide.membrane.io/api` (#46)
pmillspaugh Jan 24, 2025
f8d78b5
Use zen-mode for dashboard. Improve zen-mode perf (#48)
juancampa Feb 6, 2025
057ed8e
T-1049: default color theme based on OS preference (#50)
pmillspaugh Feb 11, 2025
cf2afef
Use `typescript` fork to get contextual typing of exports (#53)
juancampa Mar 3, 2025
c37b454
Tweak default themes (#55)
juancampa Mar 4, 2025
49ac812
Remove red syntax highlighting (#56)
juancampa Mar 4, 2025
a481d0c
Update theme to work correctly on .tsx files (#57)
juancampa Mar 6, 2025
61a75a6
Ignore package.json created events. (#64)
aranajhonny Apr 29, 2025
183c24c
Disable extensions view and commands. (#65)
aranajhonny Apr 29, 2025
432783d
add sentry report issue command (#69)
iamseeley May 2, 2025
4858fd4
change sash hoverBorder color (#75)
iamseeley Jul 11, 2025
0f34278
gaze to ide
iamseeley Jul 25, 2025
b192a4c
don't show aux bar button
iamseeley Jul 29, 2025
affd4dc
update wb commands
iamseeley Jul 31, 2025
62f6a0a
resolve warnings again?
iamseeley Jul 31, 2025
af4c441
theme and style changes
iamseeley Aug 8, 2025
042be61
remove Membrane-specific layout customizations and add some new ones
iamseeley Aug 8, 2025
28c94b7
remove command service dependency from composite parts
iamseeley Aug 8, 2025
a024d85
simplify activity bar by removing menu options
iamseeley Aug 8, 2025
8868de1
Fix activityBar warnings.
aranajhonny Nov 21, 2025
ecf1e57
disable explorer view container and related actions
iamseeley Aug 8, 2025
327dda0
add gaze modal state reporting
iamseeley Aug 8, 2025
041696f
disable double-click to create untitled file in editor
iamseeley Aug 8, 2025
c359ed7
simplify preferences to show only user settings
iamseeley Aug 8, 2025
07ccde9
disable command palette
iamseeley Aug 8, 2025
71136a5
remove membrane webview key from indexedDB
iamseeley Aug 8, 2025
05a384d
move gazeToExtension event listener to web.main.ts out of workbench
iamseeley Aug 15, 2025
b3748bd
layout overrides for a cleaner editor and smooth transition from old …
iamseeley Aug 15, 2025
19c6624
Remove deprecated workbench commands since they are now handled direc…
juancampa Sep 16, 2025
21f2403
Intercept VSCode dialogs and notifications to show in Gaze (#77)
iamseeley Sep 23, 2025
a8adeb7
Replace addEventListener with MessageChannel. (#78)
aranajhonny Oct 13, 2025
c1ec6bc
Add inner shadow to vscode
juancampa Nov 12, 2025
f951fca
Use `extensionToGazePort`
juancampa Nov 12, 2025
9f97f1a
Simplify message passing (#80)
juancampa Nov 12, 2025
1f0683d
Fix vscode types.
aranajhonny Nov 25, 2025
809cf81
Fix loading events module.
iamseeley Aug 8, 2025
2bce8a8
Force webpack to bundle events module.
aranajhonny Nov 25, 2025
a5d1987
Fix tabs, and menus.
aranajhonny Nov 25, 2025
d70096e
Fix vscode web build.
aranajhonny Nov 26, 2025
efb6b94
Fix TypeScript version in extensions package-lock.json
aranajhonny Nov 26, 2025
0efcc9b
Skip type checking.
aranajhonny Nov 26, 2025
23235e1
include codeweb on vscode build.
aranajhonny Nov 26, 2025
d5c5cbd
Restore compileBuildWithManglingTask.
aranajhonny Nov 27, 2025
ca1de88
Fix membrane terminal errors.
aranajhonny Dec 5, 2025
3c011a4
Fix GazePort and TerminalProfile
aranajhonny Dec 5, 2025
b9c4bcb
Include typescript basics.
aranajhonny Dec 8, 2025
ab38b9c
Hide titlebar.
aranajhonny Dec 12, 2025
6b04903
Fix disable editor title bar
aranajhonny Dec 12, 2025
1618b2c
Fix white space
aranajhonny Dec 12, 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
1 change: 1 addition & 0 deletions build/gulpfile.vscode.web.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,7 @@ const vscodeWebEntryPoints = [
buildfile.workerBackgroundTokenization,
buildfile.keyboardMaps,
buildfile.workbenchWeb,
buildfile.codeWeb,
buildfile.entrypoint('vs/workbench/workbench.web.main.internal') // TODO@esm remove line when we stop supporting web-amd-esm-bridge
].flat();

Expand Down
30 changes: 16 additions & 14 deletions build/hygiene.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -103,19 +103,20 @@ export function hygiene(some, runEslint = true) {
this.emit('data', file);
});

const copyrights = es.through(function (file) {
const lines = file.__lines;
// MEMBRANE:
// const copyrights = es.through(function (file) {
// const lines = file.__lines;

for (let i = 0; i < copyrightHeaderLines.length; i++) {
if (lines[i] !== copyrightHeaderLines[i]) {
console.error(file.relative + ': Missing or bad copyright statement');
errorCount++;
break;
}
}
// for (let i = 0; i < copyrightHeaderLines.length; i++) {
// if (lines[i] !== copyrightHeaderLines[i]) {
// console.error(file.relative + ': Missing or bad copyright statement');
// errorCount++;
// break;
// }
// }

this.emit('data', file);
});
// this.emit('data', file);
// });

const formatting = es.map(function (file, cb) {
try {
Expand Down Expand Up @@ -165,9 +166,10 @@ export function hygiene(some, runEslint = true) {
.pipe(unicode)
.pipe(unicodeFilterStream.restore)
.pipe(filter(indentationFilter))
.pipe(indentation)
.pipe(filter(copyrightFilter))
.pipe(copyrights);
.pipe(indentation);
// MEMBRANE:
// .pipe(filter(copyrightFilter))
// .pipe(copyrights);

/** @type {import('stream').Stream[]} */
const streams = [
Expand Down
45 changes: 45 additions & 0 deletions build/lib/extensions.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

46 changes: 46 additions & 0 deletions build/lib/extensions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -373,6 +373,46 @@ function isWebExtension(manifest: IExtensionManifest): boolean {
return true;
}

const allowedExtensions = [
'configuration-editing',
'css',
'css-language-features',
'diff',
'emmet',
'handlebars',
'html',
'html-language-features',
'javascript',
'json',
'json-language-features',
'log',
'markdown',
'markdown-basics',
'markdown-language-features',
'markdown-math',
'media-preview',
'merge-conflict',
'microsoft-authentication',
'npm',
'php',
'references-view',
'scss',
'search-result',
'simple-browser',
'sql',
'theme-defaults',
'theme-solarized-dark',
'theme-solarized-light',
'typescript',
'typescript-basics',
'typescript-language-features',
'xml',
'yaml',
];
export function isAllowedInMembrane(name: string): boolean {
return allowedExtensions.some(allowedExtensionName => allowedExtensionName === name);
}

/**
* Package local extensions that are known to not have native dependencies. Mutually exclusive to {@link packageNativeLocalExtensionsStream}.
* @param forWeb build the extensions that have web targets
Expand Down Expand Up @@ -427,6 +467,7 @@ function doPackageLocalExtensionsStream(forWeb: boolean, disableMangle: boolean,
.filter(({ name }) => native ? nativeExtensionsSet.has(name) : !nativeExtensionsSet.has(name))
.filter(({ name }) => excludedExtensions.indexOf(name) === -1)
.filter(({ name }) => builtInExtensions.every(b => b.name !== name))
.filter(({ name }) => isAllowedInMembrane(name))
.filter(({ manifestPath }) => (forWeb ? isWebExtension(require(manifestPath)) : true))
);
const localExtensionsStream = minifyExtensionResources(
Expand Down Expand Up @@ -510,6 +551,11 @@ export function scanBuiltinExtensions(extensionsRoot: string, exclude: string[]
if (!isWebExtension(packageJSON)) {
continue;
}

// MEMBRANE: only include the minimum set of extensions
if (!isAllowedInMembrane(packageJSON.name)) {
continue;
}
const children = fs.readdirSync(path.join(extensionsRoot, extensionFolder));
const packageNLSPath = children.filter(child => child === 'package.nls.json')[0];
const packageNLS = packageNLSPath ? JSON.parse(fs.readFileSync(path.join(extensionsRoot, extensionFolder, packageNLSPath)).toString()) : undefined;
Expand Down
19 changes: 18 additions & 1 deletion build/lib/git.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

18 changes: 17 additions & 1 deletion build/lib/git.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,23 @@ import fs from 'fs';
* Returns the sha1 commit version of a repository or undefined in case of failure.
*/
export function getVersion(repo: string): string | undefined {
const git = path.join(repo, '.git');
// MEMBRANE: make `getVersion` work when vscode is a submodule and it's .git was hoisted.
const maybeGit = path.join(repo, '.git');
const stat = fs.statSync(maybeGit);
let git: string;
if (stat.isFile()) {
const data = fs.readFileSync(maybeGit, 'utf8');
const gitdir = data.match(/^gitdir: (.*)$/m)?.[1];
if (!gitdir) {
throw new Error(`Failed to parse .git submodule info in ${maybeGit}`);
}
git = path.join(repo, gitdir);
} else if (stat.isDirectory()) {
git = maybeGit;
} else {
return undefined;
}

const headPath = path.join(git, 'HEAD');
let head: string;

Expand Down
7 changes: 5 additions & 2 deletions build/npm/postinstall.js
Original file line number Diff line number Diff line change
Expand Up @@ -185,5 +185,8 @@ for (let dir of dirs) {
npmInstall(dir, opts);
}

cp.execSync('git config pull.rebase merges');
cp.execSync('git config blame.ignoreRevsFile .git-blame-ignore-revs');
// This commands don't play well with being ran inside a submodule so just skip them in that context
if (!process.cwd().includes("mnode")) {
cp.execSync('git config pull.rebase merges');
cp.execSync('git config blame.ignoreRevsFile .git-blame-ignore-revs');
}
13 changes: 13 additions & 0 deletions eslint.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -2172,4 +2172,17 @@ export default tseslint.config(
'@typescript-eslint/consistent-generic-constructors': ['warn', 'constructor'],
}
},
// Membrane files: disable code-import-patterns to allow imports from platform/terminal/common
{
files: ['**/*.membrane.ts'],
languageOptions: {
parser: tseslint.parser,
},
plugins: {
'local': pluginLocal,
},
rules: {
'local/code-import-patterns': 'off'
}
},
);
Loading
Loading