Comments (4)
whilst this might not be what you are expecting, this is working as intended/designed.
pressing "up" when you are not at the beginning of an input line is intended to take you either up a line (when the input line wraps over multiple lines) or to the beginning of the top line.
pressing "up" at the beginning of an input line will attempt to fetch the previous history entry. if this is successful your input cursor will be placed at the end of the line
the "down" arrow works "fine" because you're left at the end of the input line. if your cursor however has been moved somewhere other than the end of the input line, then your first "down" press will bring you to the end of the line
I do understand that the up key handing isn't what you expected, but I couldn't work out a sensible way to get it to work in the kind of manner you were suggesting and still have sensible multi-line editing working. leaving the cursor at the beginning of the line when stepping thru history would "solve" this issue, but also feel weird in use when you want to edit a previously used command. other possibilities involve complex algorithms that change the line editing behaviour depending on whether the user has tried to edit the line or not, and can also end up feeling "unnatural".
at some point I plan to add support for page up/down keys to move thru command history, which would not care about cursor position on the line
from agon-mos.
leaving the cursor at the beginning of the line when stepping thru history would "solve" this issue, but also feel weird in use when you want to edit a previously used command
Being able to continuously scroll up and down with the up & down keys through the command history unimpeded is preferable. If the "home" & "end" keys are working properly, perhaps they could be used to opt-in and/or opt-out of "command history mode" based on the current context (the cursor's current position, whether it be at the beginning, end, or middle of a line; the current keyboard mode, whether it be "command history mode" or "editing mode"; etc.).
As you mentioned, though, I'm not sure how complex the algorithms would be to implement, or whether or not folks would find using the "home" and "end" keys to influence the keyboard mode behavior to feel too unnatural. I can understand why you want to transfer the command history control keys from the up & down keys to the page up & page down keys.
from agon-mos.
Hi Steve, thanks for explaining the logic behind the design. All is well. Looking forward to '*KEY' implementation;)
from agon-mos.
Related Issues (20)
- Release needs to include/provide hash. HOT 2
- Potential issue with stack splat in exec16 from *RUN <addr> HOT 2
- Using MOS to load a picture directly to the screen, possible ?
- moscall mos_fread in Z80 mode loads only zeros HOT 2
- Documentation about mos_getkbmap HOT 2
- [Feature request]A mos command to load an image to the screen
- Cannot detect retrieval of data from VDP via API HOT 1
- Feature Request: Allocate the null terminal \0 after "MOS" @ $40 for versioning. HOT 1
- mos_getkey responds to shift.
- Date and Time not being updated HOT 8
- Handle final packet(s) from VDP after switching to terminal mode
- Boot skip
- UART0 full-duplex CTS/RTS HOT 8
- API function to truncate or resize file
- MOS API calls to undefined commands will fail unpredictably HOT 1
- MOS should support an extension system HOT 3
- RTC info in VDP Protocol doesn't actually fit
- [help wanted] VBlank from assembly ? HOT 1
- Can't get two keycodes simultaneously neither in alternance
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from agon-mos.