{"action":"created","issue":{"url":"https://api.github.com/repos/KSP-KOS/KOS/issues/2394","repository_url":"https://api.github.com/repos/KSP-KOS/KOS","labels_url":"https://api.github.com/repos/KSP-KOS/KOS/issues/2394/labels{/name}","comments_url":"https://api.github.com/repos/KSP-KOS/KOS/issues/2394/comments","events_url":"https://api.github.com/repos/KSP-KOS/KOS/issues/2394/events","html_url":"https://github.com/KSP-KOS/KOS/issues/2394","id":393667441,"node_id":"MDU6SXNzdWUzOTM2Njc0NDE=","number":2394,"title":"[Enhancement] Expose terminal cursor","user":{"login":"Garek33","id":6023983,"node_id":"MDQ6VXNlcjYwMjM5ODM=","avatar_url":"https://avatars3.githubusercontent.com/u/6023983?v=4","gravatar_id":"","url":"https://api.github.com/users/Garek33","html_url":"https://github.com/Garek33","followers_url":"https://api.github.com/users/Garek33/followers","following_url":"https://api.github.com/users/Garek33/following{/other_user}","gists_url":"https://api.github.com/users/Garek33/gists{/gist_id}","starred_url":"https://api.github.com/users/Garek33/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Garek33/subscriptions","organizations_url":"https://api.github.com/users/Garek33/orgs","repos_url":"https://api.github.com/users/Garek33/repos","events_url":"https://api.github.com/users/Garek33/events{/privacy}","received_events_url":"https://api.github.com/users/Garek33/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2018-12-22T11:53:54Z","updated_at":"2018-12-24T22:38:30Z","closed_at":null,"author_association":"NONE","body":"I propose the following additions (and would be willing to implement them after christmas):\r\n\r\n* Expose the terminal cursor as additional suffixes of `terminal`\r\n  * `cursorcol`\r\n    * get returns `ScreenBuffer.CursorColumn`\r\n    * set calls `ScreenBuffer.MoveCursor(ScreenBuffer.CursorRow, arg)`\r\n  * `cursorrow`\r\n    * get returns `ScreenBuffer.CursorRow`\r\n    * set calls `ScreenBuffer.MoveCursor(arg, ScreenBuffer.CursorColumn)`\r\n* Create a way to print a string at the current cursor, moving the cursor, but without the newline appended by `print`\r\n  * How about `put`? Traditionally, that would only output a character, but kOS doesn't differentiate between the two anyway\r\n    * Even if this becomes a suffix of terminal, I'm against calling it `print` to avoid confusion.\r\n  * as a builtin or as a suffix for terminal?\r\n    * a builtin would fit with `print` and `print at` being builtins\r\n    * a suffix for `terminal` would avoid increasing the number of builtins potentially colliding with user identifiers. I could create `println` and `printat` suffixes as well to keep consistency (keeping the `print` builtins obviously, because we don't want to break everything)\r\n\r\nThis would enable user build prompts to play nice with regular `print` output. Also, this would enable a user to work around problems like #1007. On a personal note, I want to get into kOS plugin development, and these additions would be useful for a kerboscript project of mine.\r\n\r\n(Why not build a script-side screenbuffer using `print at` for output? Because then any script that wants to print output needs to know and use that because regular `print` would mangle it. And I'm trying to limit interdependencies like that.)"},"comment":{"url":"https://api.github.com/repos/KSP-KOS/KOS/issues/comments/449775491","html_url":"https://github.com/KSP-KOS/KOS/issues/2394#issuecomment-449775491","issue_url":"https://api.github.com/repos/KSP-KOS/KOS/issues/2394","id":449775491,"node_id":"MDEyOklzc3VlQ29tbWVudDQ0OTc3NTQ5MQ==","user":{"login":"MaraRinn","id":43090,"node_id":"MDQ6VXNlcjQzMDkw","avatar_url":"https://avatars1.githubusercontent.com/u/43090?v=4","gravatar_id":"","url":"https://api.github.com/users/MaraRinn","html_url":"https://github.com/MaraRinn","followers_url":"https://api.github.com/users/MaraRinn/followers","following_url":"https://api.github.com/users/MaraRinn/following{/other_user}","gists_url":"https://api.github.com/users/MaraRinn/gists{/gist_id}","starred_url":"https://api.github.com/users/MaraRinn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MaraRinn/subscriptions","organizations_url":"https://api.github.com/users/MaraRinn/orgs","repos_url":"https://api.github.com/users/MaraRinn/repos","events_url":"https://api.github.com/users/MaraRinn/events{/privacy}","received_events_url":"https://api.github.com/users/MaraRinn/received_events","type":"User","site_admin":false},"created_at":"2018-12-24T22:38:30Z","updated_at":"2018-12-24T22:38:30Z","author_association":"CONTRIBUTOR","body":"For more advanced UI needs, there's always the option of [creating a GUI](xhttp://ksp-kos.github.io/KOS_DOC/structures/gui.html?highlight=gui) where you can control the layout to some degree."}}
{"actor":{"display_login":"MaraRinn"}}