Commit Graph
812 Commits
Author SHA1 Message Date
Daniel Imms 342e862d69 Merge remote-tracking branch 'upstream/master' into 459_parser__on_460 2017-01-11 13:43:33 -08:00
Daniel Imms fc528f6c0c Merge pull request #447 from Tyriar/425_xon_xoff_on_280
Sync with pty process using XOFF and XON
2017-01-10 21:20:58 -08:00
Daniel Imms 411c974960 Merge pull request #446 from Tyriar/335_viewport_var
Remove var usage from Viewport
2017-01-10 20:24:22 -08:00
Daniel Imms 0ec125557a Merge remote-tracking branch 'upstream/master' into 425_xon_xoff_on_280 2017-01-10 20:24:07 -08:00
Daniel Imms 0b977fc35f Merge pull request #461 from Tyriar/460_escape_sequence_c0
Pull C0 escape sequences into its own file
2017-01-10 20:06:36 -08:00
Daniel Imms 0739a4be06 Merge remote-tracking branch 'upstream/master' into 425_xon_xoff_on_280 2017-01-10 20:04:26 -08:00
Daniel Imms c4de07135f Merge pull request #466 from Tyriar/465_async_CharMeasure_measure
Perform CharMeasure.measure async
2017-01-10 20:03:59 -08:00
Daniel Imms d52b53889e Merge remote-tracking branch 'upstream/master' into 335_viewport_var 2017-01-10 20:03:19 -08:00
Daniel Imms d9682bd6d6 Perform CharMeasure.measure async
This fixes the edge case where getBoundingClientRect was returning a width and
height of 0,0.

