Skip to content

integrated terminal #5985

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

Merged
merged 34 commits into from
May 16, 2016
Merged

integrated terminal #5985

merged 34 commits into from
May 16, 2016

Conversation

jrieken
Copy link
Member

@jrieken jrieken commented Apr 29, 2016

Starting PR such that we can try this out soon in alpha builds

@jrieken jrieken added this to the May 2016 milestone Apr 29, 2016
@jrieken
Copy link
Member Author

jrieken commented Apr 29, 2016

so, on windows I see this...

Cannot find module '../build/Release/pty.node'
messageService.ts:128 An unknown error occurred. Please consult the log for more details.

@jrieken
Copy link
Member Author

jrieken commented Apr 29, 2016

pty.js doesn't seem to build on at least my machine...

};
}

export interface ITerminalService {
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it doesn't seem like this service isn't buying us anything

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I figured this could be useful later on when things like multiple terminals and switching between them are added.

private createTerminal(): void {
this.parentDomElement.innerHTML = '';
this.ptyProcess = fork(this.getShell(), [], {
name: fs.existsSync('/usr/share/terminfo/x/xterm-256color') ? 'xterm-256color' : 'xterm',
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚡ evil sync io inside the main thread. use callbacks/promises esp given your outer caller (create) allows you to do that

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

@jrieken jrieken self-assigned this May 2, 2016
@@ -27,8 +27,10 @@
"iconv-lite": "0.4.13",
"minimist": "^1.2.0",
"native-keymap": "0.1.2",
"pty.js": "git+https://github.com/jeremyramin/pty.js.git#28f2667",
"sax": "1.1.2",
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@bpasero You raised concerns about NAN versions but those packages are prebuilt so it shouldn't be a problem, right?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jrieken when I did try out this branch, our changes with NPM 3 were not present, so I ended up getting an older version of NAN for the terminal. Since you merged, I would assume, this terminal picks up the latest NAN we provide and it should be fine. As long as you can run the terminal successfully with latest, it should be good.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

#6353 and the "Cannot find module '../build/Release/pty.node'" warning is related to this. The prebuilt packages are used because the build fails so the warning shows up. Eventually we will probably want to fork pty.js ourselves to sort out any dependency problems.

@jrieken jrieken assigned Tyriar and unassigned jrieken May 3, 2016
@jrieken
Copy link
Member Author

jrieken commented May 3, 2016

Postponing until @Tyriar is back

@Tyriar
Copy link
Member

Tyriar commented May 3, 2016

Yeah, it's not ready to be merged yet, the dependency issue is the main blocker. Thanks for the comments, I'll check them out when I'm back.

@sliepie sliepie mentioned this pull request May 10, 2016
@Tyriar Tyriar merged commit e9ef53f into master May 16, 2016

// Register Output Panel
(<panel.PanelRegistry>Registry.as(panel.Extensions.Panels)).registerPanel(new panel.PanelDescriptor(
'vs/workbench/parts/terminal/electron-browser/terminalPanel',
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Tyriar if you have an AMD entry point like this, it needs to be declared in our buildfile.js (see https://github.com/Microsoft/vscode/blob/master/src/vs/workbench/buildfile.js#L34)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes looking into this now, it looks like there is a problem with the loader as well assuming modules don't have . chars in their name (pty.js, term.js). Chatting with @alexandrudima

@Tyriar Tyriar deleted the tyriar/integrated_terminal branch May 19, 2016 19:57
@github-actions github-actions bot locked and limited conversation to collaborators Mar 27, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants