Giter Club home page Giter Club logo

crystal-linenoise's People

Contributors

apainintheneck avatar

Watchers

 avatar  avatar

crystal-linenoise's Issues

Favor shortest matching completions

The automatic completions currently show the next alphabetic matching completion not the next shortest alphabetic completion which would be more accurate and nicer.

Research pulling in more useful patches not included in upstream

The main Linenoise repo is somewhat abandoned. Though it provided a good foundation it has a large number of bug reports and pending fixes/improvements. Some of those pending fixes and improvements might be useful to add to this repo in a pinch. That is especially true for bug fixes.

Potential Fixes

Potential Improvements

It might also be interesting to look at some forks to see if they have any changes we can pull in that would be useful.

Linenoise Forks

Add tests

Testing will be a bit tricky here since at the very least the hints are just a visual phenomenon. That being said we should be able to test some of the behavior with something like expect or a similar wrapper in pure Crystal.

Find an alternative to `expect` that supports UTF-8 and runs on CI

expect seemed like a good enough way to test that Linenoise completions were working correctly but I ran into two problems with it. First, I couldn't get it working on CI so I had to just make sure to run it locally. That was inconvenient but not that big of a deal. Second, I just found out that the default expect on macOS doesn't support UTF-8 characters by default which means that I can't automatically test new PRs like #27.

Ideally, there'd be a library in Crystal to do this but I'm not aware of any of them. Likely, I'll have to use something written in another language or maybe port something to Crystal. There are definitely a bunch of options out there.

Add docs to Github Pages

These can be generated by running crystal docs but as a user I'd usually like to see this sorts of stuff online or in the repo itself before I have to download and run any code.

The key here will be to add a check on CI for outdated docs.

Add dev docs to readme

These should explain how to get this project up and running. This means referencing the makefile and talking about updating the Linenoise library which might be necessary at some point. There is also the whole thing with manual testing using the example/example.cr program.

Add usage docs to readme

Most of the usage documentation should flow pretty directly from the inline documentation (try crystal docs with this repo) along with the code already in example/example.cr.

Create minimal example project

I'd kind of like to implement a minimal programming language REPL here but that might go beyond the intended scope. Something simple though that uses most of the features would be great. This should be implemented in a separate repo and then linked to from the readme.

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.