Commit graph

257 commits

Author SHA1 Message Date
Leroy Hopson
d99a750d33
Stop testing for Godot version 3.2 2022-07-12 12:51:24 +12:00
Leroy Hopson
e558162d38
Update docs 2022-07-11 13:19:44 +12:00
Leroy Hopson
3b7bdfc5ca
Bump version to 2.1.0 2022-07-11 09:33:01 +12:00
Leroy Hopson
df32ee3c18
Refactor PTY
PTY now provides a public interface to an underlying instance of
PTYNative. The PTYNative class can be extended as appropriate for
each platform and the platform-specific implementation will be
selected by PTY at runtime.
2022-07-11 09:33:01 +12:00
Leroy Hopson
d11853e9f6
Update GDScript Toolkit 2022-07-11 09:33:01 +12:00
Leroy Hopson
b76f8d0939
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-07-11 09:33:01 +12:00
Leroy Hopson
cf613708c4
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-07-11 09:33:01 +12:00
Leroy Hopson
0ae1d80abb
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-07-11 09:33:01 +12:00
Leroy Hopson
38927e0a3e
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-07-11 09:33:01 +12:00
Leroy Hopson
ed05f79073
Add VSCode launch configuration for debugging tests 2022-07-11 09:33:01 +12:00
Leroy Hopson
95c8974ebf
Add job to check GDScript format 2022-07-11 09:33:01 +12:00
Leroy Hopson
5fcc9b0595
Increase terminal test yield timeout
Wait a little longer for "bell" signal to be emitted.
2022-07-11 09:33:01 +12:00
Leroy Hopson
e8418ef593
Tidy up .gitattributes
Sort and remove duplicates.
2022-07-11 09:33:00 +12:00
Leroy Hopson
d784b53e25
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-07-11 09:33:00 +12:00
Leroy Hopson
b14ea64492
Update GUT: v7.1.0 -> v7.3.0 2022-07-11 09:33:00 +12:00
Leroy Hopson
6ec3c93c55
Prevent editor shortcuts while terminal is focused 2022-07-11 09:33:00 +12:00
Leroy Hopson
bea5d1c27d
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-07-11 09:33:00 +12:00
Leroy Hopson
d124f20f36
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-07-11 09:33:00 +12:00
Leroy Hopson
f0bd70cb3e
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-07-11 09:33:00 +12:00
Leroy Hopson
3fdc9ef27e
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-07-11 09:33:00 +12:00
Leroy Hopson
3670856851
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-07-11 09:33:00 +12:00
Leroy Hopson
5108c7cabd
Extract submodule cache steps to compound action
Creates a reusable action for caching submodules in the thirdparty
directory.
2022-07-11 09:33:00 +12:00
Leroy Hopson
1d51acb38d
Register pipe.close() method
Allows kill() method of unix PTY node to be called without error.
2022-07-11 09:33:00 +12:00
Leroy Hopson
28521b9d7a
Update setup-godot: v0.1.1 -> v1.0.0 2022-07-11 09:33:00 +12:00
Leroy Hopson
d94253fdc3
Ignore unused return value 2022-07-11 09:33:00 +12:00
Leroy Hopson
57dadf7db2
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-07-11 09:33:00 +12:00
Leroy Hopson
9e50171d04
Move CHANGELOG links inline
This is so they don't get forgotten when updating the CHANGELOG.
2022-07-11 09:33:00 +12:00
Leroy Hopson
deb68e323c
Reformat existing gdscript code 2022-07-11 09:33:00 +12:00
Leroy Hopson
ae707a6667
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-07-11 09:33:00 +12:00
Leroy Hopson
0ccac28cc6
Update godot-cpp submodule
- We now need to include `<string>` in `terminal.cpp`.
- Clean-up `.gitmodules` while we're at it.
2022-05-31 18:34:51 +07:00
Leroy Hopson
99c3b1b452
Automatic editor updates v3.4.4-stable
- Add `.import` files automatically updated after opening project in new
  target version of the editor.
2022-05-31 18:34:51 +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