-
Notifications
You must be signed in to change notification settings - Fork 0
/
TODO.txt
269 lines (227 loc) · 10.8 KB
/
TODO.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
COMMONPLACE JOURNAL TODO
[ ] cj needs some proper refactoring
[ ] search for #go finds #goodcar
[ ] put a symlink in ~/Desktop and the binary in /home/gilbert/go/bin/ (using go install)
[ ] # icon (white on clear, 48x48)
[ ] need way, in plain text, of marking a line or paragraph with a hashtag,
making it clear that the hashtag applies just to that text
- Bard ------
Hashtags should go before the text they apply to. This is the standard way to use hashtags in social media, and it makes it clear that the hashtag is associated with the text that comes before it.
For example, if you're writing a blog post about cats, you might use the hashtag #cats. You would write the hashtag as follows:
#cats
This is a blog post about cats.
If you put the hashtag after the text, it would be less clear that the hashtag is associated with the text that comes before it. For example, the following would be less clear:
This is a blog post about cats #cats.
In this case, it's not clear whether the hashtag #cats is associated with the word "cats" or the entire sentence.
So, to make sure that your hashtags are clear and easy to understand, always put them before the text they apply to.
--------------
[-] store y, m, d in Note instead of time.Time?
then publish Date()
[ ] https://github.com/aarzilli/nucular
can set style in RichText widget, eg
c.SetStyleForSel(findSel(bigEnchillada, "it's a false hologram, it is artificial"), richtext.TextStyle{Face: italic})
[X] func (e *Entry) SelectedText() string
link toolbar icon (no builtin)
launch in browser
[-] find the bit of code in widget.Entry that puts text onto the screen
and add a hook that allows highlighting
[-] redo in Gtk
use https://wiki.gnome.org/Projects/GtkSourceView
or https://codebrainz.github.io/GtkScintilla/
too complicated
[ ] ReadStuffLater uses emojis to tag content
[X] maybe found list should show dates, instead of first lines?
or somehow manage to show line where hit words are
[ ] get rid of widen/narrow/exclude popup?
parse "or" "and" "not" in searchEntry (these would be stopwords anyway)
strictly left to right, no parentheses
would it be tricky to do as it's typed?
dog
dog food
dog or cat
dog food or cat food not grapes
find "dog food"
push or
find "cat food"
push not
...problem using ' or " around query string to find phrases
[ ] grep alternatives
https://sift-tool.org/docs
https://github.com/BurntSushi/ripgrep
[ ] title no longer shows name of journal
go back to olde style app title
put today's date somewhere else
make today's name region-sensitive
[ ] experiment with using custom icons in toolbar
48 png, ok, svg not drawing, investigate the fyne source
[X] deprecate putting 'Mon 17 Jul 2023' as the first line of every note
by displaying the current date somewhere else, like a pseudo title field
put a button widget in the toolbar
println(t.Format("Mon 2 Jan 2006"))
https://gosamples.dev/date-time-format-cheatsheet/
set button text in setCurrent()
[ ] think about using json to store notes
hashtag field
[ ] now we use grep for search
how about using an external editor?
https://micro-editor.github.io/
piggyback found words/hashtags on syntax highlighting
[ ] don't really need to prev/next day toolbar icons
could add shortcuts
[ ] shortcuts
see "Adding shortcuts to an Entry" at https://developer.fyne.io/explore/shortcuts
to add shorts to note multilinentry, for save, find all etc
how to do Ctrl+Left/Right &c? no way to set Entry selection?
see suggested enhancement https://github.com/fyne-io/fyne/issues/2462
can get CursorRow, CursorColumn int
Entry.InsertText() https://github.com/fyne-io/fyne/issues/3445
[ ] three finders
dynamic find (type in the entry, list is dynamically displayed)
find hashtags (find all hashtags using regexp, display in list)
find/widen/narrow/exclude
(not find all, that was in com)
[ ] steal ideas from https://www.tagspaces.org
[ ] findAll is finding them all but not displaying properly
the last file found is missing
oh, now it's working?
...only when main window/list is resized
...suggesting it's a Fyne bug
[ ] com: image files as notes, preview, note with same name as image, contain description, source, hashtags?
cat_washing.gif
cat_washing.txt
[ ] com: color-codes notes? aren't Books and #hashtags enough?
scan for #blue #red #green tags and change theme when loading
[ ] detect if note has changed on disk
[X] com find all notes
[ ] DocumentCreateIcon
[ ] more visible caret in entry widget
[ ] Find the Entry source, read it, roll your own?
[ ] MarkText-style hamburger menu
set font
set light/dark theme
create backup
see the following source for dialog.FileOpen
https://github.com/fyne-io/fyne/blob/v2.3.4/dialog/file.go
https://github.com/fyne-io/fyne/blob/master/dialog/file.go
[ ] func NewRichTextFromMarkdown(content string) *RichText
RichText can't be edited, but could be used as pop-up display of a Markdown note
so open a preview pane to the right of the MultiLineEntry pane
[ ] Entry.SetMinRowsVisible
[ ] could AddShortcut to widget.Entry canvas
[ ] .txt/.md switch?
[ ] more support for #tags? insert from dict? search for tag?
[ ] fyne.AppMetaData
[ ] app desktop icon
create a .desktop file in /usr/share/applications
[ ] Update list if note title edited (on save, implied reloading note)
[ ] copy .SelectedText() to find entry when Ctrl+F
[ ] Backup to .zip file 'nincomp<date of backup>.zip'
[ ] found list has two columns: date (ISO 8601) and text (first line)?
[ ] follow url link in text
find all url in text
https://stackoverflow.com/questions/6038061/regular-expression-to-find-urls-within-a-string
show list of found urls in a popup, click to follow
...the list would look nasty, and be very wide
- or -
extend selection forwards & backwards to cover a url (step 1, testable)
func (e *Entry) SelectedText() string
follow selected url
[ ] autocomplete https://addons.fyne.io/addons/io.fyne-x.completion-entry.html
based on https://pkg.go.dev/fyne.io/x/fyne/widget#CompletionEntry
[ ] List names of .nincomp subdirectories at start; choose one
[ ] redo in Haxe/HaxeUI
has calendars
[ ] redo as vscode extension(s)?
calendar https://marketplace.visualstudio.com/items?itemName=miyamotoh.vscal2
[ ] redo in Go/Gio UI https://gioui.org/doc/learn
the text edit supports Ctrl+Left/Right, fo a start
have to create your own calendar
[ ] redo in Dart/Flutter
[ ] redo in Tcl/Tk (roll your own date picker, examples in tkinter)
https://core.tcl-lang.org/tklib/doc/trunk/embedded/md/tklib/files/modules/widget/widget_calendar.md
https://github.com/tcltk/tklib/blob/master/modules/widget/calendar.tcl
[ ] redo in Java/JavaFX (has a nice calendar/date picker), Grep4J library,
use the JavaFX Scene Builder (not JavaFX Script, which is discontinued)
Maven, Gradle, OpenJDK, JavaFX versions ...
[ ] redo in https://gioui.org/
calendar widget
[ ] redo in Bubbletea
https://golangscript.com/g/line-editor-based-on-the-bubbletea-library
[x] redo in www.electronjs.org/ (like marktext, vscode), but then it would be huge.
[x] redo in Gambas (no date picker?)
[x] redo in https://xojo.com $399/year to write BASIC apps? No thank you.
[x] redo in Ruby/Shoes (learn Ruby and roll your own date picker) (editor might be shit, again)
[x] redo on Vala/GTK, but then it would be Gnome only, no Windows, Mac, mobile. So what?
https://wiki.gnome.org/Projects/Vala/Tutorial
[ ] fyne tries to open /home/gilbert/.config/incrementaljournal/preferences.json
and /home/gilbert/.config/fyne/settings.json
and /home/gilbert/.config/fyne/theme.json
according to strace
[ ] func funcName(a INTERFACETYPE) CONCRETETYPE
[X] bundle userhome, data and journal directories
[X] Move cjNote.pathname to Note.Pathname
[X] why load the text off all notes?
[X] do something with Mon 1 Jan 0001
[X] filter out files that start with '.'
[x] little button to clear the searchEntry
[x] convert all found #hashtags into lower case
[x] search uses grep; retire search.go to .junk
[x] com retired to .junk
[x] new name - cj - commonplace journal?
[x] com: find a note, create a new note, then click on found note: nothing happens, stuck on new note
implies create new note should zap the found list?
[x] different books in tabs? no, open different instances
[x] append only notes app (see incremental notes from https://thesephist.com/posts/inc/)
my favorite color was red, now it's blue
[x] com and inc should have different icons
[x] rname from goldnotebook to something else cominc incom incomp increcom nincomp(oop)
[x] search (for regexp) returns found word(s)?
[x] cmd to search for all #hashtags, display popup list, click to search for that
[x] split into inc and com
[x] regex search returns list of found wordlets
[x] open book needs to offer to create book
[x] search when input happens in search entry
[x] app version and --version
[x] Toolbar: | book | <prev day | today | next day> | preview
[x] No need for find button
[x] Common/General notebook plus separate notebooks for TV, GT7, ...
[x] word wrap
[x] Enter to search after typing in entry widget
[x] Calendar highlight to follow current, not today
[x] font could be bigger
[x] why have undated notes at all?
solve the problem of having >1 notes with same name
(currently notes can be overwritten)
undated notes remain hidden until found
there wouldn't have to be a ^N "Create new note"
if you want to make a "cooking" note, just pick an empty date in the past
and create a "cooking" note
why not create .goldnotebook/cooking.txt? the fname-to-date parser would fail,
but that's ok because it's expected
or "create note" could prompt for filename? that's no longer as simple as possible
conclusion: undated notes add complexity for marginal gain
[x] Calendar - highlight current date
[x] Create new undated note
[x] Adding multiple hits to result
[x] Load note directly from list item?
[x] Font - use a system font if possible, if not embed Droid Sans Mono
[x] Parse filename into date
[x] Populate list from results of grup
[x] Grup to produce list of matching filenames
[x] have dated and undated directories
[x] Detect app exit to save current note
[x] Calendar - widget.Resize() width (put it in a centered container)
[x] list only displaying 1 of 3 items
FYNE PROBLEMS
- If the focus is in the MultiLineEntry, the keyboard shortcuts seem to be directed to that instead of canvas
- RichText is readonly, and support for markdown is poor, and even poorer with a monospace font
- SizeNameLineSpacing seems to be ignored by MultiLineEntry
- SpellChecker https://github.com/fyne-io/fyne/issues/2325
- Can't use Ctrl+Right/Left to move words
- Waiting to implement widget tooltips (it's raised as an issue)
- MultiLineEntry text rendering is uneven
- Caret is too small
- Can't highlight hit words or spelling errors
- Text copied appears in other entry widgets, and other apps, but not in Ubuntu desktop
- flicker when reshowing calendar (not all the time - when note gets saved?)
- No Ctrl Z undo in entry widget