Commit graph

202 commits

Author SHA1 Message Date
Leroy Hopson
29f29bac3c
Update GDScript Toolkit 2022-06-29 22:52:16 +07:00
Leroy Hopson
3890bce804
Prevent scrollback buffer reset when using copy shortcut
Prevents scrollback buffer reset (i.e. scrolling to the bottom of
terminal output) when pressing modifier keys in isolation or when
copying text using the shortcut Ctrl+Shift+C.
2022-06-29 22:49:22 +07:00
Leroy Hopson
7c7668b95e
Fix resume after yield error
Fixes error that would sometimes occur when closing the Terminal after
calling write() but before the VisualServer had finished drawing the
current frame.
2022-06-29 22:47:45 +07:00
Leroy Hopson
a1de456240
Prevent exit callback instance leaks
De-references pty_baton's exit callback after it is called so it can be
automatically released, preventing leaked instances.

Adds basic implementation for Pipe's get_status() method and forces PTY
to wait for child process to exit to ensure exit callback is cleaned up.

Adds a test to check that exit callback is still called as usual.
2022-06-29 22:44:18 +07:00
Leroy Hopson
659bceed98
Fix winsize test to support unsigned short
The type of winsize.ws_col and winsize.ws_row is unsigned short, so
change python's struct.unpack format from 'hh' (short) to 'HH'.
Otherwise, we can only test sizes up to 32767 when actually sizes up to
65535 are supported.
2022-06-29 22:43:00 +07:00
Leroy Hopson
bc73021064
Add VSCode launch configuration for debugging tests 2022-06-23 22:28:23 +07:00
Leroy Hopson
26871a07ac
Add job to check GDScript format 2022-06-04 12:51:53 +07:00
Leroy Hopson
4a24c762a9
Increase terminal test yield timeout
Wait a little longer for "bell" signal to be emitted.
2022-06-04 12:51:53 +07:00
Leroy Hopson
b51cb06a30
Tidy up .gitattributes
Sort and remove duplicates.
2022-06-04 12:51:53 +07:00
Leroy Hopson
6fdf034550
Add GUT (CLI only) and remove gd-plug
Commit GUT directly to the git repo and remove gd-plug as it is no
longer required to install GUT.

Modify GUT to be used by command-line only.

For example:
```
cp test/.gutconfig.ci.json .gutconfig.json
godot --no-window -s addons/gut/gut_cmdln.gd
```
2022-06-04 12:51:53 +07:00
Leroy Hopson
efb6285f5c
Update GUT: v7.1.0 -> v7.3.0 2022-06-04 12:51:53 +07:00
Leroy Hopson
ea66a0c799
Prevent editor shortcuts while terminal is focused 2022-06-04 12:51:51 +07:00
Leroy Hopson
001a9525d1
Check if baton FuncRef is valid before calling call_funcv()
Often when closing a terminal in the terminal panel the error message
'Condition "!obj" is true.' would be printed to console.

This was due to the call_funcv() method being called on an invalid
FuncRef instance (invalid because it had already been deleted or queued
for delection).

Now we check the instance is valid before calling the method.
2022-06-04 12:50:57 +07:00
Leroy Hopson
ef9e96ed13
Remove custom TerminalSettings Resource type
There is no current public use for this type and it would appear in every
resource dropdown.

While this type is no longer exposed publically by the plugin it is still
used internally by terminal_panel.
2022-06-04 12:50:57 +07:00
Leroy Hopson
fde082a88f
Update target Godot version: 3.3.2-stable -> 3.4.4-stable
Also apply automatic updates to .import files after opening project in
3.4.4 editor.
2022-06-04 12:50:47 +07:00
Leroy Hopson
8d3d8e4233
Add Docker build for Linux
Adds support for building Linux binaries inside a docker container in
order to target an older version of GLIBC.

Updates GitHub Actions workflow to use it.

As a result the minimum version of GLIBC that Linux users need to have
installed on their system is 2.17 which was released in 2012.
2022-06-04 11:27:53 +07:00
Leroy Hopson
7864289e82
Update Visual Studio version
- windows-latest now uses windows-2022 which has Visual Studio 17 2022.
- Update cmake version from 3.15.4 to 3.23.2 which has generator for the
  newer version of Visual Studio.
2022-06-04 11:27:53 +07:00
Leroy Hopson
26da7970f1
Extract submodule cache steps to compound action
Creates a reusable action for caching submodules in the thirdparty
directory.
2022-06-04 11:27:53 +07:00
Leroy Hopson
76ff0d34a2
Register pipe.close() method
Allows kill() method of unix PTY node to be called without error.
2022-06-04 11:27:53 +07:00
Leroy Hopson
0123fac4ef
Update setup-godot: v0.1.1 -> v1.0.0 2022-06-04 11:27:53 +07:00
Leroy Hopson
f643d0ac51
Ignore unused return value 2022-06-04 11:27:53 +07:00
Leroy Hopson
fd4e383cae
Support universal (x86_64/arm64) builds for macOS
The macOS binary (libgodot-xterm.osx.64.dylib) is now a universal binary
that runs natively on both x86_64 and arm64.
2022-06-04 11:27:53 +07:00
Leroy Hopson
110e4eff2d
Update godot-cpp
Updates the godot-cpp submodule to a version which supports universal macOS
builds.

