* Using separate language packages and update lockfile
* Fixing some but not all languages
* Theme updates
* More theme fixes
* Improving the VS Code theme
* Fixes
* Fixing CSS rendering
* Fixing SQL and JavaScript highlight queries
* Update GitHub Actions to run syntax highlighting tests on 3.13, and avoid those tests on 3.8.
* Update CHANGELOG and remove `SyntaxAwareDocument.language_name` property.
* Remove unused Kotlin language syntax highlighting snapshot
* Update CHANGELOG to note that Kotlin syntax highlighting was removed
* Bail out of TextArea.language watcher early if tree-sitter is not installed
* Skip a test on 3.8 as it relates to syntax highlighting (tree-sitter) being available
* Update snapshots
* Update to use textual-snapshot v1.0.0
* Dont use xdist on CI
* Update pytest-cov to fix warnings
* Remove xdist thing from pythonpackage.yml GitHub workflow
* Add example apps to tests.
* Add merlin, remove code browser, update snapshots.
* Fix snapshots.
* Update JSON example to use new colors.
* Fixing a snapshot
* Update lockfile
---------
Co-authored-by: Darren Burns <darrenburns@users.noreply.github.com>
Co-authored-by: Darren Burns <darrenb900@gmail.com>
* Initial undo related machinery added to TextArea
* Initial undo implementation
* Basic undo and redo
* Some more fleshing out of undo and redo
* Skeleton code for managing TextArea history
* Initial implementation of undo & redo checkpointing in TextArea
* Increase checkpoint characters
* Restoring the selection in the TextArea and then restoring it on undo
* Adding docstrings to undo_batch and redo_batch in the TextArea
* Batching edits of the same type
* Batching edits of the same type
* Keeping edits containing newlines in their own batch
* Checking for newline characters in insertion or replacement during undo checkpoint creation. Updating docstrings in history.py
* Fix mypy warning
* Performance improvement
* Add history checkpoint on cursor movement
* Fixing merge conflict in Edit class
* Fixing error in merge conflict resolution
* Remove unused test file
* Remove unused test file
* Initial testing of undo and redo
* Testing for undo redo
* Updating lockfile
* Add an extra test
* Fix: setting the `text` property programmatically should invalidate the edit history
* Improving docstrings
* Rename EditHistory.reset() to EditHistory.clear()
* Add docstring to an exception
* Add a pause after focus/blur in a test
* Forcing CI colour
* Update focus checkpoint test
* Try to force color in pytest by setting --color=yes in PYTEST_ADDOPTS in env var on Github Actions
* Add extra assertion in a test
* Toggle text_area has focus to trigger checkpoint in history
* Apply grammar/wording suggestions from code review
Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>
* Making max checkpoints configurable in TextArea history
* Improve a docstring
* Update changelog
* Spelling fixes
* More spelling fixes
* Americanize spelling of tab_behaviour (->tab_behavior)
* Update CHANGELOG regarding `tab_behaviour`->`tab_behavior`
---------
Co-authored-by: Rodrigo Girão Serrão <5621605+rodrigogiraoserrao@users.noreply.github.com>
* Fixing pytest running on incorrect Python version in GitHub actions.
Also removes 3.12 from the testing matrix, and enables MacOS again.
* Dropping Python 3.7
* Update required Python version to ^3.8
* Remove 3.7 asyncio compatibility layer
* Version pinning in GitHub Action
* Move tree-sitter and tree_sitter_languages to optional extras
* Update docs and GitHub action for moving syntax to extras
* Updating, remake lockfile
* Update snapshots from textual-dev change
* Improve warning when a language is set but tree-sitter not available
* Update CHANGELOG
* Add note on syntax extras
* Update lock
* Add docstring and switch to tree-sitter-languages wheels - although the wheels arent working
* Adding highlights files
* Fix index error on SyntaxAwareDocument
* Narrowing highlighting scope
* Adding basic highlights for Markdown
* Using utf-8 byte length instead of codepoint count in syntax aware doc
* Start creating an ABC defining functionality required by Document impls
* Simplify tree-sitter logic
* Extracting more ABC
* Fix width calculation, add SyntaxTheme
* Ensure the highlight line style goes right to the very end
* Updating a docstring
* Renaming, and adding document width guide
* Ensuring that line number column toggling refreshes virtual size
* Ensuring that line number column toggling refreshes virtual size
* Width guide
* Fix focus event stopping
* Use release_mouse
* Improving a docstring
* Remove bash
* TextArea language snapshot testing
* Updating snapshots for TextArea since we now highlight more nodes
* Typing fixes
* Testing
* Adding tests
* Fixing language selection
* Refresh size on indent width change
* Testing, renaming, fixing display of selection
* Fix multibyte highlight glitch
* Fix deleting right with selection at end of document in TextArea
* Fixing utf-8 multibyte character issues
* Default location of text insertion is cursor position, add cursor_location properties
* Removing some debugging code
* Cursor location tests
* Updating snapshots
* Cached utf8 encoding
* TextArea selection snapshot testing
* Tidying docstrings and queries
* Updating selection snapshot output
* Binding for ESC to shift focus
* Only build the tree-sitter query once!
* Expand cursor scroll horizontal leeway in TextArea
* Property setter for cursor_location in TextArea shouldnt return value
* Avoiding NamedTuple subclassing - using type aliasing instead
* Tidying API, docstrings etc.
* Tidying the API and docstrings
* TextArea additional cursor tests
* Testing pageup and pagedown in TextArea
* Fix a faulty test
* Docstring in a test for TextArea edit
* Stop using DEFAULT_SYNTAX_THEME
* Docstrings
* Change cursor_destination to move_cursor, add more tests
* Remove faulty assertion
* Tidying cursor movement
* Tidying up, adding docstrings for component classes
* Fix a broken selection test
* Remove some unused highlighting machinery
* Fix some Python highlighting issues
* Make HTML syntax highlight nicely
* Create tag name for mismatching HTML end tag
* Add styling for YAML, update boolean styling
* Stylising toml types
* Styling floats
* JSON syntax highlighting
* Updating snapshots
* Syntax highlighting datetimes in TOML
* Namespace TOML errors in highlighting
* Add a move_cursor_relative method
* Update TOML TextArea snapshot for datetime highlighting support
* Adjusting selections
* At TextArea widget level, delete_range is insert_range of empty string
* Refactoring
* Dunder all, docstring fix
* Fix XFAIL
* Remove unused import
* More tests, tidying up
* Cleaning the API
* Docstrings for TextArea
* A bunch of docstrings, delete unused code
* More tidying and docstrings
* Cursor origin on document load, correctly handle delete word left/right when selection is non-empty, fix delete_line when selection spans multiple lines and is in reverse direction
* Moving things around
* Fixing dunder all to export DocumentBase
* Add docstring
* Record cursor width on programmatic insert since it can result in the cursor moving
* Typing fixes
* Fixing remaining typing issues with TextArea
* Add tree-sitter-languages stubs and fix typing issues in documents
* Fixing remaining typing issues with document
* Updating Syntax themes
* Improve highlighting, add initial TextArea docs page
* Add TextArea indent note
* Start TextArea guide inside reference
* Add TextArea to widget gallery
* Fleshing out TextArea docs
* Add note
* Fix TextArea programmatic insert/cursor interaction
* Improve a test
* Testing replacement within selection
* Testing double-width character keyboard navigation and deletion keybinds with active selections
* Testing "delete to start of line" TextArea binding
* Testing TextArea delete line methods and delete to end of line
* Testing shift selecting using keyboard in vertical direction
* Expand tests for home and end keybinds in TextArea
* Renaming tests, testing empty replace and insert
* Testing delete word left via API
* Testing delete word left via API
* Testing delete_word_left with tabs, and delete_word_right
* Remove unused variables
* Remove debugging width guide
* Fix snapshot report path
* Deleting word left/right interaction with line ends fixes, ensure cursor width recorded on all edits
* Docstring fixes
* Unpin textual snapshot library dependency (issue is fixed)
* Docstring fixes
* Fix recording cursor width
* Fix a docstring
* Add select_all to TextArea
* Remove unused tree-sitter stuff from .gitignore
* Line select
* Make word pattern private in TextArea
* Add blinking cursor to TextArea
* Renaming, adding missing return typing
* Add selection bindings
* Moving cursor left/right by word while selecting
* Change escape keybind description, TextArea
* Stripping whitespace when going word left/right
* Add missing annotation
* Cursor word right and left parity with PyCharm
* Use repaint=False for cursor blink
* Improve focus/blur styling
* A whole bunch of TextArea testing
* Simplify delete_left and delete_right
* Testing hiding line numbers in snapshot
* Adding snapshot test for unfocus styling
* Create initial snapshot for text-area unfocused
* Support shift+home, shift+end
* Document shift+home, shift+end
* Add Dracula syntax highlighting theme
* Small change to delete_line behaviour when multiple lines selected to match vscode/pycharm behaviour
* Add test for new delete line logic
* Delete line improvement
* Add extra test for delete_line multiple selection
* Test cursor "smart" home behaviour
* Fix typo
* Highlight matching brackets
* Update snapshot
* Update snapshot
* Fix xfails
* Simplify delete_word_left
* Catch correct exception to ensure support for Python 3.7
* Add styling for Markdown
* Add styles for Dracula for Markdown
* Remove unused _fix_direction.py
* Add docstring to EditResult
* Use default=0 in max inside Document
* Remove redundant actions
* Use cell-width aware expand tabs implementation from @willmcgugan
* Construct strip with cell length
* Some TextArea keyword-only arguments
* Begin moving over to TextAreaTheme #skipci
* Prepare queries inside document #skip-ci
* Add comment
* Refactoring
* TextAreaTheme styling
* Setting width of blank selected lines
* Building the highlight map in the text area
* Remove unused default css from TextArea
* Moving highlighting stylize into widget
* Moving syntax highlighting into TextArea widget
* Remove unused code
* Optimise imports
* Fix highlighting when initial text supplied to TextArea
* Rebuild highlight map when the theme changes
* Extending
* Restore themes
* Remove old comment, fix docstring
* Fixing docstrings
* Fixing mypy
* Fixing mypy issues in document
* Tidying things
* Updating version
* Add theme
* Fix VSCode theme bracket matching
* Only match brackets when theres no selection
* Highlighting tidying
* Fix markdown header highlighting
* Setting theme correctly in background
* Tidying module interface
* Merging main
* Fixing a bunch of typing problems
* Fixing more typing problems
* Correctly setting theme object
* mypy
* Small fix to bracket matching
* Improve a docstring
* Fix docstring
* Testing builtin and custom languages
* Unit testing theme stuff
* Reworking themes
* Error handling
* Improve error message
* Testing new theme setting approach, error handling
* Improvements/tests for theme and language setting
* Remove unused TextArea unfocus snapshot
* Update snapshot file
* Adding theme snapshot tests
* Add `function.call` style binding in dark vscode theme
* Renaming a test file
* Making active line clearer on vscode theme
* Renaming tests
* A whole lot of docs for TextArea
* Update wording in docs
* A bit more docs
* Example on adding Java as a custom language
* More custom language docs
* Finishing up custom themeing/syntax highlighting guide for TextArea
* Add note on potential issue
* Fix wording
* Add note on Apple Silicon Python 3.7 fallback
* Add another note on Apple Silicon Python 3.7 fallback
* Fix class names in example files
* Add some documentation for useful TextArea APIs
* TextArea docs improvements
* TextArea docs typo fix
* Note about extending TextArea
* Tab-stop support when spaces used for indent
* Docs update
* Text area blog post (#3356)
* Start blog post
* Add demo script to blog post
* Continuing the blog post
* Yet more writing for TextArea blog post
* Working on closing section
* Finishing up
* Update docs/blog/posts/text-area-learnings.md
Co-authored-by: Dave Pearson <davep@davep.org>
* Update docs/blog/posts/text-area-learnings.md
Co-authored-by: Dave Pearson <davep@davep.org>
* Typo fix
* Update docs/blog/posts/text-area-learnings.md
Co-authored-by: Dave Pearson <davep@davep.org>
---------
Co-authored-by: Dave Pearson <davep@davep.org>
* Remove redundant pass
* Add docstring
* Docs fix
* Simplify docs
* Improve docstring
* Add links in docstrings
---------
Co-authored-by: Dave Pearson <davep@davep.org>