Giter Site home page Giter Site logo

nana's Issues

JSX based framework?

Not trying to start a flame war but convert_json_obj_to_html_inner would be extremely way more readable, maintainable and simple if you were using any framework with JSX support. How strongly opinionated are you about this? I could easily port whats already implemented, given the current small codebase, and add some UI improvements at the same time!

Sorting is slow, sometimes

Sorting is unexpectedly slow sometimes and I'm not sure why.

Steps to reproduce

  1. ls in a folder with a small number of files (~10)
  2. Click on a column header a few times to sort it, reverse sort direction, repeat

Sometimes it sorts instantly, sometimes it takes almost 1s. This is on a fast Windows desktop, in release mode.

It's worth profiling or adding some instrumention to figure out where the slowdown is (Rust? React? The serialization/deserialization that occurs when passing data from the back-end to the front-end?) - it really shouldn't be this slow.

Redundant empty cards are added on multiple 'Enter' presses

When submitted input in first card creates a second card as expected:
image

However, If I again press an Enter from first card it will create an additional third card:

image

Two empty cards are redundant. Here, we can reuse the second card without creating a new card. Also, we may only create a new card if we are submitting input from the last card.

ci checks?

Should there be some ci checks we should be running on PRs?

wishlist 2 ?

Hey guys ! I just found out about your project and I think it is awesome ! I had posted on several discord servers an idea very similar to nana about 6 month ago so I wanted to share it with you. Maybe it can inspire you ! I know you do it more for macos and windows but personnaly I think it would be awesome to do it for linux. We could be the first to have an awesome 2022 new terminal, easier than before and more accessible to the noobs. Heres the post I did 6 month ago 👍

Hey guys I had an crazy idea, I'm not a developper and I know it would be very hard to do but I say it anyway here :

A terminal emulator who is showing gui things. Not for the old bastard like us that loves the black terminal but for young people that discover linux.
When you enter commands, it will have a scrolling menu (like in excel) that recommands commands, and custom simple commands with html/css output (like ls would be able to show a dolphin like screen)
and if you write it in rust everybody will LOVE you ahahah
I would love to help creating it, I'm not a developper but I can design maybe or idk
Heres a concept image :

can't build in windows

I can't build in windows any longer. Seems like it's coming from the tauri-runtime-wry dependency.

   Compiling tauri-runtime v0.3.4
   Compiling tauri-runtime-wry v0.3.5
error[E0061]: this function takes 4 arguments but 3 arguments were supplied
   --> src\run_external.rs:128:44
    |
128 |                     let mut process = self.create_process(&input, true, head)?;
    |                                            ^^^^^^^^^^^^^^ ------  ----  ---- supplied 3 arguments
    |                                            |
    |                                            expected 4 arguments
    |
note: associated function defined here
   --> src\run_external.rs:332:8
    |
332 |     fn create_process(
    |        ^^^^^^^^^^^^^^
333 |         &self,
    |         -----
334 |         input: &PipelineData,
    |         --------------------
335 |         use_cmd: bool,
    |         -------------
336 |         use_external_terminal: bool,
    |         ---------------------------
337 |         span: Span,
    |         ----------

For more information about this error, try `rustc --explain E0061`.
error: could not compile `nana` due to previous error
Terminate batch job (Y/N)? Terminate batch job (Y/N)? y

Wishlist

  • click on filenames to cd or open them if they are a directory or file (respectively)
  • ctrl+click or shift+click to select more than one cell to use as parameters to the next command
  • pressing 'up' to get the previous history should put me at the end of the input
  • tab-completions based on what we have in Nushell
  • once you hit enter, we can "lock in" the input if it was successful and syntax highlight it for you. You can click on it again and edit more.
  • ctrl+up and ctrl+down could move between cards
  • on the left-hand side we can add bookmarks/quick access to things we want. Like drag over a filename or drag over a pipeline
  • we may want to bring back "value shell" and let users not only explore the filesystem but also explore any data source they want

autocapitalize appears to be broken on macos

on macos, the input box where you type want to auto-capitalize at the start of each box. previously i disabled this with @rgwood's advice of autocapitalize='none' and it worked with svelte. now that we're on react, it's not working anymore even though it's enabled.

autoCapitalize="none"

i'm not sure if it's maybe in the wrong place or if it needs to be somewhere else. all i know is that the same bad behavior still exists on macos.

Opening large file blocks view

Not entirely sure what is the exact issue here, but open large_file.txt blocks rendering, and also slows down the typing experience by quite a bit.

Once the precise issue is determined, it could be fixed by a mix of the following:

  • Paginating server responses to client (meaning the server has to store all of the responses)
  • Virtualized scrolling on client (possible, another thing to implement)
  • React 18's concurrent apis (which are supposed to let you be able to prioritize some tasks as “low-priority” so e.g. typing in an input always remains fast).

We should publish builds

It's a bit hard for people who aren't experienced with Rust to try Nana out. It would be nice if we could build executables+installers in GitHub Actions and publish them (probably in GitHub releases).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.