- We now need to include the standard string in terminal.cpp.
- Clean-up .gitmodules while we're at it.
2022-06-04 11:27:53 +07:00
Leroy Hopson
a7195f3f9b
Move CHANGELOG links inline
This is so they don't get forgotten when updating the CHANGELOG.
2022-06-04 11:27:52 +07:00
Leroy Hopson
38c5818b2c
Reformat existing gdscript code 2022-06-04 11:27:46 +07:00
Leroy Hopson
0db7801d45
Update gdformat git pre-commit hook
- Lint files rather than reformat.
- Git protocal changed to https.
  See <https://github.blog/2021-09-01-improving-git-protocol-security-github/>.
2022-06-04 10:22:26 +07:00
Leroy Hopson
42c9f284be
Fix apt 2022-03-07 11:45:54 +07:00
Leroy Hopson
a41ac2d6f6
Test against newer versions of Godot
- v3.4.3-stable
- v3.5-beta1
2022-03-07 11:39:31 +07:00
Leroy Hopson
4d74041d1d
Update target Godot and Emscripten versions
Godot: 3.3.2-stable -> 3.4.2-stable
Emscripten: 2.0.10 -> 3.1.5
2022-02-24 10:59:02 +07:00
Leroy Hopson
a4103b2df0
Build and test daily 2021-12-17 15:48:09 +07:00
Leroy Hopson
9fb3d9088a
Update status badges 2021-12-17 15:48:06 +07:00
Leroy Hopson
bef632db42
Update setup-godot action v0.1.0 -> v0.1.1 2021-12-17 15:32:02 +07:00
Leroy Hopson
b0e8f0053b
Update Godot versions to test with
3.3.2-stable -> 3.3.4-stable
3.4-beta1 -> 3.4-stable
2021-11-08 09:56:12 +07:00
Leroy Hopson
8e80ba46fa
Upgrade setup-godot action to v0.1.0 2021-11-08 09:46:13 +07:00
Leroy Hopson
08f2cd5376
Download plugins to correct location
Means that Gut tests can actually run. Previously they were not running
because gut could not be found in addons/ directory.
2021-11-08 09:29:46 +07:00
Leroy Hopson
a4d4581dd9
Automatic editor updates 2021-10-16 11:09:56 +07:00
Leroy Hopson
69d67ed806
Add link to the Godot Asset Library page 2021-07-26 14:28:49 +07:00
Leroy Hopson
e04195ceac
Update online demo URL 2021-07-26 01:27:29 +07:00
Leroy Hopson
2a9ecb524e
Bump version to 2.0.0
How it started...
```gdscript
extends TextEdit
```
How it's going...
```c++
```
2021-07-26 00:56:54 +07:00
Leroy Hopson
9d15420df3
Move terminal.gd and pty.gd to godot_xterm directory
Makes for pretty paths when extending scripts:
`extends "res://addons/godot_xterm/terminal.gd"`
vs.
`extends "res://addons/godot_xterm/nodes/terminal/terminal.gd"`

Currently "res://addons/godot_xterm/pty.gd" is acutally `pty_unix.gd`.
This is okay for now as the PTY node is only supported on Unix
platforms. However, we will need to sort it out when adding Windows
support as part of #25.

Also remove the GDXterm namespace.
2021-07-26 00:39:48 +07:00
Leroy Hopson
e6db81615e
Automatic .tscn file updates
Automatically changed by the editor.
2021-07-25 23:09:37 +07:00
Leroy Hopson
082ce8f199
Use only default settings for terminal panel
Until settings have been properly defined, documented and implemented.
2021-07-25 23:09:37 +07:00
Leroy Hopson
14dd045b66
Update PTY to match publically documented API
Remove unused variables and enums and make private what's not documented
as public.
2021-07-25 23:09:37 +07:00
Leroy Hopson
d75c26cec6
Update documentation
- Remove contributor license agreement:

  The terms are same as the standard "inbound=outbound" norm for open
  source projects which is covered by GitHub's terms of service
  which every GitHub user has already agreed to:
  https://docs.github.com/en/github/site-policy/github-terms-of-service#6-contributions-under-repository-license

- Add wiki as submodule and move documentation to it.

- Update README and replace screenshot with video
2021-07-25 23:08:45 +07:00
Leroy Hopson
72fcc0e451
Ignore vim's temporary .swp files 2021-07-25 23:08:44 +07:00
Leroy Hopson
0cb458b3d2
Add retro term example scene
Uses:
- Larger (size 39) font for 80x24 rows.
- World environment with glow enabled.
- Retro green color scheme based on https://superuser.com/a/1206781
- CRT Shader by Peter Höglund (pend00), released under CC-0 license.
  Downloaded from https://godotshaders.com/shader/vhs-and-crt-monitor-effect/
2021-07-25 07:50:36 +07:00
Leroy Hopson
1083c13276
Fallback to Regular Terminal font before using default 2021-07-24 17:37:04 +07:00
Leroy Hopson
f555831915
Update all tests to use setup-godot action
- Adds support for Ubuntu 32bit.
- Also test only release binaries to keep the number of test jobs under
control.
2021-07-24 16:50:54 +07:00
Leroy Hopson
bec14fee14
Enable tests for v3.2
OS.set_environment() not available in v3.2 so create a new gut config
file that skips these tests for v3.2.
2021-07-23 22:07:57 +07:00
Leroy Hopson
bb18df817d
Use setup-godot GitHub Action for tests
Allows testing on Windows platform.
2021-07-23 22:07:25 +07:00