Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Initial Release Checklist / Project Roadmap #1

Closed
55 of 85 tasks
PaulJuliusMartinez opened this issue Aug 20, 2021 · 0 comments
Closed
55 of 85 tasks

Initial Release Checklist / Project Roadmap #1

PaulJuliusMartinez opened this issue Aug 20, 2021 · 0 comments

Comments

@PaulJuliusMartinez
Copy link
Owner

PaulJuliusMartinez commented Aug 20, 2021

Friends and Family Release

Basic Functionality:

  • Finish basic set of movement commands
    • zt, zz, zb (1910b36)
    • number arguments to hjkl/scrolling, maybe others (eb7e116, 2d11dee)
      • Add count support to focus prev/next sibling (J and K) (6fb6218)
    • Support PageUp and PageDown (Move up/down by height of screen) (acf8ee3)
    • H to focus parent without collapsing current node (ed21d57)
  • Don't let long lines overflow horizontally (0ff12d4, a1dd70e, 849ef97)
    • Fix issue with displaying empty strings (3ee50d0)
    • Update LinePrinter to handle Containers (7be3404)
  • Better formatting of collapsed cells in Line and Data modes (b5f29b3)
    • Quote non-JS identifier keys and all keys in Line mode (168d14f)
    • Write lots of tests (2396477)
  • Display full controls in help menu (Just pipe to less for now; -r to use colored output) (fbfd842, 5b898e7, 458271e)
  • Command line arguments, --help documentation (ee1eb8c, 41a1018)
  • Basic error handling of JSON parsing errors
  • Show input source in status bar (3ade459)
    • Make it not overflow (84600c9)
      • Make this code not horrendous (5d15b5a)
  • Pretty print JSON to stdout if output is not a TTY (04bc1ac)

Polish

  • Properly restore terminal on close (6570011)
  • Move cursor to middle of screen when jumping "far" from place on screen (b9e07c6)
  • Play visual bell at appropriate points
  • Immediately respond to escape key (60f0f06)
  • Handle escape key in Rustyline (If possible to do simply)
  • Handle mouse wheel events (0ee52c8)
  • Handle mouse click events (2a11873, f2fea1e)
    • Don't execute click event when clicking on the status bar
    • Try to figure out a way to still allow highlighting (Only do stuff on Release?)

Release

  • Figure out how to actually generate release builds (bf44965)

Development / Debug

  • Add bind command / command-line-args for experimenting with new commands
  • "Record" mode (print all input to stderr)

Public Release

~ndjson

  • Different JSON parser (216210b)
  • Support multiple JSON objects separated by newlines (a4ecfbe)
    • Actually enforce that they are separated by newlines
  • Fix ndjson issues/bugs
    • Show focus indicator next to top level primitives in data mode (f5d8d65)
    • G causes panic when last top level thing is collapsed (20d5252)

Search

  • Update FlatJson to store ranges for keys and values, and for Rows (0502235, a226811, 5d10274)
  • Next/previous Object key with * and # (8505634)
  • Plain text search with / and ? (b9068f6)
    • Support /<CR> and ?<CR> as longcuts for next/previous match (1c2bff8)
  • Support count arguments to n and N (i.e., 3n jumps ahead three occurrences) (6795e7b)
  • Support count arguments to /, ?, * and # (814ac06)
  • Support smart case searching (case insensitive if all lowercase, case sensitive if any capital letters) (3641740)
  • Escape/unescape braces and square brackets for better search experience (2fce67a)
  • Search highlighting (baf1fb3, c53dfa6)
    • Highlight matching text in literal values (37172ae)
    • Highlight matching text in object keys (05d3c26)
    • Highlight matching text in collapsed previews (f1015a8)
    • Highlight container delimiters ([/] and {/}) when part of matching text (6fe0c11, c3e7a39)
    • Highlight currently focused match in different color (c094dfb)
  • Handle too many search results
  • Show messages when no results are found (9a81088)
    • Show message when regex compilation fails (aa1d8ed)

Focus

  • f to "focus" on a node

Logo

  • Jules the Jellyfish

Codebase/Project Quality & Presentation

Performance

  • Only paint lines that need repainting
  • Pack OptionIndex into single usize
  • Parameterize by u16/u32/u64 and upgrade as needed

Unclear prioritization

  • Hiding keys
  • No color mode
  • Explore additional commands
  • y to copy value to clipboard
    • Different things to paste: yy, value; yPpretty-printed value; yp, path (input.foo[0].bar[33]); yq, jq style path, .foo[].bar[] ?

Bugs

  • Respond immediately to WINCH events
  • Prevent flashes while scrolling (iTerm only?)
  • Path to key is truncated prematurely on long_values.json; doesn't include last character of key

V2

  • Windows support (Need help; I don't know what this means)
  • More robust syntax support for :focus
  • Stream input
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant