There is a bug in SWT on macos - Bug 568777 - with the cache of single
character drawStrings with transparent backgrounds as a performance
boost. This causes the terminal to draw some characters in the
wrong color.
The workaround is to not draw with transparency, which should be fine
because we just filled the background with the same color that the
1 character string will draw with.
The performance, measured with TerminalTextUITest in Fast mode with
no throttling, does not seem affected and in my testing there does
not seem to be any graphic side effects.
Change-Id: I1b0aadae100d81a8f4533ba73273ccc8202e068f
This simplifies error handling as once you have a Charset you don't
have to worry about whether or not an UnsupportedEncodingException can
be thrown anymore. In addition it is a little easier on type safety.
Change-Id: I4292878a7c621f9d05fdb98f5c26a0ae8bfec062
This removes a TODO in the code that makes no sense, and in
most cases the else branch is not taken as a common operating
mode is the default charset/encoding is windows-1252 but the
current charset is utf-8.
The effective difference between the two branches is that
the else does a flush after character rather than after each
string.
Change-Id: I50b3cc5837d783ba20b88c2efa44d9c4e6381d30
The reverse linefeed should scroll down when the cursor is on the
first line of the scrolling region, not only on the first screen
line
Change-Id: I628ab135d48d868bc8e3eacd2ea57dda948873a8
Signed-off-by: Fabrizio Iannetti <fabrizio.iannetti@gmail.com>
This contains basic tests so far, as bugs are fixed other tests
can be added here, leading to easier development of escape sequences.
Change-Id: Iadd0b24d400f72927c446d61386f19cfd8bd05a0
The implementation of the read loop in the emulator can spin because
it uses Reader.ready() to determine if there is more data to read.
However the Reader contract does not specify that ready() means
that read() will return a character, simply it means that read()
won't block. As such, if a Reader won't block, but it has no
characters, the inner read loop will spin constantly polling.
The outer loop uses polling too - but it has a wait so that the
CPU does not hit 100% and yields.
Change-Id: Id9b2426c65e6c2a2c3ae817a78d2be435e568c1f
Java 9+ contains new API for getting/walking stack frames. It is much
faster and has a much cleaner API than using Throwable.getStackTrace
Change-Id: Id0c888aeb06665f10605ce5ab5f0a567249e068c
Scroll up is not working with `less`, `man`, probably
other programs.
Change-Id: I99d2472ab09df6b79fffbcaa581f3024c44d3ead
Signed-off-by: Fabrizio Iannetti <fabrizio.iannetti@gmail.com>
- hover with ctrl+mouse underlines word under cursor
- ctrl-click tries to open the word:
- if a relative path (not starting with /) a full path is
obtained by prepending the shell cwd
- if the fullpath maps to a workspace file, it is opened
- otherwise open the OpenResource dialog with the word as
filter text
- if there is line/column information (separated by colons)
then the opened editor jumps to that line
- http and https words are opened in a browser window
Change-Id: I3f46accbf1eac6743d7b0c3b34bf30ac5e7523bb
Signed-off-by: Fabrizio Iannetti <fabrizio.iannetti@gmail.com>
Also-by: Jonah Graham <jonah@kichwacoders.com>
Signed-off-by: Jonah Graham <jonah@kichwacoders.com>
New action to temporarily invert the terminal colors,
the preference setting is not altered by this action.
Only the active terminal is affected.
Change-Id: Idc01163838539c2ba5699556951c1742bbf07ad6
Signed-off-by: Fabrizio Iannetti <fabrizio.iannetti@gmail.com>
CSI commands should be recognised as private if the first
character is one of <=>? and not only ?
Change-Id: Idca36ba4dc6bb1bcb3d10f921b2315876769ea5b
Signed-off-by: Fabrizio Iannetti <fabrizio.iannetti@gmail.com>
Bug 549697 introduced the new UI for setting colors, but the
selection color (while added to the pref page) was never
connected to the code.
Change-Id: I9934efe595efe141a14f0bca3bdf355f436d907d
New types TerminalColor and TerminalStyle replace StyleColor and Style
to separate the meta information about styles and colors from the
user currently selected colors.
The StyleMap maps the TerminalColor/Style to the concrete fonts and
colors used in the display.
Colors are now configurable via the terminal preference page using
the new TerminalColorsFieldEditor.
All preferences are now passed in to the VT100 control so that
different terminal consumers can have different preferences and
styles.
Remove dark theme contribution. The colors of the terminal are
now inherited from the editor settings (using SystemDefaultColors)
which come from the theme. If we were to invert colors
too when in Dark theme then the colors actually end up light
background.
Change-Id: I2cf5427ac0be9a189a7f0d3565cfc97ceedb8749
Using the mouse and not the focus listeners leads to lots
of weird, unintended consequences. For example:
- If mouse does not exit the control (because, e.g. it was not
in the control) then captureKeyEvents(false) is never issued
- If mouse does leave control, then control stops capturing
events. This means that although the cursor and focus is still
on the control, keyboard shortcuts no longer go to the control,
so Ctrl-C becomes copy again. This means, depending on where you
move the mouse changes the behaviour of the control.
This reverts commit 19351cbc2b.
Change-Id: I4f57c659e21d823df049b095159a34e5c110ef29
There are two ways of specifying fonts in the terminal,
one via font definitions, and one via the font directly. The
method via the font directly was already deprecated in the public
API, this commit follows that deprecation chain through to
make it easier to identify which code paths are not likely
relevant anymore.
These methods could simply be removed as part of the major version
bump.
Change-Id: I05d746c429c4e6c3ced5ee7bb7a6172e0a255c2d
GC.getForeground / Background always create a new Color object,
so this if expression was always true.
Change-Id: Ief4ccaf1adb70967301411b012c0474608f425cb
The inconsistency of lower case and upper case in the internal
representation of the colour names made it harder than it should be
to find where colours are used in the code.
Note that the SytleMap creates lower and uppercase entries for each
colour.
Change-Id: I16b4ebe4a97adecd01f835319aa0f0d175ae3bb6
And run save actions to modernize code a bit.
Change-Id: I4a718e73e8472679aa4ead7fdefe4259004ef6d6
Signed-off-by: Alexander Kurtakov <akurtako@redhat.com>
The 4.6.0 version marks the first version of terminal built in
CDT and in a different git repo - there are no API changes.
Change-Id: Ic6c4089d7e6ccbb2701bf59fedba2b6a8dd4c856
This is applying the per-project code formatting rules that would
be applied on save in the JDT editor
See also Bug 540373
Change-Id: Id04c972c3b3cb0a6ed1ab8581185359b7cf43f91