Compare commits

...
1417 Commits
Author SHA1 Message Date
Paris Kasidiaris 45ed27d329 Bump version to 3.0.1
Signed-off-by: Paris Kasidiaris <paris@sourcelair.com>
2018-01-05 16:46:38 +00:00
Daniel Imms a490051dda Merge pull request #1190 from Tyriar/fix_typings
Publish typings dir to npm
2018-01-05 08:38:00 -08:00
Daniel Imms edc80acd4d Publish typings dir to npm 2018-01-05 08:32:07 -08:00
Paris Kasidiaris 6b98d0999b Bump version to 3.0.0
Signed-off-by: Paris Kasidiaris <paris@sourcelair.com>
2018-01-05 16:17:34 +00:00
Daniel Imms 57c4571204 Merge pull request #1186 from xtermjs/tyriar/merge_v3_to_master
Merge v3 into master
2018-01-05 06:54:10 -08:00
Daniel Imms 6580cdec6b Merge remote-tracking branch 'origin/master' into tyriar/merge_master_to_v3
This pulls in PR #933 which was merged in error to master not v3 and also 2.9.2
release stuff.
2018-01-04 12:36:46 -08:00
Daniel Imms 49b1b381a1 Merge pull request #1183 from xtermjs/Tyriar-patch-1
Fix travis badge
2018-01-04 11:45:00 -08:00
Daniel Imms e8b787d057 Fix travis badge
It points at sourcelair/xterm.js and doesn't redirect
2018-01-04 11:43:15 -08:00
Paris Kasidiaris 490e46ce0c Merge pull request #1178 from xtermjs/fix-fit-addon
Fix "exports" typo
2018-01-02 16:52:41 +02:00
Paris Kasidiaris bc3984a0bf Fix "exports" typo 2018-01-02 12:49:44 +02:00
Daniel Imms 478c054075 Merge pull request #1169 from npezza93/move-selection-event
Move selection event emission to the terminal object
2017-12-29 08:37:44 -08:00
npezza93 f65aeba684 Override MockTerminals emit to do nothing 2017-12-27 13:53:27 -05:00
npezza93 4d16c5e9e8 Move selection event emission to the terminal object 2017-12-27 11:36:05 -05:00
Daniel Imms 8c4e6b0e5b Merge pull request #1166 from Tyriar/1165_bellSound_exception
Prevent exception when setting bellSound before open
2017-12-27 06:15:14 -08:00
Daniel Imms 2660e0ecff Merge pull request #1163 from Tyriar/1018_applyaddon_types
Add applyAddon typings
2017-12-27 06:15:02 -08:00
Daniel Imms f24a94b341 Move syncBellSound after helperContainer init 2017-12-26 04:06:00 -08:00
Daniel Imms 5dc38008f3 Fix test 2017-12-26 02:43:28 -08:00
Daniel Imms 98d25607a9 Prevent exception when setting bellSound before open
Fixes #1165
2017-12-26 02:22:09 -08:00
Daniel Imms 55f885809e Improve doc 2017-12-21 15:18:03 -08:00
Daniel Imms 37a1220ee7 Add applyAddon typings
Part of #1018
See #1130
2017-12-21 13:59:27 -08:00
Daniel Imms 9518d20c4e Merge pull request #1160 from Tyriar/1159_linefeed
Make lineFeed event lowercase
2017-12-20 15:46:59 -08:00
Thomas Zilz b4e52b2334 Fix fit() sizing and also support letterSpacing, enhanced (#1157)
Fixes #1081

* Make sure character dimensions are available right after calling term.open()
* Do not assume var assignments are global anymore, webpack will isolate them
* Use DocumentFragment to build Viewport and helpers before attaching them to the DOM
* Shield term.focus call from crashing when used before term.open
2017-12-20 20:06:23 +01:00
Daniel Imms 0f7365999f Merge pull request #1156 from Tyriar/1155_visual_bell
Remove visual bell API until it's added back
2017-12-19 13:29:48 -08:00
Daniel Imms 83ef7668be Merge remote-tracking branch 'ups/v3' into 1159_linefeed 2017-12-19 13:26:48 -08:00
Daniel Imms aaf0991195 Make lineFeed event lowercase
Fixes #1159
2017-12-19 13:25:26 -08:00
Paris Kasidiaris 8263b5f0ba Merge pull request #1130 from xtermjs/applyaddon
New addon system: `applyAddon`
2017-12-18 21:44:00 +02:00
Daniel Imms c1d20afc64 Remove visual bell API until it's added back
Fixes #1155
2017-12-18 10:15:30 -08:00
Paris Kasidiaris da604ff69c Fix webpack task in Gulp and fit add-on 2017-12-16 11:29:12 +02:00
Daniel Imms eeda380b67 Merge pull request #1149 from flumm/proxmox
add proxmox ve to real-world uses
2017-12-15 06:44:12 -08:00
Dominik Csapak 41c2c07a74 add proxmox ve to real-world uses 2017-12-12 16:19:58 +01:00
Paris Kasidiaris 80450450e9 Export zmodemAttach 2017-12-12 10:50:18 +02:00
Paris Kasidiaris c9b672e0c6 Simplify fit addon 2017-12-12 10:47:58 +02:00
Paris Kasidiaris 8830820821 Update demo to use Webpack 2017-12-12 08:46:06 +00:00
Paris Kasidiaris e39d10e12f Fix exports 2017-12-12 08:46:06 +00:00
Paris Kasidiaris 6fec430e32 Fix tests 2017-12-12 08:46:06 +00:00
Paris Kasidiaris d81e304ce7 Export static methods wherever possible 2017-12-12 08:46:06 +00:00
Paris Kasidiaris 052dc15d55 Update README once more 2017-12-12 08:46:06 +00:00
Paris Kasidiaris 8d54735321 Fix README.md 2017-12-12 08:46:06 +00:00
Paris Kasidiaris 31cc0c30c1 Update README.md 2017-12-12 08:46:06 +00:00
Paris Kasidiaris 510de73996 Port addons to new applyAddon API and TypeScript 2017-12-12 08:46:06 +00:00
Paris Kasidiaris 2547858efb Remove "debugging" allowJs 2017-12-12 08:46:06 +00:00
Paris Kasidiaris 4c4684295e First PoC of .applyAddon 2017-12-12 08:46:06 +00:00
Daniel Imms 4f144dc6eb Merge pull request #1121 from Tyriar/841_remove_geometry
Remove geometry
2017-11-21 09:00:57 -08:00
Daniel Imms 3638eb2d4f Merge pull request #1125 from Tyriar/logo
Add new logo to README
2017-11-10 13:55:16 -08:00
Daniel Imms 0c81ec7e95 Add new logo to README 2017-11-10 13:01:01 -08:00
Daniel Imms bc424b2f37 Merge pull request #1097 from jdanbrown/pr-bracketedpaste
Support bracketed paste mode
2017-11-09 11:05:05 -08:00
Daniel Imms 0b90feab1e Remove geometry
Fixes #841
2017-11-09 10:02:28 -08:00
Daniel Imms b798463d27 Merge pull request #1113 from bmf-ribeiro/selection-event-1093
Expose a selection event
2017-11-07 13:56:07 -08:00
Bruno Ribeito fc7cf6b917 Adress feedback 2017-11-07 21:08:21 +00:00
Paris Kasidiaris a6899c74d8 Merge pull request #1076 from FGasper/zmodem
Zmodem addon
2017-11-07 16:44:01 +02:00
Daniel Imms 935e972348 Merge pull request #1112 from bmf-ribeiro/FIX_#800
Pull wcwidth into its own file
2017-11-06 21:16:50 -08:00
Bruno Ribeito 923bb05b8d Fix #1093 2017-11-06 21:02:53 +00:00
Bruno Ribeito 354b857bbe Fix spacing 2017-11-06 20:40:28 +00:00
Bruno Ribeito e18416a636 Fix #800 2017-11-06 20:11:23 +00:00
Daniel Imms b0020fc0ac Merge pull request #1106 from EmbeddedEnterprises/v3
Fix deleteChars not updating the view
2017-11-06 10:22:43 -08:00
Daniel Imms c90c24cecf Merge pull request #1109 from Tyriar/1029_fix_end_selection
Fix last column selection problems
2017-11-06 07:43:20 -08:00
Daniel Imms 0637191d77 Merge pull request #1108 from bmf-ribeiro/v3
Fix #948
2017-11-06 06:53:57 -08:00
Daniel Imms 95de0e83b9 Merge pull request #1105 from Tyriar/1080_interface_export
Export interfaces in typings
2017-11-05 17:08:10 -08:00
Bruno Ribeito 9c4ff54f22 Fix review comments 2017-11-05 21:13:54 +00:00
Daniel Imms 8478aa7a51 Fix selection on bottom right char when mouse goes outside viewport
Part of #1029
2017-11-05 12:18:59 -08:00
Daniel Imms dbec3a32f8 Fix selecting of last column
Fixes #1029
2017-11-05 12:06:25 -08:00
Bruno Ribeito b7438d57cf Fix #948 2017-11-05 15:11:02 +00:00
Martin Koppehel 4b46a777d7 Fix deleteChars not updating the view
When deleting a character in a line and moving the cursor to
another line afterwards, the deletion is not rendered.
This commit adds the line where the character was deleted
to the refresh range to enforce an update
2017-11-05 10:31:35 +01:00
Daniel Imms 3921457bf3 Merge pull request #1104 from Tyriar/902_scrollLines_api
Replace scrollDisp with the more descriptive scrollLines
2017-11-04 20:43:06 -07:00
Daniel Imms 86653f70a8 Export interfaces in typings
Fixes #1080
2017-11-04 20:41:03 -07:00
Felipe Gasper b96286be51 remove bundled zmodem.js and symlinked CSS 2017-11-04 08:36:51 -04:00
Daniel Imms 05cbe41d39 scrollDisp -> scrollLines
Fixes #902
2017-11-04 03:20:24 -07:00
Felipe Gasper 54f616623a cleaner syntax for start-zmodem 2017-11-02 19:07:43 -04:00
Felipe Gasper 6cefa13a4e Merge branch 'v3' into zmodem 2017-11-02 19:05:30 -04:00
Felipe Gasper e262ba473e include build 2017-11-02 19:03:52 -04:00
Felipe Gasper 280a100c12 revert changes to mainline demo; have separate addon demo 2017-11-02 18:33:00 -04:00
Daniel Imms d9e9fa3ff7 Merge pull request #1094 from Tyriar/1089_open_parent_visible
Clarify that parent needs to be visible when calling open
2017-11-01 08:47:53 -07:00
Daniel Imms aaa7e91855 Merge pull request #1091 from Tyriar/1090_force_selection
Don't send mouse events when selection is forced
2017-11-01 08:46:38 -07:00
Daniel Imms 3d9aefbb2d Merge pull request #1096 from Tyriar/winptyCompat
Add winptyCompat addon
2017-11-01 08:46:22 -07:00
Daniel Imms e2910ca5c8 Merge pull request #1088 from Tyriar/node-pty-upgrade
Upgrade node-pty to 0.7.2
2017-11-01 08:46:09 -07:00
Paris Kasidiaris 36a155dd1a Merge pull request #1065 from exsilium/iPadHWArrowsV3
Apple iPad - Smart Keyboard Arrows - v3
2017-10-31 12:12:12 +02:00
Daniel Imms 8cb410bd9c Merge pull request #1099 from Tyriar/1089_init_scaled_vars
Initialize scaled dimension variables
2017-10-30 12:37:37 -07:00
Daniel Imms 79cdaa8d3b Initialize scaled dimension variables
Fixes #1089
2017-10-30 11:21:22 -07:00
Dan Brown 1dbcf70cee Support bracketed paste mode
- As described in https://cirw.in/blog/bracketed-paste
- Example support in vim:
  - https://github.com/ConradIrwin/vim-bracketed-paste/blob/master/plugin/bracketed-paste.vim
  - http://vimdoc.sourceforge.net/htmldoc/term.html#raw-terminal-mode
- Required for e.g. ipython, via python-prompt-toolkit:
  - https://github.com/ipython/ipython
  - https://github.com/jonathanslenders/python-prompt-toolkit

Repro:
- Run `ipython` (version 6.2.1)
- Copy multiple lines of text and paste into ipython prompt, e.g.
```py
print(1)
print(2)
print(3)
```
- Before: first line would paste and run, and subsequent lines are lost
- After: all lines paste into single prompt
2017-10-30 00:26:50 -07:00
Felipe Gasper 29143baa3a a bit lighter: no submit 2017-10-29 17:26:23 -04:00
Felipe Gasper 11c9dd3288 revert changes, update to latest node-pty 2017-10-29 15:34:23 -05:00
Felipe Gasper 9a8916ff77 pare back changes 2017-10-29 15:25:06 -05:00
Felipe Gasper cb7c6151e8 compile zmodem extension in gulp 2017-10-29 15:21:22 -05:00
Daniel Imms aa5a9911de Base wrapped line on current width, not original width
Lines are never trimmed, so even if the term's size is reduced it
could contain empty lines at the end when wrapping is valid
2017-10-29 13:16:29 -07:00
Daniel Imms d7f6f96ba6 Add winptyCompat addon typings 2017-10-29 13:01:38 -07:00
Daniel Imms 2fbc0be98d Fix build issues 2017-10-29 12:45:37 -07:00
Daniel Imms 664c0f0f77 Clarify that parent needs to be visible when calling open
Fixes #1089
2017-10-28 17:44:15 -07:00
Felipe Gasper 0ca1318284 too much work … just find a way to concatenate 2017-10-27 21:10:23 -05:00
Felipe Gasper f2befc0c06 document the new opts/flag 2017-10-27 20:17:27 -05:00
Felipe Gasper 6c3af6e19a provide for better compatibility with attach.js 2017-10-27 20:14:18 -05:00
Daniel Imms d81df46453 Don't send mouse events when selection is forced
Fixes #1090
2017-10-27 16:48:00 -07:00
Felipe Gasper a90493a9af Merge branch 'v3' into zmodem 2017-10-27 17:58:01 -05:00
Felipe Gasper 5c81fe6cdc pare down some changes 2017-10-27 17:54:36 -05:00
Daniel Imms 59759c718b node-pty@0.7.2 2017-10-27 11:33:05 -07:00
Daniel Imms 700a10f3f4 Initial winptyCompat addon 2017-10-27 10:23:46 -07:00
Daniel Imms 8ece306dbe Merge pull request #1084 from Tyriar/1079_theme_exception
Fix exception when setting theme
2017-10-27 10:14:43 -07:00
Daniel Imms a27a4e627e Add test for not setting bg in theme 2017-10-25 21:28:19 -07:00
Daniel Imms 2fc723b3ac Fix exception when setting theme
Fixes #1079
2017-10-25 21:24:44 -07:00
Felipe Gasper 1586363b2e Merge branch 'v3' into zmodem 2017-10-25 07:30:04 -05:00
Daniel Imms c2b3853aa7 Merge pull request #1078 from Tyriar/vsc36328
Add null check in MouseZoneManager._findZoneEventAt
2017-10-24 10:19:55 -07:00
Daniel Imms 65afb34b8b Merge pull request #1072 from Tyriar/1071_typing_pollution
Move interfaces in types inside module
2017-10-23 13:36:05 -07:00
Daniel Imms ac71f13361 Add null check in MouseZoneManager._findZoneEventAt
See Microsoft/vscode#36328
2017-10-23 11:54:49 -07:00
Felipe Gasper 3d2687768f no abort; instead skip 2017-10-22 16:20:01 -05:00
Paris Kasidiaris d3b25364cc Merge pull request #1073 from LukasDrgon/patch-1
Add jsDelivr hits badge
2017-10-21 16:43:43 +03:00
Daniel Imms 5d49db54ee Move interfaces in types inside module
Fixes #1071
2017-10-20 17:28:34 -07:00
Daniel Imms 81b6469aad Merge pull request #1069 from Tyriar/1068_xterm_css_change
Use .xterm over .terminal in CSS
2017-10-20 16:56:38 -07:00
Daniel Imms 1d76cc921a Use .xterm over .terminal in CSS
Fixes #1068
2017-10-19 08:44:00 -07:00
Felipe Gasper 6026bd44c3 put ZMODEM auto-toggle into demo UI 2017-10-19 11:50:36 +02:00
Felipe Gasper 7bc7bb0ab9 no more text-encoding 2017-10-19 11:36:37 +02:00
Daniel Imms 2e8410da4b Merge pull request #1061 from Tyriar/1048_enableBold
Support enableBold option
2017-10-17 15:54:47 -07:00
Daniel Imms cf6c11db14 Merge remote-tracking branch 'origin/v3' into 1048_enableBold 2017-10-17 12:41:13 -07:00
Felipe Gasper ed6e2e5055 Reorder demo components, ensure we hide at end of receive. 2017-10-17 09:28:41 +02:00
Felipe Gasper 1ee6af2f82 Instructions in the demo for ZMODEM. 2017-10-17 08:57:18 +02:00
Felipe Gasper ef62b3bf55 Use zmodem.js from npm rather than a git submodule. 2017-10-17 08:39:43 +02:00
Felipe Gasper 76faad67d9 Merge branch 'v3' into zmodem 2017-10-17 08:21:33 +02:00
Felipe Gasper a4b06ea86e docs, prune 2017-10-17 08:20:25 +02:00
Felipe Gasper 355d5970a6 Allow attach.js to work 2017-10-16 16:30:29 +01:00
Felipe Gasper a53ca789ea also exclude Terminado 2017-10-16 15:32:46 +01:00
Felipe Gasper 6fa08d3cc0 Make zmodem work again 2017-10-16 15:26:09 +01:00
Felipe Gasper 73b804f42d update subrepo 2017-10-16 15:14:22 +01:00
Felipe Gasper 151eac6f4f prep for addon - find loop 2017-10-16 15:12:07 +01:00
Felipe Gasper a6efda6120 broken cuz moving to addon 2017-10-16 14:43:10 +01:00
Exile 822b31f7b7 Addressing linter errors 2017-10-16 08:02:03 +00:00
Exile 0684e05877 Smart Keyboard Arrows 2017-10-16 07:17:51 +00:00
Felipe Gasper 8346ab12be add missing dependency to package.json 2017-10-15 21:35:09 +01:00
Daniel Imms 00554390e1 Merge pull request #1045 from Tyriar/more_rendering_improvements
More rendering improvements
2017-10-14 23:55:33 -07:00
Lukas Drgon 5cdd1bee42 Add jsDelivr hits badge 2017-10-14 19:25:42 +02:00
Daniel Imms db6695435d Add letterSpacing typings and test 2017-10-13 13:38:28 -07:00
Daniel Imms 899929afc6 Add enableBold typings 2017-10-13 13:30:12 -07:00
Daniel Imms a1fcafd50c Fix default color with bold disabled 2017-10-13 13:20:22 -07:00
Daniel Imms a622b97a94 Support enableBold option 2017-10-13 13:13:38 -07:00
Daniel Imms e86aebaa41 Merge remote-tracking branch 'origin/v3' into more_rendering_improvements 2017-10-13 13:02:38 -07:00
Daniel Imms c1ec68091a Merge pull request #1058 from Tyriar/1057_remove_wcwidth_test
Remove long wcwidth test
2017-10-13 13:00:50 -07:00
Daniel Imms c1ad9dba2a Remove long wcwidth test
Fixes #1057
2017-10-11 22:46:08 -07:00
Daniel Imms b1449880be Merge pull request #1052 from Tyriar/1047_ansi_bright
Fix ansi bright text being bold without bold flag
2017-10-11 19:06:05 -07:00
Thomas Zilz b6c886837f Add support for dimmed characters (faint) (#1043)
* Add support for dimmed character style
2017-10-11 20:24:26 +02:00
Daniel Imms 5e639c75f7 Merge pull request #1051 from Tyriar/blurry_ldpi
Draw from charatlas without changing scale
2017-10-11 07:53:21 -07:00
Daniel Imms a56edd65a7 Fix ansi bright text being bold without bold flag
Fixes #1047
2017-10-10 22:37:13 -07:00
Daniel Imms 09c9cb4508 Draw from charatlas without changing scale
Fixes #1050
2017-10-10 22:19:48 -07:00
Daniel Imms 058de25977 Merge pull request #1030 from Tyriar/fix_selection_model_npe
Add a null check to areSelectionValuesReversed
2017-10-10 07:50:34 -07:00
Daniel Imms eb57cc3e9e Clip rows using the row's cell height, not char height 2017-10-09 20:10:13 -07:00
Daniel Imms 1b2bac7aef Add letterSpacing option
This provides an option for fonts to be more spaced out. This is particularly useful
for fonts that can seem crammed due to not allowing floating point numbers when
drawing, such as Monoid or Operator Mono.
2017-10-09 20:07:30 -07:00
Daniel Imms b06eb44c45 Merge pull request #1034 from Tyriar/1033_ie11_support
Add support back for IE11
2017-10-06 09:27:15 -07:00
Daniel Imms 5bf81934cd Merge pull request #1022 from Tyriar/1020_mouse_events_linkifier
Ensure linkifier cancels mouse event when being handled
2017-10-06 09:23:42 -07:00
Daniel Imms 635cf268d4 Merge pull request #1019 from Tyriar/null_check_cursor_char
Add null check before cursor is drawn
2017-10-06 09:23:17 -07:00
Daniel Imms 3c2614ade7 Merge pull request #1017 from Tyriar/1015_fix_emoji_selection
Fix several issues related to emojis
2017-10-06 09:23:03 -07:00
Daniel Imms 265057a716 Merge pull request #1038 from Tyriar/rendering_improvements
Rendering improvements
2017-10-06 09:09:37 -07:00
Daniel Imms 06b9f1db87 Always draw entire line and allow overlapping
State/diffing code is kept in comments as it may be reinstated soon.

Fixes #1035
Fixes #1036
Fixes #1032
Fixes #1037
2017-10-05 23:25:03 -07:00
Daniel Imms 356a14bb16 Fix non-default backgrounds on left cell of wide/overlapping chars
Fixes #1031
2017-10-05 20:30:09 -07:00
Daniel Imms be8ddb11db Add support back for IE11
Fixes #1033
2017-10-05 20:22:05 -07:00
Daniel Imms 108534a4fe Fix null pointer exception 2017-10-05 20:09:17 -07:00
Daniel Imms 0a08d6389a Fix sub-pixel anti-aliasing for uncached text
Fixes #1032
2017-10-05 19:31:07 -07:00
Daniel Imms f36ba01460 Add a null check to areSelectionValuesReversed
See Microsoft/vscode#35601
2017-10-05 11:15:46 -07:00
Daniel Imms 22af08d86e Merge pull request #1028 from Tyriar/1024_fix_windows_build_issue
Normalize tsconfig outDir
2017-10-05 08:35:43 -07:00
Daniel Imms 2ab06779f9 Merge pull request #1026 from Tyriar/1025_fix_link_application_range
Fix links sometimes not getting applied
2017-10-05 08:04:36 -07:00
Daniel Imms 0ac093e19c Merge pull request #1027 from jgillich/patch-1
remove import file extension
2017-10-05 07:58:00 -07:00
Daniel Imms e693c9e86b Normalize tsconfig outDir
It was coming out with the wrap path separators on Windows

Fixes #1024
2017-10-05 07:52:34 -07:00
Jakob Gillich 7cfc108fb4 remove import file extension 2017-10-05 01:35:34 +02:00
Daniel Imms 2a126cf1dc Fix links sometimes not getting applied
There was an incorrect comparison which occasionally caused links to
not be picked up.

Fixes #1025
2017-10-04 11:45:13 -07:00
Felipe Gasper 0e732a7d41 Make it work (as well as it may) in Edge 2017-10-03 23:16:12 -04:00
Daniel Imms 66688c19a6 Merge pull request #1023 from ricktbaker/patch-1
Update README.md
2017-10-02 11:37:57 -07:00
Rick Baker 966f5c1f32 Update README.md
Who would have thought that a name could have so much controversy.   I've renamed due to a bunch of flack about devops not logging into servers :)
2017-10-02 13:34:30 -05:00
Daniel Imms ea8bd8dc1c Merge pull request #910 from dcylabs/v3
Fixed selection issue when terminal is in nested scrolled elements
2017-10-02 11:15:45 -07:00
Daniel Imms 56da538ca0 Fix reference to document 2017-10-02 11:12:33 -07:00
Daniel Imms 42d5cb671e Merge remote-tracking branch 'ups/v3' into v3 2017-10-02 11:00:24 -07:00
Daniel Imms 95f68a41d7 Ensure linkifier cancels mouse event when being handled
The terminal mouse events handling code was being run before links were
being considered. This caused clicking link to have unexpected behavior
in mouse mode term apps.

Fixes #1020
2017-10-02 10:42:14 -07:00
Felipe Gasper 4c4c392479 update demo code for package-lock; make package.json build zmodem.js 2017-10-02 09:44:05 -04:00
Felipe Gasper 907d9de965 update demo for zmodemjs changes 2017-10-01 18:23:17 -04:00
Felipe Gasper 6f69207a67 Merge branch 'v3' into zmodem 2017-10-01 12:47:36 -04:00
Daniel Imms 29be4f6a92 Merge remote-tracking branch 'ups/v3' into 1015_fix_emoji_selection 2017-10-01 05:54:10 -07:00
Daniel Imms b1214063d2 Add more complex emoji selection tests 2017-09-30 10:00:18 -04:00
Daniel Imms da4e3e6e9f Improve documentation on word selection 2017-09-30 09:45:11 -04:00
Daniel Imms e0c28bc7d2 Fix selecting words containing ZWJ emojis 2017-09-30 09:32:33 -04:00
Daniel Imms 58259f8bd9 Fix select word on wide characters 2017-09-30 08:30:19 -04:00
Daniel Imms 4828c4a6fa Clean up logs/comments 2017-09-30 08:02:03 -04:00
Daniel Imms 3e29a03f87 Fix rendering issues for emojis that come out as wide chars
The fix is to disallow non-single cell width chars to be overlapping
2017-09-30 07:54:52 -04:00
Daniel Imms fa86f31f36 Fix copying emoji characters on the edge of selection
Fixes #1015
2017-09-30 06:30:14 -04:00
Daniel Imms feb2b958a4 Mostly emoji selection
Selection is not aware of characters that have a size greater than 1.

When the emoji is at the start of the selection it still doesn't work.

Fixes #1015
2017-09-30 06:13:58 -04:00
Daniel Imms e3d69d78a0 Merge pull request #1010 from Tyriar/vscode34466
Add null check when fetching line string
2017-09-30 05:37:11 -04:00
Daniel Imms ef5e393510 Merge pull request #1002 from Tyriar/990_fix_link_issues
Fix link clearing issues
2017-09-30 05:36:48 -04:00
Daniel Imms a9a131699f Merge pull request #1001 from Tyriar/1000_fix_horz_offset
Fix mouse coordinates
2017-09-29 16:17:50 -04:00
Daniel Imms 3813e3f6df Merge pull request #1012 from ricktbaker/patch-1
Update README.md
2017-09-29 16:11:10 -04:00
Rick Baker 499c8288eb Update README.md
Submitting an app for your list.
2017-09-29 14:54:33 -05:00
Daniel Imms 91d22e3d84 Add null check before cursor is drawn 2017-09-28 21:23:27 -04:00
Daniel Imms a8174398f5 Calculate mouse coordinates using correct char dimensions
Previously the Mouse class was using raw CSS pixels, we need CSS pixels based
on the amount of space the cells take up on the canvas

See Microsoft/vscode#35114
2017-09-28 17:23:45 -04:00
Daniel Imms 0dafd0a38b Merge branch 'v3' into 1000_fix_horz_offset 2017-09-28 17:21:37 -04:00
Daniel Imms 13d46476c8 Add null check when fetching line string
See Microsoft/vscode#34466
2017-09-28 14:52:56 -04:00
Felipe Gasper bc2dce7a50 Merge branch 'v3' into zmodem 2017-09-27 10:29:40 -04:00
Felipe Gasper 3f467b33e4 update demo to latest zmodem.js code 2017-09-26 10:31:24 -04:00
Daniel Imms 313d1e6fec Merge pull request #1005 from Tyriar/fix_validation_callback
Fix validation callback to use the uri, not whole row
2017-09-25 13:24:45 -07:00
Daniel Imms a4485b8c09 Merge pull request #999 from Tyriar/vscode34493
Only refresh char atlas when char dimensions are valid
2017-09-25 06:14:58 -07:00
Daniel Imms a2389d5c5b Fix validation callback to use the uri, not whole row 2017-09-24 10:59:38 -07:00
Daniel Imms 8243eef67c Properly clear links
MouzeZoneManager rows are not 0-based

Fixes #990
2017-09-20 12:54:20 +09:00
Daniel Imms 0b54df14e2 Remove unnecessary rounding 2017-09-20 12:16:27 +09:00
Daniel Imms 79c07d436e Fix selection horizontal offset
Fixes #1000
2017-09-20 11:53:19 +09:00
Daniel Imms 40fdd00b9e Correct if statement, ensure charAtlas exists 2017-09-20 09:02:21 +09:00
Felipe Gasper 65f5f1c38c deny() handling 2017-09-18 07:19:22 -04:00
Thomas Zilz c4da8325ac Allow all overflowing characters to extend to the next cell if followed by a space (Emojis etc) (#997)
* Measure characters and thread them if they are overlapping

* Fix whitespace

* Use charData and ctx.save/restore, code cleanup

* Fix trailing whitespace
2017-09-17 10:39:09 +02:00
Thomas Zilz c815310418 Fix inverted cells, make sure inverted cells are cleared correctly (#996)
* Corretly inverse foreground and background. Be more conservative when clearing

* add missing space

* Re-enable optimisation with better checks

* Fix insversed check
2017-09-16 20:36:55 +02:00
Daniel Imms 9b6c4e046f Only refresh char atlas when char dimensions are valid
See Microsoft/vscode#34493
2017-09-16 10:57:49 -07:00
Felipe Gasper 94586b669f update submodule 2017-09-15 03:45:23 -04:00
Felipe Gasper 5f62c7607d progress indicators for send 2017-09-15 03:30:51 -04:00
Felipe Gasper ce681fe481 demo: hide progress after receive 2017-09-15 03:26:54 -04:00
Felipe Gasper cdcedd6b34 updates to factor out more logic to library 2017-09-15 02:31:32 -04:00
Daniel Imms 1f49879298 Merge pull request #989 from Tyriar/986_selection_exception
Ensure mouse coordinates are always within rows/cols
2017-09-14 09:06:44 -07:00
Daniel Imms 691ab2b02c Merge remote-tracking branch 'ups/v3' into 986_selection_exception 2017-09-14 09:06:00 -07:00
Daniel Imms 0cf9f1d536 Fix tests 2017-09-14 09:05:50 -07:00
Daniel Imms 3d743e5bdb Merge pull request #964 from Tyriar/963_cursor_accent
Support theming cursor accent color
2017-09-14 09:03:54 -07:00
Daniel Imms bc824ad6a5 Fix tests 2017-09-14 09:03:41 -07:00
Daniel Imms b9872c9a67 Merge remote-tracking branch 'ups/v3' into 963_cursor_accent 2017-09-14 09:02:32 -07:00
Daniel Imms ea0c2285bc Merge remote-tracking branch 'ups/v3' into 963_cursor_accent 2017-09-14 09:02:00 -07:00
Daniel Imms a611fee7af Merge pull request #976 from Tyriar/975_mousezone_leave
Ensure leave is called when leaving a MouseZone
2017-09-14 09:01:28 -07:00
Daniel Imms c2502bf0b0 Merge pull request #978 from Tyriar/953_user_scrolling_fix
Improve scrolling while user has scrolled up
2017-09-14 09:01:13 -07:00
Daniel Imms e8d784a47d Merge pull request #991 from Tyriar/blurriness_fix
Support sub-pixel anti-aliasing and fix blurry text issues
2017-09-14 08:59:50 -07:00
Daniel Imms 8bdc8fb7a2 Remove log 2017-09-14 01:00:19 -07:00
Daniel Imms aca7ab63e8 Set background color on Renderer immediately
Prevents black flash on init
2017-09-14 00:22:57 -07:00
Daniel Imms c2b765f3ff Redraw background on text layer after a resize 2017-09-13 23:56:35 -07:00
Daniel Imms 068c0743a1 Support non-#000 background colors in char atlas 2017-09-13 23:54:45 -07:00
Daniel Imms 0a58628f74 Clear text layer to the background color on creation
Prevents a black flash before the first draw
2017-09-13 23:49:37 -07:00
Daniel Imms b225866c27 Clear cells properly for text layer 2017-09-13 23:21:24 -07:00
Daniel Imms 872c007a29 Finish merging bg and fg layers 2017-09-13 23:15:21 -07:00
Daniel Imms 402cebc76c Support bold in non cached text drawing
Fixes #987
2017-09-13 22:50:48 -07:00
Daniel Imms 3656617044 Start merging fg/bg layers, draw using SP-AA 2017-09-13 15:21:40 -07:00
Daniel Imms 5538481833 Draw characters to a grid 2017-09-13 15:07:01 -07:00
Daniel Imms a52b9feeea Ensure mouse coordinates are always within rows/cols
Fixes #986
2017-09-13 14:03:40 -07:00
Daniel Imms 136c82f9ad Merge pull request #981 from Tyriar/974_fix_wide_arrow
Treat \u279C arrow as ambiguous width char (like emoji)
2017-09-13 11:01:40 -07:00
Daniel Imms ead45fe4d0 Add a TODO 2017-09-13 10:59:55 -07:00
Daniel Imms 69982dc16a Merge pull request #983 from Tyriar/remove_log
Remove log
2017-09-13 10:54:10 -07:00
Daniel Imms d030206195 Merge pull request #980 from Tyriar/972_decimal_text
Draw text using decimal numbers
2017-09-13 10:53:49 -07:00
Daniel Imms 30cac21003 Remove log 2017-09-13 10:34:58 -07:00
Daniel Imms cd21a24ee4 Merge pull request #982 from Tyriar/970_fix_alt_selection
Fix alt+selection while mouse events are enabled
2017-09-13 10:16:16 -07:00
Daniel Imms 73d3164426 Fix alt+selection while mouse events are enabled
Fixes #970
2017-09-12 20:00:25 -07:00
Daniel Imms cf32452917 Treat \u279C arrow as ambiguous width char (like emoji)
Fixes #974
2017-09-12 19:23:26 -07:00
Daniel Imms 403fd3cd4f Draw text using decimal numbers
Fixes #972
2017-09-12 18:55:59 -07:00
Daniel Imms 6899e01fc1 Improve scrolling while user has scrolled up
Fixes #953
2017-09-12 15:06:23 -07:00
Felipe Gasper 6181262c76 remove debug changes 2017-09-11 22:39:13 -04:00
Daniel Imms 2114bc4837 Ensure leave is called when leaving a MouseZone
Fixes #975
2017-09-11 11:12:51 -07:00
Daniel Imms 1897f0f51a Merge pull request #968 from Tyriar/line_height_fixes
Fix several issues with line height
2017-09-11 09:42:06 -07:00
Felipe Gasper 91aa8c51fc got it 2017-09-11 00:01:07 -04:00
Daniel Imms 903ed1917e Remove viewport test
It's not tightly linked to renderer and depends on devicePixelRatio.
2017-09-10 10:43:33 -07:00
Daniel Imms ac23be134b Simplify viewport 2017-09-10 10:38:08 -07:00
Daniel Imms ae741348a6 Fix several issues with line height
Fixes #966
Fixes #967
2017-09-10 10:31:19 -07:00
Daniel Imms 052e0b5a94 Merge pull request #961 from Tyriar/959_960_link_state
Fix issues with link state
2017-09-10 08:07:23 -07:00
Daniel Imms 6c06d83525 Support theming cursor accent color
Fixes #963
2017-09-10 08:01:16 -07:00
Felipe Gasper e442512087 trying to make it work 2017-09-09 23:12:01 -04:00
Daniel Imms 0e3518409e Fix issues with link state
- Scrolling will now clear the link renderer
- Refreshing a single line will now recalculate only that line

Fixes #959
Fixes #960
2017-09-09 19:06:30 -07:00
Daniel Imms 9bb675462f Merge pull request #956 from marcdumais-work/v3
Add Theia as a "Real World" use of xterm.js
2017-09-08 11:58:27 -07:00
Daniel Imms 948eedba89 Merge pull request #938 from Tyriar/canvas_render
Render using canvas
2017-09-08 11:07:59 -07:00
Daniel Imms 0c19bc9c28 Fix tests 2017-09-08 11:06:15 -07:00
Daniel Imms 75b91c618e Update license text 2017-09-08 10:16:42 -07:00
Marc Dumais e3051ea1dc Add Theia as a "Real World" use of xterm.js 2017-09-08 11:20:43 -04:00
Thomas Zilz 48391c3108 Merge pull request #952 from mofux/delete-line-fix
Fix CSI Ps M to delete the correct line
2017-09-08 14:00:24 +02:00
Paris Kasidiaris 3a8327de66 Merge pull request #949 from vincentwoo/unused-timer
Delete unused timer variables
2017-09-08 11:41:50 +03:00
Daniel Imms ea8dbbd29f Underline links on hover 2017-09-07 10:20:48 -07:00
Thomas Zilz 4eb356f6be Fix CSI Ps M to delete the correct line 2017-09-07 17:13:15 +02:00
Daniel Imms 67962a5e55 typescript@2.4
For string enums
2017-09-07 07:19:48 -07:00
Daniel Imms e960a0a82c Add ILinkMatcherOptions.hoverEndCallback 2017-09-06 16:05:09 -07:00
Daniel Imms 66c891df5b Fix resize adding right padding on demo 2017-09-06 15:36:40 -07:00
Daniel Imms fb90c98f81 Fix blurry text by supporting floating pt devicePixelRatios 2017-09-06 10:36:34 -07:00
Daniel Imms b69ff5d31a Redraw terminal when devicePixelRatio changes 2017-09-06 10:22:33 -07:00
Paris Kasidiaris a883029044 Merge pull request #926 from ficristo/search-fix
Do not browserify xterm again inside search addon.
2017-09-06 20:04:42 +03:00
Vincent Woo 2f168da1dc Delete unused timer variables 2017-09-05 19:14:11 -07:00
Daniel Imms f87213790e Merge branch 'master' into search-fix 2017-09-05 11:30:28 -07:00
Daniel Imms 7b199ac17f Some more documentation 2017-09-04 19:40:49 -07:00
Daniel Imms 5c2d5dcd27 Document methods of BaseRenderLayer 2017-09-04 19:34:57 -07:00
Daniel Imms 1e728d453b Add new API to typings test 2017-09-04 14:19:17 -07:00
Daniel Imms 46b0857ef6 Resolve TODOs 2017-09-04 14:13:41 -07:00
Daniel Imms 0dc24cf800 Move theme setting into setOption API 2017-09-04 13:41:56 -07:00
Daniel Imms 8e07af04e3 Drop support for IE/Opera and indicate latest
Opera uses Blink under the hood so supporting Chrome is basically
supporting Opera
2017-09-04 13:39:35 -07:00
Daniel Imms da1e3b40cc Don't use ImageBitmap on Firefox 2017-09-04 12:59:59 -07:00
Daniel Imms 9506c01824 Add tests for utils/Mouse 2017-09-04 10:27:07 -07:00
Daniel Imms 1f38c2f467 Remove unused file 2017-09-04 09:53:53 -07:00
Daniel Imms 6f6f17f5dc Add tests for ColorManager 2017-09-04 09:52:35 -07:00
Daniel Imms a35cf02208 Add GridCache tests 2017-09-04 09:39:44 -07:00
Daniel Imms 1c3028c59f Work around an emoji bug 2017-09-04 09:23:14 -07:00
Daniel Imms a17950290c Support emoji 2017-09-04 09:04:50 -07:00
Daniel Imms ff31f34551 Add selection to ITheme 2017-09-04 08:14:40 -07:00
Daniel Imms 0bfdff0b39 Theme unfocused cursor using cursor color 2017-09-04 08:09:43 -07:00
Paris Kasidiaris 247b63a0e3 Merge pull request #933 from nebulade/readystate
Check socket state before sending data
2017-09-04 10:23:22 +03:00
Daniel Imms 29a7ee30f3 Fix lint 2017-09-03 22:39:47 -07:00
Daniel Imms e77f1a9287 Use default colors if not defined in a theme
Previous behavior didn't touch them, meaning partial themes could be
inconsistent
2017-09-03 21:52:52 -07:00
Daniel Imms 7934e05083 jsdoc Linkifier 2017-09-03 21:34:48 -07:00
Daniel Imms e123dd1849 Null check if clicking on scroll bar 2017-09-03 21:15:14 -07:00
Daniel Imms 36778186e1 Fix tests 2017-09-03 14:34:50 -07:00
Daniel Imms e518ea04c5 Get tests reporting failures again 2017-09-03 14:21:30 -07:00
Daniel Imms 17731c3de3 Support multiple links in a line, fix Linkifier tests 2017-09-03 13:56:53 -07:00
Daniel Imms b30cb58ff4 Support hover callback in links 2017-09-03 12:47:04 -07:00
Daniel Imms 923ea7247c Get links working on proper coords 2017-09-03 11:39:17 -07:00
Daniel Imms 5619abe12d Basic link support using mouse zone manager 2017-09-03 11:20:29 -07:00
Daniel Imms 2d1a1bfb76 Fix inconsistency with lineHeight 2017-09-03 09:05:26 -07:00
Daniel Imms 48b37453ea Ensure char measure's line height isn't influenced by outside 2017-09-03 08:40:00 -07:00
Daniel Imms bc3470c272 Fix default bold text 2017-09-03 08:06:27 -07:00
Daniel Imms a3297b0017 Fix viewport/background size after char size changed 2017-09-03 07:57:16 -07:00
Daniel Imms deb47e29bf Fix canvas resizing with non-1 lineHeight 2017-09-03 07:41:18 -07:00
Daniel Imms 5a4851630e Prevent updating of invalid terminal row ranges 2017-09-03 07:27:52 -07:00
Daniel Imms fd4e9d8a1b Fix graphical glitch wide chars would leave behind
Wide chars now 'own' the character next to them and are entirely responsible
for drawing and clean up
2017-09-02 23:13:24 -07:00
Daniel Imms 8427f7490d Clear state when resizing as canvases get cleared 2017-09-02 21:13:44 -07:00
Daniel Imms 7973b26e7a Include new options in ITerminalOptions 2017-09-02 19:45:44 -07:00
Daniel Imms c94e87428d Fix CharMeasure getting taller on successive calls 2017-09-02 19:04:07 -07:00
Daniel Imms 7ccac09b6b Fix the composition element's position 2017-09-02 18:41:53 -07:00
Daniel Imms c5a6d96a62 Remove padding from terminal, not support atm 2017-09-02 14:11:21 -07:00
Daniel Imms 4f81cdfe8c Make the terminal background theme aware 2017-09-02 13:59:22 -07:00
Daniel Imms 8039fd35e6 Remove unused CSS, selectionElement 2017-09-02 13:34:01 -07:00
Daniel Imms 24a98f2fa8 Remove rowContainer and children, disable Linkifier 2017-09-02 13:26:05 -07:00
Daniel Imms 66d41feab6 Expose setTheme through .d.ts 2017-09-02 12:31:26 -07:00
Daniel Imms c92a2f964a Support lineHeight 2017-09-02 12:27:09 -07:00
Daniel Imms 9cabb93b8b Organize temporary color handling code 2017-09-02 11:08:43 -07:00
Daniel Imms ee4b71c8e7 Remove Terminal.options.colors
It wasn't being used
2017-09-02 10:51:08 -07:00
Daniel Imms b8732a25a3 Support Safari
Safari lacks support for window.createImageBitmap, fallback to
HTMLCanvasElement in thi case.
2017-09-02 10:37:51 -07:00
Daniel Imms 32a3c9812d Support wide character drawing and cursors 2017-09-02 10:17:49 -07:00
Daniel Imms ae72e1c51e Fix uncached chars bleeding into other cells 2017-09-02 09:49:48 -07:00
Daniel Imms 6dd6d0391f Add cell spacing to char atlas 2017-09-02 00:06:28 -07:00
Daniel Imms 36a723c4cc Fix 256 FG chars 2017-09-01 23:58:34 -07:00
Daniel Imms cf7237d2a4 Fix remaining cursor animation state issues 2017-09-01 23:47:17 -07:00
Daniel Imms 06b54585a1 Fix cursor render when after focusing underline/bar 2017-09-01 23:11:39 -07:00
Daniel Imms f8ece108c6 Rerender cursor if state changes 2017-09-01 23:00:29 -07:00
Daniel Imms 4919c40b57 Add cursor to ITheme 2017-09-01 22:53:21 -07:00
Daniel Imms dc1e727613 Support blurred cursor 2017-09-01 22:42:31 -07:00
Daniel Imms b57b94ad0b Improve focus/blur state, fire only once
Fixes #681
2017-09-01 22:02:12 -07:00
Daniel Imms 6ee8e9126a Remove some old dead code 2017-09-01 21:38:35 -07:00
Daniel Imms 5cd189e2e0 Fix demo pty size 2017-09-01 21:36:20 -07:00
Daniel Imms b0653fec68 Support underline 2017-09-01 21:24:17 -07:00
Daniel Imms 70764a74af Use the proper bg/fg colors for inverse attr 2017-09-01 21:09:07 -07:00
Daniel Imms 1f444b1913 Support invisible attr 2017-09-01 20:51:18 -07:00
Daniel Imms bf95333275 Fix the fit addon 2017-09-01 20:44:41 -07:00
Daniel Imms 2c9dbc6191 Add some jsdoc 2017-09-01 16:58:02 -07:00
Daniel Imms de4fcb9241 Merge render layer interface types 2017-09-01 16:54:26 -07:00
Daniel Imms bc3bdacdaa Add a char atlas cache to allow different styles+reuse across terminals 2017-09-01 16:43:45 -07:00
Daniel Imms 62fea4d3ed Add theme support 2017-09-01 15:50:18 -07:00
Daniel Imms 076156b66e Properly support blinking cursors 2017-09-01 12:59:18 -07:00
Daniel Imms 3fc500b291 Pull cursor animation state management into a helper class 2017-09-01 12:11:07 -07:00
Daniel Imms 882d7e4a30 Add basic support for cursor blinking 2017-09-01 11:34:52 -07:00
Daniel Imms 848c85c1eb Fix more cases where ' ' doesn't have code 2017-08-31 23:28:42 -07:00
Daniel Imms 81d93b8fbf Ensure CharMeasure exposes integers 2017-08-31 23:23:04 -07:00
Daniel Imms 42e5b3473d Don't clear fg char if it's null or ' ' 2017-08-31 23:13:09 -07:00
Daniel Imms 510940389c Provide convenience draw methods that deal with cells 2017-08-31 23:01:17 -07:00
Daniel Imms 9323833fcc Move scaledCharWidth/Height into base render layer 2017-08-31 22:48:08 -07:00
Daniel Imms 6588e9e01b Fix cursor which cursor character is rendered 2017-08-31 22:43:48 -07:00
Daniel Imms 15c73ef94f Add fontSize and fontFamily options 2017-08-31 22:42:39 -07:00
Daniel Imms c88824155f Simplify color generation code 2017-08-31 21:18:55 -07:00
Daniel Imms 1998675dc0 Move char drawing to base and use in cursor layer 2017-08-31 17:29:58 -07:00
Daniel Imms fe7b424ab8 Move char atlas into BaseRenderLayer 2017-08-31 17:20:50 -07:00
Daniel Imms a91380a76f Pull common parts into BaseRenderLayer 2017-08-31 17:13:15 -07:00
Daniel Imms fd18f7cba7 Support basic cursor 2017-08-31 17:02:24 -07:00
Johannes Zellner 4a9143ab31 Check socket state before sending data
Maybe related to #929
2017-08-31 20:26:36 +02:00
Daniel Imms d3650d9d80 Draw selection underneath foreground 2017-08-31 07:54:16 -07:00
Daniel Imms dff3d16831 Support 256 color 2017-08-31 00:25:52 -07:00
Daniel Imms d601f0aec2 Hang on to selection state to avoid redrawing 2017-08-31 00:13:49 -07:00
Daniel Imms 3d1bb2c60f Support selection 2017-08-31 00:09:23 -07:00
Daniel Imms 5953bbab42 Start SelectionRenderLayer 2017-08-30 23:44:52 -07:00
Daniel Imms 7aff45c2dc Remove additional frame skipping as rendering is so fast now 2017-08-30 23:39:33 -07:00
Daniel Imms a224ed7cc7 Move canvas Renderer into folder 2017-08-30 23:06:55 -07:00
Daniel Imms 1291dc5571 Support inverse 2017-08-30 23:05:51 -07:00
Daniel Imms 6a0b9bd209 Only render fg cells if there are changes 2017-08-30 22:55:17 -07:00
Daniel Imms d93a80398d Draw unicode characters 2017-08-30 22:23:25 -07:00
Daniel Imms 129633a66d Only draw background when needed 2017-08-30 22:09:25 -07:00
Daniel Imms 18e1134e61 Tidy up 2017-08-30 21:55:24 -07:00
Daniel Imms 2cb6593b6b Move fg rendering into IRenderLayer 2017-08-30 21:44:41 -07:00
Daniel Imms 5961bdbd9e typescript@2.3.0 for ImageBitmap interface 2017-08-30 21:44:18 -07:00
Daniel Imms 0db42e2056 Pull bg rendering into an IRenderLayer 2017-08-30 21:13:57 -07:00
Daniel Imms 137847e85c Linkify all rows at once to prevent multiple timeout restarts 2017-08-30 19:27:37 -07:00
Daniel Imms 5ce39d3c81 GPU ascii rendering 2017-08-30 19:12:29 -07:00
Daniel Imms e98794a0a7 progress 2017-08-30 17:27:20 -07:00
Daniel Imms 640cd18515 Support bold, underline, fix colors 2017-08-30 17:07:30 -07:00
Daniel Imms c6d4c73c8a Initial prototype 2017-08-30 14:50:16 -07:00
Daniel Imms 575c10114b Merge pull request #931 from Tyriar/930_fix_alt_tab_stops
Properly setup and maintain tab stops for the alt buffer
2017-08-30 08:20:18 -07:00
Daniel Imms a57e511fa3 Properly setup and maintain tab stops for the alt buffer
Fixes #930
2017-08-29 21:08:11 -07:00
Daniel Imms 38c66e7c1a Merge pull request #928 from Tyriar/927_terminal_in_search
Don't include Terminal in search addon
2017-08-29 09:41:31 -07:00
Daniel Imms 5ca7c7e640 Merge pull request #923 from Tyriar/922_fix_scroll_RI
Fix issues with scroll and reverseIndex
2017-08-27 16:45:54 -07:00
Daniel Imms 6b8b32015d Don't include Terminal in search addon
Fixes #927
2017-08-27 10:39:13 -07:00
ficristo 6900b4dadf Do not browserify xterm again inside search addon. 2017-08-26 14:26:51 +02:00
Daniel Imms bc86664726 Improve Buffer.resize to work with uninitialized buffers
Fixes #924
2017-08-25 13:14:30 -07:00
Daniel Imms 54cf30ae68 Remove test files 2017-08-25 12:47:45 -07:00
Daniel Imms 41463d8eb5 Make reverseIndex scroll region-aware
This was causing a issue when scrollback was 0 as the start of the
buffer was getting copied
2017-08-25 12:41:53 -07:00
Daniel Imms a2161532db Fix reverseIndex to work with scroll regions and 0 scrollback 2017-08-25 12:11:20 -07:00
Daniel Imms 9a8b7a4d8d Fix scroll region scrolling with 0 scrollback 2017-08-25 11:26:46 -07:00
Daniel Imms bfdc468d4b Merge pull request #914 from Tyriar/913_mousedown_prop
Allow mousedown even to propagate on right click
2017-08-25 07:44:13 -07:00
Daniel Imms b706383687 Allow mousedown even to propagate on right click
Fixes #913
2017-08-24 11:15:25 -07:00
Daniel Imms 6e9d60d76d Merge pull request #912 from Tyriar/911_negative_scrollback
Prevent scrollback setOption < 0
2017-08-22 10:54:12 -07:00
dcylabs 79c5f64dd4 Merge branch 'v3' of https://github.com/dcylabs/xterm.js into v3 2017-08-22 00:34:07 +02:00
dcylabs 81cbeb1d5a Fixed selection issue when terminal is in nested scrolled elements 2017-08-22 00:34:03 +02:00
Daniel Imms 877e1e5eb3 Prevent scrollback setOption < 0
Fixes #911
2017-08-21 14:30:56 -07:00
dcylabs 75ff924be1 Merge branch 'v3' of https://github.com/dcylabs/xterm.js into v3 2017-08-21 21:29:17 +02:00
dcylabs d69a01193d Fixed selection issue when terminal is in nested scrolled elements 2017-08-21 21:29:05 +02:00
dcylabs e6c1ba29d9 Fixed selection issue when terminal is in nested scrolled elements 2017-08-21 20:44:02 +02:00
dcylabs 725ec80983 Fixed selection issue when terminal is in nested scrolled elements 2017-08-21 20:43:03 +02:00
dcylabs 7f49bd99c2 Fixed selection issue when terminal is in nested scrolled elements 2017-08-21 20:27:17 +02:00
Daniel Imms abe32272dd Merge pull request #909 from Tyriar/898_improve_types
Minor typings tweaks
2017-08-21 10:09:02 -07:00
Daniel Imms 8bc2242d9f Add generic overloads to overloaded functions in d.ts
If we don't have this then tsc will throw errors when passing strings
to the functions, seems wrong to force casting strings to use the
functions, eg. <'bar'>style
2017-08-20 11:45:42 -07:00
Daniel Imms cea3dd60b6 Add cols and rows to d.ts 2017-08-20 11:43:40 -07:00
Daniel Imms 7645bdd418 Merge pull request #899 from Tyriar/898_explicit_typings
Add explicit types
2017-08-20 10:34:38 -07:00
Daniel Imms eda9443b1a Allow null with cursorStyle and bellStyle 2017-08-20 10:29:48 -07:00
Daniel Imms a0d8e3c666 Merge remote-tracking branch 'ups/v3' into 898_explicit_typings 2017-08-19 16:41:01 -07:00
Daniel Imms f25104789e Merge pull request #906 from npezza93/sync-bell-sound-on-change
When bellSound changes, update the bellAudioElements src
2017-08-19 16:40:08 -07:00
npezza93 f983e4eb6b Combine preloadBellSound and syncBellSound into the same function 2017-08-19 18:03:04 -04:00
Daniel Imms c984013e1e Remove terminal from other events 2017-08-19 14:52:48 -07:00
Daniel Imms 8fdedd4da1 Slim down refresh and resize events
Fixes #903
2017-08-19 14:38:54 -07:00
Daniel Imms e848d6afbe Remove open event
Fixes #901
2017-08-19 14:33:41 -07:00
npezza93 81cb30833f When bellSound changes, update the bellAudioElements src
Fixes #904
2017-08-19 16:55:24 -04:00
Daniel Imms f520e27f40 Fix tests 2017-08-19 13:32:03 -07:00
Daniel Imms fa015d91fe Improve types and add bellStyle/bellSound 2017-08-19 13:30:37 -07:00
Daniel Imms 34e1ee2bf6 Fix typings test on Windows 2017-08-19 13:20:32 -07:00
Daniel Imms 5ab047ea0f Merge remote-tracking branch 'ups/v3' into 898_explicit_typings 2017-08-19 13:20:19 -07:00
Daniel Imms 9ab17dec80 Merge pull request #878 from npezza93/add-bell-sound
If bell() gets called emit bell event and add default bell sound
2017-08-19 13:05:01 -07:00
npezza93 1f930c112b Add bellAudioElement to helperContainer instead of element 2017-08-19 15:56:58 -04:00
npezza93 42c3eff3f7 Update css transitions 2017-08-19 15:55:19 -04:00
npezza93 121143515a Change opacity on visual bell instead of background-color 2017-08-19 15:17:04 -04:00
npezza93 147fef74c6 Use removeChild instead of remove for compatibility 2017-08-19 15:16:21 -04:00
Daniel Imms 668b25eeb2 Fix license info and lint 2017-08-19 11:04:06 -07:00
Daniel Imms 34f5b2cb8a Remove option overloads from src
src/ handles more than that specified (and should incase you're not
using TS), this also reduces duplication as the definitions are only
in typings/
2017-08-19 10:29:05 -07:00
Daniel Imms 380f950d4d Clean up 2017-08-19 10:22:46 -07:00
Daniel Imms 6e2ca0af12 Fill out typings tests 2017-08-19 10:17:47 -07:00
Daniel Imms fd8b62610f Add typings test setup 2017-08-19 09:49:37 -07:00
Daniel Imms 4474f29ebf Add link matcher APIs 2017-08-19 09:25:57 -07:00
Daniel Imms cd29c83a64 Improve overloaded function typings/comments 2017-08-19 09:18:44 -07:00
npezza93 b0164e1f96 Update bell sound 2017-08-19 08:38:19 -04:00
Daniel Imms e4e2fbf885 Add overloads for Terminal.on 2017-08-18 17:46:49 -07:00
Daniel Imms 92ac427d00 Type addon strings in loadAddon 2017-08-18 17:34:10 -07:00
Daniel Imms 3ba3638ab7 Include all APIs from website 2017-08-18 17:25:40 -07:00
Daniel Imms 2f60c241ee Use manual typings over automatically generated ones
These are pulled from the typings I wrote for vscode

Fixes #898
2017-08-18 16:51:43 -07:00
Daniel Imms ae0d5e4ffb Merge pull request #893 from Tyriar/892_alt_buffer_viewport_exception
Prevent exception switching to alt buffer before open()
2017-08-18 16:04:22 -07:00
npezza93 68cd79db34 Set bellStyle to a string type instead of an array of strings 2017-08-17 19:44:37 -04:00
npezza93 8a6bff42c9 Remove bellAudioElement if it is not used. Remove extra import 2017-08-17 18:27:49 -04:00
npezza93 c88f50125b Add a bellStyle dropdown in the demo 2017-08-17 18:02:12 -04:00
Daniel Imms b5fc054fa5 Prevent exception switching to alt buffer before open()
Fixes #892
2017-08-17 08:36:08 -07:00
npezza93 0bb5ff8b09 Fix lints 2017-08-16 21:00:57 -04:00
npezza93 1d6f71d680 Fix bad merge 2017-08-16 20:39:28 -04:00
npezza93 3beb1f5c7c Add return types on new private functions 2017-08-16 20:39:28 -04:00
npezza93 c41bd81526 Swap out bell sound for a free one 2017-08-16 20:39:28 -04:00
npezza93 2f1380a31d Make bellStyle singular. Preload sound on option setting. Use strings as options 2017-08-16 20:39:28 -04:00
npezza93 d8717d64ba Add visual bell styling for underline and bar cursor types 2017-08-16 20:39:27 -04:00
npezza93 96c9d50ee2 Fix some quote lints 2017-08-16 20:39:27 -04:00
npezza93 3027b1d3d4 Set the visual bell color to a light gray 2017-08-16 20:39:27 -04:00
npezza93 8c94ef8aa0 Clear out any existing vidualBellTimers. Set colors back to all white.
Use visual class instead of setting colors codes in js.
2017-08-16 20:39:27 -04:00
npezza93 44ed0b9ceb Dont hardcode as many color codes in xterm.ts 2017-08-16 20:39:27 -04:00
npezza93 8a1f365a7e Add ability to have a visual bell 2017-08-16 20:39:27 -04:00
npezza93 6b46e0837f Move preloading bell audio to open() and append it the the terminal element 2017-08-16 20:39:26 -04:00
npezza93 fd51d0acf3 Preload bell audio
Allow the bellSound to be more easily configurable. You can pass false
to the bellSound and no sound will be played or you can pass it any
source you'd like.
2017-08-16 20:39:26 -04:00
npezza93 0eab4d68f6 Rename Bell.ts to Sounds that has BellSound constant 2017-08-16 20:39:21 -04:00
npezza93 245f62685a If bell() gets called emit bell event and add default bell sound 2017-08-16 20:39:15 -04:00
Daniel Imms f3d375a7a8 Merge pull request #855 from Tyriar/847_proper_scrollback_value
Make buffer length equal rows + scrollback, make alt buffer always 0 scrollback
2017-08-16 09:38:11 -07:00
Daniel Imms 39328d6e0c Merge pull request #882 from Tyriar/406_remove_dist_bower
Remove bower support, clean up readme
2017-08-16 08:46:23 -07:00
Daniel Imms 7b0d0e810c _isAltBuffer -> _hasScrollback 2017-08-16 08:45:30 -07:00
Daniel Imms 9dd1083918 Merge remote-tracking branch 'ups/v3' into 847_proper_scrollback_value 2017-08-16 08:41:42 -07:00
Daniel Imms aa438c8b83 Merge pull request #874 from Tyriar/860_v3_resize_exception
Fix exception when resizing both dimensions
2017-08-16 08:29:35 -07:00
Paris Kasidiaris cc7c310eee Merge pull request #888 from LucaT1/patch-1
Add link to vterm
2017-08-16 17:55:02 +03:00
Luca 4ab6500c1c Add link to vterm 2017-08-16 16:29:04 +02:00
Paris Kasidiaris 14c555fcfb Merge pull request #886 from dgriffen/dgriffen-patch-1
Add link to Whack Whack Terminal
2017-08-15 23:05:28 +03:00
Daniel Griffen bf7dc2f8dd Add link to Whack Whack Terminal 2017-08-15 12:16:53 -07:00
Daniel Imms d583163ac8 Move uses and browser support sections down 2017-08-12 14:48:38 -07:00
Daniel Imms a3f7b36986 Remove bower from prepare-release 2017-08-12 14:45:21 -07:00
Daniel Imms 7c3189379c Remove bower from .vscode/settings.json 2017-08-12 14:45:00 -07:00
Daniel Imms fcd2ba78bb Remove bower from README and reorganize/clean up 2017-08-12 14:44:49 -07:00
Daniel Imms 48b9173f2e Remove bower.json
Part of #406
2017-08-12 14:17:03 -07:00
Daniel Imms 184f49d909 Remove dist folder
Part of #406
2017-08-12 13:54:34 -07:00
Daniel Imms b8127b0d16 Merge pull request #879 from ioquatix/patch-1
Add link to script-runner.
2017-08-11 14:50:59 -07:00
Samuel Williams 1a50671823 Add link to script-runner. 2017-08-12 02:06:42 +12:00
Paris Kasidiaris ea07bf8f69 Bump version to 2.9.2
Signed-off-by: Paris Kasidiaris <paris@sourcelair.com>
2017-08-09 06:48:24 +00:00
Daniel Imms 996eb1b06f Merge remote-tracking branch 'ups/v3' into 847_proper_scrollback_value 2017-08-08 19:05:24 -07:00
Daniel Imms ad1a42d210 Merge remote-tracking branch 'ups/master' into v3 2017-08-08 18:50:34 -07:00
Daniel Imms 0b1711fb79 Merge pull request #873 from Tyriar/860_resize_exception
Fix exception when resizing both dimensions
2017-08-08 18:03:02 -07:00
Daniel Imms bb526aaa88 Fix exception when resizing both dimensions
This happened because buffers now resize themselves but they were
relying on Terminal to give them a blank line. The blank line was
coming back with the old columns value, causing an NPE.

Fixes #860
2017-08-08 12:59:02 -07:00
Daniel Imms 91bf3197ae Merge pull request #868 from Tyriar/865_fix_module_build
Fix module build, add TS declaration files, fix search addon
2017-08-08 03:03:50 -07:00
Daniel Imms 17c3ec0d0c Merge pull request #870 from Tyriar/869_shift_force_selection
Revert "Disable selection override on Windows/Linux"
2017-08-08 03:02:01 -07:00
Daniel Imms 8a17ac1baa Merge pull request #849 from Tyriar/848_cancel_event_on_wheel
Properly cancel event when in mouse mode
2017-08-08 01:09:37 -07:00
Daniel Imms a7aee75025 Merge pull request #858 from Tyriar/646_deprecated_focus
No longer focus the terminal by default
2017-08-08 01:05:42 -07:00
Daniel Imms 0902b92f79 Revert "Disable selection override on Windows/Linux"
This reverts commit 3479614c73.
2017-08-08 01:05:24 -07:00
Daniel Imms 9659f29e50 Remove Terminal.open focus param 2017-08-08 00:59:14 -07:00
Daniel Imms f21d5f25ec Fix search addon after TS refactor
Fixes #867
2017-08-08 00:29:22 -07:00
Daniel Imms 3b787824d3 Fix import for CommonJS consumers
CommonJS now imports the Terminal object directly as the trick in xterm.ts
wasn't working properly.

Fixes #865
2017-08-08 00:24:41 -07:00
Daniel Imms a0ce9a79a9 Build and export TS declaration files
Fixes #866
2017-08-07 23:48:58 -07:00
Daniel Imms acefa1a423 Merge pull request #864 from Tyriar/862_tests_to_ts
Migrate tests to TypeScript
2017-08-07 23:34:55 -07:00
Daniel Imms b42a9039cc Rename TestUtils.ts to TestUtils.test.ts
This will allow it to be excluded when we do #863
2017-08-07 22:40:15 -07:00
Daniel Imms b3ad3eff8b Shuffle files around
src/test/escape-sequences-test.ts -> src/Terminal.integration.ts
src/test/escape_sequence_files/* -> fixtures/escape_sequence_files/
2017-08-07 22:38:42 -07:00
Daniel Imms 28c85b8fb9 Convert escape sequences test to TS
Part of #862
2017-08-07 22:24:22 -07:00
Daniel Imms e9b0867bd2 addons/test.js and test.js -> Terminal.test.ts
Part of #862
2017-08-07 22:15:13 -07:00
Daniel Imms f52b43b380 Merge pull request #861 from Tyriar/791_buffer_refactor
Refactor buffer in preparation for true color and buffer performance improvements
2017-08-07 16:03:00 -07:00
Daniel Imms fd61c8e874 Use a const for all refs to data char and width
Part of #791
2017-08-07 15:40:48 -07:00
Daniel Imms c2bb507fe4 Move BufferLines.ts into Buffer.ts
Part of #791
2017-08-07 15:22:58 -07:00
Daniel Imms 091854df0e Merge pull request #852 from Tyriar/851_negative_tab_stop_width
Fix crash on negative tab stop width
2017-08-07 01:22:13 -07:00
Daniel Imms a1b91e1f96 Merge pull request #856 from Tyriar/fix_vscode_debugging
Fix vscode debugging
2017-08-07 01:21:41 -07:00
Daniel Imms b95d789821 Merge pull request #857 from Tyriar/744_remove_attachCustomKeydownHandler
Remove deprecated attachCustomKeydownHandler
2017-08-07 01:21:26 -07:00
Daniel Imms de8947f3d0 Merge pull request #850 from peterbaumgarten/master
Marking that a C++ compiler is required to build
2017-08-06 19:40:18 -07:00
Daniel Imms b1c6a97839 No longer focus the terminal by default
Fixes #646
2017-08-06 19:22:15 -07:00
Daniel Imms 8c46f1b6ba Remove deprecated attachCustomKeydownHandler
Fixes #744
2017-08-06 19:19:49 -07:00
Daniel Imms fb6cbbdaad Fix vscode debugging
This broke when the TS addon was added
2017-08-06 19:02:56 -07:00
Daniel Imms e7ee3ec63c Fix trimming on a buffer with 0 scrollback
Unfortunately this removed the padding idea from CircularList as it
would only work when the list is not full.
2017-08-06 18:56:37 -07:00
Daniel Imms a57f55dcbf Support buffers with scrollback of 0, force alt as 0
Fixes #802
2017-08-06 18:18:49 -07:00
Daniel Imms 27f7679494 Add some padding and a shrink threshold to CircularList
This is needed so that resize is still performant. Now the list size is only
rebuild (O(n)) when it goes beyond 40 entries of the initial max length. The
List is also rebuilt when the size shrinks below 120 of the actual backing max
length (init_max_length + 40 - 120).
2017-08-06 14:17:30 -07:00
Daniel Imms 26977b370e Fix crash on negative tab stop width
Fixes #851
2017-08-06 13:47:03 -07:00
Daniel Imms 109d467b95 Make buffer length = rows + scrollback
Fixes #847
2017-08-06 13:28:58 -07:00
Peter Baumgarten 63268318ed Marking that a C++ compiler is required. On some linux distributions a C++ compiler is not installed by default. This can frustrate some new users. 2017-08-06 15:09:11 -05:00
Daniel Imms 45157d80c6 Properly cancel event when in mouse mode
Fixes #848
2017-08-06 12:59:40 -07:00
Daniel Imms 687a5e2efb Merge pull request #846 from Tyriar/get-v3-level
Get v3 level with master
2017-08-06 11:28:18 -07:00
Daniel Imms b07c0e4d23 Merge remote-tracking branch 'ups/master' into v3 2017-08-06 11:18:39 -07:00
Paris Kasidiaris 9358bf24db Bump version to 2.9.1
Signed-off-by: Paris Kasidiaris <paris@sourcelair.com>
2017-08-06 21:03:59 +03:00
Daniel Imms 24932b16d7 jsdoc 2017-08-06 21:03:59 +03:00
Steven Silvester 6cdd5a6405 Prevent webpack error 2017-08-06 21:03:59 +03:00
Paris Kasidiaris a28d9f1456 Bump version to 2.9.1
Signed-off-by: Paris Kasidiaris <paris@sourcelair.com>
2017-08-06 17:50:53 +00:00
Daniel Imms 3f5b4f49f2 Merge pull request #839 from Tyriar/335_xterm_to_ts
Convert xterm.js to TypeScript
2017-08-06 10:49:27 -07:00
Daniel Imms fb6b173fe7 Merge pull request #843 from Tyriar/842_resize_buffers_bug
Resize both buffers on resize, clean up alt buffer state
2017-08-06 10:34:50 -07:00
Daniel Imms 1361ff8e22 Merge branch 'master' into 842_resize_buffers_bug 2017-08-06 10:25:38 -07:00
Daniel Imms 0731f28615 jsdoc 2017-08-06 10:25:25 -07:00
Paris Kasidiaris f7b58d0718 Merge pull request #834 from blink1073/webpack-fix
Prevent Webpack warning in 2.9.0
2017-08-06 13:25:08 +03:00
Daniel Imms 6cf2e8753e Remove comments 2017-08-06 01:44:27 -07:00
Daniel Imms 33cc78c987 Add explicit types on set/getOption 2017-08-06 01:42:57 -07:00
Daniel Imms 7cd8d1ec74 Resolve todos 2017-08-06 01:42:41 -07:00
Daniel Imms e0809d526e Type InputHandler tests 2017-08-06 00:58:21 -07:00
Daniel Imms ae3169e6ae Add CharData and LineData 2017-08-05 21:11:16 -07:00
Daniel Imms 2878d978c4 Fix lint 2017-08-05 21:06:04 -07:00
Daniel Imms 56ec6ed22c Merge branch '842_resize_buffers_bug' into 335_xterm_to_ts
setOption('scrollback', 0) no longer returns false, it just warns.
2017-08-05 20:48:42 -07:00
Daniel Imms d46003843b Add tests for Buffer.fillViewportRows 2017-08-05 20:15:23 -07:00
Daniel Imms 13619d427a Add a bunch of Buffer tests 🎉 2017-08-05 20:11:26 -07:00
Daniel Imms f03d00a497 Clean up buffer clean up/fill logic
The alt buffer is now cleared immediated after activating the normal buffer and
is filled when switching to it. The tests were failing because the alt buffer
wasn't being cleared properly with the previous solution.
2017-08-05 19:42:54 -07:00
Daniel Imms 3d20c2f266 Resize both buffers on resize
This brings in proper support to resize both buffers (#510) and fixes an
exception that was caused by wrongfully not clearing the normal buffer when
resizing while the alt buffer is active.

There was an obscure bug in this that could have caused some great confusion
later on; When switching to the alt buffer, a hard terminal reset was performed
which tried to retain the buffers. However, because buffers was initialized in
the Terminal constructor to a new BufferSet, the Terminal.buffer convenience
pointer was pointing at a stale alt buffer which was the one actually being
used, not Terminal.buffers.alt.

Fixes #842
Fixes #510
2017-08-05 18:59:44 -07:00
Daniel Imms f9fce53cc4 Add typedef tslint rule 2017-08-05 13:56:38 -07:00
Daniel Imms aee474b53e Type InputHandler._terminal 2017-08-05 12:57:29 -07:00
Daniel Imms 8a0bcf6b79 Clean up 2017-08-05 11:28:24 -07:00
Daniel Imms ad25905783 Fix reset 2017-08-05 11:20:39 -07:00
Daniel Imms 0b5ff47cc0 Give terminal options a proper interface 2017-08-05 02:57:34 -07:00
Daniel Imms da50e33aa8 Finish types on Terminal's properties 2017-08-05 02:50:44 -07:00
Daniel Imms e6b431d92f Add one-variable-per-declaration tslint rule
Multiple declarations per line makes it more difficult to read what
exactly is declared and generally makes code more verbose and less
likely to fill in types
2017-08-05 02:42:49 -07:00
Daniel Imms 7d1c5d1ac6 Fix tests 2017-08-05 02:34:21 -07:00
Daniel Imms 8903bddb17 Fix a bunch of warnings, remove dead code 2017-08-05 02:28:20 -07:00
Daniel Imms 41c335c0e6 The terminal works! 2017-08-05 02:22:43 -07:00
Daniel Imms 2104dccec5 Fix most errors in Terminal.ts 2017-08-05 01:58:42 -07:00
Daniel Imms db5b908d62 Move xterm.js -> Terminal.ts 2017-08-05 00:22:31 -07:00
Steven Silvester 6f749b196a Prevent webpack error 2017-08-03 14:43:51 -05:00
Paris Kasidiaris f5ba386c01 Bump version to 2.9.0
Signed-off-by: Paris Kasidiaris <paris@sourcelair.com>
2017-08-03 18:43:14 +00:00
Daniel Imms 0079677e43 Merge pull request #781 from mofux/cursor_color
Retain the color of a character for underline and bar cursor styles
2017-08-03 09:16:23 -07:00
mofux 106eda7067 Merge changes from #828 2017-08-02 17:42:43 +02:00
Paris Kasidiaris f13455965c Merge pull request #828 from sourcelair/issue-#827-fix-terminal-focus
Always focus terminal on click
2017-08-02 18:33:51 +03:00
thomas 5bc0ad879b Set xterm-color for cursor element
Prevent focus from getting lost when in vt mouse mode
Fix: cursor style not applied on init, set a class for block cursor
Make all cursors work under all conditions (focused, unfocused, blink)
Unify cursor rendering with normal rendering code
Make sure underline AND blink can be used in co-existence
Always show outlined block cursor in unfocused state
2017-08-02 15:41:18 +02:00
Paris Kasidiaris 72e85a352a Focus on mousedown, instead of click 2017-08-02 16:03:56 +03:00
Paris Kasidiaris 49c1ca3f57 Fix #827: Always focus terminal on click 2017-08-02 10:44:16 +03:00
Daniel Imms bcff69b79c Merge pull request #816 from joaomoreno/alt-selection
Alt key should force selection
2017-07-28 14:24:45 -07:00
Daniel Imms 3f7fec8c91 Merge branch 'master' into alt-selection 2017-07-28 14:07:43 -07:00
Daniel Imms 3479614c73 Disable selection override on Windows/Linux 2017-07-28 14:06:55 -07:00
Daniel Imms 34f075a8cc Merge pull request #822 from Tyriar/818_fix_save_restore_cursor
Fix save and restore cursor behavior
2017-07-28 08:58:03 -07:00
Daniel Imms ff165e8627 Merge branch 'master' into 818_fix_save_restore_cursor 2017-07-28 08:33:52 -07:00
Paris Kasidiaris cdcbf60e44 Merge pull request #823 from jpmasters/master
Issue #821 - Prevent TypeError in resize()
2017-07-28 15:02:38 +03:00
Jon Masters 2d4e617c95 Issue #821 - Prevent TypeError in resize() 2017-07-28 11:54:46 +00:00
Daniel Imms 6ea7758ab1 Add test for save and restore cursor 2017-07-27 16:35:48 -07:00
Daniel Imms 604959a319 Fix save and restore cursor behavior
This broke in #717.

Fixes #818
2017-07-27 16:28:27 -07:00
Joao Moreno 6a3b39b428 fix context menu in disabled state 2017-07-26 09:07:20 +02:00
Joao Moreno 9e80a12462 fix tests 2017-07-25 17:17:48 +02:00
Joao Moreno 0e0ecc2d6a listen to shift when in Linux 2017-07-25 17:11:41 +02:00
Joao Moreno f872ced863 oops, this is a function 2017-07-25 11:30:03 +02:00
Joao Moreno 9a30b98880 safeguard npe 2017-07-25 10:45:45 +02:00
Daniel Imms f36bd24e1e Merge pull request #817 from Lixire/master
Add lineFeed event
2017-07-24 14:58:32 -07:00
t-amqi 23dd3d7a67 Fix indentation 2017-07-24 13:41:24 -07:00
t-amqi 79965708ab Add lineFeed event
- this is useful for checking when a cmd is entered or when a cmd finishes
- also handy to have for accessibility for output
2017-07-24 11:43:03 -07:00
Joao Moreno 80a83ff8d9 wip: alt forces selection 2017-07-24 18:08:11 +02:00
Daniel Imms 2e9177a032 Merge pull request #810 from Tyriar/809_onSingleClick_null_check
Make SelectionManager more resilient
2017-07-21 06:30:56 -07:00
Daniel Imms bbb5daa575 Merge branch 'master' into 809_onSingleClick_null_check 2017-07-21 06:22:43 -07:00
Daniel Imms 739bd05037 Merge pull request #811 from blink1073/add-jupyter
Add JupyterLab as a real-world use case
2017-07-21 06:17:56 -07:00
Steven Silvester f7197c10df Add JupyterLab as a real-world use case 2017-07-21 07:59:28 -05:00
Daniel Imms e56f710cd1 Make SelectionManager more resilient
Fixes #809
2017-07-21 05:45:53 -07:00
Daniel Imms 18f3cc77e5 Merge pull request #805 from Tyriar/801_null_check
Add null check when mouse coords are bad
2017-07-20 09:19:09 -07:00
Daniel Imms e3ded61122 Add null check when mouse coords are bad
This happens if the viewport is bad (which was fixed in another commit).

Fixes #801
2017-07-18 20:34:24 -07:00
Daniel Imms f8e3fa5a99 Fix browserify build and search addon (#804)
Fixes #803
2017-07-18 19:58:35 -07:00
Daniel Imms 05d308a37a Merge pull request #798 from jerch/faster_wcwidth
faster wcwidth with lookup table
2017-07-18 14:23:42 -07:00
Jörg Breitbart cd5827e69b higher timeout for test case 2017-07-18 22:19:55 +02:00
Daniel Imms 20048d31a1 Merge branch 'master' into faster_wcwidth 2017-07-17 11:06:38 -07:00
Jörg Breitbart 598a729fc0 fixes #799 - lookup table is created on first wcwidth call for char > 127 2017-07-17 19:07:02 +02:00
Jörg Breitbart 6ed5c9e64d speed test commented out 2017-07-16 23:53:41 +02:00
Jörg Breitbart 1232c00dd1 some fixes
- commenting the bit shifts
- switching to Uint32Array
- conditional for TypedArray
- fixing Math.floor slowdown in bisearch
2017-07-16 23:40:36 +02:00
Jörg Breitbart 5d87b54390 test speedup defensive 2017-07-16 14:09:25 +02:00
Jörg Breitbart 6733c6ce1f test speedup defensive 2017-07-16 14:05:55 +02:00
Jörg Breitbart ba2d0e8df2 fixing whitespaces 2017-07-16 13:57:04 +02:00
Jörg Breitbart 1722248065 fixing whitespaces 2017-07-16 13:48:48 +02:00
Jörg Breitbart dd0fcb6320 fixing whitespaces 2017-07-16 13:44:00 +02:00
Jörg Breitbart b965d0a0af faster wcwidth with lookup table 2017-07-16 13:26:38 +02:00
Paris Kasidiaris 48dab494db Install npm 5.1.0 2017-07-16 03:47:15 +03:00
Paris Kasidiaris 42eacba09a Update build dir 2017-07-16 03:47:15 +03:00
Paris Kasidiaris e2c993ebcd Rearrange dependencies 2017-07-16 03:47:15 +03:00
Paris Kasidiaris 634f4e29aa Remove redundant comment 2017-07-16 03:47:15 +03:00
Daniel Imms 59f75555bc Add IBuffer, IBufferSet and fix CircularList type 2017-07-16 03:47:15 +03:00
Paris Kasidiaris cb5a452c90 Implement tests for Buffer and BufferSet 2017-07-16 03:47:15 +03:00
Paris Kasidiaris 58b9f712df Improve documentation of Buffer and BufferSet classes 2017-07-16 03:47:15 +03:00
Paris Kasidiaris f09918f0d2 Fix variable name 2017-07-16 03:47:15 +03:00
Aleksandr Andriienko 4e35904392 Fix regression. Existing tests work again.
Signed-off-by: Aleksandr Andriienko <oandriie@redhat.com>
2017-07-16 03:47:15 +03:00
Paris Kasidiaris 82b3beb921 Fix reference to terminal.buffer.lines 2017-07-16 03:47:15 +03:00
Paris Kasidiaris 2806288489 Add semicolons 2017-07-16 03:47:15 +03:00
Paris Kasidiaris 0d498fcd52 Correct references to buffer lines 2017-07-16 03:47:15 +03:00
Paris Kasidiaris 83efc9afc4 Fix SelectionManager tests 2017-07-16 03:47:15 +03:00
Paris Kasidiaris 393b411acc Fix CircularList type and a typo 2017-07-16 03:47:15 +03:00
Paris Kasidiaris 4effe1f1d9 Add buffers to the ITerminal 2017-07-16 03:47:15 +03:00
Oleksandr Andriienko de82bd00ae Fix some tests and docs, little code fix up.
Fix some tests and docs. Add ability to run one test file with help gulp task.

Signed-off-by: Oleksandr Andriienko <oandriie@redhat.com>
2017-07-16 03:47:15 +03:00
Paris Kasidiaris d222eec9f7 Fix SelectionManager initializing 2017-07-16 03:47:15 +03:00
Paris Kasidiaris 2cda163bcf Fix forgotten merge conflict 2017-07-16 03:47:15 +03:00
Paris Kasidiaris 9025d91f12 Fix first set of existing tests 2017-07-16 03:47:15 +03:00
Aleksandr Andrienko 6810de85e1 Fix turning from alt screen to normal screen and vice versa. Fix https://github.com/sourcelair/xterm.js/issues/229 . 2017-07-16 03:47:15 +03:00
Paris Kasidiaris 4626e19b75 Move scrollTop and scrollBottom into Buffer 2017-07-16 03:47:15 +03:00
Paris Kasidiaris d75e0b99d5 Fix more references to buffer.x 2017-07-16 03:47:15 +03:00
Paris Kasidiaris 73b4bfb5f8 Fix some references 2017-07-16 03:47:15 +03:00
Paris Kasidiaris bbafdd3d06 Start isolating buffer attributes into Buffer class 2017-07-16 03:47:15 +03:00
Paris Kasidiaris 8ede1fc9d2 Create terminal.buffer convenience attribute 2017-07-16 03:47:15 +03:00
Paris Kasidiaris 95cb6f30bb Introduce new Buffer and BufferSet classes 2017-07-16 03:47:15 +03:00
Daniel Imms c94fdaecb2 Merge pull request #797 from mofux/guard_selection_api
Guard public selection api
2017-07-14 10:31:25 -07:00
Daniel Imms e2b43a4ced Merge branch 'master' into guard_selection_api 2017-07-14 09:51:58 -07:00
Daniel Imms 1fd087e5d3 Merge pull request #795 from mofux/remove_unused_vars
Remove unused constants from the SelectionManager
2017-07-14 09:51:12 -07:00
mofux 6df6aad303 Improve guard expression for hasSelection 2017-07-14 18:41:55 +02:00
Daniel Imms 5140c83649 Merge branch 'master' into remove_unused_vars 2017-07-14 09:23:33 -07:00
mofux 1b6ce6dab6 Make sure selection manager is available (only after open() was called) 2017-07-14 18:40:32 +03:00
mofux 1cc0d43aa4 Clear selection on input 2017-07-14 18:40:32 +03:00
mofux 0af4b17c20 Guard public selection api 2017-07-14 15:56:14 +02:00
mofux 2275601bf7 Removed unused constants from the selection manager 2017-07-14 14:22:30 +02:00
Daniel Imms 7cfc2ffa32 Merge pull request #793 from Tyriar/bad_getOption_param
Remove bad getOption param
2017-07-13 12:45:18 -07:00
Daniel Imms 9e95024a9d Merge branch 'master' into bad_getOption_param 2017-07-13 11:47:41 -07:00
Daniel Imms 87b76aadb7 Merge pull request #704 from Tyriar/553_find_api
Implement very basic find API
2017-07-13 11:12:45 -07:00
Daniel Imms adc657898c Remove bad getOption param 2017-07-13 09:23:56 -07:00
Daniel Imms 43b47abaa7 Merge branch 'master' into 553_find_api 2017-07-13 08:51:11 -07:00
Daniel Imms 2ebc926f4e Merge pull request #761 from Tyriar/760_erase_in_display_scroll_bar
Ensure scroll bar is refreshed after erase all in display
2017-07-13 08:48:09 -07:00
Daniel Imms af58643ee7 Merge branch 'master' into 553_find_api 2017-07-13 08:37:04 -07:00
Daniel Imms 9a358b2258 Merge branch 'master' into 760_erase_in_display_scroll_bar 2017-07-13 07:56:19 -07:00
Daniel Imms 25fc01cb81 Merge pull request #780 from mofux/mousedown_counter
[SelectionManager] Use event.detail instead for counting the mousedown event
2017-07-12 19:07:55 -07:00
Thomas Zilz d3fe3a1960 Merge branch 'master' into mousedown_counter 2017-07-13 00:08:55 +02:00
Paris Kasidiaris 01453e9d40 Merge pull request #784 from chrmarti/chrmarti/20505
Check if we still need to measure the char size
2017-07-12 11:59:37 +03:00
Christof Marti 27f0eaf71d Check if we still need to measure the char size (fixes #785) 2017-07-11 15:48:08 -07:00
thomas 9bd52820e7 use evt.detail as mouse counter 2017-07-11 20:13:13 +02:00
Paris Kasidiaris 86c5aa023f Merge pull request #772 from mjbvz/add-search-exclude-for-vscode
Add search.exclude setting for vscode workspace
2017-07-11 20:58:47 +03:00
Paris Kasidiaris 4df8d3aada Merge branch 'master' into add-search-exclude-for-vscode 2017-07-11 20:30:56 +03:00
Daniel Imms 8fab079ad6 Merge pull request #779 from stuicey/master
Add SSHy as real-world use
2017-07-11 09:55:11 -07:00
stuicey e59d1f7a98 Add SSHy as real-world use 2017-07-11 16:08:39 +01:00
Paris Kasidiaris 5f817e88e7 Merge pull request #775 from deviantony/usage-portainer
Add Portainer.io as a real world use case
2017-07-11 10:59:35 +03:00
Anthony Lapenna 38de6cb46a Update Portainer URL 2017-07-11 09:49:22 +02:00
Anthony Lapenna e287edb6fe Add Portainer.io as a real world use case 2017-07-11 09:48:11 +02:00
Matt Bierner 29545a90c6 Add search.exclude setting for vscode workspace 2017-07-10 14:46:25 -07:00
Daniel Imms e849e3f206 Merge pull request #766 from Tyriar/765_scroll_needlessly
Don't refresh terminal when scrollDisp doesn't scroll
2017-07-10 07:31:47 -07:00
Daniel Imms c3011cd3ea Merge branch 'master' into 765_scroll_needlessly 2017-07-09 16:40:55 -07:00
Daniel Imms e4770de9f2 Merge branch 'master' into 760_erase_in_display_scroll_bar 2017-07-09 16:40:47 -07:00
Paris Kasidiaris 99061c672c Merge pull request #770 from lanwen/patch-1
Real world case: Selenoid UI
2017-07-09 14:02:47 +03:00
Kirill Merkushev 27fcd7c260 Real world case: Selenoid UI
http://aerokube.com/selenoid-ui/latest/#_logs
https://github.com/aerokube/selenoid-ui/blob/master/web/src/components/Log/index.js
2017-07-09 13:18:03 +03:00
Daniel Imms 4c0e7b2462 Merge remote-tracking branch 'ups/master' into 553_find_api 2017-07-09 01:57:04 -07:00
Daniel Imms decd81bc1e Merge pull request #690 from Tyriar/687_macos_ci
Skip failing tests of macOS and add to CI
2017-07-09 01:54:58 -07:00
Daniel Imms 73970ec5a2 Fix casing of search.js 2017-07-09 01:49:17 -07:00
Daniel Imms c62923fb1d Change case of browserify-addons files 2017-07-09 01:09:44 -07:00
Daniel Imms c13b86a885 Add find to demo 2017-07-09 01:03:10 -07:00
Daniel Imms 2564592c09 Change case of search addon files 2017-07-09 00:55:50 -07:00
Daniel Imms 4b0cf2ffce jsdoc 2017-07-09 00:43:31 -07:00
Daniel Imms fab039ddf3 Rearrange module loader to work with browserify 2017-07-09 00:26:33 -07:00
Daniel Imms 3c0e142f73 Fix sourcemaps 2017-07-08 23:53:16 -07:00
Daniel Imms 80f7a37118 Point to search addon properly 2017-07-08 23:13:41 -07:00
Daniel Imms 11de0d0ca0 Merge remote-tracking branch 'ups/master' into 553_find_api 2017-07-08 23:07:57 -07:00
Daniel Imms 5e815de82a Remove comments from Travis config 2017-07-08 19:13:43 -07:00
Daniel Imms 0536862b8f Try fix build 2017-07-08 17:47:54 -07:00
Daniel Imms b520e2fd35 Use standard naming for functions 2017-07-08 17:33:18 -07:00
Daniel Imms 740d4a45f9 Remove dependency on sleep module 2017-07-08 17:32:47 -07:00
Daniel Imms cb53cdd728 Merge remote-tracking branch 'ups/master' into 687_macos_ci 2017-07-08 17:19:47 -07:00
Paris Kasidiaris 2b92996d7c Bump version to 2.8.1
Signed-off-by: Paris Kasidiaris <paris@sourcelair.com>
2017-07-08 14:02:43 +00:00
Paris Kasidiaris b8944beea9 Merge pull request #768 from Tyriar/767_initial_viewport_wrap
Properly mark initial viewport lines as wrapped
2017-07-08 16:49:46 +03:00
Paris Kasidiaris 67435edad7 Merge branch 'master' into 767_initial_viewport_wrap 2017-07-08 16:45:47 +03:00
Paris Kasidiaris fc9a0f15db Merge pull request #769 from sourcelair/fix-tests
Update jsdom to 11.1
2017-07-08 16:44:57 +03:00
Paris Kasidiaris 8a57489966 Add missing semicolon 2017-07-08 16:40:18 +03:00
Paris Kasidiaris 3a8c1b3fcd Update copyright note 2017-07-08 16:36:19 +03:00
Paris Kasidiaris 0c2f079670 Update gulpfile.js
The `outDir` compiler option of TypeScript seems to be an absolute URL now.
2017-07-08 16:35:53 +03:00
Paris Kasidiaris d266d995ab Fix typo 2017-07-08 11:13:06 +03:00
Paris Kasidiaris 0ea2e9cfd6 Update jsdom to 1.11
Also, add package-lock.json
2017-07-08 10:59:38 +03:00
Daniel Imms 9b8cb03c55 Properly mark initial viewport lines as wrapped
Fixes #767
2017-07-07 11:18:18 -07:00
Daniel Imms 729f646a28 Use emit directly due to #766 2017-07-06 22:28:33 -07:00
Daniel Imms 85c892c218 Don't refresh terminal when scrollDisp doesn't scroll
Fixes #765
2017-07-06 21:16:20 -07:00
Daniel Imms 7f5e72dbdb Ensure scroll bar is refreshed after erase all in display
Fixes #760
2017-07-05 13:06:10 -07:00
Paris Kasidiaris 479fb0e782 Bump version to 2.8.0
Signed-off-by: Paris Kasidiaris <paris@sourcelair.com>
2017-07-04 16:45:20 +00:00
Paris Kasidiaris 8ba11a2bd0 Merge pull request #752 from LucianBuzzo/751-IE11-demo
Add a Promise polyfill to the demo so that it works in IE11
2017-07-04 12:53:13 +03:00
Paris Kasidiaris abc3f3b94d Merge branch 'master' into 751-IE11-demo 2017-07-04 12:50:37 +03:00
Daniel Imms 67bc0456e0 Merge pull request #747 from anishathalye/master
Add scroll functionality for mobile
2017-07-03 21:48:00 -07:00
Daniel Imms 3e8ddd1966 Add jsdoc 2017-07-03 21:43:52 -07:00
Anish Athalye 6223342890 Add scroll functionality for mobile 2017-07-03 19:49:16 -07:00
Daniel Imms 9ddabb3fee Merge pull request #750 from irokas/Rows-fix
Set minimum scrollback value to number of rows if needed on resize
2017-07-03 18:23:48 -07:00
Daniel Imms af0030b580 Merge branch 'master' into Rows-fix 2017-07-03 18:14:31 -07:00
Paris Kasidiaris b93271d9cd Merge branch 'master' into 751-IE11-demo 2017-07-03 14:55:48 +03:00
Paris Kasidiaris 934ca6508f Merge pull request #754 from LucianBuzzo/753-ie11-terminal-cursor
Add one class at a time to element for IE11 compatibility
2017-07-03 14:55:01 +03:00
Lucian Buzzo 7e210c7e6b Add one class at a time to element for IE11 compatibility
Connects to #753

Element.classList.add() does not work with multiple arguments in IE.
2017-07-03 11:22:37 +01:00
Lucian Buzzo e4970266d8 Add a Promise polyfill to the demo so that it works in IE11
Connects to #751
2017-07-03 11:05:35 +01:00
irokas 0a5d7a7bd2 Set minimum scrollback value to number of rows if needed on resize 2017-07-02 21:10:18 +00:00
Daniel Imms 31aab8ea6f Merge pull request #746 from Tyriar/745_colon_word_sep
Remove colon from the selection word separators
2017-07-02 12:36:46 -07:00
Daniel Imms 857d9bcf2a Merge branch 'master' into 745_colon_word_sep 2017-07-02 12:30:45 -07:00
Daniel Imms 7463166aec Fix tests 2017-07-02 12:29:31 -07:00
Paris Kasidiaris f80159fedc Merge pull request #749 from irokas/fix-scrollback
Fix issue with small scrollback value
2017-07-02 14:39:07 +03:00
irokas 3180a6f6ec Add test for scrollback fix 2017-07-02 14:34:19 +03:00
irokas 35d26f1d27 Fix issue with small scrollback value.
Closes #506
2017-07-02 14:22:24 +03:00
Daniel Imms ca03f8928d Remove colon from the word separators
Fixes #745
2017-06-30 17:07:52 -07:00
Daniel Imms 0b3d1e50a8 Merge pull request #741 from AndrienkoAleksandr/codeCleanUp
Little code clean up.
2017-06-30 09:50:54 -07:00
Daniel Imms 401886c7c3 Merge branch 'master' into codeCleanUp 2017-06-30 09:46:54 -07:00
Daniel Imms 4eac7661c2 Merge pull request #733 from Tyriar/732_drop_selection_on_alt
Drop selection when the active buffer changes
2017-06-30 09:40:49 -07:00
Daniel Imms b8163cfbbf Merge branch 'master' into 732_drop_selection_on_alt 2017-06-30 09:36:26 -07:00
Paris Kasidiaris a9f82907ee Merge pull request #743 from nechitai/add-user
Add hexlet.io to the users list
2017-06-30 15:40:30 +03:00
Artem Arbatskiy 57f4ae5320 Add hexlet.io to the users list 2017-06-30 18:30:02 +07:00
Aleksandr Andriienko d1712424c8 Fix docs. 2017-06-30 09:57:24 +03:00
Oleksandr Andriienko 16f865987d Little code clean up. 2017-06-29 23:36:07 +03:00
Daniel Imms f071531494 Merge branch 'master' into 732_drop_selection_on_alt 2017-06-29 12:13:10 -07:00
Daniel Imms 618768c7ed Merge pull request #738 from Tyriar/737_crlf_windows
Use crlf when copying on Windows
2017-06-29 12:12:56 -07:00
Daniel Imms cfe22e6fd2 Use crlf when copying on Windows
Fixes #737
2017-06-29 07:38:41 -07:00
Daniel Imms 3961dd5a44 Merge branch 'master' into 732_drop_selection_on_alt 2017-06-28 15:21:27 -07:00
Daniel Imms 471e332036 Merge pull request #736 from AndrienkoAleksandr/master
Fix 'CR' issue on Linux based OS.
2017-06-28 12:45:16 -07:00
Oleksandr Andriienko 467e8c563a Fix up. 2017-06-28 00:48:13 +03:00
Oleksandr Andriienko 5971630f64 Simplify .gitattributes
Signed-off-by: Oleksandr Andriienko <oandriie@redhat.com>
2017-06-28 00:39:16 +03:00
Oleksandr Andriienko f7cc1058c7 Fix 'CR' issue on Linux based OS.
Signed-off-by: Oleksandr Andriienko <oandriie@redhat.com>
2017-06-27 23:25:01 +03:00
Daniel Imms 645a5920da Drop selection when the active buffer changes
Fixes #732
2017-06-27 10:13:16 -07:00
Daniel Imms baccca843c Merge branch 'master' into 553_find_api 2017-06-22 19:37:18 -07:00
Daniel Imms 19381454ad Get find working as an addon 2017-06-22 19:36:53 -07:00
Paris Kasidiaris f95bc64971 Merge pull request #712 from chabou/customKeypressHandler
Add attachCustomKeyEventsHandler
2017-06-22 16:16:23 +03:00
Daniel Imms 0c7c307de3 Merge branch 'master' into customKeypressHandler 2017-06-21 08:51:15 -07:00
Daniel Imms 1c84881d00 Merge pull request #725 from Tyriar/724_fix_hasSelection
Have Terminal.hasSelection return false when no selection
2017-06-21 08:38:43 -07:00
Daniel Imms f1252abbbe Merge branch 'master' into 724_fix_hasSelection 2017-06-21 08:34:33 -07:00
Daniel Imms 11d6ca2aa1 Merge pull request #723 from Tyriar/699_linux_middle_click
Fix select and middle click to paste selection
2017-06-21 08:34:06 -07:00
Daniel Imms eb59b90790 Merge branch 'master' into 699_linux_middle_click 2017-06-21 08:29:54 -07:00
Daniel Imms 4c3aa97917 Merge pull request #719 from Tyriar/718_selection_on_top
Render selection on top of rows
2017-06-21 08:29:40 -07:00
Daniel Imms ba54f25b8c Merge branch 'master' into 718_selection_on_top 2017-06-21 08:25:05 -07:00
Daniel Imms af268f4968 Merge pull request #722 from Tyriar/721_firefox_contextmenu
Fix context menu in firefox
2017-06-21 08:24:52 -07:00
Daniel Imms f93b24acc7 Merge branch 'master' into 553_find_api 2017-06-20 17:44:43 -07:00
Daniel Imms 6854def13c Use case-insensitive search by default 2017-06-20 17:40:31 -07:00
Daniel Imms 63d63c27e7 Ensure outside selection pastes are respected
We were resetting the selection on every auxclick, meaning outside
selections could not be pasted in when the terminal had a current
selection.
2017-06-20 11:17:12 -07:00
Daniel Imms ef1e2ab9e2 Use auxclick event 2017-06-20 10:49:58 -07:00
Daniel Imms 7b46940772 Have Terminal.hasSelection return false when no selection
Fixes #724
2017-06-20 10:38:33 -07:00
Daniel Imms 6f5f68df1a Add a comment 2017-06-20 10:24:16 -07:00
Daniel Imms dc165175cf Handle middle click to paste selection
This appears to work in Chrome but not Firefox
2017-06-20 10:18:29 -07:00
Daniel Imms 32f1782c84 Fix context menu in firefox
Fixes #721
2017-06-20 10:01:39 -07:00
Daniel Imms 8811d96a8b Fix selection going to clipboard
Part of #699
2017-06-19 15:45:18 -07:00
CHaBou d11d74688e Merge branch 'master' into customKeypressHandler 2017-06-19 22:10:03 +02:00
CHaBou 8e79d53d78 Add attachCustomKeyEventHandler()
Use a uniq customKeyEventHandler for keyDown and keyPress events
Mark and warn attachCustomKeydownHandler() as deprecated.
2017-06-19 22:03:19 +02:00
Daniel Imms 6dbc476cdc Allow mouse events to pass through selection 2017-06-19 11:26:52 -07:00
Daniel Imms 57921e3fe0 Render selection on top of rows
Fixes #718
2017-06-19 11:18:55 -07:00
Daniel Imms 75b74ac4ff Merge pull request #716 from Tyriar/697_select_to_word
Select to the word at the mouse after double click
2017-06-19 07:56:35 -07:00
Daniel Imms 1c659841fa Merge branch 'master' into 697_select_to_word 2017-06-19 07:47:40 -07:00
Daniel Imms 9573357778 Merge pull request #715 from Tyriar/709_improve_selection
Improve selection cell selection
2017-06-19 07:47:15 -07:00
Daniel Imms f11362a80d Merge branch 'master' into 709_improve_selection 2017-06-19 07:39:29 -07:00
Daniel Imms a01fbb636a Merge pull request #714 from Tyriar/713_dblclick_word_separators
Don't select colon, quotes or brackets when double clicking
2017-06-19 07:39:15 -07:00
Daniel Imms 320fb55ddc Use an enum for selection mode 2017-06-18 12:56:32 -07:00
Daniel Imms 4b170ca43f Select to the word at the mouse after double click
Fixes #697
2017-06-18 12:52:43 -07:00
Daniel Imms c6e7fb74ab Merge branch 'master' into 709_improve_selection 2017-06-18 12:03:30 -07:00
Daniel Imms b05814e6a5 Improve selection cell selection
Fixes #709
2017-06-18 12:02:58 -07:00
Daniel Imms 07882c42dc Also consider ' and " word separators
For example URIs in json
2017-06-18 11:51:00 -07:00
Daniel Imms a59b2f8433 Merge branch 'master' into 713_dblclick_word_separators 2017-06-18 11:08:22 -07:00
Daniel Imms 7f2e94c30c Don't select colon or brackets when double clicking
Fixes #713
2017-06-18 10:38:04 -07:00
CHaBou 95aed8fcb0 Add customKeypressHandler 2017-06-16 20:23:48 +02:00
Daniel Imms 663d3b24cd Merge pull request #711 from sourcelair/Tyriar-patch-1
Move latest addition to real world use cases to the end
2017-06-16 07:17:39 -07:00
Daniel Imms a87303f375 Move latest addition to real world use cases to the end
Seems a little unfair to not be at the end, to date it's sorted by date added.
2017-06-16 07:13:03 -07:00
Paris Kasidiaris 259858fac2 Merge pull request #710 from alex-kovoy/alex-kovoy-patch-1
Added 'Gravitational Teleport' to Real-world uses
2017-06-15 23:15:04 +01:00
Alexey Kontsevoy a4514ee98a Added 'Gravitational Teleport' to Real-world uses
We use xterm.js in Gravitational Teleport.
2017-06-15 18:05:07 -04:00
Daniel Imms 39151e4354 Merge branch 'master' into 553_find_api 2017-06-15 09:11:32 -07:00
Daniel Imms d27b7bfa7a Merge pull request #707 from jdanyow/issue-683
normalize line endings to \r
2017-06-14 15:22:04 -07:00
Jeremy Danyow ce61795c38 normalize line endings to \r
fixes #683
2017-06-14 14:51:36 -07:00
Daniel Imms 528f06bc62 Remove log 2017-06-13 20:03:29 -07:00
Daniel Imms 5360277594 Merge remote-tracking branch 'origin/master' into 553_find_api 2017-06-13 19:57:52 -07:00
Daniel Imms b957130787 Consolidate translateBufferLineToString functions 2017-06-13 19:55:29 -07:00
Daniel Imms f88dcd160c Expose API on Terminal 2017-06-13 19:49:12 -07:00
Daniel Imms 7d8f698096 Add findPrevious 2017-06-13 19:43:18 -07:00
Daniel Imms d3f5a06517 Fix search scrolling up 2017-06-13 19:34:25 -07:00
Daniel Imms 9cc878cea7 Merge pull request #688 from Tyriar/642_link_wrapped_char_duplication
Fix issue with strings in wrapped spans being duplicated
2017-06-13 14:53:23 -07:00
Daniel Imms 087acf8a9a Merge branch 'master' into 642_link_wrapped_char_duplication 2017-06-13 14:45:17 -07:00
Daniel Imms 7612180276 Merge pull request #691 from Tyriar/mid_selection_single_element
Use a single element for the middle of the selection
2017-06-13 14:45:11 -07:00
Daniel Imms 201e3e4dab Merge branch 'master' into mid_selection_single_element 2017-06-13 14:40:48 -07:00
Daniel Imms 55f51ad169 Merge pull request #693 from Tyriar/443_retain_wrapped_lines_copy
Retain wrapped line state when copying
2017-06-13 14:40:41 -07:00
Daniel Imms 405d1ee52d Merge branch 'master' into 443_retain_wrapped_lines_copy 2017-06-13 14:32:01 -07:00
Daniel Imms 5f9ad5c19e Merge pull request #700 from Tyriar/698_mousedown_preventDefault
Prevent mousedown event default selection behavior
2017-06-13 14:31:50 -07:00
Daniel Imms 280b698a50 More work on findNext 2017-06-12 21:59:46 -07:00
Daniel Imms 8d12881a1c Very basic find implementation
Part of #553
2017-06-12 16:27:13 -07:00
Daniel Imms c5cfa409b1 Merge branch 'master' into 698_mousedown_preventDefault 2017-06-12 14:53:48 -07:00
Daniel Imms 2a0f44b0fb Prevent mousedown event default selection behavior
Fixes #698
2017-06-12 14:51:58 -07:00
Daniel Imms 7d0e585c44 Merge branch 'master' into 642_link_wrapped_char_duplication 2017-06-11 11:34:22 -07:00
Daniel Imms a5ced5d909 Merge branch 'master' into mid_selection_single_element 2017-06-11 11:34:20 -07:00
Daniel Imms 0a99f65f01 Merge branch 'master' into 443_retain_wrapped_lines_copy 2017-06-11 11:34:17 -07:00
Daniel Imms c33814a7a6 Merge pull request #680 from Tyriar/set_row_height_explicitly
Set row height when char size is changed
2017-06-10 10:25:06 -07:00
Daniel Imms 0950369a5c Merge remote-tracking branch 'origin/master' into set_row_height_explicitly 2017-06-10 10:21:20 -07:00
Daniel Imms 346b5177bc Retain wrapped line state when copying
Fixes #443
2017-06-09 17:12:00 -07:00
Daniel Imms 9246d524cb Use a single element for the middle of the selection
This reduces the number of DOM nodes used for the selection dramatically.
2017-06-09 16:35:26 -07:00
Daniel Imms 6480933861 Skip failing tests of macOS and add to CI
Fixes #687
2017-06-09 16:27:47 -07:00
Daniel Imms a889fef752 Merge pull request #670 from Tyriar/207_selection_manager
Reimplement selection in the terminal
2017-06-09 13:41:34 -07:00
Daniel Imms 6075498c24 Add class header comments 2017-06-09 12:47:16 -07:00
Daniel Imms ee1da73a69 Add regression test 2017-06-09 11:59:18 -07:00
Daniel Imms 29ac6a153e Fix issue with strings in wrapped spans being duplicated
This was happening because the linkifier assumed that top-level spans
in the terminal would only contain single text nodes

Fixes #642
2017-06-09 11:48:12 -07:00
Daniel Imms 264757e964 Use user-select supported by other browsers 2017-06-07 19:23:46 -07:00
Daniel Imms e88a9ffd89 Fix bug when selection end is less than start 2017-06-07 19:17:38 -07:00
Daniel Imms d56a611a19 Add .gitattributes file
Makes working on Windows less bothersome.
2017-06-07 19:16:59 -07:00
Daniel Imms 28ed7772c6 Select last character in bottom right in select all 2017-06-07 14:44:16 -07:00
Daniel Imms a047359f81 Add more selection manager/model tests 2017-06-07 14:37:09 -07:00
Daniel Imms b81c165bea Add SelectionModel tests 2017-06-07 14:15:18 -07:00
Daniel Imms 4405f5e163 Fix clearSelection in select all mode 2017-06-07 13:48:12 -07:00
Daniel Imms 2012c8c91d Move prepareTextForClipboard logic into SelectionManager 2017-06-07 13:42:08 -07:00
Daniel Imms f719a4e91b Fix tests 2017-06-07 13:20:44 -07:00
Daniel Imms 5d33727ae4 Add clearSelection API 2017-06-07 13:07:34 -07:00
Daniel Imms 1343b83fc3 Add hasSelection public API 2017-06-07 12:40:48 -07:00
Daniel Imms 9e47ec9af2 Add getSelectionText API
This allows consumers to implement their own copy functionality/keybindings
2017-06-07 11:59:28 -07:00
Daniel Imms 9c459aacc7 Explicitly size selectionContainer to allow for more flexible layouts 2017-06-07 11:48:31 -07:00
Daniel Imms 72724abac8 Ensure host program handles copy if mouseevents are active 2017-06-07 11:20:03 -07:00
Daniel Imms 9a86eeb333 Support copying in the alt buffer 2017-06-07 11:10:05 -07:00
Daniel Imms 46f6fd18b0 Merge remote-tracking branch 'ups/master' into set_row_height_explicitly 2017-06-06 14:34:07 -07:00
Daniel Imms 603f22a7bb Set row height when char size is changed
When zoomed in line-height and actual rendered row height differs. This
can be seen in the viewport being too large when zoomed in right now
but also has additional impacts in the new selection model #207
2017-06-06 14:31:57 -07:00
Daniel Imms 13c401cbaa Only refresh the selection on an animation frame 2017-06-06 10:52:42 -07:00
Daniel Imms b812991072 Fix multiple drag scroll intervals being registered 2017-06-06 10:40:22 -07:00
Daniel Imms 2b2431824f Fix select all with no start and include content below viewport 2017-06-06 23:13:50 -07:00
Daniel Imms 7147787441 Undo CiruclarList id changes, fix null check, lint 2017-06-06 22:59:16 -07:00
Daniel Imms ec3bf1139d Resolve TODOs 2017-06-06 22:33:32 -07:00
Daniel Imms d0b603d033 jsdoc all of SelectionManager 2017-06-06 21:55:52 -07:00
Daniel Imms 2621be819e Resolve more TODOs, add jsdoc 2017-06-06 21:43:19 -07:00
Daniel Imms f380153f42 Resolve some TODOs 2017-06-06 21:29:30 -07:00
Daniel Imms fd91c5e1a8 Add _selectLineAt test 2017-06-06 15:22:35 -07:00
Daniel Imms f61d852f3c Don't allow double click selection on empty row going out of viewport 2017-06-06 15:05:22 -07:00
Daniel Imms 5bc1112151 Select lines when dragging a triple click 2017-06-06 15:02:52 -07:00
Daniel Imms 59cc0b675e Merge remote-tracking branch 'ups/master' into 207_selection_manager 2017-06-06 14:35:06 -07:00
Daniel Imms db8ded2a02 Implement shift+click 2017-06-06 14:19:12 -07:00
Paris Kasidiaris 4b7279146a Bump version to 2.7.0
Signed-off-by: Paris Kasidiaris <paris@sourcelair.com>
2017-06-06 15:04:59 +00:00
Paris Kasidiaris c4a2f7911d Merge pull request #674 from sourcelair/issue-#671-restore-paste-event
Restore the "paste" terminal event
2017-06-06 11:23:18 +03:00
Paris Kasidiaris db9fe53af3 Merge branch 'master' into issue-#671-restore-paste-event 2017-06-06 11:16:16 +03:00
Daniel Imms d3865ad23f Add some SelectionManager selectWorkAt tests, fix lint 2017-06-01 17:36:47 -07:00
Daniel Imms 8b1067d180 Remove no longer valid clipboard test and add new one 2017-06-01 17:11:07 -07:00
Daniel Imms a53a0acd65 Fix issue with trimming whitespace 2017-06-01 17:04:59 -07:00
Daniel Imms 42724c7f42 Merge pull request #672 from Tyriar/662_parser_state_hack
Fix bug with parser state when using vtop
2017-05-27 15:07:52 -07:00
Paris Kasidiaris 616f069538 Fix #671 - Restore paste event 2017-05-27 15:30:26 +03:00
Daniel Imms 11cec31da6 Clean up wide char select word code 2017-05-25 21:12:44 -07:00
Daniel Imms d9991b25a4 Support wide char double click 2017-05-25 20:48:48 -07:00
Daniel Imms cb6533f3a6 Get double click selection for wide chars mostly working 2017-05-25 20:22:43 -07:00
Daniel Imms 54e7f65d4e Support selecting wide characters 2017-05-25 19:34:32 -07:00
Daniel Imms ec61f3acf0 Only trim the right whitespace from selection
Fixes #673
2017-05-25 18:52:06 -07:00
Daniel Imms 910aa1ad7f Properly prepare text for clipboard for context menu
This makes the context menu in macOS embed the right text
2017-05-25 18:12:03 -07:00
Daniel Imms 24bed01fa4 Support copy and paste via context menu 2017-05-25 16:17:43 -07:00
Daniel Imms f7d6ab5f2a Move the selection model to its own module 2017-05-25 13:20:57 -07:00
Daniel Imms 0716cffd7d Tidy up _areSelectionValuesReversed 2017-05-25 12:46:54 -07:00
Daniel Imms e29ab29441 Fix drag when selectioning via double/triple click 2017-05-25 12:46:08 -07:00
Daniel Imms 9f271de803 Implement triple click to select line 2017-05-25 12:27:47 -07:00
Daniel Imms 43c796a781 Support copying of select all text 2017-05-25 11:35:22 -07:00
Daniel Imms 25152e4441 Add select all API 2017-05-25 10:14:40 -07:00
Daniel Imms 3846fe0a7d Add null checks to fix trim related crash 2017-05-25 09:55:08 -07:00
Daniel Imms b3b2bd1faf Don't flag user scrolling if no scrolling happens 2017-05-25 09:51:13 -07:00
Daniel Imms 2c3d98abc8 Fix bug with parser state when using vtop
Fixes #662
2017-05-25 09:36:59 -07:00
Daniel Imms 0dc3dd0336 Initial scroll drag implementation 2017-05-23 11:20:55 -07:00
Daniel Imms c4762e7228 Merge remote-tracking branch 'ups/master' into 207_selection_manager 2017-05-22 19:51:42 -07:00
Daniel Imms 35b32b721e Merge pull request #668 from Tyriar/fix_pt_valid_var_declarations
Declare pt and valid vars in correct spot
2017-05-22 08:19:52 -07:00
Daniel Imms ccf1a047d3 Merge branch 'master' into fix_pt_valid_var_declarations 2017-05-22 08:03:53 -07:00
Daniel Imms db0338cbcf Merge pull request #669 from Tyriar/pull_getCoords_into_module
Pull get coords into module
2017-05-22 08:03:31 -07:00
Daniel Imms 06742eb507 Merge branch 'master' into pull_getCoords_into_module 2017-05-22 07:57:55 -07:00
Daniel Imms 0fab4ff5d1 Merge pull request #667 from Tyriar/add_missing_emit_arg
Add missing EventEmitter.emit args/types
2017-05-22 07:57:35 -07:00
Daniel Imms d2b0d514f8 Add missing semi-colons 2017-05-21 13:51:02 -07:00
Daniel Imms ab40908fa4 Disable selection manager in mouse mode
This allows the application to take full control of the selection
2017-05-21 12:35:07 -07:00
Daniel Imms a5c48c891e Temp fix until mouse getCoords PR merged 2017-05-21 12:16:36 -07:00
Daniel Imms 70e35de56b Polish comments and cap code 2017-05-21 12:05:30 -07:00
Daniel Imms c323e0ad4a jsdoc 2017-05-21 11:57:24 -07:00
Daniel Imms 4d32826891 Pull getCoords into a Mouse util module
This is part of the work to prepare for the upcoing selection changes

Related #207
2017-05-21 11:50:01 -07:00
Daniel Imms 13088f55a0 Declare pt and valid vars in correct spot 2017-05-21 11:27:57 -07:00
Daniel Imms ea008411e4 Add missing EventEmitter.emit args/types 2017-05-21 11:25:18 -07:00
Daniel Imms e63fdf580b Clean up 2017-05-20 15:21:12 -07:00
Daniel Imms 597c6939c8 Handle basic double click select 2017-05-20 00:17:23 -07:00
Daniel Imms 293ae18a11 Fix copy after scroll 2017-05-20 00:01:55 -07:00
Daniel Imms 32b34cbe4c Handle copy 2017-05-19 23:53:20 -07:00
Daniel Imms 2f6d05f99d Handle scrolling of selection 2017-05-19 23:32:26 -07:00
Daniel Imms ad3ae67e70 Get selection partially rendering 2017-05-19 23:29:51 -07:00
Daniel Imms b594407cd5 Tell renderer to draw selection 2017-05-19 20:06:05 -07:00
Daniel Imms 207c4cf961 More work on SelectionManager 2017-05-19 19:57:52 -07:00
Daniel Imms fe11837a61 Create new entries when shifting 2017-05-19 19:11:28 -07:00
Daniel Imms fee912023f Merge remote-tracking branch 'ups/master' into 207_selection_manager 2017-05-19 18:38:24 -07:00
Daniel Imms a95ac990ff Merge pull request #450 from Tyriar/449_keep_span_pool
Keep row spans in an object pool to reduce garbage collection by reusing DOM nodes
2017-05-16 10:12:27 -07:00
Daniel Imms aad8439542 Fix lint errors 2017-05-16 10:07:55 -07:00
Daniel Imms 1a777edffe Add missing return type 2017-05-16 10:04:12 -07:00
Daniel Imms 537018f71f DomElementObjectPool jsdoc 2017-05-16 10:03:56 -07:00
Daniel Imms 67ca3a9334 More string interpolation 2017-05-16 09:57:50 -07:00
Daniel Imms 5fb30979c1 Add jsdoc back, was lost in merge 2017-05-14 14:28:06 -07:00
Daniel Imms cf863d4849 Use string interpolation 2017-05-14 14:26:45 -07:00
Daniel Imms 47814847f9 Remove var usages 2017-05-14 12:47:17 -07:00
Daniel Imms 9ec8974545 More clean up 2017-05-14 12:40:45 -07:00
Daniel Imms c887c6e0f6 Clean up 2017-05-14 12:27:06 -07:00
Daniel Imms 6c8949bba1 Only wrap single width unicode chars 2017-05-14 12:20:01 -07:00
Daniel Imms 508d3ab68c Merge remote-tracking branch 'ups/master' into 449_keep_span_pool 2017-05-14 12:09:47 -07:00
Paris Kasidiaris 6dad013783 Merge pull request #659 from jdanyow/paste
Normalize line endings on paste
2017-05-11 12:28:38 +03:00
Jeremy Danyow 0532e5cbf0 Normalize line endings on paste 2017-05-09 15:21:56 -07:00
Daniel Imms abcdf3e252 Merge branch 'master' into 449_keep_span_pool 2017-05-08 11:35:42 -07:00
Daniel Imms 3baa6b9237 Wrap all characters temporarily in spans to force fixed with
Fixes #467
2017-05-07 16:08:01 -07:00
Daniel Imms 23e6a475ee Merge remote-tracking branch 'origin/master' into 449_keep_span_pool 2017-05-07 15:49:40 -07:00
Daniel Imms 65256c8751 Support an entry ID in CircularList
This is needed to keep track of which row is which outside of the class
2017-05-05 20:24:25 -07:00
Daniel Imms b36d8780fd Clean up 2017-05-05 17:40:23 -07:00
Daniel Imms 70fda99415 Basic fetching of coordinates 2017-05-05 17:36:15 -07:00
Paris Kasidiaris 2221f70ff0 Bump version to 2.6.0
Signed-off-by: Paris Kasidiaris <paris@sourcelair.com>
2017-05-04 15:38:52 +00:00
Daniel Imms daad8d9c04 Merge pull request #652 from Tyriar/651_fix_travis_fail
Force failing mocha tests to return a exit code of 1
2017-05-04 08:35:37 -07:00
Daniel Imms 03d26e39c7 Force failing mocha tests to return a exit code of 1
Fixes #651
2017-05-03 10:06:53 -07:00
Paris Kasidiaris 64d3c089a2 Merge pull request #647 from Martin1994/orion_use
Add "Eclipse Orion" to "Real-World Uses".
2017-05-02 00:37:38 +03:00
Martin Chloride 938c011e63 Added "Eclipse Orion" to "Real-World Uses". 2017-05-01 17:12:07 -04:00
Paris Kasidiaris 66f6b88333 Merge pull request #645 from sourcelair/issue-#640-do-not-focus-on-open
Add `focus` argument in `Terminal.prototype.open`
2017-05-01 01:07:00 +03:00
Paris Kasidiaris 35f746c925 Add focus argument in Terminal.prototype.open
Fix #640
2017-04-26 10:37:07 +00:00
Paris Kasidiaris 944da28089 Merge pull request #643 from jsmecham/patch-1
Add "Terminal for Atom" to Real-World Uses
2017-04-24 17:43:20 +03:00
Justin Mecham 8f3e2b645a Added "Terminal for Atom" to Real-World Uses. 2017-04-23 14:36:01 -04:00
Daniel Imms 82b2a5305f Merge pull request #639 from Tyriar/638_retain_cursor_blink_interface
Keep cursor blink interval after a reset
2017-04-21 17:59:51 -07:00
Daniel Imms 6a2852ee26 Merge branch 'master' into 638_retain_cursor_blink_interface 2017-04-21 17:53:49 -07:00
Daniel Imms 526d6c4da9 Merge pull request #641 from Tyriar/support_demo_cursorStyle
Support cursorStyle selection in demo
2017-04-20 10:33:30 -07:00
Daniel Imms 46d62f4972 Support cursorStyle selection in demo 2017-04-19 18:16:48 -07:00
Daniel Imms 5cafcdb695 Keep cursor blink interval after a reset
Fixes #638
2017-04-19 11:22:18 -07:00
Paris Kasidiaris 2674258ead Merge pull request #635 from rstudio/master
Update README with RStudio under real-world uses.
2017-04-15 01:15:27 +03:00
Gary Ritchie b38be3a1d0 Update README with RStudio under real-world uses. 2017-04-14 10:50:15 -07:00
Daniel Imms 18a9f05626 Merge pull request #628 from saulcosta18/patch-1
Added Codevolve.com to README
2017-04-06 13:01:16 -07:00
Saul Costa bf34980c43 Added Codevolve.com to README
We use xterm.js for our courses at Codevolve.
2017-04-06 12:50:41 -07:00
Paris Kasidiaris d2f8f9dc1a Bump version to 2.5.0
Signed-off-by: Paris Kasidiaris <paris@sourcelair.com>
2017-04-05 18:48:57 +00:00
Daniel Imms df13469b6e Merge pull request #627 from Tyriar/591_element_on_validation
Give API access to valid link elements
2017-04-05 11:34:34 -07:00
Daniel Imms 584ec681af Merge remote-tracking branch 'ups/master' into 591_element_on_validation 2017-04-04 09:50:04 -07:00
Daniel Imms 0c5b5cca4a Merge pull request #623 from Tyriar/612_multiple_links_in_row
Support multiple link matches in a single row
2017-04-04 09:41:19 -07:00
Daniel Imms 64663bf4a8 Fix tests 2017-04-04 09:35:52 -07:00
Daniel Imms fe8334a873 Merge remote-tracking branch 'ups/master' into 612_multiple_links_in_row 2017-04-04 09:33:53 -07:00
Daniel Imms c74fd40e2a Merge pull request #619 from Tyriar/618_register_link_before_dom
Allow links to be registered before terminal is attached to DOM
2017-04-04 09:13:09 -07:00
Daniel Imms 0f8ff67451 Merge branch 'master' into 618_register_link_before_dom 2017-04-04 09:02:37 -07:00
Daniel Imms 8b0032c210 Merge branch 'master' into 612_multiple_links_in_row 2017-04-04 09:02:35 -07:00
Daniel Imms d9254ef2d9 Merge pull request #626 from Tyriar/625_cursor_blink_perf
Use setInterval over animation for cursor blink
2017-04-04 09:02:27 -07:00
Daniel Imms 66be05a962 Merge branch 'master' into 612_multiple_links_in_row 2017-04-04 09:00:47 -07:00
Daniel Imms 0e85a09dd3 Merge branch 'master' into 618_register_link_before_dom 2017-04-04 08:58:43 -07:00
Daniel Imms 0c4ba9fd67 Clear cursor blink interval on blur 2017-04-03 15:09:38 -07:00
Daniel Imms aca81c764a Use setInterval over animation for cursor blink
Fixes #625
2017-04-03 14:49:21 -07:00
Daniel Imms 6b3ddb97d1 Merge pull request #624 from InDieTasten/patch-1
Fix typos in comment
2017-03-31 13:27:29 -07:00
InDieTasten 26ccf2a316 Fix typos in comment 2017-03-31 22:16:11 +02:00
Daniel Imms 361894194a Merge branch 'master' into 612_multiple_links_in_row 2017-03-31 03:06:23 -07:00
Daniel Imms 8c2db8ddb8 More tests 2017-03-31 02:10:07 -07:00
Daniel Imms 5546baa927 Fix edge case 2017-03-31 01:54:21 -07:00
Daniel Imms d814009721 Add tests 2017-03-31 01:48:51 -07:00
Daniel Imms 08fd050c3f Support multiple link matches in a single row
Fixes #612
2017-03-31 01:48:35 -07:00
Daniel Imms 0b096d7d55 Merge pull request #621 from coderaiser/patch-1
Added Cloud Commander to real world uses
2017-03-30 11:31:11 -07:00
coderaiser 44cfb2dc87 Added Cloud Commander to real world uses 2017-03-30 14:26:56 +03:00
Daniel Imms b0624cadb7 Allow links to be registered before terminal is attached to DOM
Fixes #618
2017-03-24 11:04:04 -07:00
Paris Kasidiaris 045f361b0d Merge pull request #616 from LucianBuzzo/crop-lines
Prevent line data from being discarded on resize.
2017-03-20 09:52:22 +00:00
Lucian Buzzo cb77b9dc1a Prevent line data from being discarded on resize. 2017-03-19 08:26:37 +00:00
Paris Kasidiaris 0723dac596 Merge pull request #615 from andfoy/patch-1
Added Spyder IDE Terminal as a xterm case-use application
2017-03-19 00:26:41 +00:00
Edgar Andrés Margffoy Tuay 365f9b4c1b Added Spyder IDE as a xterm case-use application 2017-03-18 18:05:05 -05:00
Daniel Imms 2cf90d90f7 Merge pull request #610 from Tyriar/non_draggable_links
Ensure terminal links are not draggable
2017-03-17 09:22:05 -07:00
Daniel Imms da14f64d1b Merge branch 'master' into non_draggable_links 2017-03-17 02:27:07 -07:00
Paris Kasidiaris ef1b1c8ffc Merge pull request #608 from sourcelair/add-logo
Add xterm.js logo
2017-03-17 08:18:08 +00:00
Daniel Imms adde8ab2c3 Ensure terminal links are not draggable 2017-03-16 12:07:25 -07:00
Paris Kasidiaris 22cc8079dc Add xterm.js logo 2017-03-16 08:54:07 +00:00
Daniel Imms 6d25706300 Merge pull request #606 from Tyriar/vscode22640_tilde_path
Allow ~ char in linkify path and query fragments
2017-03-15 18:01:47 -07:00
Paris Kasidiaris 81419c980b Merge pull request #603 from sourcelair/fix-blurred-terminal-cursor
Fix cursor style on blurred terminals
2017-03-15 22:09:18 +00:00
Paris Kasidiaris 097e21f641 Merge pull request #604 from sourcelair/rebuild-on-css
Rebuild xterm.js even when CSS changes
2017-03-15 22:09:03 +00:00
Daniel Imms b68180b97b Allow ~ char in linkify path and query fragments 2017-03-15 13:55:57 -07:00
Daniel Imms d9059d18c0 Merge pull request #600 from sourcelair/Tyriar-patch-1
Polish development and contribution section
2017-03-15 10:53:03 -07:00
Paris Kasidiaris 5225a6e27a Rebuild xterm.js even when CSS changes
Otherwise you had to run `npm build` manually every time you changed a CSS file to see the updated result in the demo.
2017-03-15 18:36:06 +02:00
Paris Kasidiaris 9055bace96 Fix cursor style on blurred terminals 2017-03-15 18:28:17 +02:00
Paris Kasidiaris eb25e88754 Merge pull request #598 from mikesir87/fix-fit-calculation
Fixed characterHeight calculation, which could cause overflowing
2017-03-15 14:34:13 +00:00
Michael Irwin 0cb8ecc6f7 Use boundingClientRect instead of style to get actual height
PR #598
2017-03-15 09:06:56 -04:00
Daniel Imms 8cf76cc6e9 Polish development and contribution section 2017-03-14 15:15:36 -07:00
Michael Irwin 3c3a646d42 Fixed characterHeight calculation, which could cause overflowing
The previous calculation was simply using the height of the letter
W, but wasn't taking into account that each row has a lineHeight,
which might be greater. If the lineHeight is .4px off, after many
rows, it will cause the proposedGeometry to have an extra row,
potentially causing hidden rows (based on layout).
2017-03-14 17:02:53 -04:00
Paris Kasidiaris ff29fd69a3 Merge pull request #572 from AndrienkoAleksandr/gulpImprove
Use tsconfig.json data in gulpfile.js instead of hardcoded values.
2017-03-11 13:21:47 +00:00
Daniel Imms 91994a399c Merge pull request #582 from tmyt/propose/row-height
Support checking height in checkBoldBroken
2017-03-10 12:53:12 -08:00
Daniel Imms bef7137c92 Fix bug 2017-03-09 10:47:09 -08:00
Daniel Imms 11f62bab34 Expose setHypertextValidationCallback 2017-03-09 10:39:08 -08:00
Daniel Imms b66776a047 Include element in validationCallback
Fixes #591
2017-03-09 10:23:59 -08:00
Daniel Imms 2c151f444c Merge pull request #589 from warpdesign/patch-1
FIXED: typo
2017-03-08 15:52:55 -08:00
Nicolas Ramz d8f8b060cb FIXED: typo
`<div id="terminal"></div>` wasn't used, instead, a new one was created and used since getElementById('#terminal') returned null.
2017-03-09 00:47:29 +01:00
Daniel Imms ea9376019c Merge pull request #586 from AndrienkoAleksandr/cleanUpTsConfig
Clean up tsconfig.json.
2017-03-08 12:02:09 -08:00
Daniel Imms 008d1df106 Merge remote-tracking branch 'up/master' into cleanUpTsConfig 2017-03-08 11:47:56 -08:00
Daniel Imms ec91a6c7f4 Merge pull request #588 from Tyriar/587_csi_3_J
Implement CSI 3 J - Erase saved lines
2017-03-08 11:08:46 -08:00
yutaka 4b2ae6a79f Use rendered height for detect broken bold font. 2017-03-08 11:30:23 +00:00
yutaka 2ec756fd6b Use offsetWidth instead of scrollWidth
scrollWidth does not work on Chrome with `display: inline` element.
2017-03-08 05:11:26 +00:00
yutaka f0d5b40121 Detect bold font was broken correctly. 2017-03-08 04:54:18 +00:00
yutaka 31a0996b2f Revert "Set charMeasure.height values to each row height"
This reverts commit 43cb4f471f.
2017-03-08 00:27:22 +00:00
Daniel Imms 0bbd8f0a16 Implement CSI 3 J - Erase saved lines
Fixes #587
2017-03-07 14:01:42 -08:00
Paris Kasidiaris b1619e42fd Bump version to 2.4.0
Signed-off-by: Paris Kasidiaris <paris@sourcelair.com>
2017-03-07 09:38:48 +00:00
Daniel Imms 4cfec2fc09 Merge pull request #579 from Tyriar/578_ctrl_click_links
Require ctrl for link clicks
2017-03-06 07:21:58 -08:00
Aleksandr Andrienko 3d721a95bb Clean up tsconfig.json.
'include' field in the tsconfig.json defines source scope (top level of this scope is "src" folder), so we do not need 'exclude' folders in the root of the project, because this folders had already excluded by 'include' scope.

Signed-off-by: Aleksandr Andrienko <aandrienko@codenvy.com>
2017-03-06 13:17:01 +02:00
Aleksandr Andrienko dc3a136704 Use tsconfig.json data in gulpfile.js instead of hardcoded values.
Use tsconfig.json data in gulpfile.js instead of hardcoded values. Little code clean up

Signed-off-by: Aleksandr Andrienko <aandrienko@codenvy.com>
2017-03-06 12:25:22 +02:00
Daniel Imms 235ae2fbb9 Fix http link handler logic 2017-03-04 15:02:08 -08:00
Daniel Imms 1f518b0b45 Allow http link handler to fallback to standard handler 2017-03-04 14:44:11 -08:00
Daniel Imms ab34d53d6b Remove unused import 2017-03-04 14:09:13 -08:00
Daniel Imms aafb5333b9 Give event to handler 2017-03-04 14:08:05 -08:00
Daniel Imms 5e2791f981 Revert "Add fail handler"
This reverts commit 1ecc5674ac.
2017-03-04 14:01:40 -08:00
Daniel Imms 1ecc5674ac Add fail handler 2017-03-04 14:01:34 -08:00
Daniel Imms c9ad3a595a Merge pull request #584 from coderaiser/patch-1
Fix demo: wrong pid on windows #567
2017-03-03 14:38:55 -08:00
coderaiser 43558fa1dc Fix demo: wrong pid on windows #567 2017-03-03 23:40:36 +02:00
Daniel Imms 15a867d2b7 Support cmd+click on mac 2017-03-03 12:37:34 -08:00
yutaka 43cb4f471f Set charMeasure.height values to each row height 2017-03-03 07:57:05 +00:00
Daniel Imms 012051c1db Fix matchIndex on http 2017-03-02 17:35:10 -08:00
Daniel Imms b5483898da Merge remote-tracking branch 'upstream/master' into 578_ctrl_click_links 2017-03-02 17:34:30 -08:00
Daniel Imms c7b4c2beaf Require ctrl for link clicks
Fixes #578
2017-03-02 17:33:58 -08:00
Daniel Imms 8693d067e3 Merge pull request #577 from Tyriar/549_link_priority
Implement link matcher priorities
2017-03-02 15:24:09 -08:00
Daniel Imms 78d5fc9506 Fix bug with priority 2017-03-02 12:05:34 -08:00
Daniel Imms 7ac4f1a9be Implement link matcher priorities
Fixes #549
2017-03-02 11:25:27 -08:00
Daniel Imms 670fb01fbf Merge pull request #566 from Tyriar/linkify_issues
Linkify issues
2017-03-02 09:02:24 -08:00
Daniel Imms ec9608d54b Merge pull request #574 from Tyriar/link_validation_fixes
Link validation fixes
2017-03-02 00:42:01 -08:00
Daniel Imms dcffaf1c8c Ensure linkElement exists before firing validation callback 2017-03-01 09:38:59 -08:00
Daniel Imms efac5293c0 Use text cursor for invalid links
Part of #570
2017-03-01 09:37:30 -08:00
Daniel Imms c7563346a2 Merge pull request #571 from Tyriar/570_link_validation
Implement link validation
2017-03-01 09:12:53 -08:00
Daniel Imms 69906532b1 Remove test harness 2017-02-27 15:44:10 -08:00
Daniel Imms 9404fae725 Merge remote-tracking branch 'upstream/master' into linkify_issues 2017-02-27 12:59:59 -08:00
Daniel Imms 3542f15575 Don't expose CharMeasure/Linkifier for tests 2017-02-27 12:57:18 -08:00
Daniel Imms 15d79143e2 Get rid of exposed test method (phantom is gone) 2017-02-27 12:56:54 -08:00
Daniel Imms f6dafee748 Remove dead code 2017-02-27 12:52:54 -08:00
Daniel Imms 356d86ae74 Merge remote-tracking branch 'upstream/master' into 570_link_validation 2017-02-27 12:47:53 -08:00
Daniel Imms e673c6ec97 Upgrade to TypeScript 2.2 2017-02-27 11:54:55 -08:00
Daniel Imms 3e5fcf7004 Merge pull request #569 from wavebeem/issue/562
Fixes #562 adds Windows demo setup help
2017-02-27 11:52:47 -08:00
Daniel Imms 96d2a2bc68 Pin TypeScript at v2.1 to fix PhantomJS error 2017-02-27 11:47:57 -08:00
Daniel Imms b401992178 Add jsdom types 2017-02-27 11:22:59 -08:00
Daniel Imms 4c34351383 Remove PhantomJS completely 2017-02-27 11:22:50 -08:00
Daniel Imms 202b54afbb Convert CharMeasure phantom test to jsdom 2017-02-27 11:18:00 -08:00
Daniel Imms 26ebc3d944 Use jsdom instead of phantomjs for linkifier test 2017-02-27 11:00:12 -08:00
Daniel Imms d0f36e9939 Pin typescript 2.1 to prevent exports error 2017-02-27 10:02:12 -08:00
Daniel Imms 4c99c032ca Add tests 2017-02-27 09:47:36 -08:00
Daniel Imms 6198556e50 Implement link validation
Fixes #570
2017-02-27 08:35:59 -08:00
Brian Mock 514eba0e4e Fixes #562 adds Windows demo setup help 2017-02-25 12:16:18 -08:00
Daniel Imms 7279ee0f5f Support % in URLs 2017-02-24 08:56:42 -08:00
Daniel Imms ccadf3fcca Support percent and numbers in query/hash fragments 2017-02-23 10:02:18 -08:00
Daniel Imms cb80ce0d2c Link . and - in hash fragments and query strings 2017-02-23 09:55:05 -08:00
Daniel Imms 9aae43961f Support linking hash fragments 2017-02-23 09:53:20 -08:00
Daniel Imms b810687163 Support linking = in query strings 2017-02-23 09:42:59 -08:00
Daniel Imms 28d4ec779d Fix localhost links 2017-02-23 09:37:35 -08:00
Paris Kasidiaris cf4da6c748 Merge pull request #565 from sourcelair/issue-#531-coveralls
Fix #531: Submit code coverage to coveralls.io
2017-02-22 19:15:04 +02:00
Paris Kasidiaris e569b5669a Add coveralls badge 2017-02-22 16:22:50 +02:00
Paris Kasidiaris 695a9523fe Fix #531: Submit code coverage to coveralls.io 2017-02-22 16:17:22 +02:00
Daniel Imms 01b8e28a7d Merge pull request #556 from Tyriar/555_fix_mouse_coords
Use CharMeasure to determine mouse coordinates
2017-02-20 03:17:50 -08:00
Daniel Imms e221030a2b Merge pull request #559 from Tyriar/558_linkify_bad_trim
Remove bad trim optimization from Linkifier
2017-02-20 03:17:42 -08:00
Daniel Imms 88dc697392 Merge pull request #557 from Tyriar/CharMeasure_aria_hidden
Hide CharMeasure element from assistive technologies
2017-02-20 03:17:34 -08:00
Daniel Imms 99a270216c Remove bad trim optimization from Linkifier
This prevents whitespace from going missing after links are applied.

Fixes #558
2017-02-19 15:17:03 -08:00
Daniel Imms d06c920a2d Hide CharMeasure element from assistive technologies 2017-02-19 13:20:36 -08:00
Daniel Imms 5452986ce3 Use CharMeasure to determine mouse coordinates
Fixes #555
2017-02-19 12:34:36 -08:00
Daniel Imms ae69841174 Merge pull request #538 from Tyriar/455_linkify
Implement web links and custom link matcher registration
2017-02-17 11:40:59 -08:00
Daniel Imms e6fc80c13b Fix link matcher iteration direction 2017-02-17 10:22:55 -08:00
Daniel Imms a10ee8f58c Revert priority change, http handler needs to be top 2017-02-17 10:18:46 -08:00
Daniel Imms 3f69da2455 Support query string in linkifier 2017-02-17 10:06:35 -08:00
Daniel Imms a14a0834e9 Merge remote-tracking branch 'upstream/master' into 455_linkify 2017-02-17 10:05:22 -08:00
Daniel Imms c4f431849b Add a null check on linkifyRow 2017-02-16 22:41:08 -08:00
Daniel Imms ade3389cea Merge pull request #535 from Tyriar/534_phantomjs
Add PhantomJS test support and CharMeasure tests
2017-02-15 13:29:50 -08:00
Paris Kasidiaris 6873ba0909 Merge pull request #541 from AndrienkoAleksandr/FixSoftReset
Fix 'Autowrap Mode' after 'Soft Terminal reset' command.
2017-02-15 11:24:42 +02:00
Daniel Imms c3f31b5f65 Apply link matchers in reverse
This enables consumers to have full control.
2017-02-14 20:06:15 -08:00
Daniel Imms 3b62aa444b Improve jsdoc 2017-02-14 19:45:22 -08:00
Daniel Imms fb2b10b565 Merge pull request #545 from Martin1994/blink_cursor_color
Let blink animation support style inheritance
2017-02-14 19:23:22 -08:00
Martin Wang 345553012f Let blink animation support style inheritance
With this change, blinking cursor will use the same font and background
color that set before.
2017-02-14 12:35:39 -05:00
Daniel Imms fddc13d98e Merge pull request #544 from LucianBuzzo/master
Make fit plugin guard against non-existent parent element.
2017-02-13 13:26:14 -08:00
Lucian Buzzo aeb9f798c9 Make fit plugin guard against non-existent parent element. 2017-02-13 21:01:28 +00:00
Paris Kasidiaris 8fd44266a2 Bump version to 2.3.2
Signed-off-by: Paris Kasidiaris <paris@sourcelair.com>
2017-02-13 18:05:47 +00:00
Paris Kasidiaris ef4155fbf6 Merge pull request #542 from Tyriar/539_fix_initial_viewport_sync
Perform initial viewport sync after CharMeasure is ready
2017-02-13 20:05:03 +02:00
Daniel Imms 92f27d3144 Fix tests 2017-02-13 09:48:22 -08:00
Daniel Imms 5183332f6e Next link matcher ID must be non-static 2017-02-10 12:29:36 -08:00
Daniel Imms ee1de0980f Perform initial viewport sync after CharMeasure is ready
Fixes #539
2017-02-10 09:55:35 -08:00
Aleksandr Andrienko c53183d94b Fix default 'wraparoundMode' value for 'Soft reset'() XTERM terminal. 2017-02-10 16:52:19 +02:00
Daniel Imms 1ee774d01d Remove linkify test 2017-02-09 22:03:31 -08:00
Daniel Imms 1c030f57ef Force a refresh after register/deregister link matcher 2017-02-09 21:12:28 -08:00
Daniel Imms c8bb321654 Get custom link matcher working 2017-02-09 21:08:50 -08:00
Daniel Imms a1d71c9198 Properly queue linkify after refresh 2017-02-09 20:35:06 -08:00
Daniel Imms 55cb43d70b Add license 2017-02-09 20:12:35 -08:00
Daniel Imms 551159e0c3 Remove linkify addon 2017-02-09 20:10:01 -08:00
Daniel Imms 3bf31aa478 Polish 2017-02-09 20:09:47 -08:00
Daniel Imms 1316682343 Merge pull request #532 from AndrienkoAleksandr/cleanUpDependency
Remove excess library.
2017-02-09 20:01:46 -08:00
Daniel Imms 7167b06bf8 Add custom link handlers, use generic way for http handler 2017-02-08 20:44:22 -08:00
Daniel Imms 34582f9f65 Remove logs 2017-02-08 20:21:18 -08:00
Daniel Imms 8dc9ec5733 Only show underline on hover 2017-02-08 20:20:18 -08:00
Daniel Imms e8adf8ad2b Use gulp-mocha and attach run both test type in npm test 2017-02-08 20:06:14 -08:00
Daniel Imms 1306431e7c Add PhantomJS test support and CharMeasure tests
Fixes #534
2017-02-08 19:53:32 -08:00
Daniel Imms f7bc0fba4d Remove unnecessary variables 2017-02-08 18:57:45 -08:00
Paris Kasidiaris 639a2fd509 Bump version to 2.3.1
Signed-off-by: Paris Kasidiaris <paris@sourcelair.com>
2017-02-08 23:51:47 +00:00
Paris Kasidiaris b00083e0e5 Merge pull request #533 from vincentwoo/patch-2
Fix missing Number.isNaN in IE
2017-02-09 01:46:00 +02:00
Vincent Woo c3256556aa Fix missing Number.isNaN in IE
See https://github.com/sourcelair/xterm.js/pull/525#issuecomment-278497452
2017-02-08 15:33:20 -08:00
Paris Kasidiaris 8dd11f5587 Bump version to 2.3.0
Signed-off-by: Paris Kasidiaris <paris@sourcelair.com>
2017-02-08 22:24:56 +00:00
Daniel Imms 0f3ee21d9d Enable custom http link handlers 2017-02-08 14:13:30 -08:00
Daniel Imms a489037ec4 Improve node insertion, support custom link handlers 2017-02-08 13:50:36 -08:00
Aleksandr Andrienko c48388af14 Remove excess library.
Tsify lib used for browserify typescript sources. But folder /lib consist of js files has already compiled from TypeScript sources (by gulp task tsc). So Tsify library does nothing in this case.

Signed-off-by: Aleksandr Andrienko <aandrienko@codenvy.com>
2017-02-08 23:15:54 +02:00
Daniel Imms 2207d356f2 Initial linkify implementation
Part of 455
2017-02-08 11:11:52 -08:00
Daniel Imms 795cdb52dc Merge pull request #530 from Tyriar/fix_tests_on_windows
Disable escape sequence tests on windows
2017-02-08 10:41:06 -08:00
Daniel Imms e79e67c3ce Disable escape sequence tests on windows 2017-02-07 21:17:47 -08:00
Daniel Imms e0639e1b62 Merge pull request #526 from sourcelair/Tyriar-patch-1
Add description to package.json
2017-02-06 16:40:29 -08:00
Daniel Imms 56b541b44f Add description to package.json
This should fix the ugly broken markdown at the top of npm
2017-02-06 13:56:52 -08:00
Paris Kasidiaris 03e46fbdee Merge pull request #525 from LucianBuzzo/resize
Fix issue when resizing hidden terminals
2017-02-05 17:59:54 +02:00
Lucian Buzzo ee0d6b4533 Fixed issue where terminal would become unusable if NaN values are sent
to resize method.
2017-02-05 12:45:55 +00:00
Daniel Imms 937a9bf433 Merge pull request #523 from sourcelair/Tyriar-patch-1
Add null check on Terminal.element
2017-02-02 08:53:40 -08:00
Paris Kasidiaris 3bcdc4a354 Merge pull request #524 from billchurch/master
Adding WebSSH2 to real-world uses
2017-02-01 23:51:23 +02:00
Bill Church 382cd0bbf4 Merge pull request #1 from billchurch/billchurch-patch-1
Update README.md
2017-02-01 16:42:39 -05:00
Bill Church e58a6975da Update README.md
Adding WebSSH2 to real-word uses
2017-02-01 16:41:47 -05:00
Daniel Imms 833eb5216b Add null check on Terminal.element
Since the Terminal can be used now before being attached, we should check element on destroy.

Related to #266
2017-02-01 11:50:52 -08:00
Daniel Imms 742d28fcc3 Merge pull request #522 from Tyriar/266_pull_renderer_out
Pull renderer out of xterm.js
2017-02-01 11:33:52 -08:00
Daniel Imms cc78fdd63c Hold on to renderer if a reset occurs 2017-02-01 11:19:54 -08:00
Daniel Imms 20f22fb658 Convert flags to enum 2017-02-01 11:18:44 -08:00
Daniel Imms 3c635f3ce5 Remove Terminal.queueRefresh, call refresh directly 2017-02-01 11:13:00 -08:00
Daniel Imms 9d8f6c9ae7 Polish 2017-02-01 10:30:58 -08:00
Daniel Imms cc6893d0f2 Merge remote-tracking branch 'upstream/master' into 266_pull_renderer_out 2017-02-01 10:29:11 -08:00
Daniel Imms ca4e99e810 Add license 2017-02-01 10:21:43 -08:00
Daniel Imms 8d7df670b4 Merge pull request #521 from Tyriar/517_dont_loop_animation_frame
Don't requeue animation frame if not needed
2017-01-31 23:51:51 -08:00
Daniel Imms 4de7ed46bf Merge pull request #520 from Tyriar/519_erase_null_check
Add null checks in eraseRight and eraseLeft
2017-01-31 23:51:40 -08:00
Daniel Imms f9aac1bcc6 Fix tests 2017-01-31 23:46:58 -08:00
Daniel Imms 92068f36f2 Pull renderer out of xterm.js 2017-01-31 22:45:28 -08:00
Daniel Imms 047729ee9e Don't requeue animation frame if not needed
Fixes #517
2017-01-31 21:53:29 -08:00
Daniel Imms 637a5bd9cc Don't requeue animation frame if not needed
Fixes #517
2017-01-31 21:23:21 -08:00
Daniel Imms 6cd5c2b846 Add null checks in eraseRight and eraseLeft
Fixes #519
2017-01-31 21:03:13 -08:00
Daniel Imms 365a9f949c Merge pull request #513 from Tyriar/511_useFlowControl_option
Add useFlowControl option
2017-01-27 08:23:13 -08:00
Paris Kasidiaris d6de156cd8 Merge pull request #514 from LucianBuzzo/master
[issue #164] Fix bug that can occur when setting a scroll region
2017-01-27 12:58:57 +00:00
Lucian Buzzo 23c9fca088 [issue #164] Fix bug that can occur when setting a scroll region 2017-01-27 11:25:12 +00:00
Daniel Imms c2a69721f3 Add useFlowControl option
Fixes #511
2017-01-26 21:14:07 -08:00
Daniel Imms d1ad8a7831 Merge pull request #500 from Tyriar/fix_vt_tests
Fix many vt tests
2017-01-26 08:55:42 -08:00
Daniel Imms cee2285818 Merge pull request #509 from Tyriar/vscode_debugger_support
Support debugging mocha tests in vscode
2017-01-26 08:55:22 -08:00
Daniel Imms ca19da16e0 Merge pull request #499 from Tyriar/481_character_sets
Add support for rest of VT100 character sets
2017-01-25 13:00:49 -08:00
Daniel Imms 5850cbcd05 Add comments explaining actions preventing x from wrapping 2017-01-25 10:34:43 -08:00
Daniel Imms b789a7e85b Fix failing test given new auto wraparound behavior 2017-01-25 10:32:20 -08:00
Daniel Imms 9f0dbdd5c7 Support debugging mocha tests from vscode 2017-01-25 10:25:28 -08:00
Daniel Imms 98614f26ef Merge pull request #508 from Tyriar/507_fix_lint_in_src_root
Run lint on src/*.ts and fix errors
2017-01-25 07:30:09 -08:00
Daniel Imms 3b16696672 Run lint on src/*.ts and fix errors
Fixes #507
2017-01-24 13:34:47 -08:00
Paris Kasidiaris 0219ad2ed8 Merge pull request #505 from vincentwoo/patch-1
Add CoderPad to real world use cases
2017-01-24 07:48:37 +00:00
Vincent Woo e771483041 Add CoderPad to real world use cases
Hi everyone,

I'm very pleased to say I have cut CoderPad.io over to using xterm.js (replacing term.js). I've very pleased with the work you've done on it. You've implemented the many terrible hacks on top of term.js I had to write, except you've actually implemented stuff the right way.

I look forward to your continued progress on the project!

Cheers,
Vincent
2017-01-23 21:32:14 -08:00
Daniel Imms 4a7c3320fb Merge pull request #504 from Tyriar/fix_mode_recursive_call
Use InputHandler.setMode/resetMode, not Terminal
2017-01-23 12:41:19 -08:00
Daniel Imms 9359dca0f3 Use InputHandler.setMode/resetMode, not Terminal 2017-01-23 11:35:33 -08:00
Paris Kasidiaris c8ccc411d4 Merge pull request #502 from vincentwoo/master
Bundle top-level .js and .json files in NPM
2017-01-23 12:38:35 +02:00
Vincent Woo 537c8bad10 Bundle top-level JSON with npm 2017-01-22 22:28:46 -08:00
Vincent Woo 1a55367fc9 Bundle top-level JS with npm 2017-01-22 22:26:40 -08:00
Daniel Imms 4f7ee7dab0 Skip broken tests 2017-01-20 23:38:56 -08:00
Daniel Imms da16dd7cae Mock viewport.syncScrollArea 2017-01-20 23:22:04 -08:00
Daniel Imms 2aa7608ac0 Fix VPR behavior
Don't wrap cursor to column 0 after a VPR, fixes 1 test
2017-01-20 23:14:08 -08:00
Daniel Imms 74c3a4a6f7 Fix CUD behavior
Don't wrap cursor to column 0 after a CUD, fixes 1 test
2017-01-20 23:12:54 -08:00
Daniel Imms d30fb89fde Fix CUB behavior
Don't wrap cursor to column 0 after a CUB, fixes 3 tests
2017-01-20 23:11:22 -08:00
Daniel Imms 1b344ce789 Implement CAN (Cancel, ^X)
This helps partially pass t0014-CAN.in, it won't work 100% however
due to the very complex parsing logic of vanilla xterm that
gnome-terminal doesn't even seem to match. xterm's source seems to
have multiple ignore cases for a set of characters such that an
escape sequence like \e!!!!!! prints nothing as the ! continually
gets ignored. Our current logic is we ignore the escape sequence
immediately in this case and print the !.
2017-01-20 23:03:38 -08:00
Daniel Imms 99fbcd3d65 Fix LF/VT/FF behavior
Don't wrap cursor to column 0 after an index, fixes 2 tests
2017-01-20 22:14:18 -08:00
Daniel Imms 72063329fe Fix index behavior
Don't wrap cursor to column 0 after an index, fixes 2 tests
2017-01-20 21:49:39 -08:00
Daniel Imms adaf604ce0 Right trim expected output, we don't care for now
This fixes 2 tests
2017-01-20 21:39:27 -08:00
Daniel Imms d5f0fff523 Enable other tests and fix viewport check 2017-01-20 21:22:16 -08:00
Daniel Imms 43c3349494 Prevent wraparound mode from overriding last character 2017-01-20 21:20:11 -08:00
Daniel Imms b5d16ed7d7 Use block comment for SCLD 2017-01-20 20:14:17 -08:00
Daniel Imms aab67c2ed9 Reference CHARSETS using codes 2017-01-20 20:12:47 -08:00
Daniel Imms 0461a822c2 Add character sets for most languages
Part of #481
2017-01-20 19:05:13 -08:00
Paris Kasidiaris 7b87e78ed3 Merge pull request #497 from sourcelair/issue-#488-tabstopwidth
Implement configurable tab stop width
2017-01-21 01:08:23 +02:00
Paris Kasidiaris 6e1628bc3b Fixes on demo based on configurable tabStopWidth 2017-01-21 00:32:39 +02:00
Daniel Imms 370c5a971d Merge pull request #498 from Tyriar/259_fix_setupStops_in_resize
Fix setupStops call in resize
2017-01-20 14:29:13 -08:00
Daniel Imms 9a86e4e109 Fix setupStops call in resize
Fixes #259
2017-01-20 14:23:45 -08:00
Paris Kasidiaris 8cb46f2726 Move tabStopWidth option callback into setOption 2017-01-20 16:19:19 +00:00
Paris Kasidiaris f4293a6dfa Fix #488: Implement configurable tab width 2017-01-20 16:18:19 +00:00
Daniel Imms 1c759f1d6f Merge pull request #495 from Tyriar/494_display_none_resize_fix
Only keep > 0 geometry in CharMeasure
2017-01-20 07:26:46 -08:00
Daniel Imms 6918e83787 Merge pull request #492 from Tyriar/480_cursor_style
Implement CSI Ps SP q Set cursor style
2017-01-20 07:26:36 -08:00
Daniel Imms 9626b1e39d Only keep > 0 geometry in CharMeasure
Fixes #494
2017-01-19 18:02:09 -08:00
Daniel Imms 9227aed906 Add InputHandler.setCursorStyle test 2017-01-18 10:30:35 -08:00
Daniel Imms 0bd469f505 Implement CSI Ps SP q Set cursor style
Fixes #480
2017-01-18 10:06:57 -08:00
Daniel Imms 5bd803382a Merge pull request #462 from Tyriar/459_parser__on_460
Parser refactor and optimization
2017-01-18 10:02:03 -08:00
Daniel Imms ef60e50e1d Add documentation 2017-01-18 09:35:27 -08:00
Daniel Imms ed1ba14c6b Merge pull request #490 from Tyriar/489_namespace_cursor_blink
Namespace cursor-blink CSS animations
2017-01-18 08:18:23 -08:00
Daniel Imms a4080d3706 Namespace cursor-blink CSS animations
Fixes #489
2017-01-18 08:06:41 -08:00
Daniel Imms e2b2f98011 Merge remote-tracking branch 'upstream/master' into 459_parser__on_460 2017-01-16 15:17:35 -08:00
Daniel Imms ed13218f90 Merge pull request #485 from Tyriar/remove_comments_in_build
Remove comments in build
2017-01-16 15:14:42 -08:00
Daniel Imms 1cdd2e00ab Remove parser states from xterm.js 2017-01-16 14:11:00 -08:00
Daniel Imms 94eb08fb73 Remove comments in build 2017-01-16 14:02:55 -08:00
Daniel Imms 5e1ccb358b Merge remote-tracking branch 'upstream/master' into 459_parser__on_460 2017-01-16 13:53:19 -08:00
Daniel Imms 259338b8c2 Merge pull request #482 from Tyriar/348_keep_selection_on_mod_key
Don't drop selection on modifier keyup
2017-01-16 03:49:19 -08:00
Daniel Imms a05bb50230 Don't drop selection on modifier keyup
Fixes #348
2017-01-15 21:41:42 -08:00
Daniel Imms 8a07b8c798 Merge pull request #442 from Tyriar/441_windows_support
Use node-pty for Windows support
2017-01-15 02:38:16 -08:00
Daniel Imms 4d5046b5e7 Merge pull request #479 from Tyriar/478_cursorBlink_refresh
Apply cursorBlink via setOption
2017-01-15 02:35:30 -08:00
Daniel Imms 12160a50cb Fake xterm.element in tests 2017-01-15 02:31:54 -08:00
Daniel Imms 375ccbd9e2 Merge remote-tracking branch 'upstream/master' into 478_cursorBlink_refresh 2017-01-15 02:22:45 -08:00
Daniel Imms cc0f0d94f6 Merge remote-tracking branch 'upstream/master' into 441_windows_support 2017-01-15 02:12:17 -08:00
Paris Kasidiaris 6309752208 Merge pull request #435 from sourcelair/issue-#359-gulp
Introduce build system based on Gulp
2017-01-15 11:49:32 +02:00
Daniel Imms 4448ebe391 Use charsets to map 2017-01-14 22:06:30 -08:00
Daniel Imms d1dac57f7a Move cursor blink style to class on .terminal 2017-01-14 21:26:49 -08:00
Daniel Imms 3422f84e00 Merge pull request #477 from Tyriar/476_scrollback_update
Apply scrollback via setOption
2017-01-14 10:46:54 -08:00
Paris Kasidiaris ac6faf3dd8 Stick gulp-sourcemaps to 1.9.1
Paths became absolute by default at https://github.com/floridoo/gulp-sourcemaps/commit/fb4027a496898b8b7992ea5af9b3d707f1d82d38
2017-01-14 19:52:07 +02:00
Daniel Imms 7679475bfe Apply cursorBlink via setOption
Fixes #478
2017-01-13 21:31:31 -08:00
Daniel Imms 5a932b2a20 Apply scrollback via setOption
Fixes #476
2017-01-13 21:27:19 -08:00
Daniel Imms b1ef934aea Merge pull request #474 from Tyriar/473_refresh_null_checks
Add null checks to refresh line and character fetches
2017-01-13 07:09:12 -08:00
Daniel Imms a2ab0ffc46 Merge pull request #471 from Tyriar/470_CharMeasure_in_helper
Move CharMeasure element to the helper container
2017-01-13 07:08:45 -08:00
Daniel Imms ecd7e69f1a Start adding ESC state handler 2017-01-12 22:36:48 -08:00
Daniel Imms fa3484cd14 Pull character add char code to input handler 2017-01-12 22:17:36 -08:00
Daniel Imms f4846aa154 Finish CSI codes 2017-01-12 21:58:50 -08:00
Daniel Imms 9b66208029 Add more CSI codes 2017-01-12 21:33:28 -08:00
Daniel Imms c43c3b411a Add more CSI codes 2017-01-12 20:51:15 -08:00
Daniel Imms f9a286a851 Convert more CSI codes 2017-01-12 20:32:15 -08:00
Daniel Imms 3de3912b96 Add another null check on children[y] 2017-01-12 11:23:17 -08:00
Daniel Imms 23169e89c8 Add null checks to refresh line and character fetches
Fixes #473
2017-01-12 11:14:14 -08:00
Daniel Imms 0f5f34e8f5 Move CharMeasure element to the helper container
Fixes #470
2017-01-12 10:47:57 -08:00
Daniel Imms 342e862d69 Merge remote-tracking branch 'upstream/master' into 459_parser__on_460 2017-01-11 13:43:33 -08:00
Paris Kasidiaris 081fe3f301 Fix #359 - Introduce build system based on Gulp
- Add Gulp and new dependencies to `package.json`
- Add `gulpfile.js` with four tasks:
    - `tsc`: For building TypeScript sources
    - `bundle`: For bundling JavaScript modules in a monolith
    - `sorcery`: For resolving the source map chains back to the original TypeScript files
    - `build` (`default`): Runs the whole `tsc` → `bundle` → `sorcery` chain
- Clean up `Dockerfile`, since `cpio` is not needed any more
- Clean up not needed dependencies from `package.json`
- Remove `bin/build`
- Update `bin/release` to use `npm run build` instead of `./bin/build`
2017-01-11 08:11:45 +00: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 6b5ced0078 Merge remote-tracking branch 'upstream/master' into 449_keep_span_pool 2017-01-08 17:09:23 -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
Daniel Imms bebe43e5e1 Use node-pty as it's been published 2017-01-08 13:33:51 -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
Daniel Imms c7e8498166 Clear row and return spans before generating row 2017-01-04 09:44:58 -08:00
Daniel Imms 2b4c019f13 Use object pool in refresh 2017-01-04 09:32:23 -08:00
Daniel Imms 335850380e Implement DomElementObjectPool with tests 2017-01-04 08:50:19 -08:00
Daniel Imms 94c01ec378 Fix tests 2017-01-04 08:08:59 -08:00
Daniel Imms 2b8820fdac Further tweaks, add write batching 2017-01-03 15:52:45 -08:00
Daniel Imms 0ec7b661f2 Tweak config values 2017-01-03 15:38:14 -08:00
Daniel Imms dc5efa886a Make innerWrite iterative 2017-01-03 15:29:23 -08:00
Daniel Imms e66b1c5704 Add write buffer pause and refresh frame skip 2017-01-03 15:26:41 -08:00
Daniel Imms 6b8c43ed7f Send \x13 when a write buffer threadhold is reached 2017-01-03 14:57:13 -08:00
Daniel Imms b9d374affa Add XON/XOFF and eparate write from processing
Part of #425
2017-01-03 14:57:04 -08:00
Daniel Imms d2ef19dffe Remove var usage from Viewport
Part of #335
2017-01-03 11:26:59 -08:00
Daniel Imms efdf37b887 jsdoc 2017-01-03 11:23:36 -08:00
Daniel Imms 6ffb8f545b Rate limit Viewport.refresh
This prevents 1000 scroll events from firing when the buffer is not full

Fixes #444
2017-01-03 11:18:38 -08:00
Daniel Imms 2e4147b4fa Use Tyriar/pty.js for Windows support
Fixes #441
2017-01-01 16:24:55 -08:00
Daniel Imms 07a8b8f4f7 Fix tests 2016-12-31 18:06:49 -08:00
Daniel Imms 74483fb294 Use CharMeasure in Viewport and to style wide chars
Fixes #439
2016-12-31 15:56:57 -08:00
Daniel Imms 4f18d842f9 Add CharMeasure util class 2016-12-31 15:46:17 -08:00
Daniel Imms 188e197e20 Wrap wide chars in a span/class
Part of #439
2016-12-31 15:19:54 -08:00
Daniel Imms 7234bfb6eb Move row evaluation into refreshLoop
This allows the refresh public API to still function
2016-12-31 14:58:17 -08:00
Daniel Imms 97feb3321c Improve refresh queue
Use requestAnimationFrame in addition to a queue to refresh every animation
frame but only when a refresh is needed.

Fixes #280
Fixes #290
2016-12-31 14:14:02 -08:00
Daniel Imms 3e1a607179 Convert browser and generic to TS
Part of #335
2016-12-31 07:36:56 -08:00
Daniel Imms c3f46e4a6b Fix scroll in tmux with max scrollback
I believe this is related to when scrollBottom is not the last row in the viewport

Fixes #434
2016-12-31 07:18:50 -08:00
Daniel Imms 1fbd3c8f65 Merge pull request #432 from Tyriar/335_TS_EventEmitter
Convert EventEmitter to TypeScript and add tests
2016-12-31 07:14:47 -08:00
Daniel Imms 965ebde22f Remove remaining removeListener ref 2016-12-31 07:11:47 -08:00
Daniel Imms 0d9d3aca1a Remove addListener/removeListener 2016-12-31 07:10:45 -08:00
Daniel Imms 937cf43e09 Remove redundant assignment in constructor 2016-12-31 07:07:45 -08:00
Daniel Imms 23472e6fb4 Merge pull request #431 from Tyriar/427_refresh_scroll_on_buffer_change
Sync scroll bar when alt/normal buffer is switched in
2016-12-30 04:42:36 -08:00
Antonis Kalipetis 445728b2a2 Merge pull request #403 from akalipetis/docker-enhancement
Improve the Docker image
2016-12-30 11:24:22 +02:00
Antonis Kalipetis 61c213f9e3 Ignore all the build directories in Docker
This allows for reproducible builds.
Also, fix Dockerfile to first build and then run tests and a typo in the entrypoint.

Thanks @BenHall for reporting the issue with the Docker build!
2016-12-29 16:13:58 +02:00
Daniel Imms dba432d1b6 Add tests 2016-12-29 05:09:47 -08:00
Daniel Imms 2f416371bd Convert EventEmitter to TS
Pat of #335
2016-12-29 04:53:57 -08:00
Daniel Imms 2bfbdb1c06 Sync scroll bar when alt/normal buffer is switched in
Fixes #427
2016-12-29 03:55:36 -08:00
Antonis Kalipetis a4c958c54f Fix EOL character in .editorconfig and update docker-compose 2016-12-28 18:49:36 +02:00
Antonis Kalipetis b2e257bf37 Remove entrypoint
Signed-off-by: Antonis Kalipetis <akalipetis@gmail.com>
2016-12-28 18:45:21 +02:00
Antonis Kalipetis 6b6314227e Improve the Docker image
1. Bump Node version to 6.9 - the latest LTS
2. Include the `cpio` binary, used during building
3. Ignore node_modules and .git directories for faster builds
4. Run the tests and build during the image build, to make sure the image is not built if these break
5. Make npm run dev the default command
6. Add an entrypoint to automatically install Node modules if they do nott exist

Signed-off-by: Antonis Kalipetis <akalipetis@gmail.com>
2016-12-28 18:45:18 +02:00
Antonis Kalipetis 1e0eb3784e Merge pull request #402 from akalipetis/hotfix-npm-scripts
Improve the package.json scripts
2016-12-28 18:44:20 +02:00
Antonis Kalipetis f00ea4bfac Add a Procfile with the npm start command
Also, update the Procfile.dev with the updated `npm run dev` command.

Signed-off-by: Antonis Kalipetis <akalipetis@gmail.com>
2016-12-28 18:12:23 +02:00
Antonis Kalipetis 0da4c9d90d Improve the package.json scripts
1. Include a `prestart` script, which runs the build
2. Make the `start` script just start the demo server
3. Add a new `dev` script, which contains the nodemon logic
4. nodemon now watches for changes in `*.ts` files and runs the start command

Signed-off-by: Antonis Kalipetis <akalipetis@gmail.com>
2016-12-28 18:12:20 +02:00
Daniel Imms df83298c54 Merge pull request #429 from Tyriar/428_scrollback_exception
Ensure ydisp does not drop below 0 in refresh
2016-12-28 05:59:43 -08:00
Daniel Imms 5d29d4ea22 Remove log 2016-12-28 03:41:48 -08:00
Daniel Imms a9e1ed5a72 Ensure ydisp does not drop below 0 in refresh
Fixes #428
Related to #385
2016-12-28 03:41:12 -08:00
Daniel Imms e6ad8d8b50 Merge pull request #422 from Tyriar/361_circular_list_scrollback
Use a circular list to manage buffer
2016-12-28 03:10:31 -08:00
Daniel Imms 50cfe2b21a Improve header comment 2016-12-27 13:40:52 -08:00
Daniel Imms d7f2ec89d7 Polish 2016-12-24 03:17:30 -08:00
Daniel Imms cc5ae8193b Fix insertLines as max buffer size 2016-12-24 00:26:43 -08:00
Daniel Imms 30a1f1ccb5 Fix issue with max buffer size after vim fix 2016-12-24 00:14:30 -08:00
Daniel Imms 6f7cb990ca Fix issue with vim scrolling 2016-12-24 00:04:31 -08:00
Paris Kasidiaris 06f5746c86 Merge pull request #423 from katacoda/katacoda-integration
Katacoda xterm.js integration is live
2016-12-22 23:30:00 +02:00
Ben Hall cd44fe7bcd Katacoda xterm.js integration is live 2016-12-22 20:10:33 +00:00
Ben Hall bb3d6ee72c Katacoda xterm.js integration is live 2016-12-22 12:01:44 +00:00
Daniel Imms bf16fdc01d Have reverseIndex use CircularList.shiftElements 🎉 2016-12-21 03:26:40 -08:00
Daniel Imms 969a2e953c Implement CircularList.shiftElements 2016-12-21 03:18:30 -08:00
Daniel Imms bfaf9cd6eb Doc and testing 2016-12-21 02:39:21 -08:00
Daniel Imms be2e4b5d85 Add missing return type 2016-12-21 02:11:14 -08:00
Daniel Imms cc0fc953cf Remove logs 2016-12-22 02:04:31 -08:00
Daniel Imms 3b35d12e60 Fix issue with the git log
The old code was assuming that the buffer was not going to change, this is not
true with the current impl though where the list is shifted and ybase and ydisp
need to be compensated for that.
2016-12-22 02:02:05 -08:00
Daniel Imms 4bc679b0b3 Merge remote-tracking branch 'upstream/master' into 361_circular_list_scrollback 2016-12-21 15:43:18 -08:00
Daniel Imms be56c72b5f Fix when scrollback limit is reached 2016-12-21 15:43:04 -08:00
Paris Kasidiaris db92840ffc Merge pull request #415 from saswatds/saswatds-patch-1
Update README.md
2016-12-19 15:47:19 +02:00
Paris Kasidiaris 593a4ec0b0 Merge pull request #417 from BobReid/os_x_bash_arrow_fix
changed escape sequence for alt-arrow to work on bash on os x
2016-12-19 15:45:57 +02:00
Saswat Das d018a547a2 Update README.md
Added Getting started content from the xtermjs.org website
2016-12-18 04:48:19 +05:30
Paris Kasidiaris a246200675 Merge pull request #419 from blink1073/clean-up-npm-publish
Clean up npm publish
2016-12-16 20:46:27 +00:00
Steven Silvester 1cb6517812 Revert changes to other published files 2016-12-16 14:41:29 -06:00
Bob Reid 2824da371f Added macOS check to escape sequences and updated tests 2016-12-16 15:03:49 -05:00
Steven Silvester 22eb86089f Clean up npm publish 2016-12-16 13:28:10 -06:00
Bob Reid 2e17366bce changed escape sequence for alt-arrow to work on bash on os x 2016-12-16 10:29:42 -05:00
Paris Kasidiaris ef407ae93a Bump version to 2.2.3
Signed-off-by: Paris Kasidiaris <paris@sourcelair.com>
2016-12-15 21:56:32 +00:00
Paris Kasidiaris 9032ce99d3 Merge pull request #416 from sourcelair/issue-#414-css-files-in-npm
Include appropriate files in npm.
2016-12-15 21:53:19 +00:00
Paris Kasidiaris adaaeb6f36 Include appropriate files in npm.
Fix #414
2016-12-15 23:49:43 +02:00
Paris Kasidiaris 8a146b5401 Bump version to 2.2.2
Signed-off-by: Paris Kasidiaris <paris@sourcelair.com>
2016-12-15 17:16:04 +00:00
Saswat Das 4ee1e00808 Update README.md
Adding a getting started instruction for adding xterm to a parent div and listening for data output from xterm
2016-12-15 21:26:04 +05:30
Paris Kasidiaris 3a6368ba6c Merge pull request #411 from sourcelair/issue-#408-tslint
Add tslint
2016-12-15 12:13:23 +00:00
Paris Kasidiaris fbc314a74b Parallelise build 2016-12-15 14:05:37 +02:00
Paris Kasidiaris 850a238ca2 Include lint test into travis 2016-12-15 14:02:38 +02:00
Paris Kasidiaris 20b6f20908 Make linter happy 2016-12-15 13:57:25 +02:00
Paris Kasidiaris 33f7d7649a Add tslint
Fix #408
2016-12-15 13:53:26 +02:00
Paris Kasidiaris fb4d263211 Merge pull request #409 from sourcelair/issue-#405-firefox-paste
Fix linux firefox paste
2016-12-14 10:38:30 +00:00
Paris Kasidiaris ab87dece0b Fix weird paste issue: #405
Fix #405
2016-12-14 01:45:53 +02:00
Paris Kasidiaris 69e027394d 😱 Fix wrong event type and remove useless interface 2016-12-14 01:43:32 +02:00
Paris Kasidiaris 6639b2c731 Merge pull request #407 from sourcelair/build-ts-into-lib
Always build TypeScript in `lib/`
2016-12-13 23:32:49 +00:00
Paris Kasidiaris e23956cd77 Do not publish test files to npm 2016-12-13 23:28:33 +00:00
Paris Kasidiaris 56ca7743a8 Always build TypeScript in lib/ 2016-12-14 01:10:03 +02:00
Paris Kasidiaris fb17d57549 Merge pull request #398 from budde377/feat-npm
Add prepublish script and change main
2016-12-13 22:59:58 +00:00
Christian Budde Christensen e7045f2b8a Add prepublish script and change main
Building TS before publish and pointing the main entry to the builded files.
2016-12-13 20:34:19 +01:00
Daniel Imms fd25bd7ca2 Merge remote-tracking branch 'upstream/master' into 361_circular_list_scrollback 2016-12-12 15:05:19 -08:00
Paris Kasidiaris 852f587bd2 Merge pull request #400 from arcanis/patch-1
Use a fixed size to account for the scrollbar
2016-12-11 10:25:35 +00:00
Maël Nison e0e6f5e302 Use a fixed size to account for the scrollbar 2016-12-10 14:46:01 +01:00
Paris Kasidiaris 06a5ffdd1a Merge pull request #399 from bottleofwater/patch-1
Don't apply the 32 delta when in sgr mode - fix #394
2016-12-09 10:12:42 +00:00
bottleofwater a75bafc4ba Don't apply the 32 delta when in sgr mode - fix #394 2016-12-09 10:52:09 +01:00
Paris Kasidiaris 60a59be4d3 Bump version to 2.2.1
Signed-off-by: Paris Kasidiaris <paris@sourcelair.com>
2016-12-07 18:43:03 +00:00
Paris Kasidiaris b76b2d01eb Checkout add-ons 2016-12-07 18:42:40 +00:00
Paris Kasidiaris cd70d298fc Bump version to 2.2.0
Signed-off-by: Paris Kasidiaris <paris@sourcelair.com>
2016-12-07 18:41:37 +00:00
Paris Kasidiaris 70d0ed3ebf Merge pull request #393 from sourcelair/migrate-clipboard-to-typescript
Migrate Clipboard handler to TypeScript
2016-12-07 18:37:00 +00:00
Paris Kasidiaris 5a5c6ab621 Merge pull request #392 from sourcelair/fix-readme-addon-path
Update path to addons in README.md
2016-12-06 22:08:30 +00:00
Paris Kasidiaris a34bb9724f Improve interfaces in Clipboard.ts 2016-12-07 00:07:50 +02:00
Paris Kasidiaris 824a9c6dbf Migrate Clipboard handler to TypeScript
Also apply JavaScript rules in `.editorconfig` in TypeScript files as well.

Part of #335
2016-12-06 10:01:06 +00:00
Paris Kasidiaris c9eaae6bd5 Update path to addons in README.md 2016-12-06 10:55:40 +02:00
Daniel Imms 9f5790fcaf Merge pull request #391 from Tyriar/357_textarea_top_zero
Position the textarea at top:0
2016-12-05 11:47:55 -08:00
Paris Kasidiaris 6aeb0435ce Merge pull request #390 from sourcelair/issue-#375-bring-build-dir-back
Bring back the `build` directory for temporary builds
2016-12-05 19:35:08 +00:00
Paris Kasidiaris 70ec2496db Remove export from build script 2016-12-05 21:29:50 +02:00
Daniel Imms 55314e0fc7 Position the textarea at top:0
This prevents the browser from scrolling to the top of the page if the terminal
can be scrolled out of view.

Fixes #357
2016-12-05 11:19:36 -08:00
Paris Kasidiaris 243d76617b Create the build directory if it does not exist already 2016-12-05 13:34:10 +02:00
Paris Kasidiaris 6cc66a0b20 Bring back the build directory for temporary builds
Fix #375
2016-12-05 13:17:13 +02:00
Paris Kasidiaris 1e928df531 Merge pull request #388 from sourcelair/issue-#366
Update documentation with cleaner license declaration
2016-12-01 19:41:58 +02:00
Daniel Imms db9bec02f5 Merge pull request #382 from sourcelair/Tyriar-patch-1
Add link to TravisCI badge
2016-12-01 09:19:06 -08:00
Daniel Imms 0dc033692f Merge pull request #383 from Tyriar/381_clean_out_on_build
Clean out/* on build in case src/* files were deleted
2016-12-01 09:18:56 -08:00
Paris Kasidiaris 1d30091188 Update documentation with cleaner license declaration
Fix #366
2016-12-01 13:37:20 +00:00
Daniel Imms 64f80f8623 Merge pull request #380 from Tyriar/378_handle_keypress_scroll
Scroll to bottom whenever handler is called
2016-11-28 15:55:27 -08:00
Daniel Imms 83b06c6bb0 Clean out/* on build in case src/* files were deleted
If files in src/ were compiled and then deleted they will hang around in out/
until deleted. This can potentially cause difficult to diagnose build/test
errors. This commit removes all files from out/ but keeps the folder to
prevent editor file watchers from seeing the folder was deleted and shifting
the file explorer around.

Fixed #381
2016-11-28 10:52:03 -08:00
Daniel Imms 5cbc2f0ea5 Add link to TravisCI badge 2016-11-28 10:46:19 -08:00
Daniel Imms 2bc8adee8c Scroll to bottom whenever handler is called
This catches all current and future cases for correctly scrolling to the bottom
on input by handling it in the handler immediately before emitting the data
event.

Fixes #378
2016-11-28 10:41:05 -08:00
Daniel Imms c6eb7f136c Merge pull request #371 from Tyriar/335_CompositionHelper_ts
Convert CompositionHelper to TypeScript
2016-11-28 08:21:12 -08:00
Daniel Imms 48b87c2f40 Merge remote-tracking branch 'upstream/master' into 335_CompositionHelper_ts 2016-11-28 08:16:38 -08:00
Daniel Imms ca818fbf04 Merge pull request #379 from Tyriar/378_cannot_scroll_up_1plus_pages
Only scroll to bottom during composition or result.key is evaluated
2016-11-28 08:07:00 -08:00
Daniel Imms 264fe4edc7 Merge pull request #372 from Tyriar/335_viewport_tidy
Clean up viewport more after TS conversion
2016-11-28 08:06:50 -08:00
Daniel Imms 317c0ec2de Merge pull request #377 from Tyriar/376_ctrl_backslash_sigquit
Implement ^\ String Terminator
2016-11-28 08:06:42 -08:00
Daniel Imms 607c819109 Progress 2016-11-27 03:27:36 -08:00
Daniel Imms 61fbbb0054 Add CiruclarList pop and splice 2016-11-27 02:20:53 -08:00
Daniel Imms 3b2e89d878 Only scroll to bottom during composition or result.key is evaluated
Fixes #378
2016-11-27 01:49:45 -08:00
Daniel Imms 49b76baf3f Add CircularList and basic tests
Part of #361
2016-11-26 16:57:15 -08:00
Daniel Imms 15a94240eb Implement ^\ String Terminator
Fixes #376
2016-11-26 14:59:53 -08:00
Daniel Imms f75b7db90e Move CompositionHelper header comment to class 2016-11-22 11:54:42 -08:00
Daniel Imms 81dc48ef00 Clean up viewport more after TS conversion
Part of #335
2016-11-22 11:53:45 -08:00
Daniel Imms 3638ef808b tsify CompositionHelper test 2016-11-22 11:50:08 -08:00
Daniel Imms f24cba722a Rename composition-helper-test.js -> CompositionHelper.test.ts 2016-11-22 11:48:16 -08:00
Daniel Imms 30fcdd6ccb tsify CompositionHelper 2016-11-22 11:47:18 -08:00
Daniel Imms b0df236dea Rename CompositionHelper.js -> CompositionHelper.ts 2016-11-22 11:36:34 -08:00
Daniel Imms d91e33ff39 Merge pull request #369 from Tyriar/368_custom_handler_before_scroll
Evaluate the custom keydown event handler before scrolling down
2016-11-22 10:29:43 -08:00
Daniel Imms 1ee316ca83 Merge remote-tracking branch 'upstream/master' into 368_custom_handler_before_scroll 2016-11-22 10:23:04 -08:00
Daniel Imms dcbf014402 Merge pull request #367 from Tyriar/363_modifier_keys_no_scroll
Prevent keyboard modifier events from scrolling down
2016-11-22 08:00:23 -08:00
Daniel Imms 20b0d4fdcc Merge pull request #370 from Tyriar/335_Viewport_ts
Convert Viewport to TypeScript
2016-11-22 07:59:46 -08:00
Daniel Imms 2da1255c26 Merge pull request #355 from Tyriar/354_fix_sourcemaps
Set up source maps
2016-11-21 15:27:38 -08:00
Daniel Imms 5bddb93745 Adopt more TS syntax in Viewport.test.ts 2016-11-21 14:44:10 -08:00
Daniel Imms 51932161af Move viewport-test.js to Viewport.test.ts 2016-11-21 14:39:58 -08:00
Daniel Imms e0d9871195 Convert Viewport to a TS class 2016-11-21 14:39:08 -08:00
Daniel Imms 634d4af4dd Rename Viewport.js -> Viewport.ts
Part of #335
2016-11-21 14:27:41 -08:00
Daniel Imms a507e4f002 Add test for not scrolling on custom handler 2016-11-21 14:23:28 -08:00
Daniel Imms c15fed382d Evaluate the custom keydown event handler before scrolling down
Fixes #368
2016-11-21 14:04:13 -08:00
Daniel Imms 9937d54410 Prevent keyboard modifier events from scrolling down
Fixes #363
2016-11-21 14:01:20 -08:00
Daniel Imms 64f6610f11 Merge pull request #353 from Tyriar/352_fix_demo_after_ts
Point to correct assets after TS build
2016-11-16 09:56:35 -08:00
Daniel Imms e6f21f0bfc Make all dist/ references in index.html absolute 2016-11-14 10:35:20 -08:00
Daniel Imms c63732ef5f Set up source maps
Fixes #354
2016-11-12 14:24:57 -08:00
Daniel Imms 99496de242 Point to correct assets after TS build 2016-11-12 14:01:38 -08:00
Daniel Imms 29cb576737 Merge pull request #296 from Tyriar/typescript_build_2
Move to TypeScript build
2016-11-12 13:51:12 -08:00
Daniel Imms bf4ef599ad Merge remote-tracking branch 'upstream/master' into typescript_build_2 2016-11-12 13:46:59 -08:00
Daniel Imms 5ddb33419e Merge pull request #1 from Tyriar/typescript_build_3
Refactor TS build and fix testing
2016-11-12 11:39:24 -08:00
Paris Kasidiaris bc10fbdfae Merge pull request #351 from yuvipanda/docsome
Add doc comments for *some* events
2016-11-12 12:53:02 +02:00
YuviPanda 6dcf7267a5 Add doc comment for scroll event 2016-11-11 16:28:25 -08:00
YuviPanda 5712365cac Add docstring for the open event 2016-11-11 16:27:10 -08:00
YuviPanda 1fc5a9aada Add docstring for the title event 2016-11-11 16:27:01 -08:00
Daniel Imms 38cd1bd6d7 Merge pull request #350 from sourcelair/Tyriar-patch-1
Make ttyd link bold like the others
2016-11-11 08:31:44 -08:00
Daniel Imms 771642d17d Make ttyd link bold like the others 2016-11-09 19:34:36 -08:00
Paris Kasidiaris bb19b2040b Merge pull request #347 from tsl0922/update-readme
Add ttyd to the real-world uses section of README
2016-11-09 14:52:56 +02:00
Shuanglei Tao 12840dae6c Add ttyd to the real-world uses section of README 2016-11-09 20:23:36 +08:00
Paris Kasidiaris 521d7dbdaa Bump version to 2.1.0
Signed-off-by: Paris Kasidiaris <paris@sourcelair.com>
2016-11-08 22:51:33 +00:00
Paris Kasidiaris 2cba2ff3d4 Merge pull request #345 from hiro-su/fix-ie11-right-click-paste
Fix the right click paste in IE11
2016-11-08 13:21:12 +02:00
hiro-su 547db92693 Fix the right click paste in IE11 2016-11-08 14:56:57 +09:00
Paris Kasidiaris bf334238b7 Merge pull request #339 from hiro-su/fix-ie11-copy-event
Fixed copy event in IE11
2016-11-05 15:27:50 +00:00
hiro-su 5808de648b Fixed copy event in IE11 2016-11-05 23:55:34 +09:00
Paris Kasidiaris 9ab0455b05 Merge pull request #342 from sourcelair/issue-#310-cross-browser-right-click
Make right-click work on all browsers
2016-11-04 20:40:53 +00:00
Paris Kasidiaris 55ab36662a Merge pull request #336 from sourcelair/issue-#216-no-auto-scroll-on-output
Stop auto scrolling to bottom on output
2016-11-04 19:55:07 +00:00
Paris Kasidiaris b1ad564b0d Actually fix tests 2016-11-04 21:48:53 +02:00
Paris Kasidiaris bc70b3b37d Fix tests 2016-11-04 19:36:30 +02:00
Paris Kasidiaris d426c99866 Move all browser/platform detecting in utils/Browser.js 2016-11-04 18:41:00 +02:00
Paris Kasidiaris 356377975b Fix right-click for Firefox and IE
Fix #310
2016-11-04 18:33:04 +02:00
Paris Kasidiaris 0de3d839e6 Improve experience and add test
- Scroll to bottom on keydown (when scrolled up)
- Add test to ensure above behavior
2016-11-04 12:29:17 +00:00
Paris Kasidiaris 0fcd6b1d22 Merge pull request #337 from IanLewis/master
Add main property to bower.json
2016-11-04 09:35:24 +00:00
Ian Lewis 99b5464392 Add main property to bower.json
This patch adds the main property to the project's bower.json for better
interoperability with tools like wiredep etc.
2016-11-03 17:56:58 +05:30
Paris Kasidiaris 70965a8fd6 Merge pull request #334 from hiro-su/fix-ie11-paste-key
Fixed paste key in IE11
2016-11-02 09:19:18 +00:00
hiro-su 77ca15497c Fixed paste key in IE11 2016-11-02 11:17:37 +09:00
Daniel Imms 56ecc77dfc Refactor TS build and fix testing
This change is largely just moving files with minor tweaks to them to fix,
the rest of the commit is build process changes:

- The addons/ and test/ dirs have been moved to src/
- The build directory has been removed
- TypeScript builds are output in out/, this is where tests are run
- The demo now relies on the dist/ build which is performed as part of ./bin/build
- Addons are now shipped under the ./build directory
2016-10-31 21:22:21 -07:00
Daniel Imms a995b610cf Remove typings (not needed in TS 2+) 2016-10-31 19:30:35 -07:00
Daniel Imms 332bc6be76 Merge remote-tracking branch 'upstream/master' into typescript_build_2 2016-10-31 19:29:36 -07:00
Paris Kasidiaris 26de9fe4c5 Merge pull request #332 from sourcelair/issue-#331-fix-no-selection-range
Consider click not on selection, when s.rangeCount is 0
2016-10-31 18:52:48 +00:00
Paris Kasidiaris 00dcb4f6e3 Consider click not on selection, when s.rangeCount is 0 2016-10-31 15:06:00 +02:00
Daniel Imms 996c641a79 Merge pull request #328 from Tyriar/327_fix_random_line_wrap
Force nowrap on each line
2016-10-27 07:52:48 -07:00
Daniel Imms a077860464 Force nowrap on each line
Fixes #327
2016-10-26 18:07:55 -07:00
Mikko Karvonen 5e68acfc76 Quick fix to prevent terminal scrolling when user is looking into scrollback. 2016-10-25 13:54:57 +03:00
Daniel Imms 269540bfed Merge pull request #323 from Tyriar/322_ime_bad_position
Fix the textarea in the composition view's pos when composing
2016-10-24 14:58:41 -07:00
Daniel Imms 868f15173d Fix the textarea in the composition view's pos when composing
Fixes #322
2016-10-24 11:06:25 -07:00
Paris Kasidiaris 06a93344bb Merge pull request #321 from sourcelair/issue-#313-document-terminal-constructor
Issue #313 document terminal constructor
2016-10-24 19:01:37 +03:00
Paris Kasidiaris e8e7870be2 Remove geometry option from terminal consttructor 2016-10-23 17:55:37 +03:00
Paris Kasidiaris a9417c6878 Fix term.geometry and document it in constructor options
Set `term.geometry` on terminal creation and on resize
2016-10-23 14:22:00 +00:00
Paris Kasidiaris 605d61b64f Ignore .env files that set the environment 2016-10-23 14:22:00 +00:00
Daniel Imms 8feaacf57e Merge pull request #320 from Tyriar/299_keep_textarea_in_viewport
Correctly size and position the composition view
2016-10-23 07:16:28 -07:00
Daniel Imms 553c651166 Correctly size and position the composition view 2016-10-22 16:27:17 -07:00
Daniel Imms 1ec0bac9c6 Keep composition textarea within viewport
Part of #299
2016-10-22 15:41:55 -07:00
Paris Kasidiaris b1c6ae8a06 Merge pull request #303 from staticfloat/sf/terminado
Add `Terminado` example
2016-10-17 21:03:49 +03:00
Daniel Imms 8a124d0b35 Merge pull request #308 from Tyriar/294_scroll
Implement scrollPages, scrollToTop, scrollToBottom and add scroll tests
2016-10-10 08:33:09 -07:00
Daniel Imms 0ad02a4afa Add note that negative scrolls up on scrollPages 2016-10-10 08:25:01 -07:00
Daniel Imms 9389f899d7 Merge pull request #309 from Tyriar/fix_indentation
Fix jsdoc indentation
2016-10-10 08:20:56 -07:00
Paris Kasidiaris 050a34921b Merge pull request #304 from sourcelair/update-addons-paths
Make add-ons load Terminal from dist
2016-10-10 10:12:50 +03:00
Daniel Imms 32e878db81 Fix jsdoc indentation 2016-10-09 13:23:22 -07:00
Daniel Imms 0bf7bf56a5 Add jsdoc to scrollTo functions 2016-10-09 13:20:33 -07:00
Daniel Imms e5d130b698 Add scrollToBottom 2016-10-09 13:19:11 -07:00
Daniel Imms 941e57a218 Add tests for scrollPages 2016-10-09 13:10:18 -07:00
Daniel Imms c02eea6ad3 Add tests for scrollDisp 2016-10-09 13:08:08 -07:00
Daniel Imms fe0d878b23 Implement scrollPages 2016-10-09 12:51:58 -07:00
Paris Kasidiaris 763f148fa1 Remove __dirname usage from loadAddon 2016-10-09 13:17:17 +03:00
Elliot Saba 8f0ada708f Make naming a little more self-consistent 2016-10-08 20:09:34 -07:00
Paris Kasidiaris 8117999ab3 Fix tests 2016-10-08 12:22:18 +03:00
Elliot Saba 10dd22a3d4 Rename Terminado attach and detach functions 2016-10-08 00:36:08 -07:00
Daniel Imms 738f37e86c Set travis to node 6 2016-10-07 23:01:20 -07:00
Daniel Imms 729c0abf04 Explicitly indicate test locations 2016-10-07 22:56:02 -07:00
Elliot Saba fe54da34f8 Add terminado.js, an addon for connecting to Terminado backends 2016-10-07 13:33:10 -07:00
Daniel Imms 09de0f31fa Merge pull request #301 from Tyriar/300_top_textarea_helper
Add top to textarea helper
2016-10-05 09:33:08 -07:00
Paris Kasidiaris 6ee524864e Make add-ons load the latest built version 2016-10-05 13:23:45 +03:00
Elliot Saba 8fd350f0fc Add Terminado example 2016-10-05 00:32:39 -07:00
Daniel Imms ebbeeefd86 Add top to textarea helper
Fixes #300
2016-10-04 19:03:15 -07:00
Paris Kasidiaris 76a890aa74 Bump version to 2.0.1
Signed-off-by: Paris Kasidiaris <paris@sourcelair.com>
2016-10-03 12:39:39 +00:00
Paris Kasidiaris 5ce522a401 Add built files 2016-10-03 12:39:14 +00:00
Daniel Imms bd994f9e57 Install typings on build and add to git ignore 2016-10-01 12:22:57 -07:00
Daniel Imms 441009d359 Move to TypeScript build 2016-10-01 00:29:33 -07:00
285 changed files with 28981 additions and 9467 deletions
-3
View File
@@ -1,3 +0,0 @@
{
"presets": ["es2015"]
}
+16
View File
@@ -0,0 +1,16 @@
node_modules/
*.swp
.lock-wscript
lib/
Makefile.gyp
*.Makefile
*.target.gyp.mk
*.node
example/*.log
docs/
npm-debug.log
/.idea/
.env
build/
.vscode/
.git/
+2 -1
View File
@@ -5,8 +5,9 @@ indent_style = space
indent_size = 2
insert_final_newline = true
trim_trailing_whitespace = true
end_of_line = lf
[*.js]
[*.{j,t}s]
max_line_length = 100
[*.css]
+1
View File
@@ -0,0 +1 @@
* text=auto
+17 -2
View File
@@ -1,8 +1,7 @@
node_modules/
*.swp
build/*
.lock-wscript
out/
lib/
Makefile.gyp
*.Makefile
*.target.gyp.mk
@@ -11,3 +10,19 @@ example/*.log
docs/
npm-debug.log
/.idea/
.env
build/
.vscode/
.DS_Store
fixtures/typings-test/*.js
# Directories needed for code coverage
/coverage/
# Keep legacy files out of the repo, this can be removed when we merge v3 into master
dist/
src/utils/TestUtils.ts
src/xterm.js
# Keep the demo builds out of Git
demo/dist/
View File
+16
View File
@@ -0,0 +1,16 @@
node_modules/
*.swp
.lock-wscript
lib/*.test.js
lib/*.test.js.map
lib/test/
Makefile.gyp
*.Makefile
*.target.gyp.mk
*.node
example/*.log
docs/
npm-debug.log
/.idea/
.env
build/
+15 -8
View File
@@ -1,13 +1,20 @@
language: node_js
os:
- linux
- osx
node_js:
- 4
- 6
before_install:
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test ; fi
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get -qq update ; fi
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get -qq install g++-4.8 ; fi
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then export CXX=g++-4.8 ; fi
- npm install -g npm@5.1.0
env:
- CXX=g++-4.8
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- g++-4.8
matrix:
- NPM_COMMAND=lint
- NPM_COMMAND=test
notifications:
email: false
script: npm run $NPM_COMMAND
after_success: npm run coveralls
+23
View File
@@ -0,0 +1,23 @@
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Mocha Tests",
"cwd": "${workspaceRoot}",
"runtimeExecutable": "${workspaceRoot}/node_modules/.bin/mocha",
"windows": {
"runtimeExecutable": "${workspaceRoot}/node_modules/.bin/mocha.cmd"
},
"runtimeArgs": [
"--colors",
"--recursive",
"${workspaceRoot}/lib"
],
"sourceMaps": true,
"outFiles": [ "${workspaceRoot}/lib/**/*.js" ],
"internalConsoleOptions": "openOnSessionStart"
}
]
}
+8
View File
@@ -0,0 +1,8 @@
{
"search.exclude": {
"**/node_modules": true,
"**/dist": true,
"**/build": true,
"**/lib": true
}
}
+67
View File
@@ -1,25 +1,92 @@
List of xterm.js contributors. Updated before every release.
Aleksandr Andrienko <aandrienko@codenvy.com>
Aleksandr Andriienko <oandriie@redhat.com>
Alessandro Nadalin <alessandro.nadalin@gmail.com>
Alexander Olsson <noseglid@gmail.com>
Alexey Kontsevoy <alexey@gravitational.com>
Anish Athalye <me@anishathalye.com>
Anthony Lapenna <lapenna.anthony@gmail.com>
Antonis Kalipetis <akalipetis@sourcelair.com>
Anton Skshidlevsky <meefik@gmail.com>
Anton Yurovskykh <anton.yurovskykh@gmail.com>
Artem Arbatskiy <artyom.arbatskiy@gmail.com>
Austin Robertson <austinrobertson@gmail.com>
ayapi <colors.aya@gmail.com>
Ben Hall <ben@benhall.me.uk>
Benjamin Fischer <benjamin.fischer@rwth-aachen.de>
Bill Church <billchurch@users.noreply.github.com>
Bob Reid <bobreid@Bobs-MacBook-Pro.local>
bottleofwater <nison.mael+bottleofwater@gmail.com>
Brian Mock <brian@mockbrian.com>
Bruno Ribeito <b.m.fernandes.ribeiro@gmail.com>
Carson Anderson <carson@betterservers.com>
CHaBou <chabup@delean.fr>
Christian Budde Christensen <budde377@gmail.com>
Christof Marti <chrmarti@microsoft.com>
Christopher Jeffrey <chjjeffrey@gmail.com>
coderaiser <mnemonic.enemy@gmail.com>
Dan Brown <jdanbrown@gmail.com>
Daniel Griffen <daniel@griffen.io>
Daniel Imms <daimms@microsoft.com>
Daniel Risacher <drisacher@gmail.com>
Dan Kaplun <dbkaplun@twitch.tv>
Darin Morrison <freebroccolo@users.noreply.github.com>
dcylabs <dcylabs@gmail.com>
Dominik Csapak <d.csapak@proxmox.com>
Edgar Andrés Margffoy Tuay <andfoy@gmail.com>
Elliot Saba <staticfloat@gmail.com>
Exile <exile@chamber.ee>
Felipe Gasper <felipe@felipegasper.com>
ficristo <ficristo.work@gmail.com>
Gary Ritchie <gary@rstudio.com>
hiro-su <h.sugipon@gmail.com>
Ian Lewis <ianlewis@google.com>
imoses <ido@twiggle.com>
InDieTasten <indietasten@gmail.com>
irokas <akasidiari@inf.uth.gr>
Jakob Gillich <jakob@gillich.me>
Jean Bruenn <himself@jeanbruenn.info>
Jeremy Danyow <jedanyow@microsoft.com>
Joao Moreno <jomo@microsoft.com>
Joao Moreno <mail@joaomoreno.com>
Johannes Zellner <johannes@nebulon.de>
Jon Masters <jon.masters@sky.com>
Jörg Breitbart <jerch@rockborn.de>
Justin Mecham <justin@mecham.me>
Kirill Merkushev <lanwen@yandex.ru>
Luca <LucaT1@users.noreply.github.com>
Lucian Buzzo <lucian.buzzo@gmail.com>
Lukas Drgon <lukas.drgon@gmail.com>
Maël Nison <nison.mael@gmail.com>
Marc Dumais <marc.dumais@ericsson.com>
Martin Chloride <i@martincl2.me>
Martin Koppehel <martin.koppehel@st.ovgu.de>
Martin Wang <jiahaow@ca.ibm.com>
Matt Bierner <matb@microsoft.com>
Michael Irwin <mikesir87@gmail.com>
Mikko Karvonen <mikko.karvonen@arm.com>
mofux <t.zilz@mofux.org>
Nicolas Ramz <nicolas.ramz@gmail.com>
npezza93 <npezza93@gmail.com>
Oleksandr Andriienko <oandriie@redhat.com>
Paris Kasidiaris <pariskasidiaris@gmail.com>
Paris Kasidiaris <paris@sourcelair.com>
Peter Baumgarten <me@peterbaumgarten.com>
Rick Baker <rick@ricktbaker.com>
runarberg <runar@greenqloud.com>
Samuel Williams <samuel.williams@oriontransfer.co.nz>
Saswat Das <saswatds@users.noreply.github.com>
Saul Costa <saul@codevolve.com>
Shuanglei Tao <tsl0922@gmail.com>
Steven Silvester <steven.silvester@ieee.org>
stuicey <stuicey@users.noreply.github.com>
t-amqi <umberos@gmail.com>
Thanasis Daglis <thanasis@sourcelair.com>
thomas <thomas@kreativkonzentrat.de>
Thomas Zilz <t.zilz@mofux.org>
Tine Jozelj <tine.jozelj@outlook.com>
Tyler Jewell <tjewell@codenvy.com>
Vincent Woo <me@vincentwoo.com>
yutaka <shigure@refy.net>
YuviPanda <yuvipanda@gmail.com>
+17 -2
View File
@@ -1,4 +1,19 @@
FROM node:4-onbuild
FROM node:6
MAINTAINER Paris Kasidiaris <paris@sourcelair.com>
EXPOSE 3000
# Set the working directory
WORKDIR /usr/src/app
# Set an entrypoint, to automatically install node modules
ENTRYPOINT ["/bin/bash", "-c", "if [[ ! -d node_modules ]]; then npm install; fi; exec \"${@:0}\";"]
CMD ["npm", "run", "start"]
# First, install dependencies to improve layer caching
COPY package.json /usr/src/app/
RUN npm install
# Add the code
COPY . /usr/src/app
# Run the tests and build, to make sure everything is working nicely
RUN npm run build && npm run test
View File
+108 -41
View File
@@ -1,6 +1,6 @@
# xterm.js
# [![xterm.js logo](logo-full.png)](https://xtermjs.org)
![xterm.js build status](https://api.travis-ci.org/sourcelair/xterm.js.svg) [![Gitter](https://badges.gitter.im/sourcelair/xterm.js.svg)](https://gitter.im/sourcelair/xterm.js?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
[![xterm.js build status](https://api.travis-ci.org/xtermjs/xterm.js.svg)](https://travis-ci.org/xtermjs/xterm.js) [![Coverage Status](https://coveralls.io/repos/github/sourcelair/xterm.js/badge.svg)](https://coveralls.io/github/sourcelair/xterm.js) [![Gitter](https://badges.gitter.im/sourcelair/xterm.js.svg)](https://gitter.im/sourcelair/xterm.js?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) [![jsDelivr Hits](https://data.jsdelivr.com/v1/package/npm/xterm/badge?style=rounded)](https://www.jsdelivr.com/package/npm/xterm)
Xterm.js is a terminal front-end component written in JavaScript that works in the browser.
@@ -19,54 +19,133 @@ It enables applications to provide fully featured terminals to their users and c
- Xterm.js is not a terminal application that you can download and use on your computer
- Xterm.js is not `bash`. Xterm.js can be connected to processes like `bash` and let you interact with them (provide input, receive output)
## Real-world uses
Xterm.js is used in several world-class applications to provide great terminal experiences.
## Getting Started
- [**SourceLair**](https://www.sourcelair.com/): In-browser IDE that provides its users with fully-featured Linux terminals based on xterm.js
- [**Microsoft Visual Studio Code**](http://code.visualstudio.com/): Modern, versatile and powerful open source code editor that provides an integrated terminal based on xterm.js
First you need to install the module, we ship exclusively through [npm](https://www.npmjs.com/) so you need that installed and then add xterm.js as a dependency by running:
Do you use xterm.js in your application as well? Please [open a Pull Request](https://github.com/sourcelair/xterm.js/pulls) to include it here. We would love to have it in our list.
```
npm install
```
To start using xterm.js on your browser, add the `xterm.js` and `xterm.css` to the head of your html page. Then create a `<div id="terminal"></div>` onto which xterm can attach itself.
```html
<!doctype html>
<html>
<head>
<link rel="stylesheet" href="node_modules/xterm/dist/xterm.css" />
<script src="node_modules/xterm/dist/xterm.js"></script>
</head>
<body>
<div id="terminal"></div>
<script>
var term = new Terminal();
term.open(document.getElementById('terminal'));
term.write('Hello from \033[1;3;31mxterm.js\033[0m $ ')
</script>
</body>
</html>
```
Finally instantiate the `Terminal` object and then call the `open` function with the DOM object of the `div`.
### Importing
The proposed way to load xterm.js is via the ES6 module syntax.
```javascript
import { Terminal } from 'xterm';
```
*Note: There are currently no typings for addons so you will need to upcast if using TypeScript, eg. `(<any>xterm).fit()`.*
### Addons
Addons are JavaScript modules that extend the `Terminal` prototype with new methods and attributes to provide additional functionality. There are a handful available in the main repository in the `src/addons` directory and you can even write your own, by using xterm.js' public API.
To use an addon, just import the JavaScript module and pass it to `Terminal`'s `applyAddon` method:
```javascript
import { Terminal } from xterm;
import * as fit from 'xterm/lib/addons/fit/fit';
Terminal.applyAddon(fit);
var xterm = new Terminal(); // Instantiate the terminal
xterm.fit(); // Use the `fit` method, provided by the `fit` addon
```
## 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 we aim to support:
- Chrome 48+
- Edge 13+
- Firefox 44+
- Internet Explorer 11+
- Opera 35+
- Safari 8+
- Chrome latest
- Edge latest
- Firefox latest
- Safari latest
- IE11
Xterm.js works seamlessly in Electron apps and may even work on earlier versions of the browsers but these are the browsers we strive to keep working.
## Real-world uses
Xterm.js is used in several world-class applications to provide great terminal experiences.
- [**SourceLair**](https://www.sourcelair.com/): In-browser IDE that provides its users with fully-featured Linux terminals based on xterm.js
- [**Microsoft Visual Studio Code**](http://code.visualstudio.com/): Modern, versatile and powerful open source code editor that provides an integrated terminal based on xterm.js
- [**ttyd**](https://github.com/tsl0922/ttyd): A command-line tool for sharing terminal over the web, with fully-featured terminal emulation based on xterm.js
- [**Katacoda**](https://www.katacoda.com/): Katacoda is an Interactive Learning Platform for software developers, covering the latest Cloud Native technologies.
- [**Eclipse Che**](http://www.eclipse.org/che): Developer workspace server, cloud IDE, and Eclipse next-generation IDE.
- [**Codenvy**](http://www.codenvy.com): Cloud workspaces for development teams.
- [**CoderPad**](https://coderpad.io): Online interviewing platform for programmers. Run code in many programming languages, with results displayed by `xterm.js`.
- [**WebSSH2**](https://github.com/billchurch/WebSSH2): A web based SSH2 client using `xterm.js`, socket.io, and ssh2.
- [**Spyder Terminal**](https://github.com/spyder-ide/spyder-terminal): A full fledged system terminal embedded on Spyder IDE.
- [**Cloud Commander**](https://cloudcmd.io "Cloud Commander"): Orthodox web file manager with console and editor.
- [**Codevolve**](https://www.codevolve.com "Codevolve"): Online platform for interactive coding and web development courses. Live container-backed terminal uses `xterm.js`.
- [**RStudio**](https://www.rstudio.com/products/RStudio "RStudio"): RStudio is an integrated development environment (IDE) for R.
- [**Terminal for Atom**](https://github.com/jsmecham/atom-terminal-tab): A simple terminal for the Atom text editor.
- [**Eclipse Orion**](https://orionhub.org): A modern, open source software development environment that runs in the cloud. Code, deploy and run in the cloud.
- [**Gravitational Teleport**](https://github.com/gravitational/teleport): Gravitational Teleport is a modern SSH server for remotely accessing clusters of Linux servers via SSH or HTTPS.
- [**Hexlet**](https://en.hexlet.io): Practical programming courses (JavaScript, PHP, Unix, databases, functional programming). A steady path from the first line of code to the first job.
- [**Selenoid UI**](https://github.com/aerokube/selenoid-ui): Simple UI for the scallable golang implementation of Selenium Hub named Selenoid. We use XTerm for streaming logs over websockets from docker containers.
- [**Portainer**](https://portainer.io): Simple management UI for Docker.
- [**SSHy**](https://github.com/stuicey/SSHy): HTML5 Based SSHv2 Web Client with E2E encryption utilising `xterm.js`, SJCL & websockets.
- [**JupyterLab**](https://github.com/jupyterlab/jupyterlab): An extensible
computational environment for Jupyter, supporting interactive data science and scientific computing across all programming languages.
- [**Theia**](https://github.com/theia-ide/theia): Theia is a cloud & desktop IDE framework implemented in TypeScript.
- [**Opshell**](https://github.com/ricktbaker/opshell) Ops Helper tool to make life easier working with AWS instances across multiple organizations.
- [**Proxmox VE**](https://www.proxmox.com/en/proxmox-ve): Proxmox VE is a complete open-source platform for enterprise virtualization. It uses xterm.js for container terminals and the host shell.
- [**Script Runner**](https://github.com/ioquatix/script-runner): Run scripts (or a shell) in Atom.
- [**Whack Whack Terminal**](https://github.com/Microsoft/WhackWhackTerminal): Terminal emulator for Visual Studio 2017.
- [**VTerm**](https://github.com/vterm/vterm): Extensible terminal emulator based on Electron and React.
Do you use xterm.js in your application as well? Please [open a Pull Request](https://github.com/sourcelair/xterm.js/pulls) to include it here. We would love to have it in our list.
## Demo
To launch the demo simply run:
### Linux or macOS
First, be sure that a C++ compiler such as GCC-C++ or Clang is installed, then run these commands:
```
npm install
npm start
```
Then open http://0.0.0.0:3000 in a web browser (use http://127.0.0.1:3000 if running under Windows).
Then open http://0.0.0.0:3000 in a web browser.
## Addons
### Windows
Addons are JavaScript modules that attach functions to the `Terminal` prototype to extend its functionality. There are a handful available in the main repository in the `addons` directory, you can even write your own (though they may break when the internals of xterm.js change across versions).
First, ensure [node-gyp](https://github.com/nodejs/node-gyp) is installed and configured correctly, then run these commands.
To use an addon, just include the JavaScript file after xterm.js and before the `Terminal` object has been instantiated. The function should then be exposed on the `Terminal` object:
```html
<script src="node_modules/dist/xterm.js"></script>
<script src="node_modules/addons/fit/fit.js"></script>
```
npm install
npm start
```
```js
var xterm = new Terminal();
// init code...
xterm.fit();
```
Then open http://127.0.0.1:3000 in a web browser.
*Note: Do not use ConEmu, as it seems to break the demo for some reason.*
## Releases
@@ -78,24 +157,12 @@ The existing releases are available at this GitHub repo's [Releases](https://git
Xterm.js is maintained by [SourceLair](https://www.sourcelair.com/) and a few external contributors, but we would love to receive contributions from everyone!
To contribute either code, documentation or issues to xterm.js please read the [Contributing document](CONTRIBUTING.md) before.
The development of xterm.js does not require any special tool. All you need is an editor that supports JavaScript and a browser (if you would like to run the demo you will need Node.js to get all features).
It is recommended though to use a development tool that uses xterm.js internally, to develop for xterm.js. [Eating our own dogfood](https://en.wikipedia.org/wiki/Eating_your_own_dog_food) has been proved extremely beneficial for this project. Known tools that use xterm.js internally are:
#### [SourceLair](https://www.sourcelair.com)
Visit https://lair.io/sourcelair/xterm and follow the instructions. All development will happen in your browser.
#### [Visual Studio Code](http://code.visualstudio.com/)
[Download Visual Studio Code](http://code.visualstudio.com/Download), clone xterm.js and you are all set.
To contribute either code, documentation or issues to xterm.js please read the [Contributing document](CONTRIBUTING.md) beforehand. The development of xterm.js does not require any special tool. All you need is an editor that supports JavaScript/TypeScript and a browser. You will need Node.js installed locally to get all the features working in the demo.
## License Agreement
If you contribute code to this project, you are implicitly allowing your code to be distributed under the MIT license. You are also implicitly verifying that all code is your original work.
Copyright (c) 2014-2016, SourceLair, Private Company ([www.sourcelair.com](https://www.sourcelair.com/home)) (MIT License)
Copyright (c) 2014-2017, SourceLair, Private Company ([www.sourcelair.com](https://www.sourcelair.com/home)) (MIT License)
Copyright (c) 2012-2013, Christopher Jeffrey (MIT License)
-134
View File
@@ -1,134 +0,0 @@
/*
* Implements the attach method, that
* attaches the terminal to a WebSocket stream.
*
* The bidirectional argument indicates, whether the terminal should
* send data to the socket as well and is true, by default.
*/
(function (attach) {
if (typeof exports === 'object' && typeof module === 'object') {
/*
* CommonJS environment
*/
module.exports = attach(require('../../src/xterm'));
} else if (typeof define == 'function') {
/*
* Require.js is available
*/
define(['../../src/xterm'], attach);
} else {
/*
* Plain browser environment
*/
attach(window.Terminal);
}
})(function (Xterm) {
'use strict';
/**
* This module provides methods for attaching a terminal to a WebSocket
* stream.
*
* @module xterm/addons/attach/attach
*/
var exports = {};
/**
* Attaches the given terminal to the given socket.
*
* @param {Xterm} term - The terminal to be attached to the given socket.
* @param {WebSocket} socket - The socket to attach the current terminal.
* @param {boolean} bidirectional - Whether the terminal should send data
* to the socket as well.
* @param {boolean} buffered - Whether the rendering of incoming data
* should happen instantly or at a maximum
* frequency of 1 rendering per 10ms.
*/
exports.attach = function (term, socket, bidirectional, buffered) {
bidirectional = (typeof bidirectional == 'undefined') ? true : bidirectional;
term.socket = socket;
term._flushBuffer = function () {
term.write(term._attachSocketBuffer);
term._attachSocketBuffer = null;
clearTimeout(term._attachSocketBufferTimer);
term._attachSocketBufferTimer = null;
};
term._pushToBuffer = function (data) {
if (term._attachSocketBuffer) {
term._attachSocketBuffer += data;
} else {
term._attachSocketBuffer = data;
setTimeout(term._flushBuffer, 10);
}
};
term._getMessage = function (ev) {
if (buffered) {
term._pushToBuffer(ev.data);
} else {
term.write(ev.data);
}
};
term._sendData = function (data) {
socket.send(data);
};
socket.addEventListener('message', term._getMessage);
if (bidirectional) {
term.on('data', term._sendData);
}
socket.addEventListener('close', term.detach.bind(term, socket));
socket.addEventListener('error', term.detach.bind(term, socket));
};
/**
* Detaches the given terminal from the given socket
*
* @param {Xterm} term - The terminal to be detached from the given socket.
* @param {WebSocket} socket - The socket from which to detach the current
* terminal.
*/
exports.detach = function (term, socket) {
term.off('data', term._sendData);
socket = (typeof socket == 'undefined') ? term.socket : socket;
if (socket) {
socket.removeEventListener('message', term._getMessage);
}
delete term.socket;
};
/**
* Attaches the current terminal to the given socket
*
* @param {WebSocket} socket - The socket to attach the current terminal.
* @param {boolean} bidirectional - Whether the terminal should send data
* to the socket as well.
* @param {boolean} buffered - Whether the rendering of incoming data
* should happen instantly or at a maximum
* frequency of 1 rendering per 10ms.
*/
Xterm.prototype.attach = function (socket, bidirectional, buffered) {
return exports.attach(this, socket, bidirectional, buffered);
};
/**
* Detaches the current terminal from the given socket.
*
* @param {WebSocket} socket - The socket from which to detach the current
* terminal.
*/
Xterm.prototype.detach = function (socket) {
return exports.detach(this, socket);
};
return exports;
});
-86
View File
@@ -1,86 +0,0 @@
/*
* Fit terminal columns and rows to the dimensions of its
* DOM element.
*
* Approach:
* - Rows: Truncate the division of the terminal parent element height
* by the terminal row height
*
* - Columns: Truncate the division of the terminal parent element width by
* the terminal character width (apply display: inline at the
* terminal row and truncate its width with the current number
* of columns)
*/
(function (fit) {
if (typeof exports === 'object' && typeof module === 'object') {
/*
* CommonJS environment
*/
module.exports = fit(require('../../src/xterm'));
} else if (typeof define == 'function') {
/*
* Require.js is available
*/
define(['../../src/xterm'], fit);
} else {
/*
* Plain browser environment
*/
fit(window.Terminal);
}
})(function (Xterm) {
/**
* This module provides methods for fitting a terminal's size to a parent container.
*
* @module xterm/addons/fit/fit
*/
var exports = {};
exports.proposeGeometry = function (term) {
var parentElementStyle = window.getComputedStyle(term.element.parentElement),
parentElementHeight = parseInt(parentElementStyle.getPropertyValue('height')),
parentElementWidth = parseInt(parentElementStyle.getPropertyValue('width')),
elementStyle = window.getComputedStyle(term.element),
elementPaddingVer = parseInt(elementStyle.getPropertyValue('padding-top')) + parseInt(elementStyle.getPropertyValue('padding-bottom')),
elementPaddingHor = parseInt(elementStyle.getPropertyValue('padding-right')) + parseInt(elementStyle.getPropertyValue('padding-left')),
availableHeight = parentElementHeight - elementPaddingVer,
availableWidth = parentElementWidth - elementPaddingHor,
container = term.rowContainer,
subjectRow = term.rowContainer.firstElementChild,
contentBuffer = subjectRow.innerHTML,
characterHeight,
rows,
characterWidth,
cols,
geometry;
subjectRow.style.display = 'inline';
subjectRow.innerHTML = 'W'; // Common character for measuring width, although on monospace
characterWidth = subjectRow.getBoundingClientRect().width;
subjectRow.style.display = ''; // Revert style before calculating height, since they differ.
characterHeight = parseInt(subjectRow.offsetHeight);
subjectRow.innerHTML = contentBuffer;
rows = parseInt(availableHeight / characterHeight);
cols = parseInt(availableWidth / characterWidth) - 1;
geometry = {cols: cols, rows: rows};
return geometry;
};
exports.fit = function (term) {
var geometry = exports.proposeGeometry(term);
term.resize(geometry.cols, geometry.rows);
};
Xterm.prototype.proposeGeometry = function () {
return exports.proposeGeometry(this);
};
Xterm.prototype.fit = function () {
return exports.fit(this);
};
return exports;
});
-52
View File
@@ -1,52 +0,0 @@
/*
* Fullscreen addon for xterm.js
*
* Implements the toggleFullscreen function.
*
* If the `fullscreen` argument has been supplied, then
* if it is true, the fullscreen mode gets turned on,
* if it is false or null, the fullscreen mode gets turned off.
*
* If the `fullscreen` argument has not been supplied, the
* fullscreen mode is being toggled.
*/
(function (fullscreen) {
if (typeof exports === 'object' && typeof module === 'object') {
/*
* CommonJS environment
*/
module.exports = fullscreen(require('../../src/xterm'));
} else if (typeof define == 'function') {
/*
* Require.js is available
*/
define(['../../src/xterm'], fullscreen);
} else {
/*
* Plain browser environment
*/
fullscreen(window.Terminal);
}
})(function (Xterm) {
var exports = {};
exports.toggleFullScreen = function (term, fullscreen) {
var fn;
if (typeof fullscreen == 'undefined') {
fn = (term.element.classList.contains('fullscreen')) ? 'remove' : 'add';
} else if (!fullscreen) {
fn = 'remove';
} else {
fn = 'add';
}
term.element.classList[fn]('fullscreen');
};
Xterm.prototype.toggleFullscreen = function (fullscreen) {
exports.toggleFullScreen(this, fullscreen);
};
return exports;
});
-36
View File
@@ -1,36 +0,0 @@
<!doctype html>
<html>
<head>
<link rel="stylesheet" href="../../src/xterm.css" />
<link rel="stylesheet" href="../../demo/style.css" />
<script src="../../src/xterm.js"></script>
<script src="linkify.js"></script>
<style>
body {
color: #111;
}
#terminal-container {
max-width: 900px;
margin: 0 auto;
}
#terminal-container a {
color: #fff;
}
</style>
</head>
<body>
<div id="terminal-container"></div>
<script>
var term = new Terminal(),
container = document.getElementById('terminal-container');
term.open(container);
term.writeln('Hello, welcome to xterm.js');
term.writeln('');
term.writeln('Check it out at github.com/sourcelair/xterm.js');
term.linkify();
</script>
</body>
</html>
-207
View File
@@ -1,207 +0,0 @@
(function (linkify) {
if (typeof exports === 'object' && typeof module === 'object') {
/*
* CommonJS environment
*/
module.exports = linkify(require('../../src/xterm'));
} else if (typeof define == 'function') {
/*
* Require.js is available
*/
define(['../../src/xterm'], linkify);
} else {
/*
* Plain browser environment
*/
linkify(window.Terminal);
}
})(function (Xterm) {
'use strict';
/**
* This module provides methods for convertings valid URL substrings
* into HTML anchor elements (links), inside a terminal view.
*
* @module xterm/addons/linkify/linkify
*/
var exports = {},
protocolClause = '(https?:\\/\\/)',
domainCharacterSet = '[\\da-z\\.-]+',
negatedDomainCharacterSet = '[^\\da-z\\.-]+',
domainBodyClause = '(' + domainCharacterSet + ')',
tldClause = '([a-z\\.]{2,6})',
ipClause = '((\\d{1,3}\\.){3}\\d{1,3})',
portClause = '(:\\d{1,5})',
hostClause = '((' + domainBodyClause + '\\.' + tldClause + ')|' + ipClause + ')' + portClause + '?',
pathClause = '(\\/[\\/\\w\\.-]*)*',
negatedPathCharacterSet = '[^\\/\\w\\.-]+',
bodyClause = hostClause + pathClause,
start = '(?:^|' + negatedDomainCharacterSet + ')(',
end = ')($|' + negatedPathCharacterSet + ')',
lenientUrlClause = start + protocolClause + '?' + bodyClause + end,
strictUrlClause = start + protocolClause + bodyClause + end,
lenientUrlRegex = new RegExp(lenientUrlClause),
strictUrlRegex = new RegExp(strictUrlClause);
/**
* Converts all valid URLs found in the given terminal line into
* hyperlinks. The terminal line can be either the HTML element itself
* or the index of the termina line in the children of the terminal
* rows container.
*
* @param {Xterm} terminal - The terminal that owns the given line.
* @param {number|HTMLDivElement} line - The terminal line that should get
* "linkified".
* @param {boolean} lenient - The regex type that will be used to identify links. If lenient is
* false, the regex requires a protocol clause. Defaults to true.
* @param {string} target - Sets target="" attribute with value provided to links.
* Default doesn't set target attribute
* @emits linkify
* @emits linkify:line
*/
exports.linkifyTerminalLine = function (terminal, line, lenient, target) {
if (typeof line == 'number') {
line = terminal.rowContainer.children[line];
} else if (! (line instanceof HTMLDivElement)) {
var message = 'The "line" argument should be either a number';
message += ' or an HTMLDivElement';
throw new TypeError(message);
}
if (typeof target === 'undefined') {
target = '';
} else {
target = 'target="' + target + '"';
}
var buffer = document.createElement('span'),
nodes = line.childNodes;
for (var j=0; j<nodes.length; j++) {
var node = nodes[j],
match;
/**
* Since we cannot access the TextNode's HTML representation
* from the instance itself, we assign its data as textContent
* to a dummy buffer span, in order to retrieve the TextNode's
* HTML representation from the buffer's innerHTML.
*/
buffer.textContent = node.data;
var nodeHTML = buffer.innerHTML;
/**
* Apply function only on TextNodes
*/
if (node.nodeType != node.TEXT_NODE) {
continue;
}
var url = exports.findLinkMatch(node.data, lenient);
if (!url) {
continue;
}
var startsWithProtocol = new RegExp('^' + protocolClause),
urlHasProtocol = url.match(startsWithProtocol),
href = (urlHasProtocol) ? url : 'http://' + url,
link = '<a href="' + href + '" ' + target + '>' + url + '</a>',
newHTML = nodeHTML.replace(url, link);
line.innerHTML = line.innerHTML.replace(nodeHTML, newHTML);
}
/**
* This event gets emitted when conversion of all URL susbtrings
* to HTML anchor elements (links) has finished, for a specific
* line of the current Xterm instance.
*
* @event linkify:line
*/
terminal.emit('linkify:line', line);
};
/**
* Finds a link within a block of text.
*
* @param {string} text - The text to search .
* @param {boolean} lenient - Whether to use the lenient search.
* @return {string} A URL.
*/
exports.findLinkMatch = function (text, lenient) {
var match = text.match(lenient ? lenientUrlRegex : strictUrlRegex);
if (!match || match.length === 0) {
return null;
}
return match[1];
}
/**
* Converts all valid URLs found in the terminal view into hyperlinks.
*
* @param {Xterm} terminal - The terminal that should get "linkified".
* @param {boolean} lenient - The regex type that will be used to identify links. If lenient is
* false, the regex requires a protocol clause. Defaults to true.
* @param {string} target - Sets target="" attribute with value provided to links.
* Default doesn't set target attribute
* @emits linkify
* @emits linkify:line
*/
exports.linkify = function (terminal, lenient, target) {
var rows = terminal.rowContainer.children;
lenient = (typeof lenient == "boolean") ? lenient : true;
for (var i=0; i<rows.length; i++) {
var line = rows[i];
exports.linkifyTerminalLine(terminal, line, lenient, target);
}
/**
* This event gets emitted when conversion of all URL substrings to
* HTML anchor elements (links) has finished for the current Xterm
* instance's view.
*
* @event linkify
*/
terminal.emit('linkify');
};
/**
* Extend Xterm prototype.
*/
/**
* Converts all valid URLs found in the current terminal linte into
* hyperlinks.
*
* @memberof Xterm
* @param {number|HTMLDivElement} line - The terminal line that should get
* "linkified".
* @param {boolean} lenient - The regex type that will be used to identify links. If lenient is
* false, the regex requires a protocol clause. Defaults to true.
* @param {string} target - Sets target="" attribute with value provided to links.
* Default doesn't set target attribute
*/
Xterm.prototype.linkifyTerminalLine = function (line, lenient, target) {
return exports.linkifyTerminalLine(this, line, lenient, target);
};
/**
* Converts all valid URLs found in the current terminal into hyperlinks.
*
* @memberof Xterm
* @param {boolean} lenient - The regex type that will be used to identify links. If lenient is
* false, the regex requires a protocol clause. Defaults to true.
* @param {string} target - Sets target="" attribute with value provided to links.
* Default doesn't set target attribute
*/
Xterm.prototype.linkify = function (lenient, target) {
return exports.linkify(this, lenient, target);
};
return exports;
});
-5
View File
@@ -1,5 +0,0 @@
{
"name": "xterm.linkify",
"main": "linkify.js",
"private": true
}
-38
View File
@@ -1,38 +0,0 @@
#! /usr/bin/env node
var child_process = require('child_process');
var fs = require('fs');
var buildDir = process.env.BUILD_DIR || 'build';
if (!fs.existsSync(buildDir)){
fs.mkdirSync(buildDir);
}
// Add `node_modules/.bin` to PATH
process.env.PATH = process.cwd() + '/node_modules/.bin:' + process.env.PATH;
console.log('Building xterm.js into ' + buildDir);
// Build ES2015 modules into ES5 form, then concatenate them,
// then remove unused require calls and save in output file with source map.
console.log(' - Building ' + buildDir + '/xterm.js...');
var jsBuildCmd = 'browserify src/xterm.js -s Terminal -t [ babelify --presets [ es2015 ] ] --debug | ';
jsBuildCmd += 'derequire | exorcist ' + buildDir + '/xterm.js.map > ' + buildDir + '/xterm.js';
var jsBuildProcess = child_process.execSync(jsBuildCmd);
if (jsBuildProcess.status) {
console.log(jsBuildProcess.error);
}
console.log(' OK.');
// Copy CSS into $BUILD_DIR
console.log(' - Building ' + buildDir + '/xterm.css...');
fs.createReadStream('src/xterm.css').pipe(
fs.createWriteStream(buildDir + '/xterm.css')
);
console.log(' OK.');
+2 -9
View File
@@ -12,23 +12,16 @@ CURRENT_PACKAGE_JSON_VERSION=$(cat package.json \
| awk -F: '{ print $2 }' \
| sed 's/[",]//g' \
| tr -d '[[:space:]]')
CURRENT_BOWER_JSON_VERSION=$(cat bower.json \
| grep version \
| head -1 \
| awk -F: '{ print $2 }' \
| sed 's/[",]//g' \
| tr -d '[[:space:]]')
# Build xterm.js into `dist`
export BUILD_DIR=dist
./bin/build
npm run build
# Update AUTHORS file
sh bin/generate-authors
# Update version in package.json and bower.json
# Update version in package.json
sed -i "s/\"version\": \"$CURRENT_PACKAGE_JSON_VERSION\"/\"version\": \"$NEW_VERSION\"/g" package.json
sed -i "s/\"version\": \"$CURRENT_BOWER_JSON_VERSION\"/\"version\": \"$NEW_VERSION\"/g" bower.json
git commit -S -s -a -m "Bump version to $NEW_VERSION"
git tag $NEW_VERSION
-5
View File
@@ -1,5 +0,0 @@
{
"name": "xterm.js",
"version": "2.0.0",
"ignore": ["demo", "test", ".gitignore"]
}
+8 -5
View File
@@ -2,13 +2,12 @@ var express = require('express');
var app = express();
var expressWs = require('express-ws')(app);
var os = require('os');
var pty = require('pty.js');
var pty = require('node-pty');
var terminals = {},
logs = {};
app.use('/build', express.static(__dirname + '/../build'));
app.use('/addons', express.static(__dirname + '/../addons'));
app.get('/', function(req, res){
res.sendFile(__dirname + '/index.html');
@@ -18,8 +17,12 @@ app.get('/style.css', function(req, res){
res.sendFile(__dirname + '/style.css');
});
app.get('/main.js', function(req, res){
res.sendFile(__dirname + '/main.js');
app.get('/dist/bundle.js', function(req, res){
res.sendFile(__dirname + '/dist/bundle.js');
});
app.get('/dist/bundle.js.map', function(req, res){
res.sendFile(__dirname + '/dist/bundle.js.map');
});
app.post('/terminals', function (req, res) {
@@ -70,7 +73,7 @@ app.ws('/terminals/:pid', function (ws, req) {
term.write(msg);
});
ws.on('close', function () {
process.kill(term.pid);
term.kill();
console.log('Closed terminal ' + term.pid);
// Clean things up
delete terminals[term.pid];
+41 -8
View File
@@ -2,21 +2,54 @@
<html>
<head>
<title>xterm.js demo</title>
<link rel="stylesheet" href="../build/xterm.css" />
<link rel="stylesheet" href="../addons/fullscreen/fullscreen.css" />
<link rel="stylesheet" href="/build/xterm.css" />
<link rel="stylesheet" href="/build/addons/fullscreen/fullscreen.css" />
<link rel="stylesheet" href="style.css" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/es6-promise/4.1.1/es6-promise.auto.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/fetch/1.0.0/fetch.min.js"></script>
<script src="../build/xterm.js" ></script>
<script src="../addons/attach/attach.js" ></script>
<script src="../addons/fit/fit.js" ></script>
<script src="../addons/fullscreen/fullscreen.js" ></script>
</head>
<body>
<h1>xterm.js: xterm, in the browser</h1>
<div id="terminal-container"></div>
<div>
<h2>Actions</h2>
<p>
<label>Find next <input id="find-next"/></label>
<label>Find previous <input id="find-previous"/></label>
</p>
</div>
<div>
<h2>Options</h2>
<label><input type="checkbox" id="option-cursor-blink"> cursorBlink</label>
<p>
<label><input type="checkbox" id="option-cursor-blink"> cursorBlink</label>
</p>
<p>
<label>
cursorStyle
<select id="option-cursor-style">
<option value="block">block</option>
<option value="underline">underline</option>
<option value="bar">bar</option>
</select>
</label>
</p>
<p>
<label>
bellStyle
<select id="option-bell-style">
<option value="">none</option>
<option value="sound">sound</option>
<option value="visual">visual</option>
<option value="both">both</option>
</select>
</label>
</p>
<p>
<label>scrollback <input type="number" id="option-scrollback" value="1000" /></label>
</p>
<p>
<label>tabStopWidth <input type="number" id="option-tabstopwidth" value="8" /></label>
</p>
<div>
<h3>Size</h3>
<div>
@@ -32,6 +65,6 @@
</div>
</div>
<p><strong>Attention:</strong> The demo is a barebones implementation and is designed for xterm.js evaluation purposes only. Exposing the demo to the public as is would introduce security risks for the host.</p>
<script src="main.js" defer ></script>
<script src="dist/bundle.js" defer ></script>
</body>
</html>
+82 -29
View File
@@ -1,23 +1,46 @@
import * as Terminal from '../build/xterm';
import * as attach from '../build/addons/attach/attach';
import * as fit from '../build/addons/fit/fit';
import * as fullscreen from '../build/addons/fullscreen/fullscreen';
import * as search from '../build/addons/search/search';
import * as winptyCompat from '../build/addons/winptyCompat/winptyCompat';
Terminal.applyAddon(attach);
Terminal.applyAddon(fit);
Terminal.applyAddon(fullscreen);
Terminal.applyAddon(search);
Terminal.applyAddon(winptyCompat);
var term,
protocol,
socketURL,
socket,
pid,
charWidth,
charHeight;
pid;
var terminalContainer = document.getElementById('terminal-container'),
actionElements = {
findNext: document.querySelector('#find-next'),
findPrevious: document.querySelector('#find-previous')
},
optionElements = {
cursorBlink: document.querySelector('#option-cursor-blink')
cursorBlink: document.querySelector('#option-cursor-blink'),
cursorStyle: document.querySelector('#option-cursor-style'),
scrollback: document.querySelector('#option-scrollback'),
tabstopwidth: document.querySelector('#option-tabstopwidth'),
bellStyle: document.querySelector('#option-bell-style')
},
colsElement = document.getElementById('cols'),
rowsElement = document.getElementById('rows');
function setTerminalSize () {
var cols = parseInt(colsElement.value),
rows = parseInt(rowsElement.value),
width = (cols * charWidth).toString() + 'px',
height = (rows * charHeight).toString() + 'px';
function setTerminalSize() {
var cols = parseInt(colsElement.value, 10);
var rows = parseInt(rowsElement.value, 10);
var viewportElement = document.querySelector('.xterm-viewport');
var scrollBarWidth = viewportElement.offsetWidth - viewportElement.clientWidth;
var width = (cols * term.renderer.dimensions.actualCellWidth + 20 /*room for scrollbar*/).toString() + 'px';
var height = (rows * term.renderer.dimensions.actualCellHeight).toString() + 'px';
terminalContainer.style.width = width;
terminalContainer.style.height = height;
@@ -27,7 +50,34 @@ function setTerminalSize () {
colsElement.addEventListener('change', setTerminalSize);
rowsElement.addEventListener('change', setTerminalSize);
optionElements.cursorBlink.addEventListener('change', createTerminal);
actionElements.findNext.addEventListener('keypress', function (e) {
if (e.key === "Enter") {
e.preventDefault();
term.findNext(actionElements.findNext.value);
}
});
actionElements.findPrevious.addEventListener('keypress', function (e) {
if (e.key === "Enter") {
e.preventDefault();
term.findPrevious(actionElements.findPrevious.value);
}
});
optionElements.cursorBlink.addEventListener('change', function () {
term.setOption('cursorBlink', optionElements.cursorBlink.checked);
});
optionElements.cursorStyle.addEventListener('change', function () {
term.setOption('cursorStyle', optionElements.cursorStyle.value);
});
optionElements.bellStyle.addEventListener('change', function () {
term.setOption('bellStyle', optionElements.bellStyle.value);
});
optionElements.scrollback.addEventListener('change', function () {
term.setOption('scrollback', parseInt(optionElements.scrollback.value, 10));
});
optionElements.tabstopwidth.addEventListener('change', function () {
term.setOption('tabStopWidth', parseInt(optionElements.tabstopwidth.value, 10));
});
createTerminal();
@@ -37,8 +87,11 @@ function createTerminal() {
terminalContainer.removeChild(terminalContainer.children[0]);
}
term = new Terminal({
cursorBlink: optionElements.cursorBlink.checked
cursorBlink: optionElements.cursorBlink.checked,
scrollback: parseInt(optionElements.scrollback.value, 10),
tabStopWidth: parseInt(optionElements.tabstopwidth.value, 10)
});
window.term = term; // Expose `term` to window for debugging purposes
term.on('resize', function (size) {
if (!pid) {
return;
@@ -53,32 +106,32 @@ function createTerminal() {
socketURL = protocol + location.hostname + ((location.port) ? (':' + location.port) : '') + '/terminals/';
term.open(terminalContainer);
term.winptyCompatInit();
term.fit();
term.focus();
var initialGeometry = term.proposeGeometry(),
cols = initialGeometry.cols,
rows = initialGeometry.rows;
// fit is called within a setTimeout, cols and rows need this.
setTimeout(function () {
colsElement.value = term.cols;
rowsElement.value = term.rows;
colsElement.value = cols;
rowsElement.value = rows;
// Set terminal size again to set the specific dimensions on the demo
setTerminalSize();
fetch('/terminals?cols=' + cols + '&rows=' + rows, {method: 'POST'}).then(function (res) {
fetch('/terminals?cols=' + term.cols + '&rows=' + term.rows, {method: 'POST'}).then(function (res) {
charWidth = Math.ceil(term.element.offsetWidth / cols);
charHeight = Math.ceil(term.element.offsetHeight / rows);
res.text().then(function (pid) {
window.pid = pid;
socketURL += pid;
socket = new WebSocket(socketURL);
socket.onopen = runRealTerminal;
socket.onclose = runFakeTerminal;
socket.onerror = runFakeTerminal;
res.text().then(function (processId) {
pid = processId;
socketURL += processId;
socket = new WebSocket(socketURL);
socket.onopen = runRealTerminal;
socket.onclose = runFakeTerminal;
socket.onerror = runFakeTerminal;
});
});
});
}, 0);
}
function runRealTerminal() {
term.attach(socket);
term._initialized = true;
-10
View File
@@ -14,13 +14,3 @@ h1 {
margin: 0 auto;
padding: 2px;
}
#terminal-container .terminal {
background-color: #111;
color: #fafafa;
padding: 2px;
}
#terminal-container .terminal:focus .terminal-cursor {
background-color: #fafafa;
}
+9
View File
@@ -0,0 +1,9 @@
version: "3"
services:
web:
build: .
volumes:
- ./:/usr/src/app
ports:
- ${XTERMJS_PORT:3000}:3000

Some files were not shown because too many files have changed in this diff Show More