Coder Social home page Coder Social logo

dncurses's People

Contributors

msoucy avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

Forkers

hatsunemiku

dncurses's Issues

Remove mv- functions

Functions that currently have an additional mv- function can have those rolled in with the originals via overloading.

Unlimited getstr

As it is now, the logic for getstr() with no limit is kind of iffy. It should be verified and fixed as much as possible. Currently it doesn't handle ^X, M-X, or tabs properly.

Window constructors

Window-creating feels really complex and unintuitive. There should be a way to make it simpler without losing support for different situations

Autorefresh is slow

The user needs a way to disable automatically calling refresh() whenever put is called - in fact, this should probably be the default behavior.

Refresh might be better off calling wnoutrefresh and then doupdate later on...but not sure on that one.

Packaging and linking

If a program is built with rdmd, then (unless panel is imported) -lpanel isn't needed. However, with DUB, all source files are imported by default. As a result, -lpanel is needed when importing as a DUB package. Which is "fine", but I'd prefer not to link EVERYTHING and then tell it to strip unused stuff, since that messes with the result too much for my liking.

It's possible to prefix it with version(metus_dncurses_panel) and have users specify them in their "dflags", but the problem with this is that non-DUB users would need to manually add "-L-lpanel -version=metus_dncurses_panel", which doesn't really look nice, and is different depending on dmd/ldc/gdc anyways.

Alternatively, something like this inside panel.d:

version(Have_dncurses) {} // Defined by dub
else version=metus_dncurses_panel

Too many names

Since this is meant to be a higher-level wrapper, it doesn't make sense to have a lot of the stuff that's in here. Figure out what names can be abstracted away.

Some functions for consideration:

  • intrflush vs qiflush
  • The four different input modes

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.