Commit graph

355 commits

Author SHA1 Message Date
Leroy Hopson
6d112ca0f2
Add method get_cell_size() 2024-02-18 20:24:31 +13:00
Leroy Hopson
685884965e
Fix bell behaviour according to tests 2024-02-18 20:24:27 +13:00
Leroy Hopson
dc97c56b17
Use type Vector2i for get_cursor_pos()
Cursor position is always integer.
2024-02-18 14:06:30 +13:00
Leroy Hopson
0ccc539f36
Prevent creation of orphan Timer 2024-02-18 14:06:30 +13:00
Leroy Hopson
2b5ea392bf
Free fore_canvas_item
Frees fore_canvas_item in cleanup, preventing RID allocation leak.
2024-02-18 14:06:30 +13:00
Leroy Hopson
db3564f0cc
Setup tests
- Install Gut using gd-plug.
- Add some basic tests.
- Update workflow to run tests.
- Add test and gd-plug install/uninstall recipes to Justfile.
- Re-enable debug builds as these are used by editor when testing.
2024-02-18 14:06:25 +13:00
Leroy Hopson
e234b14867
Only register/remove Terminal once 2024-02-18 12:50:21 +13:00
Leroy Hopson
3bed9e7b0f
Add scroll support 2024-02-15 18:54:20 +13:00
Leroy Hopson
d59a925ca1
Add selection support 2024-02-15 07:27:51 +13:00
Leroy Hopson
3fcaa79f6e
Add support for key input 2024-02-15 06:53:53 +13:00
Leroy Hopson
580760ffad
Move other constants to constants file 2024-02-14 20:00:13 +13:00
Leroy Hopson
0a1ba5abcd
Add KEY_MAP constant 2024-02-14 19:46:29 +13:00
Leroy Hopson
10eb791fea
Merge remote-tracking branch 'origin/master' into godot4 2024-02-13 23:17:47 +13:00
Leroy Hopson
c8ff3aa87d
Build only for release 2024-02-13 23:09:04 +13:00
Leroy Hopson
969c20197a
Run test job
But tests still disabled.
2024-02-13 22:56:43 +13:00
Leroy Hopson
420c774a43
Re-enable native builds 2024-02-13 20:34:47 +13:00
Leroy Hopson
4b7408a4d1
Disable tests until they are fixed 2024-02-13 15:11:39 +13:00
Leroy Hopson
21891925ee
Perform GDScript format checks using pre-commit 2024-02-13 13:04:41 +13:00
Leroy Hopson
aa2b93248e
Perform GDScript format checks using pre-commit 2024-02-13 11:27:07 +13:00
Leroy Hopson
8f08945df2
Update workflow dependencies 2024-02-13 11:15:32 +13:00
Leroy Hopson
b8b27a6370
Remove git commit hooks
These are now handled by Pre-Commit.
2024-02-13 11:12:32 +13:00
Leroy Hopson
8310715d7e
Exclude example .env file from archive 2024-02-13 11:10:55 +13:00
Leroy Hopson
83c181e1c8
Make 'Check Archive' job list hidden files 2024-02-13 11:10:14 +13:00
Leroy Hopson
1b6d5dcba3
Exclude Justfile from archive 2024-02-13 11:04:47 +13:00
Leroy Hopson
d6ca4f2817
Merge remote-tracking branch 'origin/master' into godot4 2024-02-13 11:02:24 +13:00
dependabot[bot]
b6f1ec00fb chore(deps): bump actions/checkout from 3 to 4
Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-13 10:58:42 +13:00
Leroy Hopson
002e7aacc7
Auto-format files using new pre-commit config 2024-02-13 10:52:22 +13:00
dependabot[bot]
306f07f137 chore(deps): bump jpribyl/action-docker-layer-caching
Bumps [jpribyl/action-docker-layer-caching](https://github.com/jpribyl/action-docker-layer-caching) from 0.1.0 to 0.1.1.
- [Release notes](https://github.com/jpribyl/action-docker-layer-caching/releases)
- [Commits](https://github.com/jpribyl/action-docker-layer-caching/compare/v0.1.0...v0.1.1)

---
updated-dependencies:
- dependency-name: jpribyl/action-docker-layer-caching
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-13 10:39:42 +13:00
dependabot[bot]
ad82ae452b chore(deps): bump actions/cache from 3 to 4
Bumps [actions/cache](https://github.com/actions/cache) from 3 to 4.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-13 10:38:08 +13:00
dependabot[bot]
b7fe98ab8d chore(deps): bump actions/setup-python from 4 to 5
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 4 to 5.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-13 10:29:21 +13:00
dependabot[bot]
e3100b1994 chore(deps): bump nick-fields/retry from 2 to 3
Bumps [nick-fields/retry](https://github.com/nick-fields/retry) from 2 to 3.
- [Release notes](https://github.com/nick-fields/retry/releases)
- [Changelog](https://github.com/nick-fields/retry/blob/master/.releaserc.js)
- [Commits](https://github.com/nick-fields/retry/compare/v2...v3)

---
updated-dependencies:
- dependency-name: nick-fields/retry
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-13 10:29:06 +13:00
dependabot[bot]
715c2f3bc6 chore(deps): bump jwlawson/actions-setup-cmake from 1 to 2
Bumps [jwlawson/actions-setup-cmake](https://github.com/jwlawson/actions-setup-cmake) from 1 to 2.
- [Release notes](https://github.com/jwlawson/actions-setup-cmake/releases)
- [Commits](https://github.com/jwlawson/actions-setup-cmake/compare/v1...v2)

---
updated-dependencies:
- dependency-name: jwlawson/actions-setup-cmake
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-13 10:29:02 +13:00
dependabot[bot]
469ecafd6d chore(deps): bump actions/setup-node from 3 to 4
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 3 to 4.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-13 10:28:57 +13:00
Leroy Hopson
bd817eb0ce
Add pre-commit config and auto-format files 2024-02-13 09:53:55 +13:00
Leroy Hopson
af16cb8653
Add dependabot config 2024-02-11 21:57:23 +13:00
Leroy Hopson
58f4f8f216
Initialize background image to background color 2024-02-10 22:51:11 +13:00
Leroy Hopson
b8431e4a93
Always erase previous cell
Even if we are not drawing a new character in the cell, we should erase
the old one.
2024-02-10 22:49:47 +13:00
Leroy Hopson
8e5fbe72cd
Support background and attributes for wide chars
Supports setting background color and attributes for wide characters
(i.e. more than 1 cell wide). Previously only the first cell had its
background and attribute set.
2024-02-10 22:49:10 +13:00
Leroy Hopson
fd2c33c486
Re-add bell support 2024-02-10 22:03:43 +13:00
Leroy Hopson
07687e2cd8
Return terminal responses from write method
Updates the `write()` method to return a String containing any responses
from the terminal. For example, these could be responses to a cursor
position request such as "\u001b[6n".
2024-02-10 21:10:54 +13:00
Leroy Hopson
9fde38045a
Support rendering of more than just ASCII characters 2024-02-10 21:08:34 +13:00
Leroy Hopson
3f24fa9bf0
Handle multiple font styles
Adds support for font styles other than normal, such as bold, italics,
and bold italics.
2024-02-10 17:15:44 +13:00
Leroy Hopson
fb3fb6855c
Make intentionality of switch fallthrough clear 2024-02-10 16:36:48 +13:00
Leroy Hopson
6b1c9d818a
Rename enum AttrFlags -> AttrFlag 2024-02-10 15:53:03 +13:00
Leroy Hopson
f4c80e6201
Use custom libtsm version sans problematic commit
Use updated custom version of libtsm without commit which causes strange
behavior when rezining the Terminal control node.
2024-02-10 00:51:15 +13:00
Leroy Hopson
575c3875b6
Implement get_cursor_pos() 2024-02-07 23:14:52 +13:00
Leroy Hopson
8c30bec861
Add support for two different inverse modes
- Inverse mode invert (default) will invert the color in shader.
- Inverse mode swap will simply swap the foreground and background
  colors. This is the default behavior of libtsm and GodotXterm v3.
2024-02-07 23:03:11 +13:00
Leroy Hopson
930f3ef352
Expose blink_on_time and blink_off_time properties 2024-02-07 22:26:45 +13:00
Leroy Hopson
7de5e2a835
Restore terminal.gd for referencing 2024-02-07 22:03:41 +13:00
Leroy Hopson
8b320622f9
Use shader include for fore/background shaders
The two shaders use a lot of common logic for co-ordinate and attribute
look up, so it makes sense to use a common include shader for both.

Adds support for the inverse and blink attributes to the foreground shader.
2024-02-07 21:59:01 +13:00