Giter Club home page Giter Club logo

viwrap's Introduction

viwrap

Todos

  • Unify PtyAct API to use either Handle or Fd.

  • Add terminal effect

  • Implement FFI for getting and setting terminal size

  • implement a way to detect when a prompt is up (This task will need continuous work as we encounter new edge cases)

  • Start implementing basic vim like editing.

  • Improve Logging

  • long lines doesn't wrap properly.

  • SIGWICH as we need to resize the master fd when the stdin size changes

  • Implement Tab when the cursor is at the middle of the line

  • Differentiate betweeen \t and space

  • Find a way to find Jittery cursor.

  • Fix Jittery cursor

  • Implement Advance vim editting features

  • Figure out a better way to handle colored prompt

  • Install signal handlers

    • install and integrate SIGINT
  • improve the algorithm to find where to insert the text such that it requires less calls to termsize and cursor position

  • Document the code

  • Make Viwrap more robust

  • Implement test suite

Bugs

  • (B1) When we exit slave process there's hardware error due to master FD reading the input, figure out what's happening and fix it.
  • ghci doesn't work with viwrap
  • Can't get terminal size reliably
  • sometimes doesn't show cursor when it's at beginning and there's no text
  • sometimes the current line doesn't get added to the line history
  • sometimes viwrap becomes un responsive (most likely due to mvar)
  • [?] Movement through line history is very buggy
  • Spago repl doesn't work
  • Can't get cursor position reliably
  • ghci doesn't wrap lined when using viwrap

working on

  • Document the code
  • Implement Advance vim editting features
  • Improve ANSI escape sequence parser
  • Find a way to find Jittery cursor.
  • Install signal handlers
    • install and integrate SIGINT

Questions

  • can we get controlling terminal for the slave proceess? - [?] But why do we even need a controling terminal?

  • How to identify when the prompt is up?

  • How to determine when to supperese output from hmaster and when not to?

  • Check If we can implement batching such that we take multiple input at a time and process it.

  • How should we test viwrap?

Remarks

  • There's no need for VIEdit

viwrap's People

Contributors

iampara0x avatar

Watchers

 avatar

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.