Coder Social home page Coder Social logo

ganim's Introduction

hits

“The first time you meet an angel you get a horrible beating”
― Terry A. Davis

o(*≧▽≦)ツ┏━┓

active projects that may benefit you:

project description licence status last release
tomlantic marrying pydantic models and tomlkit documents for data validated, style-preserving toml files Unlicense 🟢 active v0.2.1 (Mar 12, 2024)
surplus-on-wheels run surplus automatically on termux and send it to your friends! Unlicense 🟠 mature v1 (Nov 9, 2023)
spow-whatsapp-bridge bridge for surplus on wheels (s+ow) to send messages to whatsapp Unlicense 🛠️ maintenance v1 (Nov 7, 2023)
spow-telegram-bridge bridge for surplus on wheels (s+ow) to send messages to telegram Unlicense 🛠️ maintenance v1 (Nov 6, 2023)
surplus Plus Code/latlong/query to iOS-Shortcuts-like shareable text Unlicense 🟠 mature v2.2.0 (Oct 15, 2023)
fluffy58 an approachable 60%-like keymap for the lily58 pro re GPL-3.0-only 🛠️ maintenance v3 (Sep 25, 2023)

legend:

  • 🟢 active
    is being worked on actively
  • 🟠 mature
    considered stable, new releases possible but may be sparse
  • 🛠️ maintenance
    considered complete, no new features planned, only will be updated for bug or security fixes

special thanks to those who’ve bought me a little drink!

ganim's People

Contributors

markjoshwel avatar

Watchers

 avatar

ganim's Issues

ContentView internal animation method

will improve performance due to

  • ganim.ContentView.animod being able to syntax highlight the new line once then animate the highlighted line rather than parse lines constructed during animation

  • storing line syntax elements in a seperate object (e.g. self.content_syntax: List[Syntax] for immediate use in rendering

would probably also fix #2

foundationwork 10

  • file iteration
    • custom iterator (ganim.moditer)
    • iteration method argument (--iter_method)
  • animation
    • virtual file objects (ganim.File)
    • ganim.moditer works in ganim.GAnim.ganimate
    • ganim.ContentView can display file new objects
    • external processes like ganim.GAnim.ganimate can can update contentview
    • ganim.ContentView can scroll/ease to specific lines

really bad stuttering/slow

stuttering can be seen during animation (see #FIXME-s)

this is because one _refresh call refreshes ganim.CommitInfo, ganim.FileManager and ganim.ContentView updates its' window with an updated syntax object

the performance issue is most likely due to ganim.ContentView updating its own window, will be looking into WindowView's internals to see if there is a better way (or maybe refresh not with self.window.update() and do something different?)

would also like to refresh all with one call preserving layout rather than needing to call _refresh()

internals:

  • ganim.ContentView.ganimate._refresh (nested)

    # FIXME: could there be a better way to do this?
    async def _refresh():
        """
        nested function to refresh filemanager, contentview and contentinfo all at
        once, used only during animation
        """
        self.commitinfo.refresh()
        self.filemgr.refresh()
        await self.contentview.update()
  • ganim.ContentView.update

    async def update(self) -> None:
        """rebuilds file contents and updates contentview window"""
        if self.file is not None and self.syntax is not None:
    
          self.syntax.code = "\n".join(self.file.content).rstrip()
          await self.window.update(self.syntax)

clip:

asciicast

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.