Skip to content

Commit 71e6f54

Browse files
committed
merge
2 parents ef14a36 + 35ba217 commit 71e6f54

File tree

588 files changed

+38542
-27175
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

588 files changed

+38542
-27175
lines changed

.github/ISSUE_TEMPLATE/bug_report.md

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,16 @@ assignees: ''
77

88
---
99

10-
Have you checked closed issues? https://github.com/Textualize/textual/issues?q=is%3Aissue+is%3Aclosed
10+
Have you checked closed issues? (https://github.com/Textualize/textual/issues?q=is%3Aissue+is%3Aclosed)
1111

12-
Have you checked against the most recent version of Textual? https://pypi.org/search/?q=textual
12+
Have you checked against the most recent version of Textual? (https://pypi.org/search/?q=textual)
13+
14+
## Feature requests
15+
16+
Please post feature requests to Ideas. (https://github.com/Textualize/textual/discussions/categories/ideas)
17+
18+
19+
## The bug
1320

1421
Please give a brief but clear explanation of the issue. If you can, include a complete working example that demonstrates the bug. **Check it can run without modifications.**
1522

.github/workflows/pythonpackage.yml

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -35,21 +35,22 @@ jobs:
3535
cache: "poetry"
3636
- name: Install dependencies
3737
run: poetry install --no-interaction --extras syntax
38-
if: ${{ matrix.python-version != '3.13' }}
39-
- name: Install dependencies for 3.13
38+
if: ${{ matrix.python-version != '3.8' }}
39+
- name: Install dependencies for 3.8
4040
run: poetry install --no-interaction
41-
if: ${{ matrix.python-version == '3.13' }}
42-
- name: Test with pytest
41+
if: ${{ matrix.python-version == '3.8' }}
42+
- name: Test with pytest (Py39+ - with syntax highlighting)
4343
run: |
4444
poetry run pytest tests -v --cov=./src/textual --cov-report=xml:./coverage.xml --cov-report term-missing
45-
if: ${{ matrix.python-version != '3.13' }}
46-
- name: Test with pytest for 3.13
45+
if: ${{ matrix.python-version != '3.8' }}
46+
- name: Test with pytest (Py38 - without syntax highlighting)
4747
run: |
4848
poetry run pytest tests -v --cov=./src/textual --cov-report=xml:./coverage.xml --cov-report term-missing -m 'not syntax'
49-
if: ${{ matrix.python-version == '3.13' }}
49+
if: ${{ matrix.python-version == '3.8' }}
5050
- name: Upload snapshot report
5151
if: always()
52-
uses: actions/upload-artifact@v3
52+
uses: actions/upload-artifact@v4
5353
with:
54-
name: snapshot-report-textual
54+
name: snapshot_report_textual
5555
path: snapshot_report.html
56+
overwrite: true

CHANGELOG.md

Lines changed: 109 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,112 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](http://keepachangelog.com/)
66
and this project adheres to [Semantic Versioning](http://semver.org/).
77

8-
## Unreleased
8+
## Unreleased - 2025
9+
10+
### Added
11+
12+
- Added `Select.type_to_search` which allows you to type to move the cursor to a matching option https://github.com/Textualize/textual/pull/5403
13+
- Added `from_app_focus` to `Focus` event to indicate if a widget is being focused because the app itself has regained focus or not https://github.com/Textualize/textual/pull/5379
14+
- Added `Blurred` message to `Input` widget (matching `Submitted` and `Changed`) to make it easier to synchronize with `validate_on` parameter when set to 'blur'.
15+
- Added `Offset.transpose` https://github.com/Textualize/textual/pull/5409
16+
- Added `screen--selection` component class to define style for selection https://github.com/Textualize/textual/pull/5409
17+
- Added `Widget.select_container` property https://github.com/Textualize/textual/pull/5409
18+
- Added `Widget.select_all` https://github.com/Textualize/textual/pull/5409
19+
- Added `Region.bottom_right_inclusive` https://github.com/Textualize/textual/pull/5409
20+
- Added double click to select, triple click to select all in container https://github.com/Textualize/textual/pull/5409
21+
- Added arbitrary text selection https://github.com/Textualize/textual/pull/5409
22+
- Added Widget.ALLOW_SELECT classvar for a per-widget switch to disable text selection https://github.com/Textualize/textual/pull/5409
23+
- Added Widget.allow_select method for programmatic control of text selection https://github.com/Textualize/textual/pull/5409
24+
- Added App.ALLOW_SELECT for a global switch to disable text selection https://github.com/Textualize/textual/pull/5409
25+
- Added `DOMNode.query_ancestor` https://github.com/Textualize/textual/pull/5409
26+
- Added selection to Log widget https://github.com/Textualize/textual/pull/5467
27+
- Added `text-wrap` and `text-overflow` CSS values https://github.com/Textualize/textual/pull/5485
28+
- Added Textual markup to replace Rich markup https://github.com/Textualize/textual/pull/5485
29+
- Added `Content.from_markup` https://github.com/Textualize/textual/pull/5485
30+
31+
### Fixed
32+
33+
- Fixed `Pilot.click` not working with `times` parameter https://github.com/Textualize/textual/pull/5398
34+
- Fixed select refocusing itself too late https://github.com/Textualize/textual/pull/5420
35+
- Fixed layout of the keys in the help panel when a key has a tooltip but no description https://github.com/Textualize/textual/issues/5436
36+
- The content of an `Input` will now only be automatically selected when the widget is focused by the user, not when the app itself has regained focus (similar to web browsers). https://github.com/Textualize/textual/pull/5379
37+
- Updated `TextArea` and `Input` behavior when there is a selection and the user presses left or right https://github.com/Textualize/textual/pull/5400
38+
- Footer can now be scrolled horizontally without holding `shift` https://github.com/Textualize/textual/pull/5404
39+
- Modified _on_blur method in `Input` to post a `Blurred` message
40+
- Fixed Log widget not refreshing on resize https://github.com/Textualize/textual/pull/5460
41+
- Fixed special case with calculating the height of a container where all children have dynamic heights https://github.com/Textualize/textual/pull/5463
42+
- Fixed scrollbars ignoring background opacity https://github.com/Textualize/textual/issues/5458
43+
- Fixed `Header` icon showing command palette tooltip when disabled https://github.com/Textualize/textual/pull/5427
44+
45+
### Changed
46+
47+
- OptionList no longer supports `Separator`, a separator may be specified with `None`
48+
49+
### Removed
50+
51+
- Removed `wrap` argument from OptionList (use CSS `text-wrap: nowrap; text-overflow: ellipses`)
52+
- Removed `tooltip` argument from OptionList. Use `tooltip` attribute or `with_tooltip(...)` method.
53+
54+
## [1.0.0] - 2024-12-12
55+
56+
### Added
57+
58+
- Added `App.clipboard` https://github.com/Textualize/textual/pull/5352
59+
- Added standard cut/copy/paste (ctrl+x, ctrl+c, ctrl+v) bindings to Input / TextArea https://github.com/Textualize/textual/pull/5352 & https://github.com/Textualize/textual/pull/5374
60+
- Added `system` boolean to Binding, which hides the binding from the help panel https://github.com/Textualize/textual/pull/5352
61+
- Added support for double/triple/etc clicks via `chain` attribute on `Click` events https://github.com/Textualize/textual/pull/5369
62+
- Added `times` parameter to `Pilot.click` method, for simulating rapid clicks https://github.com/Textualize/textual/pull/5369
63+
- Text can now be select using mouse or keyboard in the Input widget https://github.com/Textualize/textual/pull/5340
64+
65+
### Changed
66+
67+
- Breaking change: Change default quit key to `ctrl+q` https://github.com/Textualize/textual/pull/5352
68+
- The command palette will now select the top item automatically https://github.com/Textualize/textual/pull/5361
69+
- `ctrl+shift+k` now deletes the current line in `TextArea`, and `ctrl+x` will cut
70+
the selection if there is one, otherwise it will cut the current line https://github.com/Textualize/textual/pull/5374
71+
- Implemented a better matching algorithm for the command palette https://github.com/Textualize/textual/pull/5365
72+
73+
### Fixed
74+
75+
- Fixed issue with alignment in auto containers https://github.com/Textualize/textual/pull/5360
76+
77+
## [0.89.1] - 2024-12-05
78+
79+
### Fixed
80+
81+
- Fixed alignment of docked widgets https://github.com/Textualize/textual/pull/5347
82+
83+
## [0.89.0] - 2024-12-05
84+
85+
## Added
86+
87+
- Added "tab" border style https://github.com/Textualize/textual/pull/5335
88+
- Added support for XML syntax highlighting https://github.com/Textualize/textual/pull/5320
89+
- Added `TextArea.update_highlight_query` https://github.com/Textualize/textual/pull/5320
90+
- `Input` widget now supports text selection via mouse and keyboard https://github.com/Textualize/textual/pull/5340
91+
- Added new keybinds (hold shift) for text selection in `Input` https://github.com/Textualize/textual/pull/5340
92+
- Added `Input.selection` reactive attribute for reading and updating the current selection https://github.com/Textualize/textual/pull/5340
93+
- Added `Input.select_on_focus` (default `True`) to enable/disable selecting all text in an `Input` on focus https://github.com/Textualize/textual/pull/5340
94+
- Added methods `Input.replace`, `Input.insert`, `Input.delete`, `Input.delete_selection` for editing text https://github.com/Textualize/textual/pull/5340
95+
- Added `Input.selected_text` property for getting the currently selected text https://github.com/Textualize/textual/pull/5340
96+
- `Input` can now be scrolled independently of cursor position (hold shift and scroll with the mouse wheel in supported environments) https://github.com/Textualize/textual/pull/5340
997

1098
## Changed
1199

100+
- Breaking change: Removed `Input` reactive attributes `view_position`, `cursor_position` (now exists as a property which proxies to the `Input.selection` reactive attribute), https://github.com/Textualize/textual/pull/5340
101+
- `Input.restrict` now checked on all edit operations (rather than just on `insert`) https://github.com/Textualize/textual/pull/5340
102+
103+
## Fixed
104+
12105
- Fixed Select not scrolling highlight in to view when clicked https://github.com/Textualize/textual/issues/5255
106+
- Upgraded tree-sitter to 0.23+ (`syntax` extras) https://github.com/Textualize/textual/pull/5320
107+
- Some syntax highlighting changes due to tree-sitter updates https://github.com/Textualize/textual/pull/5320
108+
- Breaking change: `Document.query_syntax_tree` signature changed https://github.com/Textualize/textual/pull/5320
109+
- Breaking change: `TextArea.register_language` signature changed https://github.com/Textualize/textual/pull/5320
110+
- Breaking change: `SyntaxAwareDocument.language_name` property removed https://github.com/Textualize/textual/pull/5320
111+
- Breaking change: Kotlin syntax highlighting removed from `TextArea` https://github.com/Textualize/textual/pull/5320
112+
- Fixed selection list wrapping https://github.com/Textualize/textual/pull/5331
113+
- Fixed CSS encoding issue on Windows https://github.com/Textualize/textual/pull/5324
13114

14115
## [0.88.1] - 2024-11-30
15116

@@ -51,7 +152,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
51152
- Added `Widget.set_scroll` https://github.com/Textualize/textual/pull/5278
52153
- Added `Select.selection` https://github.com/Textualize/textual/pull/5278
53154

54-
### Fixed
155+
### Fixed
55156

56157
- Fixed offset applied to docked widgets https://github.com/Textualize/textual/pull/5264
57158
- Fixed loading widgets responding to input https://github.com/Textualize/textual/pull/5267
@@ -327,12 +428,13 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
327428

328429
### Changed
329430

330-
- Removed caps_lock and num_lock modifiers https://github.com/Textualize/textual/pull/4861
431+
- Removed caps_lock and num_lock modifiers https://github.com/Textualize/textual/pull/4861
331432
- Keys such as escape and space are now displayed in lower case in footer https://github.com/Textualize/textual/pull/4876
332433
- Changed default command palette binding to `ctrl+p` https://github.com/Textualize/textual/pull/4867
333434
- Removed `ctrl_to_caret` and `upper_case_keys` from Footer. These can be implemented in `App.get_key_display`.
334435
- Renamed `SystemCommands` to `SystemCommandsProvider` https://github.com/Textualize/textual/pull/4920
335436
- Breaking change: Removed `ClassicFooter` widget (please use new `Footer` widget) https://github.com/Textualize/textual/pull/4921
437+
- Breaking change: `App.get_key_display` now requires `textual.binding.Binding` instead of `str`.
336438
- Disallowed `Screen` instances in `App.SCREENS` and `App.MODES`
337439

338440
### Fixed
@@ -533,7 +635,7 @@ when an expandable node is selected https://github.com/Textualize/textual/pull/4
533635

534636
### Added
535637

536-
- Added `Screen.is_active`
638+
- Added `Screen.is_active`
537639
- Added `icon` reactive to Header widget https://github.com/Textualize/textual/pull/4627
538640
- Added `time_format` reactive to Header widget https://github.com/Textualize/textual/pull/4627
539641
- Added `tooltip` parameter to input widgets https://github.com/Textualize/textual/pull/4625
@@ -2613,6 +2715,9 @@ https://textual.textualize.io/blog/2022/11/08/version-040/#version-040
26132715
- New handler system for messages that doesn't require inheritance
26142716
- Improved traceback handling
26152717

2718+
[1.0.0]: https://github.com/Textualize/textual/compare/v0.89.1...v1.0.0
2719+
[0.89.1]: https://github.com/Textualize/textual/compare/v0.89.0...v0.89.1
2720+
[0.89.0]: https://github.com/Textualize/textual/compare/v0.88.1...v0.89.0
26162721
[0.88.1]: https://github.com/Textualize/textual/compare/v0.88.0...v0.88.1
26172722
[0.88.0]: https://github.com/Textualize/textual/compare/v0.87.1...v0.88.0
26182723
[0.87.1]: https://github.com/Textualize/textual/compare/v0.87.0...v0.87.1

0 commit comments

Comments
 (0)