Overview
Examples
Screenshots
Comparisons
Applications
Download
Documentation
Tutorials
Bazaar
Status & Roadmap
FAQ
Authors & License
Forums
Funding Ultimate++
Search on this site
Search in forums












SourceForge.net Logo
Home » U++ TheIDE » U++ TheIDE: Other Features Wishlist and/or Bugs » [REQUEST] Add an integrated terminal to the bottom frame
[REQUEST] Add an integrated terminal to the bottom frame [message #53075] Thu, 20 February 2020 19:21 Go to next message
omari is currently offline  omari
Messages: 235
Registered: March 2010
Experienced Member
Hi,

thanks to Oblivion for the terminal widget

usage example



regards
omari.

[Updated on: Thu, 20 February 2020 19:22]

Report message to a moderator

Re: [REQUEST] Add an integrated terminal to the bottom frame [message #53111 is a reply to message #53075] Mon, 02 March 2020 12:36 Go to previous messageGo to next message
Oblivion is currently offline  Oblivion
Messages: 759
Registered: August 2007
Contributor
Hello Omari,

I'd personally love to see an integrated terminal on TheIDE, similar to other IDEs.

The decision is up to Mirek et al. of course.

While the Terminal widget is very stable and mature, at the moment, there is at least two "show stoppers":

1) PtyProcess class provided with Terminal ctrl currently has no cmd.exe or preferably, power-shell, encapsulation (This is a TODO on my list, scheduled for v0.4. Yet it is not hard to implement, and I'd glady accept PRs on git Smile It's just not my highest priority, ATM.).

2) I haven't personally tested Terminal ctrl's PtyProcess component on MacOS, since I don't have a Mac. In theory PtyProcess class should work on it, but I have no actual data supporting this.


But then again, Terminal ctrl is going to be upgraded to V0.3 in the following weeks, with lots of improvements and double width characters (a proper Eastern-Asian/CJK) support.

So stay tuned. Smile


Best regards,
Oblivion




[Updated on: Mon, 02 March 2020 12:39]

Report message to a moderator

Re: [REQUEST] Add an integrated terminal to the bottom frame [message #53130 is a reply to message #53111] Thu, 05 March 2020 18:21 Go to previous messageGo to next message
omari is currently offline  omari
Messages: 235
Registered: March 2010
Experienced Member
Hi Oblivion,

Quote:

2) I haven't personally tested Terminal ctrl's PtyProcess component on MacOS, since I don't have a Mac. In theory PtyProcess class should work on it, but I have no actual data supporting this.


Terminal examples builds and run on MacOS as expected.
if you have any specific test case, i can run it and post results.

the next screenshot is on MacOS, my first attemp to integrate the terminal in theide.

i have tow remarques:
1 - the class name "Console" is used in TheIde and in Terminal. one of them shall be renamed, or included in a namespace.
2 - in order to use Terminal, i have to include two files:<Terminal/Terminal.h> and <Terminal/PtyProcess.h>.

Quote:

1) PtyProcess class provided with Terminal ctrl currently has no cmd.exe or preferably, power-shell, encapsulation (This is a TODO on my list, scheduled for v0.4. Yet it is not hard to implement, and I'd glady accept PRs on git Smile It's just not my highest priority, ATM.).


i think, support for win64 is mandatory.
i think, as another option, we can use a "bash.exe".

anyway, i will look at this when i found time for that.

thank you Oblivion.

index.php?t=getfile&id=6001&private=0





regards
omari.
Re: [REQUEST] Add an integrated terminal to the bottom frame [message #53149 is a reply to message #53130] Mon, 09 March 2020 10:31 Go to previous message
Oblivion is currently offline  Oblivion
Messages: 759
Registered: August 2007
Contributor
Hello omari,

Quote:

Terminal examples builds and run on MacOS as expected.


This is great news. From now on MacOS support is official, then. Smile

Quote:

the next screenshot is on MacOS, my first attemp to integrate the terminal in theide.


IT looks good. I'm lookinf forward to see more of this!


Quote:

1 - the class name "Console" is used in TheIde and in Terminal. one of them shall be renamed, or included in a namespace.


This can be fixed easily. But I am not sure which route to take ATM. Terminal's Console can be renamed to VTConsole.
After all, other components have a VT prefix. (Or you can use a temporary VT namespace until I come up with a permanent solution).


Quote:
in order to use Terminal, i have to include two files:<Terminal/Terminal.h> and <Terminal/PtyProcess.h>.



This is to avoid including PtyProcess where it is not preferred (You may want to implement your own PtyProcess, as it is an optional class).


Quote:

i think, support for win64 is mandatory.
i think, as another option, we can use a "bash.exe".


Well, I've done some research last weekend and found out that encapsulating the cmd.exe or PowerShell.exe is not trivial.

(Read: https://devblogs.microsoft.com/commandline/windows-command-l ine-backgrounder/)

Quote:

Alas, the story here is not a good one: There ARE some great 3rd party Consoles (and server apps) for Windows (e.g. ConEmu/Cmder, Console2/ConsoleZ, Hyper, Visual Studio Code, OpenSSH, etc.), but they have to jump through extraordinary hoops to act like a normal Console would.

For example, 3rd party Consoles have to launch a Command-Line app off-screen at, for example, (-32000,-32000). They then have to send keystrokes to the off-screen Console, and screen-scrape the off-screen Console's text contents and re-draw them on their own UI! I know, crazy, right?! It's a testament to the ingenuity and determination of the creators of these apps that they even work at all.


This is bad news. But not so bad. Microsoft have implemented a proper pseudoconsole api in Windows 10.

Pros: It is very easy to encapsulate it in PtyProcess class.

Cons: It requires at least windows 10.


If you have any ideas or suggestions, please let me know.

Best regards,
Oblivion


[Updated on: Mon, 09 March 2020 10:41]

Report message to a moderator

Previous Topic: Patch to umk. Use app.use_target with umk
Next Topic: Assist++ and using namespace
Goto Forum:
  


Current Time: Sat Oct 31 16:19:41 CET 2020

Total time taken to generate the page: 0.00827 seconds