Open tony opened 9 years ago
I'd include my code gladly, but please keep in mind I cannot do it all by myself without prior discussion of what's needed and what's not. What I can provide is both the vaitk PyQt-style design as a generic visual framework (eventually reworked for a more PEP8 style) and the general MVC infrastructure or ideas in terms of responsibilities from vai.
What I can provide already right now is a detailed explanation of the design choices at the base of vai. I do not consider them untouchable, but they work as of now. I am strongly in favor of constant refactoring.
Hi all,
I added the alternatives in the readme.
@stefanoborini Thanks for the offer, I appreciate it! Right now, I'm not sure what can be reused, I'm also not sure how much I'm willing to invest in pyvim in particular. It was more created as a proof of concept to challenge the prompt-toolkit library and to learn.
So, there is no roadmap. But my focus is probably going to be this:
Implementing a better data structure would probably require refactoring many parts of the code base. So, merging code basis is probably not going to be an option for me right now.
Further, looking at Vai, the only things I'm missing right now are the following:
Actually that would probably be an evening of work for me. (In any case, less than porting it.)
And looking at the key bindings, that's also only a fraction of what we already support in pyvim:
c} gU% g~; dd di> g~i< E yG S g?e gui< dW yi` ci' x g?i> yi>
ya' di{ l gE d^ g~W g?b g~} gUk c b gu gUi< cG s g?W gu|
gUiW gugg g~iw di) ygE di< da( g~j g?w g~| H g?j yW : > c0
g?{ ( B ca> W h g?i< c% ca( dl c| g?| da" g?a{ cgE dL guiW
diW gua` di[ cH gU; yL ca' d{ gUi[ ca) gui" dgE ye N gue y%
g?G gUa< gUaW g~B g~e A g?ge yi] # ge gui) yi' cc di" g?i) w
cW yE g?i( g?a' g?B gUg_ gua" $ gUgg gUL gu% g~a' guL g~,
g~H c^ da{ << gUW gUi} dge g~0 g?aw c, g~E dj g?l cw
yw yb c$ gua{ ca{ g?i} ya) dh gul g~k g~a< ciw gu^ g?a} g~i{
a n yh yiw ci) dB O g?aW caW ci( gUi` gUi' g~i> dw cl gui{
gUE caw g?a" gUi{ gUa} ci] g~i` g~ge gUi] guj gU, ya} ce g~G
guiw ^ daW diw gui[ yaW ch cgg gu} g?H , yi} gU{ gUa( /
guG gUa[ gUi( y0 gu, g~a] g?; g~{ daw g~h d} gUa` ya` g?
gUh g~ ci{ g?} d$ g?a( gUj - < guW gug_ gui( di} gUG gu$
gT guE gU0 yi" d0 cg_ yj d% g~l gUw dE gui] ciW gUa) g~%
gua} k ca] g~i) gui} guH ca[ yH gUa] g?a> u gUgE di] gua> D
g~w guh d i % d| g?i{ yi[ L V ca< dG gUi) g?h gUB g?E
g~i[ g?i] ya< da} g?g_ gUl gU| guge cL yi( g~i( g~i" C ? g~a>
gU gui` d; gUa' de R aW yg_ g~gg ca} e da[ guw ya( yB gua'
c{ gUH g_ yi{ di( { ya[ yi< yaw g~g_ + ya" gua] X | ci} d,
guaw g?^ ca` dH g?i' da> yge dk zz gu; y| g?$ gg gU g?iw
I ) g?i[ ya{ g?a] c; g~a( g~iW db da` ! gugE G cj c ~ J g~
g?a< g?a` da< guaW g? g~aw guB y{ p di` ci" gui' yiW g?iW
gua[ g?, cB y^ gu y$ gUe g~a` gU^ * gub g~a{ ci` g?L g?a[ y}
ci[ da' g~a[ gUiw gua< g?k aw gUge g~^ yl g?% yi) g~a) gUb
gU$ g~a} dgg gUi" ; g?a) gu0 di' g?gE yy cE } gui> g~i} gUi>
ya] g~$ gUaw y, g~a" g~i] cb j gu{ g~L ygg cge y g?i` P gua)
da) ya> ci< g~i' gUa" y; o g?0 gUa{ ck v ci> gt gUa> yk g~aW
gU} da] guk >> dg_ g~gE ca" g?i" g?gg y Y gua( g~b
Maybe I'm missing something, I really appreciate your offer, but I'm really not sure what we can merge.
Cheers, Jonathan
Interested in seeing the differences in the following projects? Is there any overlap and / or willing to collaborate? I'd like to avoid duplication / see sharing where possible.
https://github.com/kaaedit/kaa by @atsuoishimoto
https://github.com/stefanoborini/vai by @stefanoborini
Are there any other vi-like python text editors that fell under the radar?