Fixes #465
2017-01-10 11:36:22 -08:00
Daniel Imms 411b80cdc0 Add CSI @, E, F, G 2017-01-09 23:06:36 -08:00
Daniel Imms db81c28bd7 Support more CSI codes, remove unused CSI helper functions 2017-01-09 22:57:38 -08:00
Daniel Imms c7fa2d55b4 Handle remaining CSI_PARAM cases and introduce the state 2017-01-09 16:07:27 -08:00
Daniel Imms 7572dd5fa6 Remove IInputHandler from CSI_PARAM lambdas 2017-01-09 15:39:56 -08:00
Daniel Imms 9942477bff Start converting CSI codes 2017-01-09 15:38:54 -08:00
Daniel Imms 635a4d7682 Handle CSI postfix 2017-01-09 15:19:29 -08:00
Daniel Imms 672dc1a251 Start pulling CSI handlers out 2017-01-09 15:17:15 -08:00
Daniel Imms 6deaaa8ef8 Move all parser state handling into the parser 2017-01-09 15:00:37 -08:00
Daniel Imms f4267c4f74 Merge remote-tracking branch 'upstream/master' into 459_parser__on_460 2017-01-09 14:50:28 -08:00
Daniel Imms 1848fff4c9 Pull charsets out of xterm.js 2017-01-09 14:21:59 -08:00
Daniel Imms 991b2843d3 Fix references to Terminaal and fix TS lint warnings 2017-01-09 13:57:58 -08:00
Daniel Imms 940bd2699e Fix wcwidth TS errors 2017-01-09 13:48:52 -08:00
Daniel Imms 4a27b9a53f Move wcwidth into Parser.ts 2017-01-09 13:46:08 -08:00
Daniel Imms a31921ae73 Move parsing logic into Parser.ts 2017-01-09 13:45:55 -08:00
Daniel Imms 27a7f1504c Merge pull request #453 from Tyriar/452_disable_stdin_option
Add disableStdin option
2017-01-09 09:53:22 -08:00
Paris Kasidiaris aee8ddeafb Merge pull request #464 from TylerJewell/patch-1
Add Codenvy to the list of xTerm supporters
2017-01-09 19:17:50 +02:00
Tyler Jewell 6c29ccfbd1 Add Codenvy to the list of xTerm supporters 2017-01-08 17:41:02 -08:00
Daniel Imms da7ea104de Merge remote-tracking branch 'upstream/master' into 460_escape_sequence_c0 2017-01-08 17:13:28 -08:00
Daniel Imms 665a11acc0 Add C0.BS handler back 2017-01-08 17:12:35 -08:00
Daniel Imms dddc91fbcc Merge remote-tracking branch 'upstream/master' into 425_xon_xoff_on_280 2017-01-08 17:05:19 -08:00
Daniel Imms ecb892d995 Merge remote-tracking branch 'upstream/master' into 425_xon_xoff_on_280 2017-01-08 17:05:10 -08:00
Daniel Imms ada96a8373 Merge remote-tracking branch 'upstream/master' into 335_viewport_var 2017-01-08 17:04:18 -08:00
Daniel Imms cabe23b782 Merge pull request #436 from Tyriar/434_tmux_scroll_fix
Fix scroll in tmux with max scrollback
2017-01-08 17:02:44 -08:00
Daniel Imms b25bf9562e Merge pull request #457 from Tyriar/451_fix_events_after_reset
Keep previous terminal events after a reset
2017-01-08 17:00:55 -08:00
Daniel Imms e9da2a6330 Merge pull request #440 from Tyriar/439_wide_char_class
Style wide characters at charWidth*2 in DOM
2017-01-08 17:00:30 -08:00
Daniel Imms 9385b9309d Merge remote-tracking branch 'upstream/master' into 439_wide_char_class 2017-01-08 16:56:47 -08:00
Daniel Imms facc2659e7 Merge pull request #463 from sourcelair/revert-445-444_rate_limit_viewport_refresh
Revert "Rate limit Viewport.refresh"
2017-01-08 16:51:27 -08:00
Daniel Imms 06852cd904 Revert "Rate limit Viewport.refresh" 2017-01-08 16:46:23 -08:00
Daniel Imms a1ee8aefbb Merge remote-tracking branch 'upstream/master' into 439_wide_char_class 2017-01-08 16:32:51 -08:00
Daniel Imms eb3b3fa107 Merge pull request #437 from Tyriar/335_TS_Generic_Browser
Convert browser and generic to TS
2017-01-08 16:25:30 -08:00
Daniel Imms 3457b73ac8 Merge pull request #445 from Tyriar/444_rate_limit_viewport_refresh
Rate limit Viewport.refresh
2017-01-08 16:24:27 -08:00
Daniel Imms 28b38dc76d Merge pull request #438 from Tyriar/280_improve_refresh_queue
Improve refresh queue
2017-01-08 16:24:16 -08:00
Daniel Imms 659fb90c1c Handle C0 codes via handler map in Parser 2017-01-08 16:21:51 -08:00
Daniel Imms 04b1ebf1a7 Create InputHandler which performs C0 actions
Part of #459
2017-01-08 16:11:35 -08:00
Daniel Imms 1685cf2d8f Use namespace and const for C0 constants 2017-01-08 16:02:47 -08:00
Paris Kasidiaris 43d4d4f2bb Merge pull request #458 from TylerJewell/patch-1
Add additional products that use xTerm
2017-01-08 23:49:46 +00:00
Daniel Imms 3de3c0c6b6 Pull C0 escape sequences into its own file
Part of #460
2017-01-08 15:49:19 -08:00
Tyler Jewell 520f2bc9d6 Add additional products that use xTerm
Hi xTerm team. Over the past 6 months, we have been studying xTerm as a replacement for Eclipse Che's term.js. It's taken us a bit of an effort, but the work is now done!  You can expect that Eclipse Che engineers (abot 60 contributors) will make direct contributions back to xTerm ongoing now that we are fully integrated in. We integrate xTerm alongside GWT.  As we more natively integrate the solution, we'll make additional PRs directly back to the project.

As background on the research and integration work that we did, these are the postings from our engineering team's research from the past six months. Some of these issues have already been resolved, or in the process of being resolved.

We also plan a couple of blog posts to our forums (~250K followers) about xTerm integration later in Q1 after we make our 5.0.0 announcements. I could also add Codenvy to this PR as well since it has been released with the version based upon xTerm, but with Sourcelair being the initiators we didn't want to make it seem like we were trying to be competitive. This PR is about the promotion and success of xTerm, for which we are fully committed to.

