shiny/widget/flex/flex.go (12 lines): - line 75: AlignItemBaseline // TODO requires introducing inline-axis concept - line 100: // TODO: do we (or will we )have a useful notion of Content in the - line 138: // TODO: pass down width/height hints? - line 142: // TODO Measure - line 299: // TODO: we work in whole pixels but flex calculations are done in - line 371: // TODO §9.4.8.1, no concept of inline-axis yet - line 455: // TODO requires introducing inline-axis concept - line 565: // TODO Content §9.2.3.B, C, D - line 591: // TODO: source a formal description of "intrinsic aspect ratio" - line 641: MinSize image.Point // TODO use unit.Value - line 642: MaxSize *image.Point // TODO use unit.Value - line 657: BasisPx int // TODO use unit package? shiny/screen/screen.go (10 lines): - line 66: // TODO: specify image format (Alpha or Gray, not just RGBA) for NewBuffer - line 83: // TODO: rename Buffer to Image, to be less confusing with a Window's back and - line 169: // TODO: also implement Drawer? If so, merge the Uploader and Drawer - line 197: // TODO: LatestLifecycleEvent? Is that still worth it if the - line 200: // TODO: LatestSizeEvent? - line 239: // TODO: fullscreen, icon, cursorHidden? - line 282: // TODO: make it optional that a Buffer's contents is preserved after - line 298: // TODO: have a Downloader interface? Not every graphical app needs to be - line 352: // TODO: transparency in [0x0000, 0xffff]? - line 353: // TODO: scaler (nearest neighbor vs linear)? shiny/widget/widget.go (8 lines): - line 7: // TODO: give an overview and some example code. - line 51: // TODO: some mechanism to process, filter and inject events. Perhaps a - line 56: // TODO: how does RunWindow's caller inject or process events (whether general - line 60: // TODO: how do widgets signal that they need repaint or relayout? - line 62: // TODO: propagate keyboard / mouse / touch events. - line 88: // TODO: determine somehow if there's an external paint event in the queue, - line 91: // TODO: if every package that uses package screen should basically - line 143: // TODO: call Mark(node.MarkNeedsPaint)? shiny/text/text.go (8 lines): - line 140: // TODO: allow multiple font faces, i.e. rich text? - line 158: // TODO: is a font.Metrics.Height actually useful in practice?? - line 160: // TODO: is it the font face's responsibility to track line spacing, as - line 171: // TODO: should SetMaxWidth take an int number of pixels instead of a - line 335: // TODO: run a compaction if the free-list is too large? - line 341: // TODO: run a compaction if the free-list is too large? - line 347: // TODO: run a compaction if the free-list is too large? - line 741: // TODO: measure the height of each box, if we allow rich text (i.e. more shiny/widget/node/node.go (8 lines): - line 119: // TODO: app-specific OpenGL, if available, should be part of the effects - line 167: // TODO: other OnXxxEvent methods? - line 178: // TODO: add a clip rectangle? - line 180: // TODO: add the DrawContext from the lifecycle event? - line 188: // TODO: add a clip rectangle? Or rely on the RGBA.SubImage method to pass - line 391: // TODO: add commentary about the Measure / Layout / Paint model, and about - line 419: // TODO: should insert and remove call Mark(MarkNeedsMeasureLayout | MarkNeedsPaint)? - line 496: // TODO: use this. shiny/text/caret.go (7 lines): - line 7: // TODO: do we care about "\n" vs "\r" vs "\r\n"? We only recognize "\n" for - line 44: // TODO: when re-calculating p, l, b and k, be more efficient than a linear - line 447: // TODO: re-layout the new c.p paragraph, if we saw '\n'. - line 508: // TODO: re-layout the newP paragraph. - line 520: panic("TODO: degenerate split left, possibly adjusting the Line's firstB??") - line 599: // TODO: match all whitespace, not just ' '? - line 605: panic("TODO: is falling back on the U+FFFD glyph the responsibility of the caller or the Face?") shiny/driver/windriver/window.go (7 lines): - line 10: // TODO: implement a back buffer. - line 69: // TODO: - line 83: // TODO: - line 138: // TODO: check if this (and below) works when src2dst[0] < 0. - line 144: // TODO: check if this (and below) works when src2dst[4] < 0. - line 245: panic(fmt.Sprintf("execCmd faild for cmd.id=%d: %v", c.id, c.err)) // TODO handle errors - line 267: // TODO: adjust if dp is outside dst bounds, or sr is outside buffer bounds. shiny/gesture/gesture.go (7 lines): - line 17: // TODO: handle touch events, not just mouse events. - line 19: // TODO: multi-button / multi-touch gestures such as pinch, rotate and tilt? - line 22: // TODO: use a resolution-independent unit such as DIPs or Millimetres? - line 65: // TODO: implement velocity. - line 133: // TODO: a "Velocity Point" field. See - line 141: // TODO: include the mouse Button and key Modifiers? - line 200: // TODO: Velocity. shiny/widget/text.go (7 lines): - line 25: // TODO: scrolling, although should that be the responsibility of this - line 42: // TODO: can a theme change at runtime, or can it be set only once, at - line 46: // TODO: when is face released? Should we just unconditionally call - line 56: // TODO: should padding (and/or margin and border) be a universal concept and - line 70: 0, // TODO: this isn't right. - line 138: // TODO: adjust d.Dot.X for any ligatures? - line 149: // TODO: draw an optional border, whose color depends on whether w has the apidiff/apidiff.go (7 lines): - line 1: // TODO: test swap corresponding types (e.g. u1 <-> u2 and u2 <-> u1) - line 2: // TODO: test exported alias refers to something in another package -- does correspondence work then? - line 3: // TODO: CODE COVERAGE - line 4: // TODO: note that we may miss correspondences because we bail early when we compare a signature (e.g. when lengths differ; we could do up to the shorter) - line 5: // TODO: if you add an unexported method to an exposed interface, you have to check that - line 8: // TODO: check constant values: large values aren't representable by some types. - line 9: // TODO: Document all the incompatibilities we don't check for. shiny/driver/gldriver/cocoa.go (6 lines): - line 50: // TODO: change this to true, after manual testing on OS X. - line 128: // TODO: is this necessary? - line 296: // TODO: On a trackpad, a scroll can be a drawn-out affair with a - line 300: // TODO: handle horizontal scrolling - line 489: // TODO: move the rest of these codes to constants in key.go - line 662: // TODO key.CodeRightGUI shiny/driver/gldriver/window.go (6 lines): - line 39: // TODO: Delete the field below (and the useLifecycler constant), and use - line 93: // - Windows: TODO: implement and document this. - line 101: // being clicked. (TODO: document how this actually cleans up - line 104: // - Windows: TODO: implement and document this. - line 125: // TODO: keep a texture around for this purpose? - line 173: // TODO: initialize this somewhere else we can better handle the error. shiny/driver/gldriver/x11.go (5 lines): - line 115: // TODO: don't assume that there is only one window, and hence only - line 118: // TODO: should we be able to make a shiny.Texture before having a - line 149: // TODO: select instead of poll. Note that knowing whether to call - line 160: // TODO: do we need to synchronize with seeing a size event for - line 231: // TODO: should a mouse.Event have a separate MouseModifiers field, for shiny/widget/glwidget/glwidget.go (5 lines): - line 54: // TODO: use the size of the monitor as a bound for texture size. - line 59: panic(fmt.Sprintf("glwidget: %v", err)) // TODO: return error? - line 78: // TODO: delete the framebuffer, texture, and gl.Context. - line 79: // TODO: explicit or finalizer cleanup? - line 104: // TODO: draw the widget texture directly into the window framebuffer. shiny/driver/x11driver/window.go (5 lines): - line 7: // TODO: implement a back buffer. - line 58: // TODO: call w.lifecycler.SetDead and w.lifecycler.SendEvent, a la - line 94: // TODO: implement a back buffer, and copy or flip that here to the front - line 110: // TODO: does the order of these lifecycle and size events matter? Should - line 144: // TODO: should a mouse.Event have a separate MouseModifiers field, for jsonrpc2/conn.go (5 lines): - line 154: //TODO: rewrite this using the new target/prototype stuff - line 358: //TODO: this causes a lot of shuffling, should we use a growing ring buffer? compaction? - line 363: // TODO: should we allow to limit the queue size? - line 416: //TODO: should we do more than just log it? - line 473: // TODO: get a method label in here somehow. shiny/example/goban/main.go (4 lines): - line 13: // TODO: Improve the main function. - line 14: // TODO: Provide more functionality. - line 33: var scale = flag.Int("scale", 35, "`percent` to scale images (TODO: a poor design)") - line 92: // TODO: Set board size. shiny/driver/gldriver/win32.go (4 lines): - line 27: // TODO: change this to true, after manual testing on Win32. - line 30: // TODO: change this to true, after manual testing on Win32. - line 178: // TODO: the paint.Event should have External: true. - line 215: // TODO: this call to Viewport is not right, but is very hard to shiny/example/textedit/main.go (4 lines): - line 14: // TODO: cursors + editing (not just viewing) text, key + mouse events, - line 44: widget.NewLabel("TODO: status"), - line 46: widget.NewLabel("TODO: Menu"), - line 58: // TODO: make the body's sheet scrollable. vulndb/internal/audit/detect.go (4 lines): - line 34: // TODO: identify vulnerability with ? - line 49: // TODO: add messages for such cases too? - line 190: // TODO: if modVersion == "", try vcs to get the version? - line 200: // TODO: issue warning for "" cases above? shiny/widget/image.go (3 lines): - line 15: // TODO: mask and maskPoint, not just src and srcRect. - line 17: // TODO: be able to specify the draw operator: Src instead of Over. - line 19: // TODO: if the measured size differs from the actual size, specify a event/adapter/zap/zap.go (3 lines): - line 64: // TODO: Add labels more efficiently: compare cap(ev.Labels) to the total number to add, - line 126: // TODO: ??? - line 129: // TODO: avoid creating a label at all in this case. shiny/widget/theme/theme.go (3 lines): - line 21: // TODO: include font.Hinting and font.Stretch typed fields? - line 23: // TODO: include font size? If so, directly as "12pt" or indirectly as an enum - line 43: // TODO: add a "Metrics(FontFaceOptions) font.Metrics" method? shiny/driver/internal/win32/win32.go (3 lines): - line 193: // TODO: On a trackpad, a scroll can be a drawn-out affair with a - line 220: // TODO: handle horizontal scrolling - line 272: // TODO: use the golang.org/x/exp/shiny/driver/internal/lifecycler package shiny/driver/gldriver/x11.c (3 lines): - line 29: // TODO: share code with eglErrString - line 156: //TODO: use GetModifierMapping to figure out which modifier is the numlock modifier. - line 312: // TODO: use the size of the monitor as a bound for texture size. shiny/iconvg/doc.go (3 lines): - line 22: // TODO: shapes (circles, rects) and strokes? Or can we assume that authoring - line 25: // TODO: mark somehow that a graphic (such as a back arrow) should be flipped - line 31: // TODO: hinting? shiny/driver/windriver/texture.go (3 lines): - line 98: panic(err) // TODO handle error - line 104: panic(err) // TODO handle error - line 133: panic(err) // TODO handle error shiny/driver/gldriver/screen.go (2 lines): - line 52: // TODO: can we compile these programs eagerly instead of lazily? - line 55: // TODO: this might be correct. Some GL objects can be shared shiny/widget/sheet.go (2 lines): - line 17: // TODO: scrolling. - line 96: // TODO: should draw.Over be configurable? shiny/driver/x11driver/screen.go (2 lines): - line 27: // TODO: check that xgb is safe to use concurrently from multiple goroutines. - line 248: // TODO: is findBuffer and the s.buffers field unused? Delete? shiny/iconvg/internal/gradient/gradient.go (2 lines): - line 16: // TODO: gamma correction / non-linear color interpolation? - line 18: // TODO: move this out of an internal directory, either under internal/stack/process.go (2 lines): - line 80: // TODO: do we want to allow contraction of stacks before comparison? - line 99: //TODO: do we want other grouping strategies? rand/rand.go (2 lines): - line 126: // TODO: Avoid some 64-bit ops to make it more efficient on 32-bit machines. - line 136: // TODO: Avoid some 64-bit ops to make it more efficient on 32-bit machines. shiny/driver/gldriver/cocoa.m (2 lines): - line 198: // TODO: catch windowDidMiniaturize? - line 216: // TODO: is this right? Closing a window via the top-left red button event/eventtest/eventtest.go (2 lines): - line 36: //TODO: choose between stdout and stderr based on the event - line 37: //TODO: decide if we should be calling h.tb.Fail() apidiff/messageset.go (2 lines): - line 1: // TODO: show that two-non-empty dotjoin can happen, by using an anon struct as a field type - line 2: // TODO: don't report removed/changed methods for both value and pointer method sets? shiny/example/imageview/main.go (2 lines): - line 34: // TODO: scrolling, such as when images are larger than the window. - line 55: // TODO: view multiple images. vulndb/internal/audit/vulnerability.go (2 lines): - line 28: // TODO: what if client has its own db - line 57: // TODO: define modCacheDir using cmd/go/internal/cfg.GOMODCACHE shiny/driver/x11driver/texture.go (2 lines): - line 106: // TODO: check if this (and below) works when src2dst[0] < 0. - line 115: // TODO: check if this (and below) works when src2dst[4] < 0. apidiff/compatibility.go (2 lines): - line 108: // TODO: must also check that if any methods were added or removed, every exposed - line 282: // TODO: find a way to use checkCompatibleObjectSets for this. rand/rng.go (2 lines): - line 41: // TODO: Use these? - line 50: pcg.high = seed // TODO: What is right? shiny/driver/x11driver/x11driver.go (2 lines): - line 8: // TODO: figure out what to say about the responsibility for users of this - line 61: // TODO: tear down the s.run goroutine? It's probably not worth the shiny/example/icongallery/main.go (2 lines): - line 14: // TODO: key events to navigate through the icons. Also add a search-by-name - line 84: // TODO: make a standard widget.Button. vulndb/internal/audit/detect_callgraph.go (2 lines): - line 220: // TODO: add tests for trace confidence computation involving std libs. - line 346: // TODO: can we optimize using the information on findings already reported? vulncheck/fetch.go (2 lines): - line 71: // TODO: what if client has its own db - line 106: // TODO: define modCacheDir using something similar to cmd/go/internal/cfg.GOMODCACHE? shiny/driver/driver.go (1 line): - line 8: // TODO: figure out what to say about the responsibility for users of this utf8string/string.go (1 line): - line 180: // TODO: Is it much faster to use a range loop for this scan? shiny/driver/internal/x11key/x11key.go (1 line): - line 200: xkMenu: key.CodeRightGUI, // TODO: CodeRightGUI or CodeMenu?? errors/wrap.go (1 line): - line 61: // TODO: consider supporing target.Is(err). This would allow shiny/driver/gldriver/texture.go (1 line): - line 70: // TODO: can we use GL_UNPACK_ROW_LENGTH with glPixelStorei for stride in shiny/iconvg/decode.go (1 line): - line 104: // TODO: detect FFV 1 (File Format Version 1), as opposed to the FFV 0 shiny/driver/internal/lifecycler/lifecycler.go (1 line): - line 71: // TODO: does shiny use this at all? event/common.go (1 line): - line 132: //TODO: do we want the rest of the values from the end event? shiny/widget/uniform.go (1 line): - line 38: // TODO: should draw.Src be draw.Over? vulncheck/vulncheck.go (1 line): - line 278: // TODO: issue warning for "" cases above? internal/stack/parse.go (1 line): - line 152: //TODO: push back the fun raw shiny/widget/label.go (1 line): - line 37: // TODO: padding, to match a Text widget? shiny/widget/flow.go (1 line): - line 14: // TODO: padding, alignment. errors/fmt/errors.go (1 line): - line 30: // TODO: this is not entirely correct. The error value could be event/event.go (1 line): - line 72: //TODO: we can change this to a much faster test event/adapter/logr/logr.go (1 line): - line 102: //TODO: this needs to be more complicated, v decreases with increasing severity shiny/imageutil/imageutil.go (1 line): - line 12: // TODO: move Border into the standard library's package image? shiny/example/widgetgallery/main.go (1 line): - line 72: // TODO: create a bunch of standard widgets: buttons, labels, etc. vulndb/govulncheck/cache.go (1 line): - line 43: // TODO: make cache thread-safe shiny/example/goban/board.go (1 line): - line 308: render(m, b) // TODO: Connect this to paint events. shiny/driver/windriver/windraw.go (1 line): - line 117: defer _DeleteObject(bitmap) // TODO handle error? errors/fmt/scan.go (1 line): - line 732: // TODO: accept N and Ni independently? shiny/driver/internal/win32/zsyscall_windows.go (1 line): - line 33: // TODO: add more here, after collecting data on the common cmd/macos-roots-test/root_darwin.go (1 line): - line 43: // TODO: actually parse the "trust-settings-export" output and apply the full cmd/macos-roots-test/root_cgo_darwin.go (1 line): - line 268: // TODO: better error message event/adapter/logfmt/logfmt.go (1 line): - line 19: //TODO: some actual research into what this arbritray optimization number should be shiny/driver/internal/win32/key.go (1 line): - line 320: // TODO: cache GetKeyboardLayout result, update on WM_INPUTLANGCHANGE