Task Editor Rework
There are many bugs to solve about a task editor. Some of them requires huge changes in code and therefore we want to create a new version of task editor
Related bugs
Have a link to the parent(s) in the task editor (there is already some code)
Add tag, due and others via keyboard (like RTM)
Create subtask with Keyboard (<Tab> may not recommended)
Autocomplete for tags (With Tab or C-Enter better according to ploum)
Creating a task in the task editor should support the quickadd syntax
Drag and dropping tasks open in the taskeditor on to tags should refresh the content of the editor
gtg_new_task does not support subtasks (needs a split of GTK and parsing part)
Highlighting tags does not work properly (Tag mis-recognition with ')', ',' or other notation behind)
convert selected lines to subtask by clicking the subtask button
Workflowy mode for task editor (Need more discussion, pure imitation is not elegant.)
Put into a clipboard also rich text version of copied task description
Simpleway how to input a lot of new tasks withing a certain structure
Context menu on an URL should have a "Copy Link Location" command
Format of tag
Note:
- There should be a list of allowned notations in tags which need more discussion.
Definition in Regular Expression (in Python):
- This is deprecated and will revised later.
re.complie('(?:^|\s)@([^!@\s]\S*)', re.MULTILINE)
What should be a tag:
- @tag
- @google.com
@M&M should be parsed as @M
What shouldn't be a tag:
- @@ -- it is a part of diff output
user@mail.com -- not e-mail addresses
- @!tag -- '!' is reserved for negation of tags, it might interfere with tag completion
- @tag@ should not be a tag.
More specification:
- @should omit the notation at the end of sentence. e.g. "go @home." should be parsed as "@home" instead of "@home."
Features summary
- Redesign task structure (This tends to solve a lot of strange bugs)
- Quick add syntax
- Tag auto-completion
- Undo
- Rich text format
- Spell check
- Faster way of adding subtask
- Search for text within a task-editor, and Search for Task using task browser
- User Definable Shortcut Key
To Do List
make a new structure of a task -> tags, subtasks, bold, italic
- split GTK and parser part (and write intensive tests for parser)
implement undo & tag completition
- design when to autosave
- respond to modified() signal (auto refresh of a task)
- implement spell check
- design keyboard friendly way how to enter lot of subtasks (including nested subtasks) (something like workflowy mode)
- Disabled Mode (something like launchpad bugs list which is not allowed to edit title and content except for adding and deleting tags.)
Tags removal
- remove tags only from tags line or when there is nothing more than a tag on on the single line
- other reocurrences replace by the name of tag
Example task:
Call @boss @today @boss Discuss with my @boss my assignments.
After removing tag @boss
Call boss @today Discuss with my boss my assignments.
Some Opinions
- Refer to reStructuredText or some other markup language syntax
- lists (subtask in GTG) start with dash and a space (nest also support)
- rich text format // \*italic\*, \**blod\**, no underline syntax
- restrict some field value pattern to make it parsed by Regular Expression
- Example: restrict tag start with @ and only contains letters, numbers or some limited symbol like '-'. // tag_pattern = re.compile('@[\w-]+')
- Vim auto-completion
- I am used to the raw auto-completion in vim and its display. More discussion needed.
Conclusion
- Suggestions tend to realize features:
- Redesign task structure
- Quick add syntax
- Rich text format
- Tag auto-completion
- Features remained and some potential reference
- Spell check
- Pitijo's code
- python-enchant
- Undo
- Luca's code
- Spell check
Interested people
- huxuan
- Song Yangyu