* Initial draft of the howto for packaging an application
There's a fair bit more I think needs adding, but this has the core concepts
within it. Things still to decide or do are:
- How much lead-in and hand-holding is needed for Hatch and Poetry
For example, should we walk the reader through the `init` process for Hatch
and Poetry, and then guide them to the correct directory in which to create
their application, etc?
- How to do the example repo
Should I do two repos, one for Hatch and one for Poetry? Or should I do one
repo with a Hatch and a Poetry example within sub-directories? In either
case having a tidy one-to-one relationship with what I talk about in the
text won't be quite right.
Mainly though I feel the core of what's needed is here (and it's not much,
but has taken some testing and checking and whittling down to get here).
* Title tweak
* Add a note about declaring Textual as a dependency
While this might seem obvious, and while some tools will, as a natural
consequence of using them, ensure that this happens, it's worth highlighting
this so that the reader is mindful of this.
Also, someone might be reading the HOWTO while considering how they to this
with their own build system.
* Break paragraphs down into different lines
Just an internal layout thing. Some folk seem to like this sort of thing.
* Add a summary
* Some rewording
* Link to the example repos
* Post-initial-proof-read
* Link to pip and pipx
* Don't repeat help in the same sentence
* Remove an actual needless word
* Remove the dual use of application in a sentence
* Link to TCSS files in case the reader needs a refresh
* Explain what the example repositories were built for/with
It should be obvious from the names; but it can't hurt to be *very* clear.
* Update docs/how-to/package-an-application.md
Co-authored-by: Will McGugan <willmcgugan@gmail.com>
* Changes in response to feedback
* Trim down the into a wee bit
* Trim down the into a wee bit more
---------
Co-authored-by: Will McGugan <willmcgugan@gmail.com>
* 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>