dynamic-cli icon indicating copy to clipboard operation
dynamic-cli copied to clipboard

Autocomplete for Dynamic CLI

Open GouravSardana opened this issue 3 years ago • 14 comments

We need to autocomplete feature for dynamic to make it easier to use.

For example - If I type dynamic in the terminal it will show a popup like --help, -post, -no

See this -

OnPaste 20210930-165426

For implementation of autocomplete in python refer to this - https://python-prompt-toolkit.readthedocs.io/en/master/

This issue is dependent upon #125 . Because to use autocomplete we need a different shell to make our changes visible. That shell can be created by xonsh.

The end goal should be similar to this - endgoal

Credit for autocomplete and xosh - gitsome

GouravSardana avatar Sep 30 '21 11:09 GouravSardana

Hmm, that would be a nice addon

lainq avatar Sep 30 '21 12:09 lainq

Is it like what we have to fetch it from history

kriptonian1 avatar Mar 01 '22 10:03 kriptonian1

Nops. Not from the history. We have to make patterns according to what user is typing

GouravSardana avatar Mar 01 '22 10:03 GouravSardana

@GouravSardana I would like to work on this as a GSSOC contributor.

shivankar-p avatar Mar 12 '22 13:03 shivankar-p

Please go ahead @shivankar-p

GouravSardana avatar Mar 12 '22 14:03 GouravSardana

@GouravSardana Instead of using xonsh shell. Won't it be a better idea if there is something like a dynamic-cli REPL or shell which gets activated by running some command in bash like dynamic. And users will enter related commands in the REPL. In this case we can customise autocompletion and all just using prompt_toolkit. I'm not sure if this will have any disadvantages compared with current way of implementation?

shivankar-p avatar Mar 12 '22 16:03 shivankar-p

Can you come up with a design for this before implementing?

GouravSardana avatar Mar 12 '22 17:03 GouravSardana

Can you come up with a design for this before implementing?

I was planning to take input from the input stream/console for commands instead of getting them from command line. But the console is just in a formatted way like any other REPL. For this maybe I would need to add some new functions for auto-completion and add the input logic like we do while taking input in any other python program.

shivankar-p avatar Mar 12 '22 17:03 shivankar-p

Screenshot from 2022-03-12 23-24-28 Screenshot from 2022-03-12 23-24-10 Design wise it would look this way. User gets to access this features of dynamic-cli once he enters dynamic-cli in command line

shivankar-p avatar Mar 12 '22 17:03 shivankar-p

This looks good only. I have 2 concern :

  1. Do we get the history or the current folder ? Something like that
  2. Can we integrate in such a way if we type dynamic then only it’ll activate ?

GouravSardana avatar Mar 12 '22 18:03 GouravSardana

This looks good only. I have 2 concern :

  1. Do we get the history or the current folder ? Something like that
  2. Can we integrate in such a way if we type dynamic then only it’ll activate ?
  1. Yes 1 . I didn't get what you meant. But if you are asking about autocomplete based on previous queries that could be done for a single session(I meant till the time user exits the REPL). To remember the previous session's queries for autocomplete is what I was looking for(still not sure about how to implement this)

shivankar-p avatar Mar 12 '22 18:03 shivankar-p

Got it. I mean we were creating sessions or not. I think it’s clear now. We don’t have to worry about the autocomplete after the session Please go on and start integrating this first. Will figure it out a way

GouravSardana avatar Mar 12 '22 19:03 GouravSardana

@GouravSardana I made a pull request. Can you review it? I still need to handle some options/commands properly. Commands like -help, -file are not yet handled

shivankar-p avatar Mar 13 '22 18:03 shivankar-p

I would be happy to contribute to the project as I find my skills a good fit for the issue . As a GSSOC 23 member I humbly ask to allow me to contribute to the issue. I firmly believe that I can be a valuable asset.

mridul45 avatar May 20 '23 09:05 mridul45