ku-fpg / hermit-shell

HERMIT with GHCi shell
BSD 3-Clause "New" or "Revised" License
2 stars 0 forks source link

`navigate` and `command-line` #18

Closed roboguy13 closed 9 years ago

roboguy13 commented 9 years ago

How should navigate and command-line (from HERMIT.Shell.Externals) be implemented in hermit-shell? Should we implement them?

navigate puts the original shell into a mode where you send a series of up, down, left and right commands using the arrow keys. command-line would put it back into the normal mode (although, you can't type it in navigate mode).

xich commented 9 years ago

Personally I don't find navigate mode to be very intuitive and I never use it. It requires looking at the code and picturing the underlying AST (the complexity of which the pretty printer spends so much effort trying to hide).

I left it in because I'm fairly certain Michael Adams uses it with some success, and because I had plans to separate the concepts of 'focus' and 'window' in the shell. The 'focus' would be a highlighted bit of code which is the current target of rewrites (what HERMIT's shell currently prints after each command). When desired, you could fix the current 'focus' as the 'window'. HERMIT would then always print the current 'window', with the 'focus' highlighted. Combine this with in-place pretty printing and the feedback on the arrow keys would be much more clear and intuitive.

I had this mostly working at some point, but the highlighting aspect in curses was gross-looking, and it wasn't on the critical path to anything, so I backed it out.

andygill commented 9 years ago

The navigation stuff can be removed, with the big shell change.

roboguy13 commented 9 years ago

In that case, I will close this.