## Xtermjs 
This document is result of investigation using xtemjs ui terminal instead of current term.js. It contains analyze pluses and minuses using xtermjs (release version 2.2.3) and technical problems.  Investigation issue: https://github.com/eclipse/che/issues/3210

## Description
For now we are using our own fork of the https://github.com/chjj/term.js for user interface websocket-terminal. But actually this project is no longer maintained. So we can not get new releases from this project and we need support this script on our own. Original project contains link for a maintained fork https://github.com/sourcelair/xterm.js. This fork uses MIT license and community intensive develops this project. It has such users like: Microsoft Visual Studio Code, SourceLair, ttyd. xterm.js had already done 46 releases https://github.com/sourcelair/xterm.js/releases.

## Technical Advantages of xTerm:
* xterm.js has js tests. We have not any test for old term.js.
* We can periodically update xtem.js by new release.
* Added parameter to cancel browser events.
* Default 256 colours moved from js to css.
* Added ability to set terminal theme.
* Improved resize mehanizm (added resize event).
* Added fit.ts script to fits terminal size to original height and width of parent div.
* Fixed lost text selection from current active line(when blink is enabled).
* Improved copy/paster mehanizm.
* Linkify URL feature.
* Implement moving back and forward across words with "Alt + ←" and "Alt + →" respectively.
* Improved special key handling.
* Added addons to exdens xterm.js
* Improved mehanizm copy/paster from clipboard.
* Fixed cross platform input problems(For IPad, Iphone, MacIntel, MacPPC and so on).
* Did some work to support UTF-8 symbols.
* Implemented scrollbar.
* Fixed incorrect mouse position for application with  pseudo-graphic user interface (for example Midnight Commander).
* Fix to prevent terminal scrolling when user is looking into scrollback(similar to gnome-terminal, if the user is scrolling up to look at past output and the currently running program adds output to the terminal, the viewport of xterm.js should not scroll and interrupt what they are looking at.)
* Make right-click work on all browsers.

##  Broken Changes: 
We can move on our changes to realize copy/paste by hotkeys Ctrl + C/Ctrl +V. But xterm.js support hotkeys more common for terminal: Ctrl + Insert and Shift + Insert and maybe that's enough.

Drop support for old mouse wheel APIs: all browsers have supported the WheelEvent (onwheel) for sometime now, since Firefox does not support onmousewheel which is also non-standard but works with the standard interface, it makes sense to drop support now.

## Browser Support
Since xterm.js is typically implemented as a developer tool, only modern browsers are supported officially. Here is a list of the versions to support:
Chrome 48+
Edge 13+
Firefox 44+
Internet Explorer 11+
Opera 35+
Safari 8+

Xterm.js works seamlessly in Electron apps and may even work on earlier versions of the browsers but these are the browsers xterm.js developers strive to keep working.

## Known major bugs:
https://github.com/sourcelair/xterm.js/issues/307
https://github.com/sourcelair/xterm.js/issues/362
https://github.com/sourcelair/xterm.js/issues/348
https://github.com/sourcelair/xterm.js/issues/325 Data loss when resizing terminal (but this bug is exist in the current terminal ui in the CHE too). Community has pull request to fix this issue for xtermjs https://github.com/sourcelair/xterm.js/pull/404 .
 
Additional information: 

Code base xterm.js consist of files written on native javascript and typescript. For manage js dependency and configuration used npm, typings, bower and node. Development tendency: rewrite xtemr.js completely on the Typescript(information about this included to the release notes 2.2.3).
2017-01-08 09:44:14 -08:00
Daniel Imms 996c25a364 Keep previous terminal events after a reset
This broke in the EventEmitter ts conversion, just reverts this line to what
it used to be.

Fixes #451
2017-01-07 16:04:49 -08:00
Daniel Imms d9d60063d7 Add disableStdin option
Fixes #452
2017-01-04 12:43:21 -08:00
Daniel Imms ff523bfc79 Fix tests 2017-01-04 10:30:04 -08:00