emacs-xyz.scm 1.1 MB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680768176827683768476857686768776887689769076917692769376947695769676977698769977007701770277037704770577067707770877097710771177127713771477157716771777187719772077217722772377247725772677277728772977307731773277337734773577367737773877397740774177427743774477457746774777487749775077517752775377547755775677577758775977607761776277637764776577667767776877697770777177727773777477757776777777787779778077817782778377847785778677877788778977907791779277937794779577967797779877997800780178027803780478057806780778087809781078117812781378147815781678177818781978207821782278237824782578267827782878297830783178327833783478357836783778387839784078417842784378447845784678477848784978507851785278537854785578567857785878597860786178627863786478657866786778687869787078717872787378747875787678777878787978807881788278837884788578867887788878897890789178927893789478957896789778987899790079017902790379047905790679077908790979107911791279137914791579167917791879197920792179227923792479257926792779287929793079317932793379347935793679377938793979407941794279437944794579467947794879497950795179527953795479557956795779587959796079617962796379647965796679677968796979707971797279737974797579767977797879797980798179827983798479857986798779887989799079917992799379947995799679977998799980008001800280038004800580068007800880098010801180128013801480158016801780188019802080218022802380248025802680278028802980308031803280338034803580368037803880398040804180428043804480458046804780488049805080518052805380548055805680578058805980608061806280638064806580668067806880698070807180728073807480758076807780788079808080818082808380848085808680878088808980908091809280938094809580968097809880998100810181028103810481058106810781088109811081118112811381148115811681178118811981208121812281238124812581268127812881298130813181328133813481358136813781388139814081418142814381448145814681478148814981508151815281538154815581568157815881598160816181628163816481658166816781688169817081718172817381748175817681778178817981808181818281838184818581868187818881898190819181928193819481958196819781988199820082018202820382048205820682078208820982108211821282138214821582168217821882198220822182228223822482258226822782288229823082318232823382348235823682378238823982408241824282438244824582468247824882498250825182528253825482558256825782588259826082618262826382648265826682678268826982708271827282738274827582768277827882798280828182828283828482858286828782888289829082918292829382948295829682978298829983008301830283038304830583068307830883098310831183128313831483158316831783188319832083218322832383248325832683278328832983308331833283338334833583368337833883398340834183428343834483458346834783488349835083518352835383548355835683578358835983608361836283638364836583668367836883698370837183728373837483758376837783788379838083818382838383848385838683878388838983908391839283938394839583968397839883998400840184028403840484058406840784088409841084118412841384148415841684178418841984208421842284238424842584268427842884298430843184328433843484358436843784388439844084418442844384448445844684478448844984508451845284538454845584568457845884598460846184628463846484658466846784688469847084718472847384748475847684778478847984808481848284838484848584868487848884898490849184928493849484958496849784988499850085018502850385048505850685078508850985108511851285138514851585168517851885198520852185228523852485258526852785288529853085318532853385348535853685378538853985408541854285438544854585468547854885498550855185528553855485558556855785588559856085618562856385648565856685678568856985708571857285738574857585768577857885798580858185828583858485858586858785888589859085918592859385948595859685978598859986008601860286038604860586068607860886098610861186128613861486158616861786188619862086218622862386248625862686278628862986308631863286338634863586368637863886398640864186428643864486458646864786488649865086518652865386548655865686578658865986608661866286638664866586668667866886698670867186728673867486758676867786788679868086818682868386848685868686878688868986908691869286938694869586968697869886998700870187028703870487058706870787088709871087118712871387148715871687178718871987208721872287238724872587268727872887298730873187328733873487358736873787388739874087418742874387448745874687478748874987508751875287538754875587568757875887598760876187628763876487658766876787688769877087718772877387748775877687778778877987808781878287838784878587868787878887898790879187928793879487958796879787988799880088018802880388048805880688078808880988108811881288138814881588168817881888198820882188228823882488258826882788288829883088318832883388348835883688378838883988408841884288438844884588468847884888498850885188528853885488558856885788588859886088618862886388648865886688678868886988708871887288738874887588768877887888798880888188828883888488858886888788888889889088918892889388948895889688978898889989008901890289038904890589068907890889098910891189128913891489158916891789188919892089218922892389248925892689278928892989308931893289338934893589368937893889398940894189428943894489458946894789488949895089518952895389548955895689578958895989608961896289638964896589668967896889698970897189728973897489758976897789788979898089818982898389848985898689878988898989908991899289938994899589968997899889999000900190029003900490059006900790089009901090119012901390149015901690179018901990209021902290239024902590269027902890299030903190329033903490359036903790389039904090419042904390449045904690479048904990509051905290539054905590569057905890599060906190629063906490659066906790689069907090719072907390749075907690779078907990809081908290839084908590869087908890899090909190929093909490959096909790989099910091019102910391049105910691079108910991109111911291139114911591169117911891199120912191229123912491259126912791289129913091319132913391349135913691379138913991409141914291439144914591469147914891499150915191529153915491559156915791589159916091619162916391649165916691679168916991709171917291739174917591769177917891799180918191829183918491859186918791889189919091919192919391949195919691979198919992009201920292039204920592069207920892099210921192129213921492159216921792189219922092219222922392249225922692279228922992309231923292339234923592369237923892399240924192429243924492459246924792489249925092519252925392549255925692579258925992609261926292639264926592669267926892699270927192729273927492759276927792789279928092819282928392849285928692879288928992909291929292939294929592969297929892999300930193029303930493059306930793089309931093119312931393149315931693179318931993209321932293239324932593269327932893299330933193329333933493359336933793389339934093419342934393449345934693479348934993509351935293539354935593569357935893599360936193629363936493659366936793689369937093719372937393749375937693779378937993809381938293839384938593869387938893899390939193929393939493959396939793989399940094019402940394049405940694079408940994109411941294139414941594169417941894199420942194229423942494259426942794289429943094319432943394349435943694379438943994409441944294439444944594469447944894499450945194529453945494559456945794589459946094619462946394649465946694679468946994709471947294739474947594769477947894799480948194829483948494859486948794889489949094919492949394949495949694979498949995009501950295039504950595069507950895099510951195129513951495159516951795189519952095219522952395249525952695279528952995309531953295339534953595369537953895399540954195429543954495459546954795489549955095519552955395549555955695579558955995609561956295639564956595669567956895699570957195729573957495759576957795789579958095819582958395849585958695879588958995909591959295939594959595969597959895999600960196029603960496059606960796089609961096119612961396149615961696179618961996209621962296239624962596269627962896299630963196329633963496359636963796389639964096419642964396449645964696479648964996509651965296539654965596569657965896599660966196629663966496659666966796689669967096719672967396749675967696779678967996809681968296839684968596869687968896899690969196929693969496959696969796989699970097019702970397049705970697079708970997109711971297139714971597169717971897199720972197229723972497259726972797289729973097319732973397349735973697379738973997409741974297439744974597469747974897499750975197529753975497559756975797589759976097619762976397649765976697679768976997709771977297739774977597769777977897799780978197829783978497859786978797889789979097919792979397949795979697979798979998009801980298039804980598069807980898099810981198129813981498159816981798189819982098219822982398249825982698279828982998309831983298339834983598369837983898399840984198429843984498459846984798489849985098519852985398549855985698579858985998609861986298639864986598669867986898699870987198729873987498759876987798789879988098819882988398849885988698879888988998909891989298939894989598969897989898999900990199029903990499059906990799089909991099119912991399149915991699179918991999209921992299239924992599269927992899299930993199329933993499359936993799389939994099419942994399449945994699479948994999509951995299539954995599569957995899599960996199629963996499659966996799689969997099719972997399749975997699779978997999809981998299839984998599869987998899899990999199929993999499959996999799989999100001000110002100031000410005100061000710008100091001010011100121001310014100151001610017100181001910020100211002210023100241002510026100271002810029100301003110032100331003410035100361003710038100391004010041100421004310044100451004610047100481004910050100511005210053100541005510056100571005810059100601006110062100631006410065100661006710068100691007010071100721007310074100751007610077100781007910080100811008210083100841008510086100871008810089100901009110092100931009410095100961009710098100991010010101101021010310104101051010610107101081010910110101111011210113101141011510116101171011810119101201012110122101231012410125101261012710128101291013010131101321013310134101351013610137101381013910140101411014210143101441014510146101471014810149101501015110152101531015410155101561015710158101591016010161101621016310164101651016610167101681016910170101711017210173101741017510176101771017810179101801018110182101831018410185101861018710188101891019010191101921019310194101951019610197101981019910200102011020210203102041020510206102071020810209102101021110212102131021410215102161021710218102191022010221102221022310224102251022610227102281022910230102311023210233102341023510236102371023810239102401024110242102431024410245102461024710248102491025010251102521025310254102551025610257102581025910260102611026210263102641026510266102671026810269102701027110272102731027410275102761027710278102791028010281102821028310284102851028610287102881028910290102911029210293102941029510296102971029810299103001030110302103031030410305103061030710308103091031010311103121031310314103151031610317103181031910320103211032210323103241032510326103271032810329103301033110332103331033410335103361033710338103391034010341103421034310344103451034610347103481034910350103511035210353103541035510356103571035810359103601036110362103631036410365103661036710368103691037010371103721037310374103751037610377103781037910380103811038210383103841038510386103871038810389103901039110392103931039410395103961039710398103991040010401104021040310404104051040610407104081040910410104111041210413104141041510416104171041810419104201042110422104231042410425104261042710428104291043010431104321043310434104351043610437104381043910440104411044210443104441044510446104471044810449104501045110452104531045410455104561045710458104591046010461104621046310464104651046610467104681046910470104711047210473104741047510476104771047810479104801048110482104831048410485104861048710488104891049010491104921049310494104951049610497104981049910500105011050210503105041050510506105071050810509105101051110512105131051410515105161051710518105191052010521105221052310524105251052610527105281052910530105311053210533105341053510536105371053810539105401054110542105431054410545105461054710548105491055010551105521055310554105551055610557105581055910560105611056210563105641056510566105671056810569105701057110572105731057410575105761057710578105791058010581105821058310584105851058610587105881058910590105911059210593105941059510596105971059810599106001060110602106031060410605106061060710608106091061010611106121061310614106151061610617106181061910620106211062210623106241062510626106271062810629106301063110632106331063410635106361063710638106391064010641106421064310644106451064610647106481064910650106511065210653106541065510656106571065810659106601066110662106631066410665106661066710668106691067010671106721067310674106751067610677106781067910680106811068210683106841068510686106871068810689106901069110692106931069410695106961069710698106991070010701107021070310704107051070610707107081070910710107111071210713107141071510716107171071810719107201072110722107231072410725107261072710728107291073010731107321073310734107351073610737107381073910740107411074210743107441074510746107471074810749107501075110752107531075410755107561075710758107591076010761107621076310764107651076610767107681076910770107711077210773107741077510776107771077810779107801078110782107831078410785107861078710788107891079010791107921079310794107951079610797107981079910800108011080210803108041080510806108071080810809108101081110812108131081410815108161081710818108191082010821108221082310824108251082610827108281082910830108311083210833108341083510836108371083810839108401084110842108431084410845108461084710848108491085010851108521085310854108551085610857108581085910860108611086210863108641086510866108671086810869108701087110872108731087410875108761087710878108791088010881108821088310884108851088610887108881088910890108911089210893108941089510896108971089810899109001090110902109031090410905109061090710908109091091010911109121091310914109151091610917109181091910920109211092210923109241092510926109271092810929109301093110932109331093410935109361093710938109391094010941109421094310944109451094610947109481094910950109511095210953109541095510956109571095810959109601096110962109631096410965109661096710968109691097010971109721097310974109751097610977109781097910980109811098210983109841098510986109871098810989109901099110992109931099410995109961099710998109991100011001110021100311004110051100611007110081100911010110111101211013110141101511016110171101811019110201102111022110231102411025110261102711028110291103011031110321103311034110351103611037110381103911040110411104211043110441104511046110471104811049110501105111052110531105411055110561105711058110591106011061110621106311064110651106611067110681106911070110711107211073110741107511076110771107811079110801108111082110831108411085110861108711088110891109011091110921109311094110951109611097110981109911100111011110211103111041110511106111071110811109111101111111112111131111411115111161111711118111191112011121111221112311124111251112611127111281112911130111311113211133111341113511136111371113811139111401114111142111431114411145111461114711148111491115011151111521115311154111551115611157111581115911160111611116211163111641116511166111671116811169111701117111172111731117411175111761117711178111791118011181111821118311184111851118611187111881118911190111911119211193111941119511196111971119811199112001120111202112031120411205112061120711208112091121011211112121121311214112151121611217112181121911220112211122211223112241122511226112271122811229112301123111232112331123411235112361123711238112391124011241112421124311244112451124611247112481124911250112511125211253112541125511256112571125811259112601126111262112631126411265112661126711268112691127011271112721127311274112751127611277112781127911280112811128211283112841128511286112871128811289112901129111292112931129411295112961129711298112991130011301113021130311304113051130611307113081130911310113111131211313113141131511316113171131811319113201132111322113231132411325113261132711328113291133011331113321133311334113351133611337113381133911340113411134211343113441134511346113471134811349113501135111352113531135411355113561135711358113591136011361113621136311364113651136611367113681136911370113711137211373113741137511376113771137811379113801138111382113831138411385113861138711388113891139011391113921139311394113951139611397113981139911400114011140211403114041140511406114071140811409114101141111412114131141411415114161141711418114191142011421114221142311424114251142611427114281142911430114311143211433114341143511436114371143811439114401144111442114431144411445114461144711448114491145011451114521145311454114551145611457114581145911460114611146211463114641146511466114671146811469114701147111472114731147411475114761147711478114791148011481114821148311484114851148611487114881148911490114911149211493114941149511496114971149811499115001150111502115031150411505115061150711508115091151011511115121151311514115151151611517115181151911520115211152211523115241152511526115271152811529115301153111532115331153411535115361153711538115391154011541115421154311544115451154611547115481154911550115511155211553115541155511556115571155811559115601156111562115631156411565115661156711568115691157011571115721157311574115751157611577115781157911580115811158211583115841158511586115871158811589115901159111592115931159411595115961159711598115991160011601116021160311604116051160611607116081160911610116111161211613116141161511616116171161811619116201162111622116231162411625116261162711628116291163011631116321163311634116351163611637116381163911640116411164211643116441164511646116471164811649116501165111652116531165411655116561165711658116591166011661116621166311664116651166611667116681166911670116711167211673116741167511676116771167811679116801168111682116831168411685116861168711688116891169011691116921169311694116951169611697116981169911700117011170211703117041170511706117071170811709117101171111712117131171411715117161171711718117191172011721117221172311724117251172611727117281172911730117311173211733117341173511736117371173811739117401174111742117431174411745117461174711748117491175011751117521175311754117551175611757117581175911760117611176211763117641176511766117671176811769117701177111772117731177411775117761177711778117791178011781117821178311784117851178611787117881178911790117911179211793117941179511796117971179811799118001180111802118031180411805118061180711808118091181011811118121181311814118151181611817118181181911820118211182211823118241182511826118271182811829118301183111832118331183411835118361183711838118391184011841118421184311844118451184611847118481184911850118511185211853118541185511856118571185811859118601186111862118631186411865118661186711868118691187011871118721187311874118751187611877118781187911880118811188211883118841188511886118871188811889118901189111892118931189411895118961189711898118991190011901119021190311904119051190611907119081190911910119111191211913119141191511916119171191811919119201192111922119231192411925119261192711928119291193011931119321193311934119351193611937119381193911940119411194211943119441194511946119471194811949119501195111952119531195411955119561195711958119591196011961119621196311964119651196611967119681196911970119711197211973119741197511976119771197811979119801198111982119831198411985119861198711988119891199011991119921199311994119951199611997119981199912000120011200212003120041200512006120071200812009120101201112012120131201412015120161201712018120191202012021120221202312024120251202612027120281202912030120311203212033120341203512036120371203812039120401204112042120431204412045120461204712048120491205012051120521205312054120551205612057120581205912060120611206212063120641206512066120671206812069120701207112072120731207412075120761207712078120791208012081120821208312084120851208612087120881208912090120911209212093120941209512096120971209812099121001210112102121031210412105121061210712108121091211012111121121211312114121151211612117121181211912120121211212212123121241212512126121271212812129121301213112132121331213412135121361213712138121391214012141121421214312144121451214612147121481214912150121511215212153121541215512156121571215812159121601216112162121631216412165121661216712168121691217012171121721217312174121751217612177121781217912180121811218212183121841218512186121871218812189121901219112192121931219412195121961219712198121991220012201122021220312204122051220612207122081220912210122111221212213122141221512216122171221812219122201222112222122231222412225122261222712228122291223012231122321223312234122351223612237122381223912240122411224212243122441224512246122471224812249122501225112252122531225412255122561225712258122591226012261122621226312264122651226612267122681226912270122711227212273122741227512276122771227812279122801228112282122831228412285122861228712288122891229012291122921229312294122951229612297122981229912300123011230212303123041230512306123071230812309123101231112312123131231412315123161231712318123191232012321123221232312324123251232612327123281232912330123311233212333123341233512336123371233812339123401234112342123431234412345123461234712348123491235012351123521235312354123551235612357123581235912360123611236212363123641236512366123671236812369123701237112372123731237412375123761237712378123791238012381123821238312384123851238612387123881238912390123911239212393123941239512396123971239812399124001240112402124031240412405124061240712408124091241012411124121241312414124151241612417124181241912420124211242212423124241242512426124271242812429124301243112432124331243412435124361243712438124391244012441124421244312444124451244612447124481244912450124511245212453124541245512456124571245812459124601246112462124631246412465124661246712468124691247012471124721247312474124751247612477124781247912480124811248212483124841248512486124871248812489124901249112492124931249412495124961249712498124991250012501125021250312504125051250612507125081250912510125111251212513125141251512516125171251812519125201252112522125231252412525125261252712528125291253012531125321253312534125351253612537125381253912540125411254212543125441254512546125471254812549125501255112552125531255412555125561255712558125591256012561125621256312564125651256612567125681256912570125711257212573125741257512576125771257812579125801258112582125831258412585125861258712588125891259012591125921259312594125951259612597125981259912600126011260212603126041260512606126071260812609126101261112612126131261412615126161261712618126191262012621126221262312624126251262612627126281262912630126311263212633126341263512636126371263812639126401264112642126431264412645126461264712648126491265012651126521265312654126551265612657126581265912660126611266212663126641266512666126671266812669126701267112672126731267412675126761267712678126791268012681126821268312684126851268612687126881268912690126911269212693126941269512696126971269812699127001270112702127031270412705127061270712708127091271012711127121271312714127151271612717127181271912720127211272212723127241272512726127271272812729127301273112732127331273412735127361273712738127391274012741127421274312744127451274612747127481274912750127511275212753127541275512756127571275812759127601276112762127631276412765127661276712768127691277012771127721277312774127751277612777127781277912780127811278212783127841278512786127871278812789127901279112792127931279412795127961279712798127991280012801128021280312804128051280612807128081280912810128111281212813128141281512816128171281812819128201282112822128231282412825128261282712828128291283012831128321283312834128351283612837128381283912840128411284212843128441284512846128471284812849128501285112852128531285412855128561285712858128591286012861128621286312864128651286612867128681286912870128711287212873128741287512876128771287812879128801288112882128831288412885128861288712888128891289012891128921289312894128951289612897128981289912900129011290212903129041290512906129071290812909129101291112912129131291412915129161291712918129191292012921129221292312924129251292612927129281292912930129311293212933129341293512936129371293812939129401294112942129431294412945129461294712948129491295012951129521295312954129551295612957129581295912960129611296212963129641296512966129671296812969129701297112972129731297412975129761297712978129791298012981129821298312984129851298612987129881298912990129911299212993129941299512996129971299812999130001300113002130031300413005130061300713008130091301013011130121301313014130151301613017130181301913020130211302213023130241302513026130271302813029130301303113032130331303413035130361303713038130391304013041130421304313044130451304613047130481304913050130511305213053130541305513056130571305813059130601306113062130631306413065130661306713068130691307013071130721307313074130751307613077130781307913080130811308213083130841308513086130871308813089130901309113092130931309413095130961309713098130991310013101131021310313104131051310613107131081310913110131111311213113131141311513116131171311813119131201312113122131231312413125131261312713128131291313013131131321313313134131351313613137131381313913140131411314213143131441314513146131471314813149131501315113152131531315413155131561315713158131591316013161131621316313164131651316613167131681316913170131711317213173131741317513176131771317813179131801318113182131831318413185131861318713188131891319013191131921319313194131951319613197131981319913200132011320213203132041320513206132071320813209132101321113212132131321413215132161321713218132191322013221132221322313224132251322613227132281322913230132311323213233132341323513236132371323813239132401324113242132431324413245132461324713248132491325013251132521325313254132551325613257132581325913260132611326213263132641326513266132671326813269132701327113272132731327413275132761327713278132791328013281132821328313284132851328613287132881328913290132911329213293132941329513296132971329813299133001330113302133031330413305133061330713308133091331013311133121331313314133151331613317133181331913320133211332213323133241332513326133271332813329133301333113332133331333413335133361333713338133391334013341133421334313344133451334613347133481334913350133511335213353133541335513356133571335813359133601336113362133631336413365133661336713368133691337013371133721337313374133751337613377133781337913380133811338213383133841338513386133871338813389133901339113392133931339413395133961339713398133991340013401134021340313404134051340613407134081340913410134111341213413134141341513416134171341813419134201342113422134231342413425134261342713428134291343013431134321343313434134351343613437134381343913440134411344213443134441344513446134471344813449134501345113452134531345413455134561345713458134591346013461134621346313464134651346613467134681346913470134711347213473134741347513476134771347813479134801348113482134831348413485134861348713488134891349013491134921349313494134951349613497134981349913500135011350213503135041350513506135071350813509135101351113512135131351413515135161351713518135191352013521135221352313524135251352613527135281352913530135311353213533135341353513536135371353813539135401354113542135431354413545135461354713548135491355013551135521355313554135551355613557135581355913560135611356213563135641356513566135671356813569135701357113572135731357413575135761357713578135791358013581135821358313584135851358613587135881358913590135911359213593135941359513596135971359813599136001360113602136031360413605136061360713608136091361013611136121361313614136151361613617136181361913620136211362213623136241362513626136271362813629136301363113632136331363413635136361363713638136391364013641136421364313644136451364613647136481364913650136511365213653136541365513656136571365813659136601366113662136631366413665136661366713668136691367013671136721367313674136751367613677136781367913680136811368213683136841368513686136871368813689136901369113692136931369413695136961369713698136991370013701137021370313704137051370613707137081370913710137111371213713137141371513716137171371813719137201372113722137231372413725137261372713728137291373013731137321373313734137351373613737137381373913740137411374213743137441374513746137471374813749137501375113752137531375413755137561375713758137591376013761137621376313764137651376613767137681376913770137711377213773137741377513776137771377813779137801378113782137831378413785137861378713788137891379013791137921379313794137951379613797137981379913800138011380213803138041380513806138071380813809138101381113812138131381413815138161381713818138191382013821138221382313824138251382613827138281382913830138311383213833138341383513836138371383813839138401384113842138431384413845138461384713848138491385013851138521385313854138551385613857138581385913860138611386213863138641386513866138671386813869138701387113872138731387413875138761387713878138791388013881138821388313884138851388613887138881388913890138911389213893138941389513896138971389813899139001390113902139031390413905139061390713908139091391013911139121391313914139151391613917139181391913920139211392213923139241392513926139271392813929139301393113932139331393413935139361393713938139391394013941139421394313944139451394613947139481394913950139511395213953139541395513956139571395813959139601396113962139631396413965139661396713968139691397013971139721397313974139751397613977139781397913980139811398213983139841398513986139871398813989139901399113992139931399413995139961399713998139991400014001140021400314004140051400614007140081400914010140111401214013140141401514016140171401814019140201402114022140231402414025140261402714028140291403014031140321403314034140351403614037140381403914040140411404214043140441404514046140471404814049140501405114052140531405414055140561405714058140591406014061140621406314064140651406614067140681406914070140711407214073140741407514076140771407814079140801408114082140831408414085140861408714088140891409014091140921409314094140951409614097140981409914100141011410214103141041410514106141071410814109141101411114112141131411414115141161411714118141191412014121141221412314124141251412614127141281412914130141311413214133141341413514136141371413814139141401414114142141431414414145141461414714148141491415014151141521415314154141551415614157141581415914160141611416214163141641416514166141671416814169141701417114172141731417414175141761417714178141791418014181141821418314184141851418614187141881418914190141911419214193141941419514196141971419814199142001420114202142031420414205142061420714208142091421014211142121421314214142151421614217142181421914220142211422214223142241422514226142271422814229142301423114232142331423414235142361423714238142391424014241142421424314244142451424614247142481424914250142511425214253142541425514256142571425814259142601426114262142631426414265142661426714268142691427014271142721427314274142751427614277142781427914280142811428214283142841428514286142871428814289142901429114292142931429414295142961429714298142991430014301143021430314304143051430614307143081430914310143111431214313143141431514316143171431814319143201432114322143231432414325143261432714328143291433014331143321433314334143351433614337143381433914340143411434214343143441434514346143471434814349143501435114352143531435414355143561435714358143591436014361143621436314364143651436614367143681436914370143711437214373143741437514376143771437814379143801438114382143831438414385143861438714388143891439014391143921439314394143951439614397143981439914400144011440214403144041440514406144071440814409144101441114412144131441414415144161441714418144191442014421144221442314424144251442614427144281442914430144311443214433144341443514436144371443814439144401444114442144431444414445144461444714448144491445014451144521445314454144551445614457144581445914460144611446214463144641446514466144671446814469144701447114472144731447414475144761447714478144791448014481144821448314484144851448614487144881448914490144911449214493144941449514496144971449814499145001450114502145031450414505145061450714508145091451014511145121451314514145151451614517145181451914520145211452214523145241452514526145271452814529145301453114532145331453414535145361453714538145391454014541145421454314544145451454614547145481454914550145511455214553145541455514556145571455814559145601456114562145631456414565145661456714568145691457014571145721457314574145751457614577145781457914580145811458214583145841458514586145871458814589145901459114592145931459414595145961459714598145991460014601146021460314604146051460614607146081460914610146111461214613146141461514616146171461814619146201462114622146231462414625146261462714628146291463014631146321463314634146351463614637146381463914640146411464214643146441464514646146471464814649146501465114652146531465414655146561465714658146591466014661146621466314664146651466614667146681466914670146711467214673146741467514676146771467814679146801468114682146831468414685146861468714688146891469014691146921469314694146951469614697146981469914700147011470214703147041470514706147071470814709147101471114712147131471414715147161471714718147191472014721147221472314724147251472614727147281472914730147311473214733147341473514736147371473814739147401474114742147431474414745147461474714748147491475014751147521475314754147551475614757147581475914760147611476214763147641476514766147671476814769147701477114772147731477414775147761477714778147791478014781147821478314784147851478614787147881478914790147911479214793147941479514796147971479814799148001480114802148031480414805148061480714808148091481014811148121481314814148151481614817148181481914820148211482214823148241482514826148271482814829148301483114832148331483414835148361483714838148391484014841148421484314844148451484614847148481484914850148511485214853148541485514856148571485814859148601486114862148631486414865148661486714868148691487014871148721487314874148751487614877148781487914880148811488214883148841488514886148871488814889148901489114892148931489414895148961489714898148991490014901149021490314904149051490614907149081490914910149111491214913149141491514916149171491814919149201492114922149231492414925149261492714928149291493014931149321493314934149351493614937149381493914940149411494214943149441494514946149471494814949149501495114952149531495414955149561495714958149591496014961149621496314964149651496614967149681496914970149711497214973149741497514976149771497814979149801498114982149831498414985149861498714988149891499014991149921499314994149951499614997149981499915000150011500215003150041500515006150071500815009150101501115012150131501415015150161501715018150191502015021150221502315024150251502615027150281502915030150311503215033150341503515036150371503815039150401504115042150431504415045150461504715048150491505015051150521505315054150551505615057150581505915060150611506215063150641506515066150671506815069150701507115072150731507415075150761507715078150791508015081150821508315084150851508615087150881508915090150911509215093150941509515096150971509815099151001510115102151031510415105151061510715108151091511015111151121511315114151151511615117151181511915120151211512215123151241512515126151271512815129151301513115132151331513415135151361513715138151391514015141151421514315144151451514615147151481514915150151511515215153151541515515156151571515815159151601516115162151631516415165151661516715168151691517015171151721517315174151751517615177151781517915180151811518215183151841518515186151871518815189151901519115192151931519415195151961519715198151991520015201152021520315204152051520615207152081520915210152111521215213152141521515216152171521815219152201522115222152231522415225152261522715228152291523015231152321523315234152351523615237152381523915240152411524215243152441524515246152471524815249152501525115252152531525415255152561525715258152591526015261152621526315264152651526615267152681526915270152711527215273152741527515276152771527815279152801528115282152831528415285152861528715288152891529015291152921529315294152951529615297152981529915300153011530215303153041530515306153071530815309153101531115312153131531415315153161531715318153191532015321153221532315324153251532615327153281532915330153311533215333153341533515336153371533815339153401534115342153431534415345153461534715348153491535015351153521535315354153551535615357153581535915360153611536215363153641536515366153671536815369153701537115372153731537415375153761537715378153791538015381153821538315384153851538615387153881538915390153911539215393153941539515396153971539815399154001540115402154031540415405154061540715408154091541015411154121541315414154151541615417154181541915420154211542215423154241542515426154271542815429154301543115432154331543415435154361543715438154391544015441154421544315444154451544615447154481544915450154511545215453154541545515456154571545815459154601546115462154631546415465154661546715468154691547015471154721547315474154751547615477154781547915480154811548215483154841548515486154871548815489154901549115492154931549415495154961549715498154991550015501155021550315504155051550615507155081550915510155111551215513155141551515516155171551815519155201552115522155231552415525155261552715528155291553015531155321553315534155351553615537155381553915540155411554215543155441554515546155471554815549155501555115552155531555415555155561555715558155591556015561155621556315564155651556615567155681556915570155711557215573155741557515576155771557815579155801558115582155831558415585155861558715588155891559015591155921559315594155951559615597155981559915600156011560215603156041560515606156071560815609156101561115612156131561415615156161561715618156191562015621156221562315624156251562615627156281562915630156311563215633156341563515636156371563815639156401564115642156431564415645156461564715648156491565015651156521565315654156551565615657156581565915660156611566215663156641566515666156671566815669156701567115672156731567415675156761567715678156791568015681156821568315684156851568615687156881568915690156911569215693156941569515696156971569815699157001570115702157031570415705157061570715708157091571015711157121571315714157151571615717157181571915720157211572215723157241572515726157271572815729157301573115732157331573415735157361573715738157391574015741157421574315744157451574615747157481574915750157511575215753157541575515756157571575815759157601576115762157631576415765157661576715768157691577015771157721577315774157751577615777157781577915780157811578215783157841578515786157871578815789157901579115792157931579415795157961579715798157991580015801158021580315804158051580615807158081580915810158111581215813158141581515816158171581815819158201582115822158231582415825158261582715828158291583015831158321583315834158351583615837158381583915840158411584215843158441584515846158471584815849158501585115852158531585415855158561585715858158591586015861158621586315864158651586615867158681586915870158711587215873158741587515876158771587815879158801588115882158831588415885158861588715888158891589015891158921589315894158951589615897158981589915900159011590215903159041590515906159071590815909159101591115912159131591415915159161591715918159191592015921159221592315924159251592615927159281592915930159311593215933159341593515936159371593815939159401594115942159431594415945159461594715948159491595015951159521595315954159551595615957159581595915960159611596215963159641596515966159671596815969159701597115972159731597415975159761597715978159791598015981159821598315984159851598615987159881598915990159911599215993159941599515996159971599815999160001600116002160031600416005160061600716008160091601016011160121601316014160151601616017160181601916020160211602216023160241602516026160271602816029160301603116032160331603416035160361603716038160391604016041160421604316044160451604616047160481604916050160511605216053160541605516056160571605816059160601606116062160631606416065160661606716068160691607016071160721607316074160751607616077160781607916080160811608216083160841608516086160871608816089160901609116092160931609416095160961609716098160991610016101161021610316104161051610616107161081610916110161111611216113161141611516116161171611816119161201612116122161231612416125161261612716128161291613016131161321613316134161351613616137161381613916140161411614216143161441614516146161471614816149161501615116152161531615416155161561615716158161591616016161161621616316164161651616616167161681616916170161711617216173161741617516176161771617816179161801618116182161831618416185161861618716188161891619016191161921619316194161951619616197161981619916200162011620216203162041620516206162071620816209162101621116212162131621416215162161621716218162191622016221162221622316224162251622616227162281622916230162311623216233162341623516236162371623816239162401624116242162431624416245162461624716248162491625016251162521625316254162551625616257162581625916260162611626216263162641626516266162671626816269162701627116272162731627416275162761627716278162791628016281162821628316284162851628616287162881628916290162911629216293162941629516296162971629816299163001630116302163031630416305163061630716308163091631016311163121631316314163151631616317163181631916320163211632216323163241632516326163271632816329163301633116332163331633416335163361633716338163391634016341163421634316344163451634616347163481634916350163511635216353163541635516356163571635816359163601636116362163631636416365163661636716368163691637016371163721637316374163751637616377163781637916380163811638216383163841638516386163871638816389163901639116392163931639416395163961639716398163991640016401164021640316404164051640616407164081640916410164111641216413164141641516416164171641816419164201642116422164231642416425164261642716428164291643016431164321643316434164351643616437164381643916440164411644216443164441644516446164471644816449164501645116452164531645416455164561645716458164591646016461164621646316464164651646616467164681646916470164711647216473164741647516476164771647816479164801648116482164831648416485164861648716488164891649016491164921649316494164951649616497164981649916500165011650216503165041650516506165071650816509165101651116512165131651416515165161651716518165191652016521165221652316524165251652616527165281652916530165311653216533165341653516536165371653816539165401654116542165431654416545165461654716548165491655016551165521655316554165551655616557165581655916560165611656216563165641656516566165671656816569165701657116572165731657416575165761657716578165791658016581165821658316584165851658616587165881658916590165911659216593165941659516596165971659816599166001660116602166031660416605166061660716608166091661016611166121661316614166151661616617166181661916620166211662216623166241662516626166271662816629166301663116632166331663416635166361663716638166391664016641166421664316644166451664616647166481664916650166511665216653166541665516656166571665816659166601666116662166631666416665166661666716668166691667016671166721667316674166751667616677166781667916680166811668216683166841668516686166871668816689166901669116692166931669416695166961669716698166991670016701167021670316704167051670616707167081670916710167111671216713167141671516716167171671816719167201672116722167231672416725167261672716728167291673016731167321673316734167351673616737167381673916740167411674216743167441674516746167471674816749167501675116752167531675416755167561675716758167591676016761167621676316764167651676616767167681676916770167711677216773167741677516776167771677816779167801678116782167831678416785167861678716788167891679016791167921679316794167951679616797167981679916800168011680216803168041680516806168071680816809168101681116812168131681416815168161681716818168191682016821168221682316824168251682616827168281682916830168311683216833168341683516836168371683816839168401684116842168431684416845168461684716848168491685016851168521685316854168551685616857168581685916860168611686216863168641686516866168671686816869168701687116872168731687416875168761687716878168791688016881168821688316884168851688616887168881688916890168911689216893168941689516896168971689816899169001690116902169031690416905169061690716908169091691016911169121691316914169151691616917169181691916920169211692216923169241692516926169271692816929169301693116932169331693416935169361693716938169391694016941169421694316944169451694616947169481694916950169511695216953169541695516956169571695816959169601696116962169631696416965169661696716968169691697016971169721697316974169751697616977169781697916980169811698216983169841698516986169871698816989169901699116992169931699416995169961699716998169991700017001170021700317004170051700617007170081700917010170111701217013170141701517016170171701817019170201702117022170231702417025170261702717028170291703017031170321703317034170351703617037170381703917040170411704217043170441704517046170471704817049170501705117052170531705417055170561705717058170591706017061170621706317064170651706617067170681706917070170711707217073170741707517076170771707817079170801708117082170831708417085170861708717088170891709017091170921709317094170951709617097170981709917100171011710217103171041710517106171071710817109171101711117112171131711417115171161711717118171191712017121171221712317124171251712617127171281712917130171311713217133171341713517136171371713817139171401714117142171431714417145171461714717148171491715017151171521715317154171551715617157171581715917160171611716217163171641716517166171671716817169171701717117172171731717417175171761717717178171791718017181171821718317184171851718617187171881718917190171911719217193171941719517196171971719817199172001720117202172031720417205172061720717208172091721017211172121721317214172151721617217172181721917220172211722217223172241722517226172271722817229172301723117232172331723417235172361723717238172391724017241172421724317244172451724617247172481724917250172511725217253172541725517256172571725817259172601726117262172631726417265172661726717268172691727017271172721727317274172751727617277172781727917280172811728217283172841728517286172871728817289172901729117292172931729417295172961729717298172991730017301173021730317304173051730617307173081730917310173111731217313173141731517316173171731817319173201732117322173231732417325173261732717328173291733017331173321733317334173351733617337173381733917340173411734217343173441734517346173471734817349173501735117352173531735417355173561735717358173591736017361173621736317364173651736617367173681736917370173711737217373173741737517376173771737817379173801738117382173831738417385173861738717388173891739017391173921739317394173951739617397173981739917400174011740217403174041740517406174071740817409174101741117412174131741417415174161741717418174191742017421174221742317424174251742617427174281742917430174311743217433174341743517436174371743817439174401744117442174431744417445174461744717448174491745017451174521745317454174551745617457174581745917460174611746217463174641746517466174671746817469174701747117472174731747417475174761747717478174791748017481174821748317484174851748617487174881748917490174911749217493174941749517496174971749817499175001750117502175031750417505175061750717508175091751017511175121751317514175151751617517175181751917520175211752217523175241752517526175271752817529175301753117532175331753417535175361753717538175391754017541175421754317544175451754617547175481754917550175511755217553175541755517556175571755817559175601756117562175631756417565175661756717568175691757017571175721757317574175751757617577175781757917580175811758217583175841758517586175871758817589175901759117592175931759417595175961759717598175991760017601176021760317604176051760617607176081760917610176111761217613176141761517616176171761817619176201762117622176231762417625176261762717628176291763017631176321763317634176351763617637176381763917640176411764217643176441764517646176471764817649176501765117652176531765417655176561765717658176591766017661176621766317664176651766617667176681766917670176711767217673176741767517676176771767817679176801768117682176831768417685176861768717688176891769017691176921769317694176951769617697176981769917700177011770217703177041770517706177071770817709177101771117712177131771417715177161771717718177191772017721177221772317724177251772617727177281772917730177311773217733177341773517736177371773817739177401774117742177431774417745177461774717748177491775017751177521775317754177551775617757177581775917760177611776217763177641776517766177671776817769177701777117772177731777417775177761777717778177791778017781177821778317784177851778617787177881778917790177911779217793177941779517796177971779817799178001780117802178031780417805178061780717808178091781017811178121781317814178151781617817178181781917820178211782217823178241782517826178271782817829178301783117832178331783417835178361783717838178391784017841178421784317844178451784617847178481784917850178511785217853178541785517856178571785817859178601786117862178631786417865178661786717868178691787017871178721787317874178751787617877178781787917880178811788217883178841788517886178871788817889178901789117892178931789417895178961789717898178991790017901179021790317904179051790617907179081790917910179111791217913179141791517916179171791817919179201792117922179231792417925179261792717928179291793017931179321793317934179351793617937179381793917940179411794217943179441794517946179471794817949179501795117952179531795417955179561795717958179591796017961179621796317964179651796617967179681796917970179711797217973179741797517976179771797817979179801798117982179831798417985179861798717988179891799017991179921799317994179951799617997179981799918000180011800218003180041800518006180071800818009180101801118012180131801418015180161801718018180191802018021180221802318024180251802618027180281802918030180311803218033180341803518036180371803818039180401804118042180431804418045180461804718048180491805018051180521805318054180551805618057180581805918060180611806218063180641806518066180671806818069180701807118072180731807418075180761807718078180791808018081180821808318084180851808618087180881808918090180911809218093180941809518096180971809818099181001810118102181031810418105181061810718108181091811018111181121811318114181151811618117181181811918120181211812218123181241812518126181271812818129181301813118132181331813418135181361813718138181391814018141181421814318144181451814618147181481814918150181511815218153181541815518156181571815818159181601816118162181631816418165181661816718168181691817018171181721817318174181751817618177181781817918180181811818218183181841818518186181871818818189181901819118192181931819418195181961819718198181991820018201182021820318204182051820618207182081820918210182111821218213182141821518216182171821818219182201822118222182231822418225182261822718228182291823018231182321823318234182351823618237182381823918240182411824218243182441824518246182471824818249182501825118252182531825418255182561825718258182591826018261182621826318264182651826618267182681826918270182711827218273182741827518276182771827818279182801828118282182831828418285182861828718288182891829018291182921829318294182951829618297182981829918300183011830218303183041830518306183071830818309183101831118312183131831418315183161831718318183191832018321183221832318324183251832618327183281832918330183311833218333183341833518336183371833818339183401834118342183431834418345183461834718348183491835018351183521835318354183551835618357183581835918360183611836218363183641836518366183671836818369183701837118372183731837418375183761837718378183791838018381183821838318384183851838618387183881838918390183911839218393183941839518396183971839818399184001840118402184031840418405184061840718408184091841018411184121841318414184151841618417184181841918420184211842218423184241842518426184271842818429184301843118432184331843418435184361843718438184391844018441184421844318444184451844618447184481844918450184511845218453184541845518456184571845818459184601846118462184631846418465184661846718468184691847018471184721847318474184751847618477184781847918480184811848218483184841848518486184871848818489184901849118492184931849418495184961849718498184991850018501185021850318504185051850618507185081850918510185111851218513185141851518516185171851818519185201852118522185231852418525185261852718528185291853018531185321853318534185351853618537185381853918540185411854218543185441854518546185471854818549185501855118552185531855418555185561855718558185591856018561185621856318564185651856618567185681856918570185711857218573185741857518576185771857818579185801858118582185831858418585185861858718588185891859018591185921859318594185951859618597185981859918600186011860218603186041860518606186071860818609186101861118612186131861418615186161861718618186191862018621186221862318624186251862618627186281862918630186311863218633186341863518636186371863818639186401864118642186431864418645186461864718648186491865018651186521865318654186551865618657186581865918660186611866218663186641866518666186671866818669186701867118672186731867418675186761867718678186791868018681186821868318684186851868618687186881868918690186911869218693186941869518696186971869818699187001870118702187031870418705187061870718708187091871018711187121871318714187151871618717187181871918720187211872218723187241872518726187271872818729187301873118732187331873418735187361873718738187391874018741187421874318744187451874618747187481874918750187511875218753187541875518756187571875818759187601876118762187631876418765187661876718768187691877018771187721877318774187751877618777187781877918780187811878218783187841878518786187871878818789187901879118792187931879418795187961879718798187991880018801188021880318804188051880618807188081880918810188111881218813188141881518816188171881818819188201882118822188231882418825188261882718828188291883018831188321883318834188351883618837188381883918840188411884218843188441884518846188471884818849188501885118852188531885418855188561885718858188591886018861188621886318864188651886618867188681886918870188711887218873188741887518876188771887818879188801888118882188831888418885188861888718888188891889018891188921889318894188951889618897188981889918900189011890218903189041890518906189071890818909189101891118912189131891418915189161891718918189191892018921189221892318924189251892618927189281892918930189311893218933189341893518936189371893818939189401894118942189431894418945189461894718948189491895018951189521895318954189551895618957189581895918960189611896218963189641896518966189671896818969189701897118972189731897418975189761897718978189791898018981189821898318984189851898618987189881898918990189911899218993189941899518996189971899818999190001900119002190031900419005190061900719008190091901019011190121901319014190151901619017190181901919020190211902219023190241902519026190271902819029190301903119032190331903419035190361903719038190391904019041190421904319044190451904619047190481904919050190511905219053190541905519056190571905819059190601906119062190631906419065190661906719068190691907019071190721907319074190751907619077190781907919080190811908219083190841908519086190871908819089190901909119092190931909419095190961909719098190991910019101191021910319104191051910619107191081910919110191111911219113191141911519116191171911819119191201912119122191231912419125191261912719128191291913019131191321913319134191351913619137191381913919140191411914219143191441914519146191471914819149191501915119152191531915419155191561915719158191591916019161191621916319164191651916619167191681916919170191711917219173191741917519176191771917819179191801918119182191831918419185191861918719188191891919019191191921919319194191951919619197191981919919200192011920219203192041920519206192071920819209192101921119212192131921419215192161921719218192191922019221192221922319224192251922619227192281922919230192311923219233192341923519236192371923819239192401924119242192431924419245192461924719248192491925019251192521925319254192551925619257192581925919260192611926219263192641926519266192671926819269192701927119272192731927419275192761927719278192791928019281192821928319284192851928619287192881928919290192911929219293192941929519296192971929819299193001930119302193031930419305193061930719308193091931019311193121931319314193151931619317193181931919320193211932219323193241932519326193271932819329193301933119332193331933419335193361933719338193391934019341193421934319344193451934619347193481934919350193511935219353193541935519356193571935819359193601936119362193631936419365193661936719368193691937019371193721937319374193751937619377193781937919380193811938219383193841938519386193871938819389193901939119392193931939419395193961939719398193991940019401194021940319404194051940619407194081940919410194111941219413194141941519416194171941819419194201942119422194231942419425194261942719428194291943019431194321943319434194351943619437194381943919440194411944219443194441944519446194471944819449194501945119452194531945419455194561945719458194591946019461194621946319464194651946619467194681946919470194711947219473194741947519476194771947819479194801948119482194831948419485194861948719488194891949019491194921949319494194951949619497194981949919500195011950219503195041950519506195071950819509195101951119512195131951419515195161951719518195191952019521195221952319524195251952619527195281952919530195311953219533195341953519536195371953819539195401954119542195431954419545195461954719548195491955019551195521955319554195551955619557195581955919560195611956219563195641956519566195671956819569195701957119572195731957419575195761957719578195791958019581195821958319584195851958619587195881958919590195911959219593195941959519596195971959819599196001960119602196031960419605196061960719608196091961019611196121961319614196151961619617196181961919620196211962219623196241962519626196271962819629196301963119632196331963419635196361963719638196391964019641196421964319644196451964619647196481964919650196511965219653196541965519656196571965819659196601966119662196631966419665196661966719668196691967019671196721967319674196751967619677196781967919680196811968219683196841968519686196871968819689196901969119692196931969419695196961969719698196991970019701197021970319704197051970619707197081970919710197111971219713197141971519716197171971819719197201972119722197231972419725197261972719728197291973019731197321973319734197351973619737197381973919740197411974219743197441974519746197471974819749197501975119752197531975419755197561975719758197591976019761197621976319764197651976619767197681976919770197711977219773197741977519776197771977819779197801978119782197831978419785197861978719788197891979019791197921979319794197951979619797197981979919800198011980219803198041980519806198071980819809198101981119812198131981419815198161981719818198191982019821198221982319824198251982619827198281982919830198311983219833198341983519836198371983819839198401984119842198431984419845198461984719848198491985019851198521985319854198551985619857198581985919860198611986219863198641986519866198671986819869198701987119872198731987419875198761987719878198791988019881198821988319884198851988619887198881988919890198911989219893198941989519896198971989819899199001990119902199031990419905199061990719908199091991019911199121991319914199151991619917199181991919920199211992219923199241992519926199271992819929199301993119932199331993419935199361993719938199391994019941199421994319944199451994619947199481994919950199511995219953199541995519956199571995819959199601996119962199631996419965199661996719968199691997019971199721997319974199751997619977199781997919980199811998219983199841998519986199871998819989199901999119992199931999419995199961999719998199992000020001200022000320004200052000620007200082000920010200112001220013200142001520016200172001820019200202002120022200232002420025200262002720028200292003020031200322003320034200352003620037200382003920040200412004220043200442004520046200472004820049200502005120052200532005420055200562005720058200592006020061200622006320064200652006620067200682006920070200712007220073200742007520076200772007820079200802008120082200832008420085200862008720088200892009020091200922009320094200952009620097200982009920100201012010220103201042010520106201072010820109201102011120112201132011420115201162011720118201192012020121201222012320124201252012620127201282012920130201312013220133201342013520136201372013820139201402014120142201432014420145201462014720148201492015020151201522015320154201552015620157201582015920160201612016220163201642016520166201672016820169201702017120172201732017420175201762017720178201792018020181201822018320184201852018620187201882018920190201912019220193201942019520196201972019820199202002020120202202032020420205202062020720208202092021020211202122021320214202152021620217202182021920220202212022220223202242022520226202272022820229202302023120232202332023420235202362023720238202392024020241202422024320244202452024620247202482024920250202512025220253202542025520256202572025820259202602026120262202632026420265202662026720268202692027020271202722027320274202752027620277202782027920280202812028220283202842028520286202872028820289202902029120292202932029420295202962029720298202992030020301203022030320304203052030620307203082030920310203112031220313203142031520316203172031820319203202032120322203232032420325203262032720328203292033020331203322033320334203352033620337203382033920340203412034220343203442034520346203472034820349203502035120352203532035420355203562035720358203592036020361203622036320364203652036620367203682036920370203712037220373203742037520376203772037820379203802038120382203832038420385203862038720388203892039020391203922039320394203952039620397203982039920400204012040220403204042040520406204072040820409204102041120412204132041420415204162041720418204192042020421204222042320424204252042620427204282042920430204312043220433204342043520436204372043820439204402044120442204432044420445204462044720448204492045020451204522045320454204552045620457204582045920460204612046220463204642046520466204672046820469204702047120472204732047420475204762047720478204792048020481204822048320484204852048620487204882048920490204912049220493204942049520496204972049820499205002050120502205032050420505205062050720508205092051020511205122051320514205152051620517205182051920520205212052220523205242052520526205272052820529205302053120532205332053420535205362053720538205392054020541205422054320544205452054620547205482054920550205512055220553205542055520556205572055820559205602056120562205632056420565205662056720568205692057020571205722057320574205752057620577205782057920580205812058220583205842058520586205872058820589205902059120592205932059420595205962059720598205992060020601206022060320604206052060620607206082060920610206112061220613206142061520616206172061820619206202062120622206232062420625206262062720628206292063020631206322063320634206352063620637206382063920640206412064220643206442064520646206472064820649206502065120652206532065420655206562065720658206592066020661206622066320664206652066620667206682066920670206712067220673206742067520676206772067820679206802068120682206832068420685206862068720688206892069020691206922069320694206952069620697206982069920700207012070220703207042070520706207072070820709207102071120712207132071420715207162071720718207192072020721207222072320724207252072620727207282072920730207312073220733207342073520736207372073820739207402074120742207432074420745207462074720748207492075020751207522075320754207552075620757207582075920760207612076220763207642076520766207672076820769207702077120772207732077420775207762077720778207792078020781207822078320784207852078620787207882078920790207912079220793207942079520796207972079820799208002080120802208032080420805208062080720808208092081020811208122081320814208152081620817208182081920820208212082220823208242082520826208272082820829208302083120832208332083420835208362083720838208392084020841208422084320844208452084620847208482084920850208512085220853208542085520856208572085820859208602086120862208632086420865208662086720868208692087020871208722087320874208752087620877208782087920880208812088220883208842088520886208872088820889208902089120892208932089420895208962089720898208992090020901209022090320904209052090620907209082090920910209112091220913209142091520916209172091820919209202092120922209232092420925209262092720928209292093020931209322093320934209352093620937209382093920940209412094220943209442094520946209472094820949209502095120952209532095420955209562095720958209592096020961209622096320964209652096620967209682096920970209712097220973209742097520976209772097820979209802098120982209832098420985209862098720988209892099020991209922099320994209952099620997209982099921000210012100221003210042100521006210072100821009210102101121012210132101421015210162101721018210192102021021210222102321024210252102621027210282102921030210312103221033210342103521036210372103821039210402104121042210432104421045210462104721048210492105021051210522105321054210552105621057210582105921060210612106221063210642106521066210672106821069210702107121072210732107421075210762107721078210792108021081210822108321084210852108621087210882108921090210912109221093210942109521096210972109821099211002110121102211032110421105211062110721108211092111021111211122111321114211152111621117211182111921120211212112221123211242112521126211272112821129211302113121132211332113421135211362113721138211392114021141211422114321144211452114621147211482114921150211512115221153211542115521156211572115821159211602116121162211632116421165211662116721168211692117021171211722117321174211752117621177211782117921180211812118221183211842118521186211872118821189211902119121192211932119421195211962119721198211992120021201212022120321204212052120621207212082120921210212112121221213212142121521216212172121821219212202122121222212232122421225212262122721228212292123021231212322123321234212352123621237212382123921240212412124221243212442124521246212472124821249212502125121252212532125421255212562125721258212592126021261212622126321264212652126621267212682126921270212712127221273212742127521276212772127821279212802128121282212832128421285212862128721288212892129021291212922129321294212952129621297212982129921300213012130221303213042130521306213072130821309213102131121312213132131421315213162131721318213192132021321213222132321324213252132621327213282132921330213312133221333213342133521336213372133821339213402134121342213432134421345213462134721348213492135021351213522135321354213552135621357213582135921360213612136221363213642136521366213672136821369213702137121372213732137421375213762137721378213792138021381213822138321384213852138621387213882138921390213912139221393213942139521396213972139821399214002140121402214032140421405214062140721408214092141021411214122141321414214152141621417214182141921420214212142221423214242142521426214272142821429214302143121432214332143421435214362143721438214392144021441214422144321444214452144621447214482144921450214512145221453214542145521456214572145821459214602146121462214632146421465214662146721468214692147021471214722147321474214752147621477214782147921480214812148221483214842148521486214872148821489214902149121492214932149421495214962149721498214992150021501215022150321504215052150621507215082150921510215112151221513215142151521516215172151821519215202152121522215232152421525215262152721528215292153021531215322153321534215352153621537215382153921540215412154221543215442154521546215472154821549215502155121552215532155421555215562155721558215592156021561215622156321564215652156621567215682156921570215712157221573215742157521576215772157821579215802158121582215832158421585215862158721588215892159021591215922159321594215952159621597215982159921600216012160221603216042160521606216072160821609216102161121612216132161421615216162161721618216192162021621216222162321624216252162621627216282162921630216312163221633216342163521636216372163821639216402164121642216432164421645216462164721648216492165021651216522165321654216552165621657216582165921660216612166221663216642166521666216672166821669216702167121672216732167421675216762167721678216792168021681216822168321684216852168621687216882168921690216912169221693216942169521696216972169821699217002170121702217032170421705217062170721708217092171021711217122171321714217152171621717217182171921720217212172221723217242172521726217272172821729217302173121732217332173421735217362173721738217392174021741217422174321744217452174621747217482174921750217512175221753217542175521756217572175821759217602176121762217632176421765217662176721768217692177021771217722177321774217752177621777217782177921780217812178221783217842178521786217872178821789217902179121792217932179421795217962179721798217992180021801218022180321804218052180621807218082180921810218112181221813218142181521816218172181821819218202182121822218232182421825218262182721828218292183021831218322183321834218352183621837218382183921840218412184221843218442184521846218472184821849218502185121852218532185421855218562185721858218592186021861218622186321864218652186621867218682186921870218712187221873218742187521876218772187821879218802188121882218832188421885218862188721888218892189021891218922189321894218952189621897218982189921900219012190221903219042190521906219072190821909219102191121912219132191421915219162191721918219192192021921219222192321924219252192621927219282192921930219312193221933219342193521936219372193821939219402194121942219432194421945219462194721948219492195021951219522195321954219552195621957219582195921960219612196221963219642196521966219672196821969219702197121972219732197421975219762197721978219792198021981219822198321984219852198621987219882198921990219912199221993219942199521996219972199821999220002200122002220032200422005220062200722008220092201022011220122201322014220152201622017220182201922020220212202222023220242202522026220272202822029220302203122032220332203422035220362203722038220392204022041220422204322044220452204622047220482204922050220512205222053220542205522056220572205822059220602206122062220632206422065220662206722068220692207022071220722207322074220752207622077220782207922080220812208222083220842208522086220872208822089220902209122092220932209422095220962209722098220992210022101221022210322104221052210622107221082210922110221112211222113221142211522116221172211822119221202212122122221232212422125221262212722128221292213022131221322213322134221352213622137221382213922140221412214222143221442214522146221472214822149221502215122152221532215422155221562215722158221592216022161221622216322164221652216622167221682216922170221712217222173221742217522176221772217822179221802218122182221832218422185221862218722188221892219022191221922219322194221952219622197221982219922200222012220222203222042220522206222072220822209222102221122212222132221422215222162221722218222192222022221222222222322224222252222622227222282222922230222312223222233222342223522236222372223822239222402224122242222432224422245222462224722248222492225022251222522225322254222552225622257222582225922260222612226222263222642226522266222672226822269222702227122272222732227422275222762227722278222792228022281222822228322284222852228622287222882228922290222912229222293222942229522296222972229822299223002230122302223032230422305223062230722308223092231022311223122231322314223152231622317223182231922320223212232222323223242232522326223272232822329223302233122332223332233422335223362233722338223392234022341223422234322344223452234622347223482234922350223512235222353223542235522356223572235822359223602236122362223632236422365223662236722368223692237022371223722237322374223752237622377223782237922380223812238222383223842238522386223872238822389223902239122392223932239422395223962239722398223992240022401224022240322404224052240622407224082240922410224112241222413224142241522416224172241822419224202242122422224232242422425224262242722428224292243022431224322243322434224352243622437224382243922440224412244222443224442244522446224472244822449224502245122452224532245422455224562245722458224592246022461224622246322464224652246622467224682246922470224712247222473224742247522476224772247822479224802248122482224832248422485224862248722488224892249022491224922249322494224952249622497224982249922500225012250222503225042250522506225072250822509225102251122512225132251422515225162251722518225192252022521225222252322524225252252622527225282252922530225312253222533225342253522536225372253822539225402254122542225432254422545225462254722548225492255022551225522255322554225552255622557225582255922560225612256222563225642256522566225672256822569225702257122572225732257422575225762257722578225792258022581225822258322584225852258622587225882258922590225912259222593225942259522596225972259822599226002260122602226032260422605226062260722608226092261022611226122261322614226152261622617226182261922620226212262222623226242262522626226272262822629226302263122632226332263422635226362263722638226392264022641226422264322644226452264622647226482264922650226512265222653226542265522656226572265822659226602266122662226632266422665226662266722668226692267022671226722267322674226752267622677226782267922680226812268222683226842268522686226872268822689226902269122692226932269422695226962269722698226992270022701227022270322704227052270622707227082270922710227112271222713227142271522716227172271822719227202272122722227232272422725227262272722728227292273022731227322273322734227352273622737227382273922740227412274222743227442274522746227472274822749227502275122752227532275422755227562275722758227592276022761227622276322764227652276622767227682276922770227712277222773227742277522776227772277822779227802278122782227832278422785227862278722788227892279022791227922279322794227952279622797227982279922800228012280222803228042280522806228072280822809228102281122812228132281422815228162281722818228192282022821228222282322824228252282622827228282282922830228312283222833228342283522836228372283822839228402284122842228432284422845228462284722848228492285022851228522285322854228552285622857228582285922860228612286222863228642286522866228672286822869228702287122872228732287422875228762287722878228792288022881228822288322884228852288622887228882288922890228912289222893228942289522896228972289822899229002290122902229032290422905229062290722908229092291022911229122291322914229152291622917229182291922920229212292222923229242292522926229272292822929229302293122932229332293422935229362293722938229392294022941229422294322944229452294622947229482294922950229512295222953229542295522956229572295822959229602296122962229632296422965229662296722968229692297022971229722297322974229752297622977229782297922980229812298222983229842298522986229872298822989229902299122992229932299422995229962299722998229992300023001230022300323004230052300623007230082300923010230112301223013230142301523016230172301823019230202302123022230232302423025230262302723028230292303023031230322303323034230352303623037230382303923040230412304223043230442304523046230472304823049230502305123052230532305423055230562305723058230592306023061230622306323064230652306623067230682306923070230712307223073230742307523076230772307823079230802308123082230832308423085230862308723088230892309023091230922309323094230952309623097230982309923100231012310223103231042310523106231072310823109231102311123112231132311423115231162311723118231192312023121231222312323124231252312623127231282312923130231312313223133231342313523136231372313823139231402314123142231432314423145231462314723148231492315023151231522315323154231552315623157231582315923160231612316223163231642316523166231672316823169231702317123172231732317423175231762317723178231792318023181231822318323184231852318623187231882318923190231912319223193231942319523196231972319823199232002320123202232032320423205232062320723208232092321023211232122321323214232152321623217232182321923220232212322223223232242322523226232272322823229232302323123232232332323423235232362323723238232392324023241232422324323244232452324623247232482324923250232512325223253232542325523256232572325823259232602326123262232632326423265232662326723268232692327023271232722327323274232752327623277232782327923280232812328223283232842328523286232872328823289232902329123292232932329423295232962329723298232992330023301233022330323304233052330623307233082330923310233112331223313233142331523316233172331823319233202332123322233232332423325233262332723328233292333023331233322333323334233352333623337233382333923340233412334223343233442334523346233472334823349233502335123352233532335423355233562335723358233592336023361233622336323364233652336623367233682336923370233712337223373233742337523376233772337823379233802338123382233832338423385233862338723388233892339023391233922339323394233952339623397233982339923400234012340223403234042340523406234072340823409234102341123412234132341423415234162341723418234192342023421234222342323424234252342623427234282342923430234312343223433234342343523436234372343823439234402344123442234432344423445234462344723448234492345023451234522345323454234552345623457234582345923460234612346223463234642346523466234672346823469234702347123472234732347423475234762347723478234792348023481234822348323484234852348623487234882348923490234912349223493234942349523496234972349823499235002350123502235032350423505235062350723508235092351023511235122351323514235152351623517235182351923520235212352223523235242352523526235272352823529235302353123532235332353423535235362353723538235392354023541235422354323544235452354623547235482354923550235512355223553235542355523556235572355823559235602356123562235632356423565235662356723568235692357023571235722357323574235752357623577235782357923580235812358223583235842358523586235872358823589235902359123592235932359423595235962359723598235992360023601236022360323604236052360623607236082360923610236112361223613236142361523616236172361823619236202362123622236232362423625236262362723628236292363023631236322363323634236352363623637236382363923640236412364223643236442364523646236472364823649236502365123652236532365423655236562365723658236592366023661236622366323664236652366623667236682366923670236712367223673236742367523676236772367823679236802368123682236832368423685236862368723688236892369023691236922369323694236952369623697236982369923700237012370223703237042370523706237072370823709237102371123712237132371423715237162371723718237192372023721237222372323724237252372623727237282372923730237312373223733237342373523736237372373823739237402374123742237432374423745237462374723748237492375023751237522375323754237552375623757237582375923760237612376223763237642376523766237672376823769237702377123772237732377423775237762377723778237792378023781237822378323784237852378623787237882378923790237912379223793237942379523796237972379823799238002380123802238032380423805238062380723808238092381023811238122381323814238152381623817238182381923820238212382223823238242382523826238272382823829238302383123832238332383423835238362383723838238392384023841238422384323844238452384623847238482384923850238512385223853238542385523856238572385823859238602386123862238632386423865238662386723868238692387023871238722387323874238752387623877238782387923880238812388223883238842388523886238872388823889238902389123892238932389423895238962389723898238992390023901239022390323904239052390623907239082390923910239112391223913239142391523916239172391823919239202392123922239232392423925239262392723928239292393023931239322393323934239352393623937239382393923940239412394223943239442394523946239472394823949239502395123952239532395423955239562395723958239592396023961239622396323964239652396623967239682396923970239712397223973239742397523976239772397823979239802398123982239832398423985239862398723988239892399023991239922399323994239952399623997239982399924000240012400224003240042400524006240072400824009240102401124012240132401424015240162401724018240192402024021240222402324024240252402624027240282402924030240312403224033240342403524036240372403824039240402404124042240432404424045240462404724048240492405024051240522405324054240552405624057240582405924060240612406224063240642406524066240672406824069240702407124072240732407424075240762407724078240792408024081240822408324084240852408624087240882408924090240912409224093240942409524096240972409824099241002410124102241032410424105241062410724108241092411024111241122411324114241152411624117241182411924120241212412224123241242412524126241272412824129241302413124132241332413424135241362413724138241392414024141241422414324144241452414624147241482414924150241512415224153241542415524156241572415824159241602416124162241632416424165241662416724168241692417024171241722417324174241752417624177241782417924180241812418224183241842418524186241872418824189241902419124192241932419424195241962419724198241992420024201242022420324204242052420624207242082420924210242112421224213242142421524216242172421824219242202422124222242232422424225242262422724228242292423024231242322423324234242352423624237242382423924240242412424224243242442424524246242472424824249242502425124252242532425424255242562425724258242592426024261242622426324264242652426624267242682426924270242712427224273242742427524276242772427824279242802428124282242832428424285242862428724288242892429024291242922429324294242952429624297242982429924300243012430224303243042430524306243072430824309243102431124312243132431424315243162431724318243192432024321243222432324324243252432624327243282432924330243312433224333243342433524336243372433824339243402434124342243432434424345243462434724348243492435024351243522435324354243552435624357243582435924360243612436224363243642436524366243672436824369243702437124372243732437424375243762437724378243792438024381243822438324384243852438624387243882438924390243912439224393243942439524396243972439824399244002440124402244032440424405244062440724408244092441024411244122441324414244152441624417244182441924420244212442224423244242442524426244272442824429244302443124432244332443424435244362443724438244392444024441244422444324444244452444624447244482444924450244512445224453244542445524456244572445824459244602446124462244632446424465244662446724468244692447024471244722447324474244752447624477244782447924480244812448224483244842448524486244872448824489244902449124492244932449424495244962449724498244992450024501245022450324504245052450624507245082450924510245112451224513245142451524516245172451824519245202452124522245232452424525245262452724528245292453024531245322453324534245352453624537245382453924540245412454224543245442454524546245472454824549245502455124552245532455424555245562455724558245592456024561245622456324564245652456624567245682456924570245712457224573245742457524576245772457824579245802458124582245832458424585245862458724588245892459024591245922459324594245952459624597245982459924600246012460224603246042460524606246072460824609246102461124612246132461424615246162461724618246192462024621246222462324624246252462624627246282462924630246312463224633246342463524636246372463824639246402464124642246432464424645246462464724648246492465024651246522465324654246552465624657246582465924660246612466224663246642466524666246672466824669246702467124672246732467424675246762467724678246792468024681246822468324684246852468624687246882468924690246912469224693246942469524696246972469824699247002470124702247032470424705247062470724708247092471024711247122471324714247152471624717247182471924720247212472224723247242472524726247272472824729247302473124732247332473424735247362473724738247392474024741247422474324744247452474624747247482474924750247512475224753247542475524756247572475824759247602476124762247632476424765247662476724768247692477024771247722477324774247752477624777247782477924780247812478224783247842478524786247872478824789247902479124792247932479424795247962479724798247992480024801248022480324804248052480624807248082480924810248112481224813248142481524816248172481824819248202482124822248232482424825248262482724828248292483024831248322483324834248352483624837248382483924840248412484224843248442484524846248472484824849248502485124852248532485424855248562485724858248592486024861248622486324864248652486624867248682486924870248712487224873248742487524876248772487824879248802488124882248832488424885248862488724888248892489024891248922489324894248952489624897248982489924900249012490224903249042490524906249072490824909249102491124912249132491424915249162491724918249192492024921249222492324924249252492624927249282492924930249312493224933249342493524936249372493824939249402494124942249432494424945249462494724948249492495024951249522495324954249552495624957249582495924960249612496224963249642496524966249672496824969249702497124972249732497424975249762497724978249792498024981249822498324984249852498624987249882498924990249912499224993249942499524996249972499824999250002500125002250032500425005250062500725008250092501025011250122501325014250152501625017250182501925020250212502225023250242502525026250272502825029250302503125032250332503425035250362503725038250392504025041250422504325044250452504625047250482504925050250512505225053250542505525056250572505825059250602506125062250632506425065250662506725068250692507025071250722507325074250752507625077250782507925080250812508225083250842508525086250872508825089250902509125092250932509425095250962509725098250992510025101251022510325104251052510625107251082510925110251112511225113251142511525116251172511825119251202512125122251232512425125251262512725128251292513025131251322513325134251352513625137251382513925140251412514225143251442514525146251472514825149251502515125152251532515425155251562515725158251592516025161251622516325164251652516625167251682516925170251712517225173251742517525176251772517825179251802518125182251832518425185251862518725188251892519025191251922519325194251952519625197251982519925200252012520225203252042520525206252072520825209252102521125212252132521425215252162521725218252192522025221252222522325224252252522625227252282522925230252312523225233252342523525236252372523825239252402524125242252432524425245252462524725248252492525025251252522525325254252552525625257252582525925260252612526225263252642526525266252672526825269252702527125272252732527425275252762527725278252792528025281252822528325284252852528625287252882528925290252912529225293252942529525296252972529825299253002530125302253032530425305253062530725308253092531025311253122531325314253152531625317253182531925320253212532225323253242532525326253272532825329253302533125332253332533425335253362533725338253392534025341253422534325344253452534625347253482534925350253512535225353253542535525356253572535825359253602536125362253632536425365253662536725368253692537025371253722537325374253752537625377253782537925380253812538225383253842538525386253872538825389253902539125392253932539425395253962539725398253992540025401254022540325404254052540625407254082540925410254112541225413254142541525416254172541825419254202542125422254232542425425254262542725428254292543025431254322543325434254352543625437254382543925440254412544225443254442544525446254472544825449254502545125452254532545425455254562545725458254592546025461254622546325464254652546625467254682546925470254712547225473254742547525476254772547825479254802548125482254832548425485254862548725488254892549025491254922549325494254952549625497254982549925500255012550225503255042550525506255072550825509255102551125512255132551425515255162551725518255192552025521255222552325524255252552625527255282552925530255312553225533255342553525536255372553825539255402554125542255432554425545255462554725548255492555025551255522555325554255552555625557255582555925560255612556225563255642556525566255672556825569255702557125572255732557425575255762557725578255792558025581255822558325584255852558625587255882558925590255912559225593255942559525596255972559825599256002560125602256032560425605256062560725608256092561025611256122561325614256152561625617256182561925620256212562225623256242562525626256272562825629256302563125632256332563425635256362563725638256392564025641256422564325644256452564625647256482564925650256512565225653256542565525656256572565825659256602566125662256632566425665256662566725668256692567025671256722567325674256752567625677256782567925680256812568225683256842568525686256872568825689256902569125692256932569425695256962569725698256992570025701257022570325704257052570625707257082570925710257112571225713257142571525716257172571825719257202572125722257232572425725257262572725728257292573025731257322573325734257352573625737257382573925740257412574225743257442574525746257472574825749257502575125752257532575425755257562575725758257592576025761257622576325764257652576625767257682576925770257712577225773257742577525776257772577825779257802578125782257832578425785257862578725788257892579025791257922579325794257952579625797257982579925800258012580225803258042580525806258072580825809258102581125812258132581425815258162581725818258192582025821258222582325824258252582625827258282582925830258312583225833258342583525836258372583825839258402584125842258432584425845258462584725848258492585025851258522585325854258552585625857258582585925860258612586225863258642586525866258672586825869258702587125872258732587425875258762587725878258792588025881258822588325884258852588625887258882588925890258912589225893258942589525896258972589825899259002590125902259032590425905259062590725908259092591025911259122591325914259152591625917259182591925920259212592225923259242592525926259272592825929259302593125932259332593425935259362593725938259392594025941259422594325944259452594625947259482594925950259512595225953259542595525956259572595825959259602596125962259632596425965259662596725968259692597025971259722597325974259752597625977259782597925980259812598225983259842598525986259872598825989259902599125992259932599425995259962599725998259992600026001260022600326004260052600626007260082600926010260112601226013260142601526016260172601826019260202602126022260232602426025260262602726028260292603026031260322603326034260352603626037260382603926040260412604226043260442604526046260472604826049260502605126052260532605426055260562605726058260592606026061260622606326064260652606626067260682606926070260712607226073260742607526076260772607826079260802608126082260832608426085260862608726088260892609026091260922609326094260952609626097260982609926100261012610226103261042610526106261072610826109261102611126112261132611426115261162611726118261192612026121261222612326124261252612626127261282612926130261312613226133261342613526136261372613826139261402614126142261432614426145261462614726148261492615026151261522615326154261552615626157261582615926160261612616226163261642616526166261672616826169261702617126172261732617426175261762617726178261792618026181261822618326184261852618626187261882618926190261912619226193261942619526196261972619826199262002620126202262032620426205262062620726208262092621026211262122621326214262152621626217262182621926220262212622226223262242622526226262272622826229262302623126232262332623426235262362623726238262392624026241262422624326244262452624626247262482624926250262512625226253262542625526256262572625826259262602626126262262632626426265262662626726268262692627026271262722627326274262752627626277262782627926280262812628226283262842628526286262872628826289262902629126292262932629426295262962629726298262992630026301263022630326304263052630626307263082630926310263112631226313263142631526316263172631826319263202632126322263232632426325263262632726328263292633026331263322633326334263352633626337263382633926340263412634226343263442634526346263472634826349263502635126352263532635426355263562635726358263592636026361263622636326364263652636626367263682636926370263712637226373263742637526376263772637826379263802638126382263832638426385263862638726388263892639026391263922639326394263952639626397263982639926400264012640226403264042640526406264072640826409264102641126412264132641426415264162641726418264192642026421264222642326424264252642626427264282642926430264312643226433264342643526436264372643826439264402644126442264432644426445264462644726448264492645026451264522645326454264552645626457264582645926460264612646226463264642646526466264672646826469264702647126472264732647426475264762647726478264792648026481264822648326484264852648626487264882648926490264912649226493264942649526496264972649826499265002650126502265032650426505265062650726508265092651026511265122651326514265152651626517265182651926520265212652226523265242652526526265272652826529265302653126532265332653426535265362653726538265392654026541265422654326544265452654626547265482654926550265512655226553265542655526556265572655826559265602656126562265632656426565265662656726568265692657026571265722657326574265752657626577265782657926580265812658226583265842658526586265872658826589265902659126592265932659426595265962659726598265992660026601266022660326604266052660626607266082660926610266112661226613266142661526616266172661826619266202662126622266232662426625266262662726628266292663026631266322663326634266352663626637266382663926640266412664226643266442664526646266472664826649266502665126652266532665426655266562665726658266592666026661266622666326664266652666626667266682666926670266712667226673266742667526676266772667826679266802668126682266832668426685266862668726688266892669026691266922669326694266952669626697266982669926700267012670226703267042670526706267072670826709267102671126712267132671426715267162671726718267192672026721267222672326724267252672626727267282672926730267312673226733267342673526736267372673826739267402674126742267432674426745267462674726748267492675026751267522675326754267552675626757267582675926760267612676226763267642676526766267672676826769267702677126772267732677426775267762677726778267792678026781267822678326784267852678626787267882678926790267912679226793267942679526796267972679826799268002680126802268032680426805268062680726808268092681026811268122681326814268152681626817268182681926820268212682226823268242682526826268272682826829268302683126832268332683426835268362683726838268392684026841268422684326844268452684626847268482684926850268512685226853268542685526856268572685826859268602686126862268632686426865268662686726868268692687026871268722687326874268752687626877268782687926880268812688226883268842688526886268872688826889268902689126892268932689426895268962689726898268992690026901269022690326904269052690626907269082690926910269112691226913269142691526916269172691826919269202692126922269232692426925269262692726928269292693026931269322693326934269352693626937269382693926940269412694226943269442694526946269472694826949269502695126952269532695426955269562695726958269592696026961269622696326964269652696626967269682696926970269712697226973269742697526976269772697826979269802698126982269832698426985269862698726988269892699026991269922699326994269952699626997269982699927000270012700227003270042700527006270072700827009270102701127012270132701427015270162701727018270192702027021270222702327024270252702627027270282702927030270312703227033270342703527036270372703827039270402704127042270432704427045270462704727048270492705027051270522705327054270552705627057270582705927060270612706227063270642706527066270672706827069270702707127072270732707427075270762707727078270792708027081270822708327084270852708627087270882708927090270912709227093270942709527096270972709827099271002710127102271032710427105271062710727108271092711027111271122711327114271152711627117271182711927120271212712227123271242712527126271272712827129271302713127132271332713427135271362713727138271392714027141271422714327144271452714627147271482714927150271512715227153271542715527156271572715827159271602716127162271632716427165271662716727168271692717027171271722717327174271752717627177271782717927180271812718227183271842718527186271872718827189271902719127192271932719427195271962719727198271992720027201272022720327204272052720627207272082720927210272112721227213272142721527216272172721827219272202722127222272232722427225272262722727228272292723027231272322723327234272352723627237272382723927240272412724227243272442724527246272472724827249272502725127252272532725427255272562725727258272592726027261272622726327264272652726627267272682726927270272712727227273272742727527276272772727827279272802728127282272832728427285272862728727288272892729027291272922729327294272952729627297272982729927300273012730227303273042730527306273072730827309273102731127312273132731427315273162731727318273192732027321273222732327324273252732627327273282732927330273312733227333273342733527336273372733827339273402734127342273432734427345273462734727348273492735027351273522735327354273552735627357273582735927360273612736227363273642736527366273672736827369273702737127372273732737427375273762737727378273792738027381273822738327384273852738627387273882738927390273912739227393273942739527396273972739827399274002740127402274032740427405274062740727408274092741027411274122741327414274152741627417274182741927420274212742227423274242742527426274272742827429274302743127432274332743427435274362743727438274392744027441274422744327444274452744627447274482744927450274512745227453274542745527456274572745827459274602746127462274632746427465274662746727468274692747027471274722747327474274752747627477274782747927480274812748227483274842748527486274872748827489274902749127492274932749427495274962749727498274992750027501275022750327504275052750627507275082750927510275112751227513275142751527516275172751827519275202752127522275232752427525275262752727528275292753027531275322753327534275352753627537275382753927540275412754227543275442754527546275472754827549275502755127552275532755427555275562755727558275592756027561275622756327564275652756627567275682756927570275712757227573275742757527576275772757827579275802758127582275832758427585275862758727588275892759027591275922759327594275952759627597275982759927600276012760227603276042760527606276072760827609276102761127612276132761427615276162761727618276192762027621276222762327624276252762627627276282762927630276312763227633276342763527636276372763827639276402764127642276432764427645276462764727648276492765027651276522765327654276552765627657276582765927660276612766227663276642766527666276672766827669276702767127672276732767427675276762767727678276792768027681276822768327684276852768627687276882768927690276912769227693276942769527696276972769827699277002770127702277032770427705277062770727708277092771027711277122771327714277152771627717277182771927720277212772227723277242772527726277272772827729277302773127732277332773427735277362773727738277392774027741277422774327744277452774627747277482774927750277512775227753277542775527756277572775827759277602776127762277632776427765277662776727768277692777027771277722777327774277752777627777277782777927780277812778227783277842778527786277872778827789277902779127792277932779427795277962779727798277992780027801278022780327804278052780627807278082780927810278112781227813278142781527816278172781827819278202782127822278232782427825278262782727828278292783027831278322783327834278352783627837278382783927840278412784227843278442784527846278472784827849278502785127852278532785427855278562785727858278592786027861278622786327864278652786627867278682786927870278712787227873278742787527876278772787827879278802788127882278832788427885278862788727888278892789027891278922789327894278952789627897278982789927900279012790227903279042790527906279072790827909279102791127912279132791427915279162791727918279192792027921279222792327924279252792627927279282792927930279312793227933279342793527936279372793827939279402794127942279432794427945279462794727948279492795027951279522795327954279552795627957279582795927960279612796227963279642796527966279672796827969279702797127972279732797427975279762797727978279792798027981279822798327984279852798627987279882798927990279912799227993279942799527996279972799827999280002800128002280032800428005280062800728008280092801028011280122801328014280152801628017280182801928020280212802228023280242802528026280272802828029280302803128032280332803428035280362803728038280392804028041280422804328044280452804628047280482804928050280512805228053280542805528056280572805828059280602806128062280632806428065280662806728068280692807028071280722807328074280752807628077280782807928080280812808228083280842808528086280872808828089280902809128092280932809428095280962809728098280992810028101281022810328104281052810628107281082810928110281112811228113281142811528116281172811828119281202812128122281232812428125281262812728128281292813028131281322813328134281352813628137281382813928140281412814228143281442814528146281472814828149281502815128152281532815428155281562815728158281592816028161281622816328164281652816628167281682816928170281712817228173281742817528176281772817828179281802818128182281832818428185281862818728188281892819028191281922819328194281952819628197281982819928200282012820228203282042820528206282072820828209282102821128212282132821428215282162821728218282192822028221282222822328224282252822628227282282822928230282312823228233282342823528236282372823828239282402824128242282432824428245282462824728248282492825028251282522825328254282552825628257282582825928260282612826228263282642826528266282672826828269282702827128272282732827428275282762827728278282792828028281282822828328284282852828628287282882828928290282912829228293282942829528296282972829828299283002830128302283032830428305283062830728308283092831028311283122831328314283152831628317283182831928320283212832228323283242832528326283272832828329283302833128332283332833428335283362833728338283392834028341283422834328344283452834628347283482834928350283512835228353283542835528356283572835828359283602836128362283632836428365283662836728368283692837028371283722837328374283752837628377283782837928380283812838228383283842838528386283872838828389283902839128392283932839428395283962839728398283992840028401284022840328404284052840628407284082840928410284112841228413284142841528416284172841828419284202842128422284232842428425284262842728428284292843028431284322843328434284352843628437284382843928440284412844228443284442844528446284472844828449284502845128452284532845428455284562845728458284592846028461284622846328464284652846628467284682846928470284712847228473284742847528476284772847828479284802848128482284832848428485284862848728488284892849028491284922849328494284952849628497284982849928500285012850228503285042850528506285072850828509285102851128512285132851428515285162851728518285192852028521285222852328524285252852628527285282852928530285312853228533285342853528536285372853828539285402854128542285432854428545285462854728548285492855028551285522855328554285552855628557285582855928560285612856228563285642856528566285672856828569285702857128572285732857428575285762857728578285792858028581285822858328584285852858628587285882858928590285912859228593285942859528596285972859828599286002860128602286032860428605286062860728608286092861028611286122861328614286152861628617286182861928620286212862228623286242862528626286272862828629286302863128632286332863428635286362863728638286392864028641286422864328644286452864628647286482864928650286512865228653286542865528656286572865828659286602866128662286632866428665286662866728668286692867028671286722867328674286752867628677286782867928680286812868228683286842868528686286872868828689286902869128692286932869428695286962869728698286992870028701287022870328704287052870628707287082870928710287112871228713287142871528716287172871828719287202872128722287232872428725287262872728728287292873028731287322873328734287352873628737287382873928740287412874228743287442874528746287472874828749287502875128752287532875428755287562875728758287592876028761287622876328764287652876628767287682876928770287712877228773287742877528776287772877828779287802878128782287832878428785287862878728788287892879028791287922879328794287952879628797287982879928800288012880228803288042880528806288072880828809288102881128812288132881428815288162881728818288192882028821288222882328824288252882628827288282882928830288312883228833288342883528836288372883828839288402884128842288432884428845288462884728848288492885028851288522885328854288552885628857288582885928860288612886228863288642886528866288672886828869288702887128872288732887428875288762887728878288792888028881288822888328884288852888628887288882888928890288912889228893288942889528896288972889828899289002890128902289032890428905289062890728908289092891028911289122891328914289152891628917289182891928920289212892228923289242892528926289272892828929289302893128932289332893428935289362893728938289392894028941289422894328944289452894628947289482894928950289512895228953289542895528956289572895828959289602896128962289632896428965289662896728968289692897028971289722897328974289752897628977289782897928980289812898228983289842898528986289872898828989289902899128992289932899428995289962899728998289992900029001290022900329004290052900629007290082900929010290112901229013290142901529016290172901829019290202902129022290232902429025290262902729028290292903029031290322903329034290352903629037290382903929040290412904229043290442904529046290472904829049290502905129052290532905429055290562905729058290592906029061290622906329064290652906629067290682906929070290712907229073290742907529076290772907829079290802908129082290832908429085290862908729088290892909029091290922909329094290952909629097290982909929100291012910229103291042910529106291072910829109291102911129112291132911429115291162911729118291192912029121291222912329124291252912629127291282912929130291312913229133291342913529136291372913829139291402914129142291432914429145291462914729148291492915029151291522915329154291552915629157291582915929160291612916229163291642916529166291672916829169291702917129172291732917429175291762917729178291792918029181291822918329184291852918629187291882918929190291912919229193291942919529196291972919829199292002920129202292032920429205292062920729208292092921029211292122921329214292152921629217292182921929220292212922229223292242922529226292272922829229292302923129232292332923429235292362923729238292392924029241292422924329244292452924629247292482924929250292512925229253292542925529256292572925829259292602926129262292632926429265292662926729268292692927029271292722927329274292752927629277292782927929280292812928229283292842928529286292872928829289292902929129292292932929429295292962929729298292992930029301293022930329304293052930629307293082930929310293112931229313293142931529316293172931829319293202932129322293232932429325293262932729328293292933029331293322933329334293352933629337293382933929340293412934229343293442934529346293472934829349293502935129352293532935429355293562935729358293592936029361293622936329364293652936629367293682936929370293712937229373293742937529376293772937829379293802938129382293832938429385293862938729388293892939029391293922939329394293952939629397293982939929400294012940229403294042940529406294072940829409294102941129412294132941429415294162941729418294192942029421294222942329424294252942629427294282942929430294312943229433294342943529436294372943829439294402944129442294432944429445294462944729448294492945029451294522945329454294552945629457294582945929460294612946229463294642946529466294672946829469294702947129472294732947429475294762947729478294792948029481294822948329484294852948629487294882948929490294912949229493294942949529496294972949829499295002950129502295032950429505295062950729508295092951029511295122951329514295152951629517295182951929520
  1. ;;; GNU Guix --- Functional package management for GNU
  2. ;;; Copyright © 2014 Taylan Ulrich Bayirli/Kammer <taylanbayirli@gmail.com>
  3. ;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
  4. ;;; Copyright © 2014, 2015, 2016, 2017, 2018 Mark H Weaver <mhw@netris.org>
  5. ;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019 Alex Kost <alezost@gmail.com>
  6. ;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
  7. ;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ricardo Wurmus <rekado@elephly.net>
  8. ;;; Copyright © 2016, 2017, 2018, 2019 Chris Marusich <cmmarusich@gmail.com>
  9. ;;; Copyright © 2015, 2016, 2018, 2020 Christine Lemmer-Webber <cwebber@dustycloud.org>
  10. ;;; Copyright © 2016 Adriano Peluso <catonano@gmail.com>
  11. ;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
  12. ;;; Copyright © 2016 David Thompson <davet@gnu.org>
  13. ;;; Copyright © 2016 Matthew Jordan <matthewjordandevops@yandex.com>
  14. ;;; Copyright © 2016, 2017 Roel Janssen <roel@gnu.org>
  15. ;;; Copyright © 2016, 2017 Nikita <nikita@n0.is>
  16. ;;; Copyright © 2016, 2019 Alex Griffin <a@ajgrf.com>
  17. ;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Nicolas Goaziou <mail@nicolasgoaziou.fr>
  18. ;;; Copyright © 2016, 2017, 2018 Alex Vong <alexvong1995@gmail.com>
  19. ;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Arun Isaac <arunisaac@systemreboot.net>
  20. ;;; Copyright © 2017 Christopher Baines <mail@cbaines.net>
  21. ;;; Copyright © 2017, 2018, 2019, 2020 Mathieu Othacehe <m.othacehe@gmail.com>
  22. ;;; Copyright © 2017, 2018, 2019, 2020, 2021 Clément Lassieur <clement@lassieur.org>
  23. ;;; Copyright © 2017 Vasile Dumitrascu <va511e@yahoo.com>
  24. ;;; Copyright © 2017, 2018 Kyle Meyer <kyle@kyleam.com>
  25. ;;; Copyright © 2017 Kei Kebreau <kkebreau@posteo.net>
  26. ;;; Copyright © 2017 George Clemmer <myglc2@gmail.com>
  27. ;;; Copyright © 2017, 2018 Feng Shu <tumashu@163.com>
  28. ;;; Copyright © 2017, 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
  29. ;;; Copyright © 2017, 2018, 2019, 2020 Oleg Pykhalov <go.wigust@gmail.com>
  30. ;;; Copyright © 2017 Mekeor Melire <mekeor.melire@gmail.com>
  31. ;;; Copyright © 2017 Peter Mikkelsen <petermikkelsen10@gmail.com>
  32. ;;; Copyright © 2017–2021 Tobias Geerinckx-Rice <me@tobias.gr>
  33. ;;; Copyright © 2017 Mike Gerwitz <mtg@gnu.org>
  34. ;;; Copyright © 2017, 2018, 2019, 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
  35. ;;; Copyright © 2018 Sohom Bhattacharjee <soham.bhattacharjee15@gmail.com>
  36. ;;; Copyright © 2018, 2019 Mathieu Lirzin <mthl@gnu.org>
  37. ;;; Copyright © 2018, 2019, 2020, 2021 Pierre Neidhardt <mail@ambrevar.xyz>
  38. ;;; Copyright © 2018, 2019, 2020 Tim Gesthuizen <tim.gesthuizen@yahoo.de>
  39. ;;; Copyright © 2018, 2019 Jack Hill <jackhill@jackhill.us>
  40. ;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
  41. ;;; Copyright © 2018 Alex Branham <alex.branham@gmail.com>
  42. ;;; Copyright © 2018 Thorsten Wilms <t_w_@freenet.de>
  43. ;;; Copyright © 2018, 2019, 2020, 2021 Pierre Langlois <pierre.langlois@gmx.com>
  44. ;;; Copyright © 2018, 2019, 2020, 2021 Brett Gilio <brettg@gnu.org>
  45. ;;; Copyright © 2019, 2020 Dimakakos Dimos <bendersteed@teknik.io>
  46. ;;; Copyright © 2019, 2020 Brian Leung <bkleung89@gmail.com>
  47. ;;; Copyright © 2019 mikadoZero <mikadozero@yandex.com>
  48. ;;; Copyright © 2019 Gabriel Hondet <gabrielhondet@gmail.com>
  49. ;;; Copyright © 2019, 2020, 2021 Joseph LaFreniere <joseph@lafreniere.xyz>
  50. ;;; Copyright © 2019 Amar Singh <nly@disroot.org>
  51. ;;; Copyright © 2019 Baptiste Strazzulla <bstrazzull@hotmail.fr>
  52. ;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org>
  53. ;;; Copyright © 2019 Jens Mølgaard <jens@zete.tk>
  54. ;;; Copyright © 2019, 2020 Amin Bandali <bandali@gnu.org>
  55. ;;; Copyright © 2019 Jelle Licht <jlicht@fsfe.org>
  56. ;;; Copyright © 2019 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
  57. ;;; Copyright © 2019 Stephen Webber <montokapro@gmail.com>
  58. ;;; Copyright © 2019, 2021 Leo Prikler <leo.prikler@student.tugraz.at>
  59. ;;; Copyright © 2019 David Wilson <david@daviwil.com>
  60. ;;; Copyright © 2020 Paul Garlick <pgarlick@tourbillion-technology.com>
  61. ;;; Copyright © 2020 Robert Smith <robertsmith@posteo.net>
  62. ;;; Copyright © 2020 Evan Straw <evan.straw99@gmail.com>
  63. ;;; Copyright © 2020, 2021 Masaya Tojo <masaya@tojo.tokyo>
  64. ;;; Copyright © 2020, 2021 Martin Becze <mjbecze@riseup.net>
  65. ;;; Copyright © 2020, 2021 Michael Rohleder <mike@rohleder.de>
  66. ;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
  67. ;;; Copyright © 2020 6033fe7de85d <6033fe7de85d@airmail.cc>
  68. ;;; Copyright © 2020 John Soo <jsoo1@asu.edu>
  69. ;;; Copyright © 2020 Jérémy Korwin-Zmijowski <jeremy@korwin-zmijowski.fr>
  70. ;;; Copyright © 2020 Alberto Eleuterio Flores Guerrero <barbanegra+guix@posteo.mx>
  71. ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
  72. ;;; Copyright © 2020 pinoaffe <pinoaffe@airmail.cc>
  73. ;;; Copyright © 2020, 2021 Vinicius Monego <monego@posteo.net>
  74. ;;; Copyright © 2020 Ryan Desfosses <rdes@protonmail.com>
  75. ;;; Copyright © 2020 Marcin Karpezo <sirmacik@wioo.waw.pl>
  76. ;;; Copyright © 2020 Fredrik Salomonsson <plattfot@gmail.com>
  77. ;;; Copyright © 2020 Ryan Desfosses <rdes@protonmail.com>
  78. ;;; Copyright © 2020 Eric Bavier <bavier@posteo.net>
  79. ;;; Copyright © 2020, 2021 Morgan Smith <Morgan.J.Smith@outlook.com>
  80. ;;; Copyright © 2020 Peng Mei Yu <i@pengmeiyu.com>
  81. ;;; Copyright © 2020, 2021 Niklas Eklund <niklas.eklund@posteo.net>
  82. ;;; Copyright © 2020 Marco Grassi <marco.au.grassi98@protonmail.com>
  83. ;;; Copyright © 2020 Tomás Ortín Fernández <tomasortin@mailbox.org>
  84. ;;; Copyright © 2020, 2021 Zhu Zihao <all_but_last@163.com>
  85. ;;; Copyright © 2020 Adam Kandur <rndd@tuta.io>
  86. ;;; Copyright © 2020 Tim Howes <timhowes@lavabit.com>
  87. ;;; Copyright © 2020 Noah Landis <noahlandis@posteo.net>
  88. ;;; Copyright © 2020, 2021 Nicolò Balzarotti <nicolo@nixo.xyz>
  89. ;;; Copyright © 2020 André A. Gomes <andremegafone@gmail.com>
  90. ;;; Copyright © 2020 Jonathan Rostran <rostranjj@gmail.com>
  91. ;;; Copyright © 2020, 2021 Noah Evans <noah@nevans.me>
  92. ;;; Copyright © 2020 Brit Butler <brit@kingcons.io>
  93. ;;; Copyright © 2021 Alexandr Vityazev <avityazev@posteo.org>
  94. ;;; Copyright © 2021 Yurii Kholodkov <urist.mckorobochka@gmail.com>
  95. ;;; Copyright © 2021 Alexey Abramov <levenson@mmer.org>
  96. ;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
  97. ;;; Copyright © 2021 Stefan Reichör <stefan@xsteve.at>
  98. ;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com>
  99. ;;; Copyright © 2021 Eugene Klimov <lipklim@mailbox.org>
  100. ;;; Copyright © 2021 Zheng Junjie <873216071@qq.com>
  101. ;;; Copyright © 2021 David Dashyan <mail@davie.li>
  102. ;;; Copyright © 2021 Dhruvin Gandhi <contact@dhruvin.dev>
  103. ;;; Copyright © 2021 Matthew James Kraai <kraai@ftbfs.org>
  104. ;;; Copyright © 2021 Noisytoot <noisytoot@disroot.org>
  105. ;;; Copyright © 2021 Simon South <simon@simonsouth.net>
  106. ;;;
  107. ;;; This file is part of GNU Guix.
  108. ;;;
  109. ;;; GNU Guix is free software; you can redistribute it and/or modify it
  110. ;;; under the terms of the GNU General Public License as published by
  111. ;;; the Free Software Foundation; either version 3 of the License, or (at
  112. ;;; your option) any later version.
  113. ;;;
  114. ;;; GNU Guix is distributed in the hope that it will be useful, but
  115. ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
  116. ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  117. ;;; GNU General Public License for more details.
  118. ;;;
  119. ;;; You should have received a copy of the GNU General Public License
  120. ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
  121. (define-module (gnu packages emacs-xyz)
  122. #:use-module ((guix licenses) #:prefix license:)
  123. #:use-module (guix packages)
  124. #:use-module (guix cvs-download)
  125. #:use-module (guix download)
  126. #:use-module (guix bzr-download)
  127. #:use-module (guix git-download)
  128. #:use-module (guix hg-download)
  129. #:use-module (guix build-system gnu)
  130. #:use-module (guix build-system cmake)
  131. #:use-module (guix build-system copy)
  132. #:use-module (guix build-system emacs)
  133. #:use-module (guix build-system glib-or-gtk)
  134. #:use-module (guix build-system perl)
  135. #:use-module (guix build-system trivial)
  136. #:use-module (gnu packages)
  137. #:use-module (gnu packages admin)
  138. #:use-module (gnu packages aspell)
  139. #:use-module (gnu packages audio)
  140. #:use-module (gnu packages bash)
  141. #:use-module (gnu packages chez)
  142. #:use-module (gnu packages cmake)
  143. #:use-module (gnu packages code)
  144. #:use-module (gnu packages cpp)
  145. #:use-module (gnu packages curl)
  146. #:use-module (gnu packages databases)
  147. #:use-module (gnu packages dictionaries)
  148. #:use-module (gnu packages djvu)
  149. #:use-module (gnu packages ebook)
  150. #:use-module (gnu packages emacs)
  151. #:use-module (gnu packages freedesktop)
  152. #:use-module (gnu packages golang)
  153. #:use-module (gnu packages guile)
  154. #:use-module (gnu packages gtk)
  155. #:use-module (gnu packages gnome)
  156. #:use-module (gnu packages haskell-apps)
  157. #:use-module (gnu packages ibus)
  158. #:use-module (gnu packages java)
  159. #:use-module (gnu packages ncurses)
  160. #:use-module (gnu packages networking)
  161. #:use-module (gnu packages python)
  162. #:use-module (gnu packages python-xyz)
  163. #:use-module (gnu packages telephony)
  164. #:use-module (gnu packages terminals)
  165. #:use-module (gnu packages tex)
  166. #:use-module (gnu packages texinfo)
  167. #:use-module (gnu packages tcl)
  168. #:use-module (gnu packages tls)
  169. #:use-module (gnu packages pkg-config)
  170. #:use-module (gnu packages xorg)
  171. #:use-module (gnu packages lesstif)
  172. #:use-module (gnu packages llvm)
  173. #:use-module (gnu packages image)
  174. #:use-module (gnu packages linux)
  175. #:use-module (gnu packages libevent)
  176. #:use-module (gnu packages lisp-xyz)
  177. #:use-module (gnu packages lua)
  178. #:use-module (gnu packages music)
  179. #:use-module (gnu packages version-control)
  180. #:use-module (gnu packages imagemagick)
  181. #:use-module (gnu packages w3m)
  182. #:use-module (gnu packages web)
  183. #:use-module (gnu packages wget)
  184. #:use-module (gnu packages autotools)
  185. #:use-module (gnu packages base)
  186. #:use-module (gnu packages compression)
  187. #:use-module (gnu packages node)
  188. #:use-module (gnu packages xml)
  189. #:use-module (gnu packages glib)
  190. #:use-module (gnu packages acl)
  191. #:use-module (gnu packages mail)
  192. #:use-module (gnu packages messaging)
  193. #:use-module (gnu packages package-management)
  194. #:use-module (gnu packages perl)
  195. #:use-module (gnu packages pdf)
  196. #:use-module (gnu packages racket)
  197. #:use-module (gnu packages ruby)
  198. #:use-module (gnu packages rust-apps)
  199. #:use-module (gnu packages scheme)
  200. #:use-module (gnu packages serialization)
  201. #:use-module (gnu packages speech)
  202. #:use-module (gnu packages xiph)
  203. #:use-module (gnu packages mp3)
  204. #:use-module (gnu packages gettext)
  205. #:use-module (gnu packages fribidi)
  206. #:use-module (gnu packages gd)
  207. #:use-module (gnu packages fontutils)
  208. #:use-module (gnu packages password-utils)
  209. #:use-module (gnu packages pulseaudio)
  210. #:use-module (gnu packages sphinx)
  211. #:use-module (gnu packages xdisorg)
  212. #:use-module (gnu packages shells)
  213. #:use-module (gnu packages shellutils)
  214. #:use-module (gnu packages sqlite)
  215. #:use-module (gnu packages ghostscript)
  216. #:use-module (gnu packages gnupg)
  217. #:use-module (gnu packages video)
  218. #:use-module (gnu packages haskell-xyz)
  219. #:use-module (gnu packages wordnet)
  220. #:use-module (gnu packages photo)
  221. #:use-module (gnu packages uml)
  222. #:use-module (gnu packages finance)
  223. #:use-module (guix utils)
  224. #:use-module (srfi srfi-1)
  225. #:use-module (ice-9 match))
  226. ;;;
  227. ;;; Emacs hacking.
  228. ;;;
  229. (define-public emacs-geiser
  230. (package
  231. (name "emacs-geiser")
  232. (version "0.17")
  233. (source
  234. (origin
  235. (method git-fetch)
  236. (uri (git-reference
  237. (url "https://gitlab.com/emacs-geiser/geiser.git")
  238. (commit version)))
  239. (file-name (git-file-name name version))
  240. (sha256
  241. (base32 "07g1zlf9kmfish2wa6m376xba0nv6n4spw8wbmr90a56xj0qpswc"))))
  242. (build-system emacs-build-system)
  243. (arguments
  244. '(#:phases
  245. (modify-phases %standard-phases
  246. ;; Move the source files to the top level, which is included in
  247. ;; the EMACSLOADPATH.
  248. (add-after 'unpack 'move-source-files
  249. (lambda _
  250. (let ((el-files (find-files "./elisp" ".*\\.el$")))
  251. (for-each (lambda (f)
  252. (rename-file f (basename f)))
  253. el-files))))
  254. (add-before 'install 'make-info
  255. (lambda _
  256. ;; XXX: Fix a typo in the ".texi" file below.
  257. (substitute* "doc/install.texi"
  258. (("\\}\\{NonGNU ELPA\\}") ",NonGNU ELPA}"))
  259. (with-directory-excursion "doc"
  260. (invoke "makeinfo" "--no-split"
  261. "-o" "geiser.info" "geiser.texi")))))))
  262. (native-inputs
  263. `(("texinfo" ,texinfo)))
  264. (home-page "https://nongnu.org/geiser/")
  265. (synopsis "Collection of Emacs modes for Scheme hacking")
  266. (description
  267. "Geiser is a collection of Emacs major and minor modes that conspire with
  268. one or more Scheme implementations to keep the Lisp Machine Spirit alive. The
  269. continuously running Scheme interpreter takes the center of the stage in
  270. Geiser. A bundle of Elisp shims orchestrates the dialog between the Scheme
  271. implementation, Emacs and, ultimately, the schemer, giving them access to live
  272. metadata.
  273. This package provides just the core of Geiser. To effectively use it with your
  274. favourite Scheme implementation, you also need the corresponding geiser package,
  275. e.g. emacs-geiser-guile for Guile.")
  276. (license license:bsd-3)))
  277. (define-public emacs-geiser-guile
  278. (package
  279. (name "emacs-geiser-guile")
  280. (version "0.17")
  281. (source
  282. (origin
  283. (method git-fetch)
  284. (uri (git-reference
  285. (url "https://gitlab.com/emacs-geiser/guile.git")
  286. (commit version)))
  287. (file-name (git-file-name name version))
  288. (sha256
  289. (base32 "0iw23nlgqppf6f00ly50m8lq85n9mv244pw3whxv0hynfjxr2ic0"))))
  290. (build-system emacs-build-system)
  291. (arguments
  292. '(#:include (cons "^src/" %default-include)
  293. #:phases
  294. (modify-phases %standard-phases
  295. (add-after 'make-autoloads 'patch-autoloads
  296. (lambda* (#:key outputs #:allow-other-keys)
  297. (substitute* (string-append
  298. (elpa-directory (assoc-ref outputs "out"))
  299. "/geiser-guile-autoloads.el")
  300. ;; Activating implementations fails when Geiser is not yet
  301. ;; loaded, so let's defer that until it is.
  302. (("\\(geiser-activate-implementation .*\\)" all)
  303. (string-append
  304. "(eval-after-load 'geiser-impl '" all ")")))
  305. #t)))))
  306. (inputs
  307. `(("guile" ,guile-2.2)))
  308. (propagated-inputs
  309. `(("geiser" ,emacs-geiser)))
  310. (home-page "https://nongnu.org/geiser/")
  311. (synopsis "Guile Scheme support for Geiser")
  312. (description
  313. "This package adds support for the Guile Scheme implementation to Geiser,
  314. a generic Scheme interaction mode for the GNU Emacs editor.")
  315. (license license:bsd-3)))
  316. (define-public emacs-ac-geiser
  317. (let ((commit "93818c936ee7e2f1ba1b315578bde363a7d43d05")
  318. (revision "0"))
  319. (package
  320. (name "emacs-ac-geiser")
  321. (version (git-version "0.1" revision commit))
  322. (source
  323. (origin
  324. (uri (git-reference
  325. (url "https://github.com/xiaohanyu/ac-geiser")
  326. (commit commit)))
  327. (method git-fetch)
  328. (sha256
  329. (base32 "00n2qa26yilaj837n1yp6lbqa4gf30nkkbvanl7m9ih7k48ssqmw"))
  330. (file-name (git-file-name name version))))
  331. (build-system emacs-build-system)
  332. (propagated-inputs
  333. `(("geiser" ,emacs-geiser)
  334. ("auto-complete" ,emacs-auto-complete)))
  335. (synopsis "Auto-complete backend for geiser")
  336. (description
  337. "This package provides an auto-complete source for Scheme projects
  338. using geiser.")
  339. (license license:bsd-3)
  340. (home-page "https://github.com/xiaohanyu/ac-geiser"))))
  341. (define-public emacs-geiser-gauche
  342. (package
  343. (name "emacs-geiser-gauche")
  344. (version "0.0.2")
  345. (source
  346. (origin
  347. (method git-fetch)
  348. (uri (git-reference
  349. (url "https://gitlab.com/emacs-geiser/gauche.git")
  350. (commit version)))
  351. (file-name (git-file-name name version))
  352. (sha256
  353. (base32 "0rxncnzx7qgcpvc8nz0sd8r0hwrplazzraahdwhbpq0q6z8ywqgg"))))
  354. (build-system emacs-build-system)
  355. (arguments
  356. `(#:include (cons "^geiser-gauche\\.scm$" %default-include)))
  357. (native-inputs
  358. `(("geiser" ,emacs-geiser)))
  359. (home-page "https://gitlab.com/emacs-geiser/gauche")
  360. (synopsis "Gauche Scheme support for Geiser")
  361. (description
  362. "This package adds support for the Gauche Scheme implementation to Geiser,
  363. a generic Scheme interaction mode for the GNU Emacs editor.")
  364. (license license:expat)))
  365. (define-public emacs-geiser-racket
  366. (package
  367. (name "emacs-geiser-racket")
  368. (version "0.16")
  369. (source
  370. (origin
  371. (method git-fetch)
  372. (uri (git-reference
  373. (url "https://gitlab.com/emacs-geiser/racket")
  374. (commit version)))
  375. (file-name (git-file-name name version))
  376. (sha256
  377. (base32 "1aqsvmk1hi7kc3j4h8xlza7c6rwm71v98fv5wpw8kmyj9vsp49wx"))))
  378. (build-system emacs-build-system)
  379. (arguments
  380. '(#:include (cons "^src/" %default-include)
  381. #:phases
  382. (modify-phases %standard-phases
  383. (add-after 'make-autoloads 'patch-autoloads
  384. (lambda* (#:key outputs #:allow-other-keys)
  385. (substitute* (string-append
  386. (elpa-directory (assoc-ref outputs "out"))
  387. "/geiser-racket-autoloads.el")
  388. ;; Activating implementations fails when Geiser is not yet
  389. ;; loaded, so let's defer that until it is.
  390. (("\\(geiser-activate-implementation .*\\)" all)
  391. (string-append
  392. "(eval-after-load 'geiser-impl '" all ")"))
  393. (("\\(geiser-implementation-extension .*\\)" all)
  394. (string-append
  395. "(eval-after-load 'geiser-impl '" all ")")))
  396. #t)))))
  397. (inputs
  398. `(("racket" ,racket)))
  399. (propagated-inputs
  400. `(("geiser" ,emacs-geiser)))
  401. (home-page "https://nongnu.org/geiser/")
  402. (synopsis "Racket support for Geiser")
  403. (description
  404. "This package adds support for the Racket implementation to Geiser,
  405. a generic Scheme interaction mode for the GNU Emacs editor.")
  406. (license license:bsd-3)))
  407. (define-public emacs-geiser-chez
  408. (package
  409. (name "emacs-geiser-chez")
  410. (version "0.16")
  411. (source
  412. (origin
  413. (method git-fetch)
  414. (uri (git-reference
  415. (url "https://gitlab.com/emacs-geiser/chez")
  416. (commit version)))
  417. (file-name (git-file-name name version))
  418. (sha256
  419. (base32
  420. "0cc1z5z5cpvxa5f3n8kvms0wxlybzcg4l1bh3rwv1l1sb0lk1xzx"))))
  421. (build-system emacs-build-system)
  422. (arguments
  423. '(#:include (cons "^src/" %default-include)
  424. #:phases
  425. (modify-phases %standard-phases
  426. (add-after 'make-autoloads 'patch-autoloads
  427. (lambda* (#:key outputs #:allow-other-keys)
  428. (substitute* (string-append
  429. (elpa-directory (assoc-ref outputs "out"))
  430. "/geiser-chez-autoloads.el")
  431. ;; Activating implementations fails when Geiser is not yet
  432. ;; loaded, so let's defer that until it is.
  433. ;; See <https://gitlab.com/emacs-geiser/chez/-/issues/7>.
  434. (("\\(geiser-activate-implementation .*\\)" all)
  435. (string-append
  436. "(eval-after-load 'geiser-impl '" all ")"))
  437. (("\\(geiser-implementation-extension .*\\)" all)
  438. (string-append
  439. "(eval-after-load 'geiser-impl '" all ")"))))))))
  440. (inputs
  441. `(("chez-scheme" ,chez-scheme)))
  442. (propagated-inputs
  443. `(("emacs-geiser" ,emacs-geiser)))
  444. (home-page "https://nongnu.org/geiser/")
  445. (synopsis "Support for Chez Scheme in Geiser")
  446. (description
  447. "This package adds support for using Chez Scheme in Emacs with Geiser.")
  448. (license license:bsd-3)))
  449. (define-public emacs-vc-hgcmd
  450. (package
  451. (name "emacs-vc-hgcmd")
  452. (version "1.14")
  453. (source (origin
  454. (method git-fetch)
  455. (uri (git-reference
  456. (url "https://github.com/muffinmad/emacs-vc-hgcmd")
  457. (commit (string-append "v" version))))
  458. (file-name (git-file-name name version))
  459. (sha256
  460. (base32
  461. "1mm8lnwii53j32v54aahl8sf3ciwymrvc1rgy4nw2m7hcrnjsb78"))))
  462. (build-system emacs-build-system)
  463. (home-page "https://github.com/muffinmad/emacs-vc-hgcmd")
  464. (synopsis "Version control (VC) backend for the Mercurial command server")
  465. (description
  466. "This package provides an Emacs VC backend to work with Mercurial
  467. repositories through the
  468. @uref{https://www.mercurial-scm.org/wiki/CommandServer,Mercurial command
  469. server}. The main advantage compared to @code{vc-hg} is speed.")
  470. (license license:gpl3+)))
  471. (define-public emacs-hgignore-mode
  472. ;; From 2021-03-14.
  473. ;; No releases available.
  474. (let ((commit "2c5aa4c238848f5b4f2955afcfb5f21ea513653b")
  475. (revision "0"))
  476. (package
  477. (name "emacs-hgignore-mode")
  478. ;; `Version:' header says 0.1.20150329
  479. (version (git-version "0.1" revision commit))
  480. (source (origin
  481. (method git-fetch)
  482. (uri (git-reference
  483. (url "https://github.com/omajid/hgignore-mode")
  484. (commit commit)))
  485. (file-name (git-file-name name version))
  486. (sha256
  487. (base32
  488. "0jn9rzhrmmv4lf7rdapdjclk6623d1mir2lq3c46428skhzjlph7"))))
  489. (build-system emacs-build-system)
  490. (home-page "https://github.com/omajid/hgignore-mode")
  491. (synopsis "Major mode for editing @file{hgignore} files")
  492. (description "This package provides a basic major mode for
  493. editing @file{.hgignore} files used by the Mercurial version control
  494. system.")
  495. (license license:gpl3+))))
  496. (define-public emacs-hyperbole
  497. (package
  498. (name "emacs-hyperbole")
  499. (version "7.1.3")
  500. (source
  501. (origin
  502. (method url-fetch)
  503. (uri (string-append "https://elpa.gnu.org/packages/"
  504. "hyperbole-" version ".tar"))
  505. (sha256
  506. (base32 "0bizibn4qgxqp89fyik6p47s9hss1g932mg8k7pznn3kkhj5c8rh"))
  507. (patches
  508. (search-patches "emacs-hyperbole-toggle-messaging.patch"))))
  509. (build-system emacs-build-system)
  510. (arguments
  511. `(#:include '("DEMO"
  512. "DEMO-ROLO.otl"
  513. "HY-ABOUT"
  514. "man/hkey-help.txt"
  515. "\\.el$"
  516. "\\.info$"
  517. "\\.kotl$")
  518. #:phases
  519. (modify-phases %standard-phases
  520. ;; Fix build issues about missing "domainname" and "hpmap:dir-user"
  521. ;; parent dir.
  522. (add-after 'unpack 'fix-build
  523. (lambda* (#:key inputs #:allow-other-keys)
  524. (substitute* "hypb.el"
  525. (("/bin/domainname")
  526. (search-input-file inputs "bin/dnsdomainname")))
  527. (substitute* "hyperbole.el"
  528. (("\\(hyperb:check-dir-user\\)") ""))))
  529. (add-after 'install 'install-images
  530. (lambda* (#:key outputs #:allow-other-keys)
  531. (let ((out (assoc-ref outputs "out")))
  532. (for-each (lambda (file)
  533. (install-file
  534. file
  535. (string-append out "/share/info/im")))
  536. (find-files "man/im" "\\.png$"))))))))
  537. (inputs
  538. `(("inetutils" ,inetutils)))
  539. (home-page "https://www.gnu.org/software/hyperbole/")
  540. (synopsis "The Everyday Hypertextual Information Manager")
  541. (description
  542. "GNU Hyperbole, or just Hyperbole, is a programmable hypertextual
  543. information management system. It offers rapid views and interlinking of all
  544. kinds of textual information, utilizing Emacs for editing. In particular,
  545. Hyperbole lets you quickly create and activate hyperlink buttons, build
  546. outlines, manage all your contacts, your windows and frames, and search across
  547. buffers, directory trees, or the web.")
  548. (license license:gpl3+)))
  549. (define-public emacs-hg-histedit
  550. ;; From 2021-03-02.
  551. ;; No releases available.
  552. (let ((commit "a05149483b9c5f7848ece0ba6028c900595a6a25")
  553. (revision "0"))
  554. (package
  555. (name "emacs-hg-histedit")
  556. (version (git-version "0.0.0" revision commit))
  557. (source (origin
  558. (method git-fetch)
  559. (uri (git-reference
  560. (url "https://github.com/jojojames/hg-histedit")
  561. (commit commit)))
  562. (file-name (git-file-name name version))
  563. (sha256
  564. (base32
  565. "04zps0d4s99f5a8ahrpyf8b6qw0c1y7rd1bsaq9nc6m4qblsvwc8"))))
  566. (build-system emacs-build-system)
  567. (propagated-inputs
  568. `(("emacs-with-editor" ,emacs-with-editor)))
  569. (home-page "https://github.com/jojojames/hg-histedit")
  570. (synopsis "Emacs interface to @command{hg histedit}")
  571. (description "This package provides an Emacs interface to
  572. @command{hg histedit} for editing the commit history.")
  573. (license license:gpl3+))))
  574. (define-public emacs-package-build
  575. (package
  576. (name "emacs-package-build")
  577. (version "2.4")
  578. (source (origin
  579. (method git-fetch)
  580. (uri (git-reference
  581. (url "https://github.com/melpa/package-build")
  582. (commit version)))
  583. (file-name (git-file-name name version))
  584. (sha256
  585. (base32
  586. "1lm5mgvjhpxqfw5gcv99h4mwbq728b6f2hj5vjh1j67kdwy7ws8k"))))
  587. (build-system emacs-build-system)
  588. (home-page "https://github.com/melpa/package-build")
  589. (synopsis "Tools for assembling en Emacs package archive")
  590. (description "This package provides tools for assembling an @acronym{ELPA,
  591. Emacs package archive}.")
  592. (license license:gpl3+)))
  593. (define-public emacs-paredit
  594. (package
  595. (name "emacs-paredit")
  596. (version "24")
  597. (source (origin
  598. (method url-fetch)
  599. (uri (string-append "http://mumble.net/~campbell/emacs/paredit-"
  600. version ".el"))
  601. (sha256
  602. (base32
  603. "0pp3n8q6kc70blqsaw0zlzp6bc327dpgdrjr0cnh7hqg1lras7ka"))))
  604. (build-system emacs-build-system)
  605. (home-page "http://mumble.net/~campbell/emacs/paredit/")
  606. (synopsis "Emacs minor mode for editing parentheses")
  607. (description
  608. "ParEdit (paredit.el) is a minor mode for performing structured editing
  609. of S-expression data. The typical example of this would be Lisp or Scheme
  610. source code.
  611. ParEdit helps **keep parentheses balanced** and adds many keys for moving
  612. S-expressions and moving around in S-expressions. Its behavior can be jarring
  613. for those who may want transient periods of unbalanced parentheses, such as
  614. when typing parentheses directly or commenting out code line by line.")
  615. (license license:gpl3+)))
  616. (define-public emacs-project
  617. (package
  618. (name "emacs-project")
  619. (version "0.6.1")
  620. (source
  621. (origin
  622. (method url-fetch)
  623. (uri (string-append "https://elpa.gnu.org/packages/project-" version ".tar"))
  624. (sha256
  625. (base32 "174fli3swbn67qcs9isv70vwrf6r41mak6dbs98gia89rlb71c8v"))))
  626. (build-system emacs-build-system)
  627. (propagated-inputs `(("emacs-xref" ,emacs-xref)))
  628. (home-page "http://elpa.gnu.org/packages/project.html")
  629. (synopsis "Operations on the current project")
  630. (description
  631. "This library contains generic infrastructure for dealing with projects,
  632. some utility functions, and commands using that infrastructure.")
  633. (license license:gpl3+)))
  634. (define-public git-modes
  635. (package
  636. (name "emacs-git-modes")
  637. (version "1.3.0")
  638. (source (origin
  639. (method git-fetch)
  640. (uri (git-reference
  641. (url "https://github.com/magit/git-modes")
  642. (commit version)))
  643. (file-name (git-file-name name version))
  644. (sha256
  645. (base32
  646. "0m8qfjj5hzxwyyi34sbk11qz5fix6z80hiki0v0a838sq4f586b6"))))
  647. (build-system emacs-build-system)
  648. (home-page "https://github.com/magit/git-modes")
  649. (synopsis "Emacs major modes for Git configuration files")
  650. (description
  651. "This package provides Emacs major modes for editing various Git
  652. configuration files, such as .gitattributes, .gitignore, and .git/config.")
  653. (license license:gpl3+)))
  654. (define-public emacs-with-editor
  655. (package
  656. (name "emacs-with-editor")
  657. (version "3.0.4")
  658. (source
  659. (origin
  660. (method git-fetch)
  661. (uri (git-reference
  662. (url "https://github.com/magit/with-editor")
  663. (commit (string-append "v" version))))
  664. (file-name (git-file-name name version))
  665. (sha256
  666. (base32 "1bmvkrfnjzrf0ch2mh75cv784mzs64i4f44l91xysapjqv46lfqn"))))
  667. (build-system emacs-build-system)
  668. (arguments
  669. `(#:phases
  670. (modify-phases %standard-phases
  671. (add-before 'install 'make-info
  672. (lambda _
  673. (invoke "makeinfo" "--no-split"
  674. "-o" "with-editor.info" "with-editor.texi"))))))
  675. (native-inputs
  676. `(("texinfo" ,texinfo)))
  677. (propagated-inputs
  678. `(("emacs-async" ,emacs-async)))
  679. (home-page "https://github.com/magit/with-editor")
  680. (synopsis "Emacs library for using Emacsclient as EDITOR")
  681. (description
  682. "This package provides an Emacs library to use the Emacsclient as
  683. @code{$EDITOR} of child processes, making sure they know how to call home.
  684. For remote processes a substitute is provided, which communicates with Emacs
  685. on stdout instead of using a socket as the Emacsclient does.")
  686. (license license:gpl3+)))
  687. (define-public emacs-libgit
  688. (let ((commit "0ef8b13aef011a98b7da756e4f1ce3bb18e4d55a")
  689. (revision "1"))
  690. (package
  691. (name "emacs-libgit")
  692. (version (git-version "20200515" revision commit))
  693. (source (origin
  694. (method git-fetch)
  695. (uri (git-reference
  696. (url "https://github.com/magit/libegit2")
  697. (commit commit)))
  698. (file-name (git-file-name name version))
  699. (sha256
  700. (base32
  701. "0pnjr3bg6y6354dfjjxfj0g51swzgl1fncpprah75x4k94rd369f"))
  702. (patches (search-patches
  703. ;; Submitted for inclusion upstream (see:
  704. ;; https://github.com/magit/libegit2/pull/96).
  705. "emacs-libgit-use-system-libgit2.patch"))))
  706. ;; Use the cmake-build-system as it provides support for cross builds.
  707. (build-system cmake-build-system)
  708. (arguments
  709. `(#:configure-flags '("-DUSE_SYSTEM_LIBGIT2=x")
  710. ;; Add the emacs-build-system byte compilation and install phases.
  711. #:imported-modules (,@%cmake-build-system-modules
  712. (guix build emacs-build-system)
  713. (guix build emacs-utils))
  714. #:modules ((guix build cmake-build-system)
  715. ((guix build emacs-build-system) #:prefix emacs:)
  716. (guix build emacs-utils)
  717. (guix build utils))
  718. #:phases
  719. (modify-phases %standard-phases
  720. (add-after 'unpack 'set-libgit--module-file
  721. (lambda* (#:key outputs #:allow-other-keys)
  722. (let ((out (assoc-ref outputs "out")))
  723. (make-file-writable "libgit.el")
  724. (emacs-substitute-variables "libgit.el"
  725. ("libgit--module-file"
  726. (string-append (emacs:elpa-directory out) "/libegit2.so"))))))
  727. (add-before 'install 'prepare-for-install
  728. (lambda _
  729. (let ((s "../source"))
  730. (copy-file "libegit2.so" (string-append s "/libegit2.so"))
  731. (chdir s))))
  732. (replace 'install
  733. (lambda* (#:key outputs #:allow-other-keys)
  734. (let ((install (assoc-ref emacs:%standard-phases 'install)))
  735. (install #:outputs outputs
  736. #:include (cons "\\.so$"
  737. emacs:%default-include)))))
  738. (add-after 'install 'make-autoloads
  739. (assoc-ref emacs:%standard-phases 'make-autoloads))
  740. (add-after 'make-autoloads 'enable-autoloads-compilation
  741. (assoc-ref emacs:%standard-phases 'enable-autoloads-compilation))
  742. (add-after 'enable-autoloads-compilation 'patch-el-files
  743. (assoc-ref emacs:%standard-phases 'patch-el-files))
  744. (add-after 'patch-el-files 'emacs-build
  745. (assoc-ref emacs:%standard-phases 'build))
  746. (add-after 'emacs-build 'validate-compiled-autoloads
  747. (assoc-ref emacs:%standard-phases 'validate-compiled-autoloads)))))
  748. (native-inputs
  749. `(("pkg-config" ,pkg-config)
  750. ("emacs" ,emacs-no-x)
  751. ("git" ,git-minimal)))
  752. (inputs
  753. `(("libgit2" ,libgit2)))
  754. (home-page "https://github.com/magit/libegit2")
  755. (synopsis "Emacs bindings for libgit2")
  756. (description "This is an experimental module written in C providing
  757. libgit2 bindings for Emacs, intended to boost the performance of Magit.")
  758. ;; The LICENSE file says GPL v2+, but libgit.el says GPL v3+.
  759. (license license:gpl3+))))
  760. (define-public emacs-magit
  761. (package
  762. (name "emacs-magit")
  763. (version "3.2.1")
  764. (source
  765. (origin
  766. (method git-fetch)
  767. (uri (git-reference
  768. (url "https://github.com/magit/magit")
  769. (commit (string-append "v" version))))
  770. (file-name (git-file-name name version))
  771. (sha256
  772. (base32 "179mgh8l5p7fhfmbg5rz810mhbzsxqsxd66jdb2a68vsazs1jw2m"))))
  773. (build-system emacs-build-system)
  774. (arguments
  775. `(#:emacs ,emacs-no-x ;module support is required
  776. #:tests? #t
  777. #:test-command '("make" "test")
  778. #:phases
  779. (modify-phases %standard-phases
  780. (add-after 'unpack 'build-info-manual
  781. (lambda _
  782. (invoke "make" "info")
  783. ;; Copy info files to the lisp directory, which acts as
  784. ;; the root of the project for the emacs-build-system.
  785. (for-each (lambda (f)
  786. (install-file f "lisp"))
  787. (find-files "Documentation" "\\.info$"))
  788. (chdir "lisp")))
  789. (add-after 'build-info-manual 'set-magit-version
  790. (lambda _
  791. (make-file-writable "magit.el")
  792. (emacs-substitute-variables "magit.el"
  793. ("magit-version" ,version))))
  794. (add-after 'set-magit-version 'patch-exec-paths
  795. (lambda* (#:key inputs #:allow-other-keys)
  796. (let ((perl (assoc-ref inputs "perl")))
  797. (make-file-writable "magit-sequence.el")
  798. (emacs-substitute-variables "magit-sequence.el"
  799. ("magit-perl-executable" (string-append perl "/bin/perl"))))))
  800. (add-before 'check 'configure-git
  801. (lambda _
  802. ;; Otherwise some tests fail with error "unable to auto-detect
  803. ;; email address".
  804. (setenv "HOME" (getcwd))
  805. (invoke "git" "config" "--global" "user.name" "toto")
  806. (invoke "git" "config" "--global" "user.email"
  807. "toto@toto.com")))
  808. (add-after 'configure-git 'disable-tramp-test
  809. (lambda _
  810. ;; There is an issue causing TRAMP to fail in the build
  811. ;; environment. Setting the tramp-remote-shell parameter of
  812. ;; the sudo-method to the file name of the shell didn't help.
  813. (chdir "..")
  814. (substitute* "t/magit-tests.el"
  815. (("^\\(ert-deftest magit-toplevel:tramp.*" all)
  816. (string-append all " (skip-unless nil)")))))
  817. (add-before 'install 'enter-lisp-directory
  818. (lambda _
  819. (chdir "lisp"))))))
  820. (native-inputs
  821. `(("texinfo" ,texinfo)))
  822. (inputs
  823. `(("git" ,git)
  824. ("perl" ,perl)))
  825. (propagated-inputs
  826. `(("emacs-dash" ,emacs-dash)
  827. ("emacs-libgit" ,emacs-libgit)
  828. ("emacs-transient" ,emacs-transient)
  829. ("emacs-with-editor" ,emacs-with-editor)))
  830. (home-page "https://magit.vc/")
  831. (synopsis "Emacs interface for the Git version control system")
  832. (description
  833. "With Magit, you can inspect and modify your Git repositories
  834. with Emacs. You can review and commit the changes you have made to
  835. the tracked files, for example, and you can browse the history of past
  836. changes. There is support for cherry picking, reverting, merging,
  837. rebasing, and other common Git operations.")
  838. (license license:gpl3+)))
  839. (define-public emacs-magit-svn
  840. (package
  841. (name "emacs-magit-svn")
  842. (version "2.2.3")
  843. (source (origin
  844. (method git-fetch)
  845. (uri (git-reference
  846. (url "https://github.com/magit/magit-svn")
  847. (commit version)))
  848. (file-name (git-file-name name version))
  849. (sha256
  850. (base32
  851. "1v1y4fir1plz4kj0cvkcd29wibli4dw7vp4fmbxq4df76d8iy8yd"))))
  852. (build-system emacs-build-system)
  853. (propagated-inputs `(("dash" ,emacs-dash)
  854. ("with-editor" ,emacs-with-editor)
  855. ("magit" ,emacs-magit)
  856. ("transient" ,emacs-transient)))
  857. (home-page "https://github.com/magit/magit-svn")
  858. (synopsis "Git-SVN extension to Magit")
  859. (description
  860. "This package is an extension to Magit, the Git Emacs mode, providing
  861. support for Git-SVN.")
  862. (license license:gpl3+)))
  863. (define-public emacs-magit-popup
  864. (package
  865. (name "emacs-magit-popup")
  866. (version "2.13.3")
  867. (source
  868. (origin
  869. (method git-fetch)
  870. (uri (git-reference
  871. (url "https://github.com/magit/magit-popup")
  872. (commit (string-append "v" version))))
  873. (file-name (git-file-name name version))
  874. (sha256
  875. (base32 "0znp6gx6vpcsybg774ab06mdgxb7sfk3gki1yp2qhkanav13i6q1"))))
  876. (build-system emacs-build-system)
  877. (arguments
  878. `(#:phases
  879. (modify-phases %standard-phases
  880. (add-before 'install 'make-info
  881. (lambda _
  882. (invoke "make" "info"))))))
  883. (native-inputs
  884. `(("texinfo" ,texinfo)))
  885. (propagated-inputs
  886. `(("emacs-dash" ,emacs-dash)))
  887. (home-page "https://github.com/magit/magit-popup")
  888. (synopsis "Define prefix-infix-suffix command combos")
  889. (description
  890. "This library implements a generic interface for toggling switches and
  891. setting options and then invoking an Emacs command which does something with
  892. these arguments. The prototypical use is for the command to call an external
  893. process, passing on the arguments as command line arguments.")
  894. (license license:gpl3+)))
  895. (define-public emacs-magit-annex
  896. (package
  897. (name "emacs-magit-annex")
  898. (version "1.8.0")
  899. (source (origin
  900. (method git-fetch)
  901. (uri (git-reference
  902. (url "https://github.com/magit/magit-annex")
  903. (commit (string-append "v" version))))
  904. (file-name (git-file-name name version))
  905. (sha256
  906. (base32
  907. "0ak4chfn95p2vj3y0wiyimj609a4jfzrfpsc1kn0is1jv3dlkl6c"))))
  908. (build-system emacs-build-system)
  909. (propagated-inputs
  910. `(("magit" ,emacs-magit)
  911. ("transient" ,emacs-transient)))
  912. (home-page "https://github.com/magit/magit-annex/")
  913. (synopsis "Git-annex support for Magit")
  914. (description
  915. "Magit-annex adds a few git-annex operations to the Magit interface.")
  916. (license license:gpl3+)))
  917. (define-public emacs-minions
  918. (package
  919. (name "emacs-minions")
  920. (version "0.3.4")
  921. (source
  922. (origin
  923. (method git-fetch)
  924. (uri (git-reference
  925. (url "https://github.com/tarsius/minions")
  926. (commit (string-append "v" version))))
  927. (file-name (git-file-name name version))
  928. (sha256
  929. (base32 "1rvsfg9aabvyzzxd38kvjwkm9675zcmrfhzj5x6wj0ba3n0k34q5"))))
  930. (build-system emacs-build-system)
  931. (propagated-inputs
  932. `(("emacs-dash" ,emacs-dash)))
  933. (home-page "https://github.com/tarsius/minions")
  934. (synopsis "Minor-mode menu for the mode line")
  935. (description
  936. "This package implements a menu that lists enabled minor-modes, as well
  937. as commonly but not currently enabled minor-modes. It can be used to toggle
  938. local and global minor-modes, to access mode-specific menus, and to get help
  939. about modes.
  940. This menu is intended as a replacement for the incomplete yet wide list of
  941. enabled minor-modes that is displayed in the mode line by default. To use the
  942. menu like this, enable Minions mode.
  943. Alternatively the menu can be bound globally, for example:
  944. @code{(global-set-key [S-down-mouse-3] 'minions-minor-modes-menu)}.")
  945. (license license:gpl3+)))
  946. (define-public emacs-moody
  947. (package
  948. (name "emacs-moody")
  949. (version "0.6.0")
  950. (source
  951. (origin
  952. (method git-fetch)
  953. (uri (git-reference
  954. (url "https://github.com/tarsius/moody")
  955. (commit (string-append "v" version))))
  956. (file-name (git-file-name name version))
  957. (sha256
  958. (base32 "14x3hd0z0nh0dyfi434vqywi7aawfxhlqj6sp7m17np56zq32yhi"))))
  959. (build-system emacs-build-system)
  960. (home-page "https://github.com/tarsius/moody")
  961. (synopsis "Tabs and ribbons for Emacs mode-line")
  962. (description
  963. "@code{emacs-moody} provides utilities for displaying elements of
  964. the mode line as tabs and ribbons. It also provides replacements for a few
  965. built-in elements. The biggest difference to similar packages is that
  966. this one is much simpler and much more consistent. When using this package,
  967. then only the color of the mode line changes when a window becomes in-/active.")
  968. (license license:gpl3+)))
  969. (define-public emacs-theme-magic
  970. ;; No tagged release upstream, but the commit below correspond to the 0.2.3
  971. ;; release.
  972. (let ((commit "844c4311bd26ebafd4b6a1d72ddcc65d87f074e3")
  973. (revision "0"))
  974. (package
  975. (name "emacs-theme-magic")
  976. (version "0.2.3")
  977. (source
  978. (origin
  979. (method git-fetch)
  980. (uri (git-reference
  981. (url "https://github.com/jcaw/theme-magic")
  982. (commit commit)))
  983. (file-name (git-file-name name version))
  984. (sha256
  985. (base32 "10gkg7jh1s1484gm66a87zr7x8vmv00s7gfd0w2pj47nqf98g8hz"))))
  986. (build-system emacs-build-system)
  987. (arguments
  988. `(
  989. ;; Include Pywal interaction scripts.
  990. #:include (cons "^python/" %default-include)
  991. #:phases
  992. (modify-phases %standard-phases
  993. (add-after 'unpack 'patch-exec-paths
  994. (lambda* (#:key inputs #:allow-other-keys)
  995. (let ((files '("theme-magic.el" "python/wal_change_colors.py"))
  996. (python (assoc-ref inputs "python"))
  997. (python-pywal (assoc-ref inputs "python-pywal")))
  998. (substitute* files
  999. (("\"python\"") (string-append "\"" python "/bin/python3\""))
  1000. (("\"wal\"") (string-append "\"" python-pywal "/bin/wal\""))))
  1001. #t)))))
  1002. (inputs
  1003. `(("python" ,python)
  1004. ("python-pywal" ,python-pywal)))
  1005. (home-page "https://github.com/jcaw/theme-magic")
  1006. (synopsis "Generate and apply color palettes based on your Emacs theme")
  1007. (description
  1008. "This package provides a command to extract the colors from your Emacs
  1009. theme and apply them to the rest of Linux with Pywal. Pywal only applies your
  1010. theme to the current session.")
  1011. (license license:gpl3+))))
  1012. (define-public emacs-vscode-dark-plus
  1013. (package
  1014. (name "emacs-vscode-dark-plus")
  1015. (version "2.0.0")
  1016. (source
  1017. (origin
  1018. (method git-fetch)
  1019. (uri (git-reference
  1020. (url "https://github.com/ianyepan/vscode-dark-plus-emacs-theme")
  1021. (commit (string-append "v" version))))
  1022. (file-name (git-file-name name version))
  1023. (sha256
  1024. (base32 "1vcaqvhdgr91pr7kqskbscs8awm8jp6dkh79h6w36i9ipmc4l4hl"))))
  1025. (build-system emacs-build-system)
  1026. (home-page "https://github.com/ianyepan/vscode-dark-plus-emacs-theme")
  1027. (synopsis "Emacs port of the default VS Code Dark+ theme")
  1028. (description
  1029. "This theme aims to be as identical as possible to the default Dark+
  1030. color scheme used by Visual Studio Code.")
  1031. (license license:gpl3+)))
  1032. (define-public emacs-theme-sorcery
  1033. (let ((revision "0")
  1034. (commit "5a1c4445b9e6e09589a299a9962a6973272a0c2f"))
  1035. (package
  1036. (name "emacs-theme-sorcery")
  1037. (version "1.0")
  1038. (source
  1039. (origin
  1040. (method git-fetch)
  1041. (uri (git-reference
  1042. (url "https://github.com/mtreca/emacs-theme-sorcery")
  1043. (commit commit)))
  1044. (file-name (git-file-name name version))
  1045. (sha256
  1046. (base32 "1b858049n6nw4qf60fmszjrhl80x7ssh32f7glj722kwy7404kdh"))))
  1047. (build-system emacs-build-system)
  1048. (propagated-inputs
  1049. `(("emacs-autothemer" ,emacs-autothemer)))
  1050. (home-page "https://github.com/mtreca/emacs-theme-sorcery")
  1051. (synopsis "Dark and low-contrast Emacs theme")
  1052. (description "Sorcery is a dark and low-contrast Emacs theme inspired by
  1053. Apprentice and Sourcerer.")
  1054. (license license:gpl3+))))
  1055. (define-public emacs-treepy
  1056. (package
  1057. (name "emacs-treepy")
  1058. (version "0.1.2")
  1059. (source (origin
  1060. (method git-fetch)
  1061. (uri (git-reference
  1062. (url "https://github.com/volrath/treepy.el")
  1063. (commit version)))
  1064. (file-name (git-file-name name version))
  1065. (sha256
  1066. (base32
  1067. "0pmrpij80m5kgcr8bw36r8wllgppasw08vn3ghwvis9srpaq75cn"))))
  1068. (build-system emacs-build-system)
  1069. (home-page
  1070. "https://github.com/volrath/treepy.el")
  1071. (synopsis "Tree traversal tools")
  1072. (description
  1073. "Generic tools for recursive and iterative tree traversal based on
  1074. clojure.walk and clojure.zip respectively.")
  1075. (license license:gpl3+)))
  1076. (define-public emacs-typing
  1077. (let ((commit "a2ef25dde2d8eb91bd9c0c6164cb5208208647fa")
  1078. (revision "0"))
  1079. (package
  1080. (name "emacs-typing")
  1081. (version (git-version "1.1.4" revision commit))
  1082. (source
  1083. (origin
  1084. (method git-fetch)
  1085. (uri (git-reference
  1086. (url "https://github.com/kensanata/typing")
  1087. (commit commit)))
  1088. (file-name (git-file-name name version))
  1089. (sha256
  1090. (base32
  1091. "1dbh0srbf54lgd60ia79y9cfnq3kxlgw01qzdjs9mk3nfazzpgnv"))))
  1092. (build-system emacs-build-system)
  1093. (home-page "https://github.com/kensanata/typing/")
  1094. (synopsis "Emacs game where you have to type fast")
  1095. (description "The Typing of Emacs is a game for Emacs that
  1096. forces you to type words correctly as fast as possible, otherwise
  1097. you will die. The game builds the list of words from the active buffer.")
  1098. (license license:gpl2+))))
  1099. (define-public emacs-graphql
  1100. (package
  1101. (name "emacs-graphql")
  1102. (version "0.1.1")
  1103. (source (origin
  1104. (modules '((guix build utils)))
  1105. ;; Remove examples file with references to external packages as
  1106. ;; they do not exist at compilation time.
  1107. (snippet
  1108. '(begin (delete-file "examples.el")
  1109. #t))
  1110. (method git-fetch)
  1111. (uri (git-reference
  1112. (url "https://github.com/vermiculus/graphql.el")
  1113. (commit version)))
  1114. (file-name (git-file-name name version))
  1115. (sha256
  1116. (base32
  1117. "0sp0skc1rnhi39szfbq1i99pdgd3bhn4c15cff05iqhjy2d4hniw"))))
  1118. (build-system emacs-build-system)
  1119. (home-page
  1120. "https://github.com/vermiculus/graphql.el")
  1121. (synopsis "GraphQL utilities")
  1122. (description
  1123. "GraphQL.el provides a generally-applicable domain-specific language for
  1124. creating and executing GraphQL queries against your favorite web services.
  1125. GraphQL is a data query language and runtime designed and used to request and
  1126. deliver data to mobile and web apps.")
  1127. (license license:gpl3+)))
  1128. (define-public emacs-graphql-mode
  1129. ;; No tagged commit. No "Version" keyword either.
  1130. (let ((commit "9bed568ec86242dbe30bdbab324aa0eb2cd9bf08")
  1131. (revision "1"))
  1132. (package
  1133. (name "emacs-graphql-mode")
  1134. (version (git-version "0" revision commit))
  1135. (source
  1136. (origin
  1137. (method git-fetch)
  1138. (uri (git-reference
  1139. (url "https://github.com/davazp/graphql-mode")
  1140. (commit commit)))
  1141. (file-name (git-file-name name version))
  1142. (sha256
  1143. (base32 "0x9y7qq6y0zg8ncamzvk68ccmdyzh7xsj0xs0ykyl20d5wdpplj4"))))
  1144. (build-system emacs-build-system)
  1145. (home-page "https://github.com/davazp/graphql-mode")
  1146. (synopsis "Emacs mode to edit GraphQL schema and queries")
  1147. (description
  1148. "This package implements a major mode to edit GraphQL schemas and
  1149. query. The basic functionality includes syntax highlight and indentation.
  1150. Additionally, it is able to send GraphQL queries to an end-point URL.
  1151. Files with the @file{.graphql} and @file{.gql} extensions are
  1152. automatically opened with this mode.")
  1153. (license license:gpl3+))))
  1154. (define-public emacs-ghq
  1155. (package
  1156. (name "emacs-ghq")
  1157. (version "0.1.2")
  1158. (source
  1159. (origin
  1160. (method git-fetch)
  1161. (uri (git-reference
  1162. (url "https://github.com/rcoedo/emacs-ghq")
  1163. (commit (string-append "v" version))))
  1164. (file-name (git-file-name name version))
  1165. (sha256
  1166. (base32 "0rh2k93c3a0vl073a3s3a3h6gkw454v1lyd7y8l3pd24vw9hc628"))))
  1167. (build-system emacs-build-system)
  1168. (propagated-inputs
  1169. `(("ghq" ,ghq)))
  1170. (home-page "https://github.com/rcoedo/emacs-ghq")
  1171. (synopsis "Emacs interface for @code{ghq} tool")
  1172. (description
  1173. "This package provides a set of functions wrapping @code{ghq}, a tool for
  1174. organizing remote Go repository clones.")
  1175. (license license:gpl3+)))
  1176. (define-public emacs-ghub
  1177. (package
  1178. (name "emacs-ghub")
  1179. (version "3.5.3")
  1180. (source
  1181. (origin
  1182. (method git-fetch)
  1183. (uri (git-reference
  1184. (url "https://github.com/magit/ghub")
  1185. (commit (string-append "v" version))))
  1186. (file-name (git-file-name name version))
  1187. (sha256
  1188. (base32 "1sn7rzfkm75vj3whhisrjk1s34lz6hc08hmf4nnznbdvyimnd013"))))
  1189. (build-system emacs-build-system)
  1190. (arguments
  1191. `(#:phases
  1192. (modify-phases %standard-phases
  1193. (add-before 'install 'make-info
  1194. (lambda _
  1195. (invoke "make" "info"))))))
  1196. (native-inputs
  1197. `(("texinfo" ,texinfo)))
  1198. (propagated-inputs
  1199. `(("dash" ,emacs-dash)
  1200. ("emacs-let-alist" ,emacs-let-alist)
  1201. ("treepy" ,emacs-treepy)))
  1202. (home-page "https://github.com/magit/ghub")
  1203. (synopsis "Emacs client libraries for the APIs of various Git forges")
  1204. (description
  1205. "Ghub provides basic support for using the APIs of various Git forges from
  1206. Emacs packages. It supports the REST APIs of Github, Github GraphQL, Gitlab,
  1207. Gitea, Gogs and Bitbucket. It abstracts access to API resources using only a
  1208. handful of functions that are not resource-specific.")
  1209. (license license:gpl3+)))
  1210. (define-public emacs-typit
  1211. ;; Last release is from 2017.
  1212. (let ((commit "fa125bf43757737fbcf91958b76c38b440d54b4c")
  1213. (revision "2"))
  1214. (package
  1215. (name "emacs-typit")
  1216. (version (git-version "0.2.1" revision commit))
  1217. (source
  1218. (origin
  1219. (method git-fetch)
  1220. (uri (git-reference
  1221. (url "https://github.com/mrkkrp/typit")
  1222. (commit commit)))
  1223. (file-name (git-file-name name version))
  1224. (sha256
  1225. (base32 "1l0qb8gjgsmjjdvxlma7g6fn2z6rj246p2kczrikq8ajg1xh61sr"))))
  1226. (build-system emacs-build-system)
  1227. (arguments
  1228. '(#:include (cons "^dict/" %default-include)))
  1229. (propagated-inputs
  1230. `(("emacs-f" ,emacs-f)
  1231. ("emacs-mmt" ,emacs-mmt)))
  1232. (home-page "https://github.com/mrkkrp/typit")
  1233. (synopsis "Typing game for Emacs with two difficulties")
  1234. (description "Emacs Typit is a typing game for Emacs. Words that are
  1235. picked randomly from the most frequent words in language you're practicing,
  1236. until time is up.")
  1237. (license license:gpl3+))))
  1238. (define-public emacs-scribble-mode
  1239. (let ((commit "217945d54de5e4bb207033f2116baa28f5c5ecf2")
  1240. (revision "2"))
  1241. (package
  1242. (name "emacs-scribble-mode")
  1243. (version (git-version "0.1" revision commit))
  1244. (source (origin
  1245. (method git-fetch)
  1246. (uri (git-reference
  1247. (url "https://github.com/emacs-pe/scribble-mode")
  1248. (commit commit)))
  1249. (file-name (git-file-name name version))
  1250. (sha256
  1251. (base32
  1252. "1s5ccw1a5ack01wd94ywfcrar9j98agchwdh30q7iyxr0d2z4sii"))))
  1253. (build-system emacs-build-system)
  1254. (home-page "https://github.com/emacs-pe/scribble-mode")
  1255. (synopsis "Emacs mode for editing the Scribble documentation syntax.")
  1256. (description
  1257. "This package provides basic syntax highlighting and editing support
  1258. for editing Racket's Scribble documentation syntax in Emacs.")
  1259. (license license:gpl3+))))
  1260. (define-public emacs-shroud
  1261. (package
  1262. (name "emacs-shroud")
  1263. (version "1.105")
  1264. (source
  1265. (origin
  1266. (method git-fetch)
  1267. (uri (git-reference
  1268. (url "https://git.savannah.gnu.org/git/emacs-shroud.git")
  1269. (commit version)))
  1270. (file-name (git-file-name name version))
  1271. (sha256
  1272. (base32 "0q2pb3w8s833fjhkzicciw2php4lsnismad1dnwgp2lcway757ra"))))
  1273. (build-system gnu-build-system)
  1274. (arguments
  1275. `(#:modules ((guix build gnu-build-system)
  1276. ((guix build emacs-build-system) #:prefix emacs:)
  1277. (guix build utils))
  1278. #:imported-modules (,@%gnu-build-system-modules
  1279. (guix build emacs-build-system)
  1280. (guix build emacs-utils))
  1281. #:configure-flags (list (string-append "--with-lispdir="
  1282. (emacs:elpa-directory %output)))
  1283. #:phases
  1284. (modify-phases %standard-phases
  1285. (add-after 'unpack 'expand-load-path
  1286. (assoc-ref emacs:%standard-phases 'expand-load-path)))))
  1287. (native-inputs
  1288. `(("autoconf" ,autoconf)
  1289. ("automake" ,automake)
  1290. ("texinfo" ,texinfo)
  1291. ("perl" ,perl)
  1292. ("emacs-minimal" ,emacs-minimal)))
  1293. (propagated-inputs
  1294. `(("emacs-bui" ,emacs-bui)
  1295. ("emacs-dash" ,emacs-dash)
  1296. ("emacs-f" ,emacs-f)
  1297. ("emacs-s" ,emacs-s)
  1298. ("gnupg" ,gnupg)
  1299. ("shroud" ,shroud)))
  1300. (home-page "https://www.nongnu.org/emacs-shroud")
  1301. (synopsis "Emacs interface to the Shroud password manager")
  1302. (description
  1303. "This package provides an Emacs interface to the Shroud password manager,
  1304. using the Buffers User Interface library. You can view, copy, and edit secrets
  1305. from within Emacs.")
  1306. (license license:gpl3+)))
  1307. (define-public emacs-solidity
  1308. ;; This commit fixes a spacing issue and adds new keywords.
  1309. (let ((commit "d166a86b83907e0cfd64c191e9dfce4b44a9843e")
  1310. (revision "0"))
  1311. (package
  1312. (name "emacs-solidity")
  1313. (version (git-version "0.1.10" revision commit))
  1314. (source
  1315. (origin
  1316. (method git-fetch)
  1317. (uri (git-reference
  1318. (url "https://github.com/ethereum/emacs-solidity")
  1319. (commit commit)))
  1320. (file-name (git-file-name name version))
  1321. (sha256
  1322. (base32 "19hgvsrqch2vp49ag6m76bi5qxd20v95z0ib838rib9as15b17wq"))))
  1323. (build-system emacs-build-system)
  1324. (propagated-inputs
  1325. `(("emacs-company" ,emacs-company)
  1326. ("emacs-flycheck" ,emacs-flycheck)))
  1327. (home-page "https://github.com/ethereum/emacs-solidity")
  1328. (synopsis "Major mode for writing Solidity code")
  1329. (description
  1330. "This is a simple language mode for the Solidity language. It is
  1331. a constant work in progress as the language itself also progresses.")
  1332. (license license:gpl3+))))
  1333. (define-public emacs-unpackaged-el
  1334. (let ((commit "746801a677ada6cd6fa076e423aa0953779f3fad")
  1335. (revision "3"))
  1336. (package
  1337. (name "emacs-unpackaged-el")
  1338. (version (git-version "0" revision commit))
  1339. (source
  1340. (origin
  1341. (method git-fetch)
  1342. (uri (git-reference
  1343. (url "https://github.com/alphapapa/unpackaged.el")
  1344. (commit commit)))
  1345. (file-name (git-file-name name version))
  1346. (sha256
  1347. (base32
  1348. "0jvb2ci0h0lj368qhbff3pzkxj3nhlligpbkjzi525k9rkjgm7l8"))))
  1349. (build-system emacs-build-system)
  1350. (propagated-inputs
  1351. `(("emacs-dash" ,emacs-dash)
  1352. ("emacs-org" ,emacs-org)
  1353. ("emacs-s" ,emacs-s)
  1354. ("emacs-hydra" ,emacs-hydra)
  1355. ("emacs-use-package" ,emacs-use-package)))
  1356. (arguments
  1357. `(#:phases
  1358. (modify-phases %standard-phases
  1359. (add-after 'unpack 'require-hydra
  1360. (lambda _
  1361. (substitute* "unpackaged.el"
  1362. ((";;; Code:") ";;; Code:\n(require 'hydra)"))
  1363. #t)))))
  1364. (home-page "https://github.com/alphapapa/unpackaged.el")
  1365. (synopsis "Useful snippets of Emacs Lisp code")
  1366. (description "This package provides Emacs Lisp utilities for a variety
  1367. of tasks, including version control, task management, and regex-based
  1368. replacement.")
  1369. (license license:gpl3+))))
  1370. (define-public emacs-haskell-mode
  1371. (package
  1372. (name "emacs-haskell-mode")
  1373. (version "17.2")
  1374. (source
  1375. (origin
  1376. (method git-fetch)
  1377. (uri (git-reference
  1378. (url "https://github.com/haskell/haskell-mode")
  1379. (commit version)))
  1380. (file-name (git-file-name name version))
  1381. (sha256
  1382. (base32 "0zxbacqzr84krmhqpvzndnvlcjh1gs1x20ys0dykgd7chyhci5j5"))))
  1383. (propagated-inputs
  1384. `(("emacs-dash" ,emacs-dash)))
  1385. (native-inputs
  1386. `(("emacs" ,emacs-minimal)
  1387. ("emacs-el-search" ,emacs-el-search)
  1388. ("emacs-stream" ,emacs-stream)
  1389. ("texinfo" ,texinfo)))
  1390. (build-system gnu-build-system)
  1391. (arguments
  1392. `(#:make-flags (list (string-append "EMACS="
  1393. (assoc-ref %build-inputs "emacs")
  1394. "/bin/emacs"))
  1395. #:modules ((ice-9 match)
  1396. (srfi srfi-26)
  1397. ((guix build emacs-build-system) #:prefix emacs:)
  1398. ,@%gnu-build-system-modules)
  1399. #:imported-modules (,@%gnu-build-system-modules
  1400. (guix build emacs-build-system)
  1401. (guix build emacs-utils))
  1402. #:phases
  1403. (modify-phases %standard-phases
  1404. (delete 'configure)
  1405. (add-before 'build 'pre-build
  1406. (lambda* (#:key inputs #:allow-other-keys)
  1407. (define (el-dir store-dir)
  1408. (match (find-files store-dir "\\.el$")
  1409. ((f1 f2 ...) (dirname f1))
  1410. (_ "")))
  1411. (let ((sh (search-input-file inputs "/bin/sh")))
  1412. (define emacs-prefix? (cut string-prefix? "emacs-" <>))
  1413. (setenv "SHELL" "sh")
  1414. (setenv "EMACSLOADPATH"
  1415. (string-concatenate
  1416. (map (match-lambda
  1417. (((? emacs-prefix? name) . dir)
  1418. (string-append (el-dir dir) ":"))
  1419. (_ ""))
  1420. inputs)))
  1421. (substitute* (find-files "." "\\.el") (("/bin/sh") sh))
  1422. #t)))
  1423. (add-before 'check 'delete-failing-tests
  1424. ;; XXX: these tests require GHC executable, which would be a big
  1425. ;; native input.
  1426. (lambda _
  1427. (with-directory-excursion "tests"
  1428. ;; File `haskell-indent-tests.el' fails with
  1429. ;; `haskell-indent-put-region-in-literate-2'
  1430. ;; on Emacs 27.1+
  1431. ;; XXX: https://github.com/haskell/haskell-mode/issues/1714
  1432. (for-each delete-file
  1433. '("haskell-indent-tests.el"
  1434. "haskell-customize-tests.el"
  1435. "inferior-haskell-tests.el")))
  1436. #t))
  1437. (replace 'install
  1438. (lambda* (#:key outputs #:allow-other-keys)
  1439. (let* ((out (assoc-ref outputs "out"))
  1440. (el-dir (emacs:elpa-directory out))
  1441. (doc (string-append
  1442. out "/share/doc/haskell-mode-" ,version))
  1443. (info (string-append out "/share/info")))
  1444. (define (copy-to-dir dir files)
  1445. (for-each (lambda (f)
  1446. (install-file f dir))
  1447. files))
  1448. (with-directory-excursion "doc"
  1449. (invoke "makeinfo" "haskell-mode.texi")
  1450. (install-file "haskell-mode.info" info))
  1451. (copy-to-dir doc '("CONTRIBUTING.md" "NEWS" "README.md"))
  1452. (copy-to-dir el-dir (find-files "." "\\.elc?"))
  1453. #t))))))
  1454. (home-page "https://github.com/haskell/haskell-mode")
  1455. (synopsis "Haskell mode for Emacs")
  1456. (description
  1457. "This is an Emacs mode for editing, debugging and developing Haskell
  1458. programs.")
  1459. (license license:gpl3+)))
  1460. (define-public emacs-dante
  1461. (let ((commit "38b589417294c7ea44bf65b73b8046d950f9531b")
  1462. (revision "1"))
  1463. (package
  1464. (name "emacs-dante")
  1465. (version (git-version "1.6" revision commit))
  1466. (source (origin
  1467. (method git-fetch)
  1468. (uri (git-reference
  1469. (url "https://github.com/jyp/dante")
  1470. (commit commit)))
  1471. (sha256
  1472. (base32
  1473. "1mnmn635552zlwd4zr68jbvdjipl6gi4mi6wiyck28fsmq8kw96h"))
  1474. (file-name (git-file-name name version))))
  1475. (build-system emacs-build-system)
  1476. (propagated-inputs
  1477. `(("emacs-dash" ,emacs-dash)
  1478. ("emacs-f" ,emacs-f)
  1479. ("emacs-flycheck" ,emacs-flycheck)
  1480. ("emacs-haskell-mode" ,emacs-haskell-mode)
  1481. ("emacs-s" ,emacs-s)
  1482. ("emacs-company" ,emacs-company)
  1483. ("emacs-lcr" ,emacs-lcr)))
  1484. (home-page "https://github.com/jyp/dante")
  1485. (synopsis "Minor mode for interactive Haskell")
  1486. (description
  1487. "This package provides a minor mode for Haskell development that
  1488. supports type hints, definition-jumping, completion, and more.")
  1489. (license license:gpl3+))))
  1490. (define-public emacs-flycheck
  1491. ;; Last release version was more than 500 commits ago.
  1492. (let ((commit "9bcf6b665e15db94870bebc81dc8248c3eec20d3")
  1493. (revision "2"))
  1494. (package
  1495. (name "emacs-flycheck")
  1496. (version (git-version "31" revision commit))
  1497. (source
  1498. (origin
  1499. (method git-fetch)
  1500. (uri (git-reference
  1501. (url "https://github.com/flycheck/flycheck/")
  1502. (commit commit)))
  1503. (sha256
  1504. (base32 "015ixss5bjr7gvhj8mkw5x2x1hy6fvvsjarr2xpv0gskkkngs7pg"))
  1505. (file-name (git-file-name name version))))
  1506. (build-system emacs-build-system)
  1507. (propagated-inputs
  1508. `(("emacs-dash" ,emacs-dash)))
  1509. (native-inputs
  1510. `(("emacs-shut-up" ,emacs-shut-up)))
  1511. (arguments
  1512. `(#:phases
  1513. (modify-phases %standard-phases
  1514. (add-after 'unpack 'change-flycheck-version
  1515. (lambda _
  1516. (substitute* "flycheck.el"
  1517. (("\\(pkg-info-version-info 'flycheck\\)")
  1518. (string-append "\"" ,version "\"")))
  1519. #t)))
  1520. ;; TODO: many failing tests
  1521. #:tests? #f
  1522. #:test-command '("emacs" "-Q" "--batch" "-L" "."
  1523. "--load" "test/flycheck-test"
  1524. "--load" "test/run.el"
  1525. "-f" "flycheck-run-tests-main")))
  1526. (home-page "https://www.flycheck.org")
  1527. (synopsis "On-the-fly syntax checking")
  1528. (description
  1529. "This package provides on-the-fly syntax checking for GNU Emacs. It is a
  1530. replacement for the older Flymake extension which is part of GNU Emacs, with
  1531. many improvements and additional features.
  1532. Flycheck provides fully-automatic, fail-safe, on-the-fly background syntax
  1533. checking for over 30 programming and markup languages with more than 70
  1534. different tools. It highlights errors and warnings inline in the buffer, and
  1535. provides an optional IDE-like error list.")
  1536. (license license:gpl3+)))) ;+GFDLv1.3+ for the manual
  1537. (define-public emacs-flymake-quickdef
  1538. ;; This particular commit includes bug fixes on top of 1.0.0 release.
  1539. (let ((version "1.0.0")
  1540. (revision "0")
  1541. (commit "150c5839768a3d32f988f9dc08052978a68f2ad7"))
  1542. (package
  1543. (name "emacs-flymake-quickdef")
  1544. (version (git-version version revision commit))
  1545. (source
  1546. (origin
  1547. (method git-fetch)
  1548. (uri (git-reference
  1549. (url "https://github.com/karlotness/flymake-quickdef")
  1550. (commit commit)))
  1551. (file-name (git-file-name name version))
  1552. (sha256
  1553. (base32 "19gfd539l97j8xbrq1fw83b54mxbcamlz9m896088d3p01zf8b0g"))))
  1554. (build-system emacs-build-system)
  1555. (home-page "https://github.com/karlotness/flymake-quickdef")
  1556. (synopsis "Quickly define a new Flymake backend")
  1557. (description
  1558. "This package mainly defines a macro which helps remove some of the
  1559. boilerplate code from defining new Flymake backend functions.")
  1560. (license license:gpl3+))))
  1561. (define-public emacs-flymake-kondor
  1562. (package
  1563. (name "emacs-flymake-kondor")
  1564. (version "0.0.3")
  1565. (source
  1566. (origin
  1567. (method git-fetch)
  1568. (uri (git-reference
  1569. (url "https://github.com/turbo-cafe/flymake-kondor")
  1570. (commit version)))
  1571. (file-name (git-file-name name version))
  1572. (sha256
  1573. (base32 "0h8dqk35r10pxx2w4swb3kij4y2vi17j9wfk978x8lf0wd3h3hsy"))))
  1574. (build-system emacs-build-system)
  1575. (propagated-inputs
  1576. `(("emacs-flymake-quickdef" ,emacs-flymake-quickdef)))
  1577. (home-page "https://github.com/turbo-cafe/flymake-kondor")
  1578. (synopsis "Linter with clj-kondo")
  1579. (description "This package adds Clojure syntax checker clj-kondo.")
  1580. (license license:gpl3+)))
  1581. (define-public emacs-flymake-shellcheck
  1582. ;; No tag, version grabbed from source .el file.
  1583. (let ((commit "ac534e9ef15c82ac86ae65fe5004d29dbc8c92c7")
  1584. (revision "1"))
  1585. (package
  1586. (name "emacs-flymake-shellcheck")
  1587. (version (git-version "0.1" revision commit))
  1588. (source
  1589. (origin
  1590. (method git-fetch)
  1591. (uri (git-reference
  1592. (url "https://github.com/federicotdn/flymake-shellcheck")
  1593. (commit commit)))
  1594. (file-name (git-file-name name version))
  1595. (sha256
  1596. (base32 "04yfb4sy41spjzk9mhm4gy0h8vnjx09p2g6nm1yzgd9a5ph9sqgl"))))
  1597. (build-system emacs-build-system)
  1598. (home-page "https://github.com/federicotdn/flymake-shellcheck")
  1599. (synopsis "Flymake backend for Bash/Sh powered by ShellCheck")
  1600. (description
  1601. "This package provides a backend for Flymake to use the
  1602. tool ShellCheck for static analyzing @command{bash} and @command{sh}
  1603. scripts.")
  1604. (license license:gpl3+))))
  1605. (define-public emacs-a
  1606. (package
  1607. (name "emacs-a")
  1608. (version "0.1.1")
  1609. (source (origin
  1610. (method git-fetch)
  1611. (uri (git-reference
  1612. (url "https://github.com/plexus/a.el")
  1613. (commit (string-append "v" version))))
  1614. (file-name (git-file-name name version))
  1615. (sha256
  1616. (base32
  1617. "00v9w6qg3bkwdhypq0ssf0phdh0f4bcq59c20lngd6vhk0204dqi"))))
  1618. (build-system emacs-build-system)
  1619. (home-page "https://github.com/plexus/a.el/")
  1620. (synopsis
  1621. "Emacs library for dealing with association lists and hash tables")
  1622. (description "@code{emacs-a} provides Emacs Lisp functions for dealing
  1623. with associative structures in a uniform and functional way. These functions
  1624. can take association lists, hash tables, and in some cases vectors (where the
  1625. index is considered the key).")
  1626. (license license:gpl3+)))
  1627. (define-public emacs-ace-jump-mode
  1628. (package
  1629. (name "emacs-ace-jump-mode")
  1630. (version "2.0")
  1631. (home-page "https://github.com/winterTTr/ace-jump-mode")
  1632. (source (origin
  1633. (method git-fetch)
  1634. (uri (git-reference
  1635. (url home-page)
  1636. (commit (string-append "v" version))))
  1637. (sha256
  1638. (base32
  1639. "1bwvzh056ls2v7y26a0s4j5mj582dmds04lx4x6iqihs04ss74bb"))
  1640. (file-name (git-file-name name version))))
  1641. (build-system emacs-build-system)
  1642. (synopsis "Cursor location minor mode for fast navigation")
  1643. (description "Ace-jump-mode is a fast/direct cursor location minor
  1644. mode. It creates an N-Branch search tree internally and marks all
  1645. the possible position with predefined keys in within the whole Emacs
  1646. view. This allows you to move to the character, word, or line almost
  1647. directly.")
  1648. (license license:gpl3+)))
  1649. (define-public emacs-ahg
  1650. ;; No tags; commit from 2021-04-12.
  1651. (let ((commit "77bc2a628df006dcd2dc359ac12acdf8091a1356")
  1652. (revision "0"))
  1653. (package
  1654. (name "emacs-ahg")
  1655. (version (git-version "1.0.0" revision commit))
  1656. (source (origin
  1657. (method git-fetch)
  1658. (uri (git-reference
  1659. (url "https://bitbucket.org/agriggio/ahg")
  1660. (commit commit)))
  1661. (file-name (git-file-name name version))
  1662. (sha256
  1663. (base32
  1664. "1wmvz9d40aznqh2y078v8k7n3l66m48vnf873vifi8rwg6158kqh"))))
  1665. (build-system emacs-build-system)
  1666. (home-page "https://bitbucket.org/agriggio/ahg")
  1667. (synopsis "Emacs front-end for the Mercurial SCM")
  1668. (description
  1669. "This packages provides a simple Emacs front-end for the Mercurial
  1670. Distributed @acronym{Source Control Management, SCM} system.")
  1671. (license license:gpl3+))))
  1672. (define-public emacs-anaphora
  1673. (package
  1674. (name "emacs-anaphora")
  1675. (version "1.0.4")
  1676. (source
  1677. (origin
  1678. (method git-fetch)
  1679. (uri (git-reference
  1680. (url "https://github.com/rolandwalker/anaphora")
  1681. (commit (string-append "v" version))))
  1682. (file-name (git-file-name name version))
  1683. (sha256
  1684. (base32
  1685. "11fgiy029sqz7nvdm7dcal95lacryz9zql0x5h05z48nrrcl4bib"))))
  1686. (build-system emacs-build-system)
  1687. (home-page "https://github.com/rolandwalker/anaphora/")
  1688. (synopsis "Anaphoric expressions for Emacs Lisp")
  1689. (description "@code{emacs-anaphora} implements anaphoric expressions for
  1690. Emacs Lisp.
  1691. Anaphoric expressions implicitly create one or more temporary variables which
  1692. can be referred to during the expression. This technique can improve clarity
  1693. in certain cases. It also enables recursion for anonymous functions.")
  1694. (license license:public-domain)))
  1695. (define-public emacs-xr
  1696. (package
  1697. (name "emacs-xr")
  1698. (version "1.21")
  1699. (source
  1700. (origin
  1701. (method url-fetch)
  1702. (uri (string-append "https://elpa.gnu.org/packages/xr-" version ".tar"))
  1703. (sha256
  1704. (base32 "0mc10d33lsqs0ihcja8w78jzh2pk0dfm9m86kap6r3hi6wkr1cmi"))))
  1705. (build-system emacs-build-system)
  1706. (home-page "https://elpa.gnu.org/packages/xr.html")
  1707. (synopsis "Convert string regexp to rx notation")
  1708. (description
  1709. "This is an inverse companion to the @code{rx} package for translating
  1710. regexps in string form to the @code{rx} notation. Its chief uses are:
  1711. @itemize
  1712. @item Migrating existing code to @code{rx} form, for better readability and
  1713. maintainability
  1714. @item Understanding complex regexp strings and finding errors in them
  1715. @end itemize
  1716. In addition to Emacs regexps, this package can also parse and troubleshoot
  1717. skip set strings, which are arguments to @code{skip-chars-forward} and
  1718. @code{skip-chars-backward}.")
  1719. (license license:gpl3+)))
  1720. (define-public emacs-ample-regexps
  1721. (let ((commit "153969ce547afe410b8986f01c9ed4087c9cd20b")
  1722. (revision "2"))
  1723. (package
  1724. (name "emacs-ample-regexps")
  1725. (version (git-version "0.1" revision commit))
  1726. (source
  1727. (origin
  1728. (method git-fetch)
  1729. (uri (git-reference
  1730. (url "https://github.com/immerrr/ample-regexps.el")
  1731. (commit commit)))
  1732. (file-name (git-file-name name version))
  1733. (sha256
  1734. (base32
  1735. "0dkp7bcd7h2ds40wyszy11nmh7c2jxrwy04ayz7pbxh53ir7s2k0"))))
  1736. (build-system emacs-build-system)
  1737. (native-inputs
  1738. `(("ert-runner" ,emacs-ert-runner)))
  1739. (arguments
  1740. `(#:tests? #t
  1741. #:test-command '("ert-runner" "-l" "ample-regexps")))
  1742. (home-page "https://github.com/immerrr/ample-regexps.el")
  1743. (synopsis "Compose and reuse Emacs regexps")
  1744. (description
  1745. "This package allows common parts of regexps to be easily picked out
  1746. and reused.")
  1747. (license license:gpl3+))))
  1748. (define-public emacs-airline-themes
  1749. (package
  1750. (name "emacs-airline-themes")
  1751. (version "1.8")
  1752. (source
  1753. (origin
  1754. (method git-fetch)
  1755. (uri (git-reference
  1756. (url "https://github.com/AnthonyDiGirolamo/airline-themes")
  1757. (commit version)))
  1758. (file-name (git-file-name name version))
  1759. (sha256
  1760. (base32 "1jx17g8a6pxkw4zlx3fwhqgxfzcf3019k8fklykamfrkharzsc2l"))))
  1761. (build-system emacs-build-system)
  1762. (propagated-inputs
  1763. `(("emacs-powerline" ,emacs-powerline)))
  1764. (home-page "https://github.com/AnthonyDiGirolamo/airline-themes")
  1765. (synopsis "Vim-airline themes for Emacs Powerline")
  1766. (description
  1767. "This is a port of the themes in Vim-airline to Emacs Powerline.")
  1768. (license license:expat)))
  1769. (define-public emacs-ample-theme
  1770. (let ((commit "536966adf882446165a1f756830028faa792c7a9")
  1771. (revision "1"))
  1772. (package
  1773. (name "emacs-ample-theme")
  1774. (version (git-version "0.0.0" revision commit))
  1775. (source (origin
  1776. (method git-fetch)
  1777. (uri (git-reference
  1778. (url "https://github.com/jordonbiondo/ample-theme")
  1779. (commit commit)))
  1780. (file-name (git-file-name name version))
  1781. (sha256
  1782. (base32
  1783. "07bpv8dag40qjnm5000pgzpazj4whfxf93x2vprz26sg3mjfx0nf"))))
  1784. (build-system emacs-build-system)
  1785. (home-page "https://github.com/jordonbiondo/ample-theme")
  1786. (synopsis "Theme for Emacs providing dark, light, and flat versions")
  1787. (description "Ample themes is a collection of three themes sharing a
  1788. similar pallet with a light, dark and flat versions with a focus on being easy
  1789. on the eyes during night and day. They only support GUI and 256 colour
  1790. terminals.")
  1791. (license license:gpl3+))))
  1792. (define-public emacs-reformatter
  1793. (package
  1794. (name "emacs-reformatter")
  1795. (version "0.6")
  1796. (source
  1797. (origin
  1798. (method git-fetch)
  1799. (uri (git-reference
  1800. (url "https://github.com/purcell/reformatter.el")
  1801. (commit version)))
  1802. (file-name (git-file-name name version))
  1803. (sha256
  1804. (base32 "1dfn7c3gpavpiwd73v2pasd8wd8b62dczhg9iv1cgh8vaqlsf92x"))))
  1805. (build-system emacs-build-system)
  1806. (home-page "https://github.com/purcell/reformatter.el")
  1807. (synopsis "Define commands which run reformatters on the current buffer")
  1808. (description
  1809. "This library lets elisp authors easily define an idiomatic command to
  1810. reformat the current buffer using a command-line program, together with an
  1811. optional minor mode which can apply this command automatically on save.")
  1812. (license license:gpl3+)))
  1813. (define-public emacs-relative-buffers
  1814. (let ((release "0.0.1")
  1815. (revision "0")
  1816. (commit "9762fe268e9ff150dcec2e2e45d862d82d5c4008"))
  1817. (package
  1818. (name "emacs-relative-buffers")
  1819. (version (git-version release revision commit))
  1820. (source
  1821. (origin
  1822. (method git-fetch)
  1823. (uri (git-reference
  1824. (url "https://github.com/emacsattic/relative-buffers")
  1825. (commit commit)))
  1826. (file-name (git-file-name name version))
  1827. (sha256
  1828. (base32 "0fzhwbpyndwrmxip9zlcwkrr675l5pzwcygi45hv7w1hn39w0hxp"))
  1829. (snippet
  1830. '(begin
  1831. ;; Delete the Cask test runners.
  1832. (for-each delete-file '("Cask" "test/test-helper.el"))
  1833. #t))))
  1834. (build-system emacs-build-system)
  1835. (arguments
  1836. `(#:tests? #t
  1837. #:test-command '("ert-runner")))
  1838. (native-inputs
  1839. `(("ert-runner" ,emacs-ert-runner)))
  1840. (propagated-inputs
  1841. `(("emacs-dash" ,emacs-dash)
  1842. ("emacs-f" ,emacs-f)
  1843. ("emacs-s" ,emacs-s)))
  1844. (home-page "https://github.com/emacsattic/relative-buffers")
  1845. (synopsis "Minor mode to rename buffers by project structure")
  1846. (description
  1847. "This package provides a minor mode for renaming buffers according to
  1848. project structure. For Python buffers, that will be the whole module name.
  1849. For temporary files and directories, that will be the relative path from the
  1850. project root.")
  1851. (license license:gpl3+))))
  1852. (define-public emacs-relint
  1853. (package
  1854. (name "emacs-relint")
  1855. (version "1.19")
  1856. (source
  1857. (origin
  1858. (method url-fetch)
  1859. (uri (string-append "https://elpa.gnu.org/packages/"
  1860. "relint-" version ".tar"))
  1861. (sha256
  1862. (base32 "14z3i01pq5ljhjf5yfcjw7hxljcrwjnizkrdc1qyh9b6h3ic1bbi"))))
  1863. (build-system emacs-build-system)
  1864. (propagated-inputs `(("emacs-xr" ,emacs-xr)))
  1865. (home-page "https://github.com/mattiase/relint")
  1866. (synopsis "Elisp regexp mistake finder")
  1867. (description
  1868. "Relint (regular expression lint) scans Elisp files for mistakes in
  1869. regexps, including deprecated syntax and bad practice. It also checks the
  1870. regexp-like arguments to @code{skip-chars-forward} and
  1871. @code{skip-chars-backward}.")
  1872. (license license:gpl3+)))
  1873. (define-public emacs-bug-hunter
  1874. (let ((commit "b88d981afa9154b236c5a3a83b50d5889d46c6a7")
  1875. (revision "1"))
  1876. (package
  1877. (name "emacs-bug-hunter")
  1878. (version (git-version "1.3.1" revision commit))
  1879. (source
  1880. (origin
  1881. (method git-fetch)
  1882. (uri (git-reference
  1883. (url "https://github.com/Malabarba/elisp-bug-hunter")
  1884. (commit commit)))
  1885. (file-name (git-file-name name commit))
  1886. (sha256
  1887. (base32
  1888. "134fj493sdn93pyyac8rpz1fzahzmayvphsrmqp3wvgysmfqm38l"))))
  1889. (build-system emacs-build-system)
  1890. (home-page "https://github.com/Malabarba/elisp-bug-hunter")
  1891. (synopsis "Hunt down errors by bisecting elisp files")
  1892. (description
  1893. "The Bug Hunter is an Emacs library that finds the source of an error
  1894. or unexpected behavior inside an elisp configuration file (typically
  1895. @file{init.el} or @file{.emacs}).")
  1896. (license license:gpl3+))))
  1897. ;;;
  1898. ;;; Web browsing.
  1899. ;;;
  1900. (define-public emacs-w3m
  1901. ;; Emacs-w3m follows a "rolling release" model.
  1902. (package
  1903. (name "emacs-w3m")
  1904. (version "2018-11-11")
  1905. (source (origin
  1906. (method cvs-fetch)
  1907. (uri (cvs-reference
  1908. (root-directory
  1909. ":pserver:anonymous@cvs.namazu.org:/storage/cvsroot")
  1910. (module "emacs-w3m")
  1911. (revision version)))
  1912. (file-name (string-append name "-" version "-checkout"))
  1913. (sha256
  1914. (base32
  1915. "0nvahdbjs12zg7zsk4gql02mvnv56cf1rwj2f5p42lwp3xvswiwp"))))
  1916. (build-system gnu-build-system)
  1917. (native-inputs `(("autoconf" ,autoconf)
  1918. ("texinfo" ,texinfo)
  1919. ("emacs" ,emacs-minimal)))
  1920. (inputs `(("w3m" ,w3m)
  1921. ("imagemagick" ,imagemagick)))
  1922. (arguments
  1923. `(#:modules ((guix build gnu-build-system)
  1924. ((guix build emacs-build-system) #:prefix emacs:)
  1925. (guix build utils)
  1926. (guix build emacs-utils))
  1927. #:imported-modules (,@%gnu-build-system-modules
  1928. (guix build emacs-build-system)
  1929. (guix build emacs-utils))
  1930. #:configure-flags
  1931. (let ((out (assoc-ref %outputs "out")))
  1932. (list (string-append "--with-lispdir="
  1933. (emacs:elpa-directory out))
  1934. (string-append "--with-icondir="
  1935. out "/share/images/emacs-w3m")
  1936. ;; Leave .el files uncompressed, otherwise GC can't
  1937. ;; identify run-time dependencies. See
  1938. ;; <http://lists.gnu.org/archive/html/guix-devel/2015-12/msg00208.html>
  1939. "--without-compress-install"))
  1940. #:tests? #f ; no check target
  1941. #:phases
  1942. (modify-phases %standard-phases
  1943. (add-after 'unpack 'autoconf
  1944. (lambda _
  1945. (invoke "autoconf")))
  1946. (add-before 'configure 'support-emacs!
  1947. (lambda _
  1948. ;; For some reason 'AC_PATH_EMACS' thinks that 'Emacs 26' is
  1949. ;; unsupported.
  1950. (substitute* "configure"
  1951. (("EMACS_FLAVOR=unsupported")
  1952. "EMACS_FLAVOR=emacs"))
  1953. #t))
  1954. (add-before 'build 'patch-exec-paths
  1955. (lambda* (#:key inputs outputs #:allow-other-keys)
  1956. (let ((out (assoc-ref outputs "out"))
  1957. (w3m (assoc-ref inputs "w3m"))
  1958. (imagemagick (assoc-ref inputs "imagemagick"))
  1959. (coreutils (assoc-ref inputs "coreutils")))
  1960. (make-file-writable "w3m.el")
  1961. (emacs-substitute-variables "w3m.el"
  1962. ("w3m-command" (string-append w3m "/bin/w3m"))
  1963. ("w3m-touch-command"
  1964. (string-append coreutils "/bin/touch"))
  1965. ("w3m-icon-directory"
  1966. (string-append out "/share/images/emacs-w3m")))
  1967. (make-file-writable "w3m-image.el")
  1968. (emacs-substitute-variables "w3m-image.el"
  1969. ("w3m-imagick-convert-program"
  1970. (string-append imagemagick "/bin/convert"))
  1971. ("w3m-imagick-identify-program"
  1972. (string-append imagemagick "/bin/identify")))
  1973. #t)))
  1974. (replace 'install
  1975. (lambda* (#:key outputs #:allow-other-keys)
  1976. (invoke "make" "install" "install-icons")
  1977. (with-directory-excursion
  1978. (emacs:elpa-directory (assoc-ref outputs "out"))
  1979. (for-each delete-file '("ChangeLog" "ChangeLog.1"))
  1980. (symlink "w3m-load.el" "w3m-autoloads.el")
  1981. #t))))))
  1982. (home-page "http://emacs-w3m.namazu.org/")
  1983. (synopsis "Simple Web browser for Emacs based on w3m")
  1984. (description
  1985. "Emacs-w3m is an emacs interface for the w3m web browser.")
  1986. (license license:gpl2+)))
  1987. (define-public emacs-wget
  1988. (package
  1989. (name "emacs-wget")
  1990. (version "0.5.0")
  1991. (source (origin
  1992. (method url-fetch)
  1993. (uri (string-append "mirror://debian/pool/main/w/wget-el/wget-el_"
  1994. version ".orig.tar.gz"))
  1995. (sha256
  1996. (base32 "10byvyv9dk0ib55gfqm7bcpxmx2qbih1jd03gmihrppr2mn52nff"))))
  1997. (build-system emacs-build-system)
  1998. (inputs `(("wget" ,wget)))
  1999. (native-inputs `(("emacs" ,emacs-minimal)))
  2000. (arguments
  2001. `(#:tests? #f ; no check target
  2002. #:phases
  2003. (modify-phases %standard-phases
  2004. (add-after 'unpack 'patch-exec-paths
  2005. (lambda* (#:key inputs outputs #:allow-other-keys)
  2006. (let ((wget (assoc-ref inputs "wget")))
  2007. (emacs-substitute-variables "wget.el"
  2008. ("wget-command" (string-append wget "/bin/wget"))))
  2009. #t)))))
  2010. (home-page "https://www.emacswiki.org/emacs/EmacsWget")
  2011. (synopsis "Simple file downloader for Emacs based on wget")
  2012. (description
  2013. "Emacs-wget is an emacs interface for the wget file downloader.")
  2014. (license license:gpl2+)))
  2015. (define-public emacs-eww-lnum
  2016. (package
  2017. (name "emacs-eww-lnum")
  2018. (version "1.1")
  2019. (source (origin
  2020. (method git-fetch)
  2021. (uri (git-reference
  2022. (url "https://github.com/m00natic/eww-lnum")
  2023. (commit version)))
  2024. (file-name (git-file-name name version))
  2025. (sha256
  2026. (base32
  2027. "0gs6bi3s2sszc6v2b26929azmn5513kvyin99n4d0ark1jdbjmv2"))))
  2028. (build-system emacs-build-system)
  2029. (home-page "https://github.com/m00natic/eww-lnum")
  2030. (synopsis "Conkeror-like functionality for Eww")
  2031. (description "This is extension to the Emacs browser Eww that adds
  2032. Conkeror-like functionality. In short, currently visible links, forms,
  2033. buttons are temporarily assigned numbers with which the former can be
  2034. immediately activated. Also filtering can be applied so selection can be
  2035. incrementally confined in Isearch manner.")
  2036. (license license:gpl3+)))
  2037. ;;;
  2038. ;;; Multimedia.
  2039. ;;;
  2040. (define emacs-emms-print-metadata
  2041. (package
  2042. (name "emacs-emms-print-metadata")
  2043. (version "7.7")
  2044. (source
  2045. (origin
  2046. (method url-fetch)
  2047. (uri (string-append "https://elpa.gnu.org/packages/"
  2048. "emms-" version ".tar"))
  2049. (sha256
  2050. (base32 "0n9nx4wgjxkr8nsxcq8svg0x0qkqj7bsd2j0ihy4jzj29xmyxl0h"))))
  2051. (build-system gnu-build-system)
  2052. (arguments
  2053. `(#:make-flags '("emms-print-metadata")
  2054. #:tests? #f ; No tests.
  2055. #:phases
  2056. (modify-phases %standard-phases
  2057. (delete 'configure)
  2058. (replace 'install
  2059. (lambda* (#:key outputs #:allow-other-keys)
  2060. (let* ((out (assoc-ref outputs "out")))
  2061. (install-file "src/emms-print-metadata"
  2062. (string-append out "/bin"))
  2063. (install-file "emms-print-metadata.1"
  2064. (string-append out "/share/man/man1"))
  2065. #t))))))
  2066. (inputs
  2067. `(("taglib" ,taglib)))
  2068. (home-page "https://www.gnu.org/software/emms/")
  2069. (synopsis "The Emacs Multimedia System")
  2070. (description
  2071. "EMMS is the Emacs Multimedia System. It is a small front-end which
  2072. can control one of the supported external players. Thus, it supports
  2073. whatever formats are supported by your music player. It also
  2074. supports tagging and playlist management, all behind a clean and
  2075. light user interface.")
  2076. (license license:gpl3+)))
  2077. (define-public emacs-emms
  2078. (package
  2079. (inherit emacs-emms-print-metadata)
  2080. (name "emacs-emms")
  2081. (build-system emacs-build-system)
  2082. (arguments
  2083. `(#:phases
  2084. (modify-phases %standard-phases
  2085. (add-after 'unpack 'set-external-programs
  2086. ;; Specify the absolute file names of the various programs
  2087. ;; so that everything works out-of-the-box. (tinytag missing)
  2088. (lambda* (#:key inputs outputs #:allow-other-keys)
  2089. (let ((out (assoc-ref outputs "out"))
  2090. (emms-print-metadata (assoc-ref inputs "emms-print-metadata"))
  2091. (flac (assoc-ref inputs "flac"))
  2092. (vorbis (assoc-ref inputs "vorbis-tools"))
  2093. (alsa (assoc-ref inputs "alsa-utils"))
  2094. (mpg321 (assoc-ref inputs "mpg321"))
  2095. (mp3info (assoc-ref inputs "mp3info"))
  2096. (mutagen (assoc-ref inputs "mutagen"))
  2097. (exiftool (assoc-ref inputs "perl-image-exiftool"))
  2098. (opus (assoc-ref inputs "opus-tools")))
  2099. (emacs-substitute-variables "emms-player-mpg321-remote.el"
  2100. ("emms-player-mpg321-remote-command"
  2101. (string-append mpg321 "/bin/mpg321")))
  2102. (substitute* "emms-player-simple.el"
  2103. (("\"ogg123\"")
  2104. (string-append "\"" vorbis "/bin/ogg123\"")))
  2105. (substitute* "emms-player-simple.el"
  2106. (("\"mpg321\"")
  2107. (string-append "\"" mpg321 "/bin/mpg321\"")))
  2108. (emacs-substitute-variables "emms-info-ogginfo.el"
  2109. ("emms-info-ogginfo-program-name"
  2110. (string-append vorbis "/bin/ogginfo")))
  2111. (emacs-substitute-variables "emms-info-opusinfo.el"
  2112. ("emms-info-opusinfo-program-name"
  2113. (string-append opus "/bin/opusinfo")))
  2114. (emacs-substitute-variables "emms-info-libtag.el"
  2115. ("emms-info-libtag-program-name"
  2116. (string-append emms-print-metadata "/bin/emms-print-metadata")))
  2117. (emacs-substitute-variables "emms-info-mp3info.el"
  2118. ("emms-info-mp3info-program-name"
  2119. (string-append mp3info "/bin/mp3info")))
  2120. (emacs-substitute-variables "emms-info-metaflac.el"
  2121. ("emms-info-metaflac-program-name"
  2122. (string-append flac "/bin/metaflac")))
  2123. (emacs-substitute-variables "emms-source-file.el"
  2124. ("emms-source-file-gnu-find" (which "find")))
  2125. (substitute* "emms-volume-amixer.el"
  2126. (("\"amixer\"")
  2127. (string-append "\"" alsa "/bin/amixer\"")))
  2128. (substitute* "emms-tag-editor.el"
  2129. (("\"mid3v2\"")
  2130. (string-append "\"" mutagen "/bin/mid3v2\""))
  2131. (("\"vorbiscomment\"")
  2132. (string-append "\"" vorbis "/bin/vorbiscomment\"")))
  2133. (substitute* "emms-info-exiftool.el"
  2134. (("\"exiftool\"")
  2135. (string-append "\"" exiftool "/bin/exiftool\"")))
  2136. #t))))))
  2137. (inputs
  2138. `(("emms-print-metadata" ,emacs-emms-print-metadata)
  2139. ("alsa-utils" ,alsa-utils)
  2140. ("flac" ,flac) ;for metaflac
  2141. ("vorbis-tools" ,vorbis-tools)
  2142. ("mpg321" ,mpg321)
  2143. ("mp3info" ,mp3info)
  2144. ("mutagen" ,python-mutagen)
  2145. ("perl-image-exiftool" ,perl-image-exiftool)
  2146. ("opus-tools" ,opus-tools)))))
  2147. (define-public emacs-emms-mode-line-cycle
  2148. (package
  2149. (name "emacs-emms-mode-line-cycle")
  2150. (version "0.2.5")
  2151. (source
  2152. (origin
  2153. (method git-fetch)
  2154. (uri (git-reference
  2155. (url "https://github.com/momomo5717/emms-mode-line-cycle")
  2156. (commit version)))
  2157. (file-name (git-file-name name version))
  2158. (sha256
  2159. (base32
  2160. "0q80f0plch6k4lhs8c9qm3mfycfbp3kn5sjrk9zxgxwnn901y9mp"))))
  2161. (build-system emacs-build-system)
  2162. (propagated-inputs
  2163. `(("emms" ,emacs-emms)))
  2164. (home-page "https://github.com/momomo5717/emms-mode-line-cycle")
  2165. (synopsis "Display the EMMS mode line as a ticker")
  2166. (description
  2167. "This is a minor mode for updating the EMMS mode-line string cyclically
  2168. within a specified width. It is useful for displaying long track titles.")
  2169. (license license:gpl3+)))
  2170. ;;;
  2171. ;;; Miscellaneous.
  2172. ;;;
  2173. (define-public emacs-ace-link
  2174. (package
  2175. (name "emacs-ace-link")
  2176. (version "0.5.0")
  2177. (source
  2178. (origin
  2179. (method git-fetch)
  2180. (uri (git-reference
  2181. (url "https://github.com/abo-abo/ace-link")
  2182. (commit version)))
  2183. (file-name (git-file-name name version))
  2184. (sha256
  2185. (base32
  2186. "147dz79vg4ym5wg3d544bw2khdb2j3hr73rw4qfm64wf0q2dj0vk"))))
  2187. (build-system emacs-build-system)
  2188. (propagated-inputs
  2189. `(("emacs-avy" ,emacs-avy)))
  2190. (home-page "https://github.com/abo-abo/ace-link")
  2191. (synopsis "Quickly follow links in Emacs")
  2192. (description
  2193. "Currently, to jump to a link in a @code{Info-mode}, @code{help-mode},
  2194. @code{woman-mode}, @code{org-mode}, @code{eww-mode}, @code{compilation-mode},
  2195. @code{goto-address-mode} buffer, you can tab through the links to select the
  2196. one you want. This is an O(N) operation, where the N is the amount of links.
  2197. This package turns this into an O(1) operation. It does so by assigning a
  2198. letter to each link using avy.")
  2199. (license license:gpl3+)))
  2200. (define-public emacs-auto-sudoedit
  2201. (package
  2202. (name "emacs-auto-sudoedit")
  2203. (version "1.1.0")
  2204. (source
  2205. (origin
  2206. (method git-fetch)
  2207. (uri (git-reference
  2208. (url "https://github.com/ncaq/auto-sudoedit")
  2209. (commit (string-append "v" version))))
  2210. (file-name (git-file-name name version))
  2211. (sha256
  2212. (base32 "1rhdvrj2rjbvl7vkb0wcp6krqxcaigl7jk9z8yvhx6s4cm2qli6q"))))
  2213. (propagated-inputs
  2214. `(("emacs-f" ,emacs-f)))
  2215. (build-system emacs-build-system)
  2216. (home-page "https://github.com/ncaq/auto-sudoedit")
  2217. (synopsis "Automatically re-open read-only files with sudo")
  2218. (description
  2219. "This package automatically reopens a file or directory with
  2220. @command{sudo} if it cannot write to it.")
  2221. (license license:expat)))
  2222. (define-public emacs-read-only-cfg
  2223. ;; XXX: Upstream has no tagged release. Version is extracted from keyword
  2224. ;; in main file.
  2225. (let ((commit "c128c9412f768adf89ff5c4ad433cf0beab6656a")
  2226. (revision "0"))
  2227. (package
  2228. (name "emacs-read-only-cfg")
  2229. (version (git-version "0.1.0" revision commit))
  2230. (source
  2231. (origin
  2232. (method git-fetch)
  2233. (uri (git-reference
  2234. (url "https://github.com/pfchen/read-only-cfg")
  2235. (commit commit)))
  2236. (file-name (git-file-name name version))
  2237. (sha256
  2238. (base32 "11zj4ysmacvz82j1siqlcp30i05my20lscls8wkdjl75g9d2b12l"))))
  2239. (build-system emacs-build-system)
  2240. (home-page "https://github.com/pfchen/read-only-cfg")
  2241. (synopsis "Make files read-only based on user configuration")
  2242. (description
  2243. "Read-only-cfg is an Emacs minor mode that can automatically make files
  2244. read-only based on user configuration. User configuration may be prefix
  2245. directories or regex patterns.")
  2246. (license license:gpl3+))))
  2247. (define-public emacs-bbdb
  2248. (package
  2249. (name "emacs-bbdb")
  2250. (version "3.2")
  2251. (source
  2252. (origin
  2253. (method url-fetch)
  2254. (uri (string-append "https://elpa.gnu.org/packages/"
  2255. "bbdb-" version ".tar"))
  2256. (sha256
  2257. (base32 "1p56dg0mja2b2figy7yhdx714zd5j6njzn0k07zjka3jc06izvjx"))))
  2258. (build-system emacs-build-system)
  2259. (arguments
  2260. ;; XXX: The following file cannot be byte-compiled, because et requires
  2261. ;; `vm-autoloads', from the VM package, with is neither in Emacs nor
  2262. ;; packaged in Guix. So, don't bother for now.
  2263. `(#:exclude '("bbdb-vm\\.el")))
  2264. (home-page "http://elpa.gnu.org/packages/bbdb.html")
  2265. (synopsis "Contact management utility for Emacs")
  2266. (description
  2267. "BBDB is the Insidious Big Brother Database for GNU Emacs. It provides
  2268. an address book for email and snail mail addresses, phone numbers and the
  2269. like. It can be linked with various Emacs mail clients (Message and Mail
  2270. mode, Rmail, Gnus, MH-E, and VM). BBDB is fully customizable.")
  2271. (license license:gpl3+)))
  2272. (define-public emacs-counsel-bbdb
  2273. (package
  2274. (name "emacs-counsel-bbdb")
  2275. (version "0.0.4")
  2276. (source
  2277. (origin
  2278. (method git-fetch)
  2279. (uri (git-reference
  2280. (url "https://github.com/redguardtoo/counsel-bbdb")
  2281. (commit version)))
  2282. (file-name (git-file-name name version))
  2283. (sha256
  2284. (base32 "0bki658mvlchqf3prkzxz4217a95cxm58c1qmf84yp2n8h6gd0d8"))))
  2285. (build-system emacs-build-system)
  2286. (propagated-inputs `(("emacs-ivy" ,emacs-ivy)))
  2287. (home-page "https://github.com/redguardtoo/counsel-bbdb")
  2288. (synopsis "Ivy interface for BBDB")
  2289. (description "This Ivy extension enables the use of @code{ivy-mode} to input
  2290. email addresses from BBDB efficiently. The main functions are:
  2291. @table @code
  2292. @item counsel-bbdb-complete-mail to input email addresses;
  2293. @item counsel-bbdb-reload' to reload contacts from BBDB database;
  2294. @item counsel-bbdb-expand-mail-alias to expand mail alias.
  2295. @end table
  2296. Since @code{counsel-bbdb} is based on @code{ivy-mode}, all Ivy key bindings
  2297. are supported. For example, after @samp{C-u M-x counsel-bbdb-complete-mail},
  2298. you can press @samp{C-M-n} to input multiple email addresses.")
  2299. (license license:gpl3+)))
  2300. (define-public emacs-bluetooth
  2301. (package
  2302. (name "emacs-bluetooth")
  2303. (version "0.2")
  2304. (source
  2305. (origin
  2306. (method url-fetch)
  2307. (uri (string-append "https://elpa.gnu.org/packages/"
  2308. "bluetooth-" version ".el"))
  2309. (sha256
  2310. (base32 "1dq04p6ms0zx4awlypp4crkz7dzal4xg8ac7p8fqacz196rczssp"))))
  2311. (build-system emacs-build-system)
  2312. (inputs
  2313. `(("bluez" ,bluez)
  2314. ("dbus" ,dbus)))
  2315. (propagated-inputs
  2316. `(("emacs-dash" ,emacs-dash)))
  2317. (home-page "https://gitlab.com/rstocker/emacs-bluetooth")
  2318. (synopsis "Manage Bluetooth devices using Emacs")
  2319. (description
  2320. "This package implements basic Bluetooth management functionality, such
  2321. as connecting and disconnecting devices, setting properties and aliases,
  2322. putting the adapter in discovery mode and controlling its power supply. It
  2323. also includes a pairing agent.")
  2324. (license license:gpl3+)))
  2325. (define-public emacs-aggressive-indent
  2326. (package
  2327. (name "emacs-aggressive-indent")
  2328. (version "1.10.0")
  2329. (source (origin
  2330. (method url-fetch)
  2331. (uri (string-append "https://elpa.gnu.org/packages/"
  2332. "aggressive-indent-" version ".tar"))
  2333. (sha256
  2334. (base32
  2335. "166jk1z0vw481lfi3gbg7f9vsgwfv8fiyxpkfphgvgcmf5phv4q1"))))
  2336. (build-system emacs-build-system)
  2337. (home-page "https://elpa.gnu.org/packages/aggressive-indent.html")
  2338. (synopsis "Minor mode to aggressively keep your code always indented")
  2339. (description
  2340. "@code{aggressive-indent-mode} is a minor mode that keeps your code
  2341. always indented. It reindents after every change, making it more reliable
  2342. than @code{electric-indent-mode}.")
  2343. (license license:gpl2+)))
  2344. (define-public emacs-gcmh
  2345. ;; No tagged release upstream, but the commit below correspond to the 0.2.1
  2346. ;; release.
  2347. (let ((commit "0089f9c3a6d4e9a310d0791cf6fa8f35642ecfd9"))
  2348. (package
  2349. (name "emacs-gcmh")
  2350. (version "0.2.1")
  2351. (source
  2352. (origin
  2353. (method git-fetch)
  2354. (uri (git-reference
  2355. (url "https://gitlab.com/koral/gcmh")
  2356. (commit commit)))
  2357. (sha256
  2358. (base32 "0yh1ap8phv3x44rp0yr6z884xqw2apanbx4c0acqglvj0gaaqx25"))
  2359. (file-name (git-file-name name version))))
  2360. (build-system emacs-build-system)
  2361. (home-page "https://gitlab.com/koral/gcmh")
  2362. (synopsis "Emacs Garbage Collector Magic Hack")
  2363. (description
  2364. "This package enforces a sneaky @dfn{garbage collector} (GC) strategy
  2365. to minimize GC interference with the activity. During normal use a high GC
  2366. threshold is set. When idling GC is immediately triggered and a low threshold
  2367. is set.")
  2368. (license license:gpl3+))))
  2369. (define-public emacs-ctrlf
  2370. (package
  2371. (name "emacs-ctrlf")
  2372. (version "1.3")
  2373. (source
  2374. (origin
  2375. (method git-fetch)
  2376. (uri (git-reference
  2377. (url "https://github.com/raxod502/ctrlf")
  2378. (commit (string-append "v" version))))
  2379. (file-name (git-file-name name version))
  2380. (sha256
  2381. (base32 "06wq6scqy2ax0h6aahy2r7hn3bbmkzl4w99bkrc3cqd4ij78sc8g"))))
  2382. (build-system emacs-build-system)
  2383. (home-page "https://github.com/raxod502/ctrlf/")
  2384. (synopsis "Single-buffer text search in Emacs")
  2385. (description "CTRLF (pronounced @emph{control F}) is an intuitive and
  2386. efficient solution for single-buffer text search in Emacs, replacing packages
  2387. such as Isearch, Swiper, and helm-swoop. It takes inspiration from the
  2388. widely-adopted and battle-tested @samp{Ctrl+F} interfaces in programs such as
  2389. web browsers, but follows the flow and keybindings of Isearch.")
  2390. (license license:expat)))
  2391. (define-public emacs-dhall-mode
  2392. ;; There is no proper release. The base version is extracted from the
  2393. ;; "Version" keyword in the main file.
  2394. (let ((revision "1")
  2395. (commit "484bcf8f78f1183ef45c3b04a362bb73690c6b9b"))
  2396. (package
  2397. (name "emacs-dhall-mode")
  2398. (version (git-version "0.1.3" revision commit))
  2399. (source
  2400. (origin
  2401. (method git-fetch)
  2402. (uri
  2403. (git-reference
  2404. (url "https://github.com/psibi/dhall-mode")
  2405. (commit commit)))
  2406. (file-name (git-file-name name version))
  2407. (sha256
  2408. (base32 "1wggg8jlzg9rph4jhxp6yiri178rnasbv38838i973kjgqjxrl76"))))
  2409. (build-system emacs-build-system)
  2410. (propagated-inputs
  2411. `(("emacs-reformatter" ,emacs-reformatter)))
  2412. (home-page "https://github.com/psibi/dhall-mode")
  2413. (synopsis "Major mode for working with Dhall configuration language")
  2414. (description
  2415. "Dhall-mode provides an Emacs Major mode for working with the Dhall
  2416. configuration language. It features:
  2417. @itemize
  2418. @item Syntax highlighting
  2419. @item Multiline support for String
  2420. @item Basic indentation, commenting
  2421. @item Automatic formatting on save using dhall-format.
  2422. @item Error highlighting.
  2423. @end itemize")
  2424. (license license:gpl3+))))
  2425. (define-public emacs-link-hint
  2426. ;; Last release was in 2015.
  2427. (let ((commit "9fbf196d155016d9b8471a99318ed67a086cf257")
  2428. (revision "3"))
  2429. (package
  2430. (name "emacs-link-hint")
  2431. (version (git-version "0.1" revision commit))
  2432. (source
  2433. (origin
  2434. (method git-fetch)
  2435. (uri (git-reference
  2436. (url "https://github.com/noctuid/link-hint.el")
  2437. (commit commit)))
  2438. (file-name (git-file-name name version))
  2439. (sha256
  2440. (base32
  2441. "0v2g9gzf2v88ag59q1pf5vhd4qjnz3g4i6gzl27k6fi7pvlxdn39"))))
  2442. (build-system emacs-build-system)
  2443. (propagated-inputs
  2444. `(("emacs-avy" ,emacs-avy)))
  2445. (home-page "https://github.com/noctuid/link-hint.el")
  2446. (synopsis "Vimperator-style link-hinting in Emacs")
  2447. (description "This package provides commands for visiting and acting on
  2448. links.")
  2449. (license license:gpl3+))))
  2450. (define-public emacs-ag
  2451. (package
  2452. (name "emacs-ag")
  2453. (version "0.48")
  2454. (source (origin
  2455. (method git-fetch)
  2456. (uri (git-reference
  2457. (url "https://github.com/Wilfred/ag.el")
  2458. (commit version)))
  2459. (file-name (git-file-name name version))
  2460. (sha256
  2461. (base32
  2462. "1p918y24vcn2pdliaymd210xp9fvhd4a1srqbv2lfiqrh59yjidx"))))
  2463. (build-system emacs-build-system)
  2464. (arguments
  2465. `(#:phases
  2466. (modify-phases %standard-phases
  2467. (add-before 'install 'make-info
  2468. (lambda _
  2469. (with-directory-excursion "docs"
  2470. (invoke "make" "info"))))
  2471. (add-after 'install 'install-info
  2472. (lambda* (#:key outputs #:allow-other-keys)
  2473. (let* ((out (assoc-ref outputs "out"))
  2474. (info (string-append out "/share/info")))
  2475. (install-file "docs/_build/texinfo/agel.info" info)
  2476. #t))))))
  2477. (native-inputs
  2478. `(("python-sphinx" ,python-sphinx)
  2479. ("texinfo" ,texinfo)))
  2480. (propagated-inputs
  2481. `(("dash" ,emacs-dash)
  2482. ("s" ,emacs-s)
  2483. ;; We need to use 'ag' as the executable on remote systems.
  2484. ("the-silver-searcher" ,the-silver-searcher)))
  2485. (home-page "https://github.com/Wilfred/ag.el")
  2486. (synopsis "Front-end for ag (the-silver-searcher) for Emacs")
  2487. (description "This package provides the ability to use the silver
  2488. searcher, a code searching tool, sometimes abbreviated to @code{ag}. Features
  2489. include version control system awareness, use of Perl compatible regular
  2490. expressions, editing the search results directly and searching file names
  2491. rather than the contents of files.")
  2492. (license license:gpl3+)))
  2493. (define-public emacs-async
  2494. (package
  2495. (name "emacs-async")
  2496. (home-page "https://github.com/jwiegley/emacs-async")
  2497. (version "1.9.4")
  2498. (source (origin
  2499. (method git-fetch)
  2500. (uri (git-reference
  2501. (url home-page)
  2502. (commit (string-append "v" version))))
  2503. (file-name (git-file-name name version))
  2504. (sha256
  2505. (base32
  2506. "0hhpyxb3d531jb2f3wvzx25183f0anm8nxv6mh0p825q2gkm6ly7"))))
  2507. (build-system emacs-build-system)
  2508. (synopsis "Asynchronous processing in Emacs")
  2509. (description
  2510. "This package provides the ability to call asynchronous functions and
  2511. processes. For example, it can be used to run dired commands (for copying,
  2512. moving, etc.) asynchronously using @code{dired-async-mode}. Also it is used
  2513. as a library for other Emacs packages.")
  2514. (license license:gpl3+)))
  2515. (define-public emacs-auctex
  2516. (package
  2517. (name "emacs-auctex")
  2518. (version "13.0.14")
  2519. (source
  2520. (origin
  2521. (method url-fetch)
  2522. (uri (string-append "https://elpa.gnu.org/packages/"
  2523. "auctex-" version ".tar"))
  2524. (sha256
  2525. (base32 "1gmqdcg9s6xf8kvzh1j27nbimakd5cy8pwsn0il19l026kxjimr8"))))
  2526. (build-system emacs-build-system)
  2527. ;; We use 'emacs' because AUCTeX requires dbus at compile time
  2528. ;; ('emacs-minimal' does not provide dbus).
  2529. (arguments
  2530. `(#:emacs ,emacs
  2531. #:include '("\\.el$" "^images/" "^latex/" "\\.info$")
  2532. #:exclude '("^tests/" "^latex/README")
  2533. #:phases
  2534. (modify-phases %standard-phases
  2535. (add-after 'unpack 'configure
  2536. (lambda* (#:key inputs #:allow-other-keys)
  2537. (emacs-substitute-variables "preview.el"
  2538. ("preview-gs-command"
  2539. (search-input-file inputs "/bin/gs")))
  2540. (substitute* "preview.el"
  2541. (("\"dvipng ")
  2542. (string-append "\"" (assoc-ref inputs "texlive")
  2543. "/bin/dvipng "))
  2544. (("\"dvips ")
  2545. (string-append "\"" (assoc-ref inputs "texlive")
  2546. "/bin/dvips "))
  2547. (("\"pdf2dsc ")
  2548. (string-append "\"" (assoc-ref inputs "ghostscript")
  2549. "/bin/pdf2dsc ")))))
  2550. (add-after 'install 'install-doc
  2551. (lambda* (#:key outputs #:allow-other-keys)
  2552. (let* ((out (assoc-ref outputs "out"))
  2553. (etc-dir (string-append out "/share/" ,name "/"
  2554. ,version "/etc")))
  2555. (with-directory-excursion "doc"
  2556. (setenv "HOME" (getenv "TMPDIR")) ; for mktextfm
  2557. (invoke "pdftex" "tex-ref")
  2558. (install-file "tex-ref.pdf"
  2559. (string-append etc-dir "/refcards")))
  2560. #t))))))
  2561. (native-inputs
  2562. `(("perl" ,perl)))
  2563. (inputs
  2564. `(("ghostscript" ,ghostscript)
  2565. ("texlive" ,(texlive-updmap.cfg (list texlive-amsfonts)))))
  2566. (home-page "https://www.gnu.org/software/auctex/")
  2567. (synopsis "Integrated environment for TeX")
  2568. (description
  2569. "AUCTeX is a comprehensive customizable integrated environment for
  2570. writing input files for TeX, LaTeX, ConTeXt, Texinfo, and docTeX using Emacs
  2571. or XEmacs.")
  2572. (license license:gpl3+)))
  2573. (define-public emacs-autothemer
  2574. (package
  2575. (name "emacs-autothemer")
  2576. (version "0.2.2")
  2577. (source
  2578. (origin
  2579. (method git-fetch)
  2580. (uri (git-reference
  2581. (url "https://github.com/sebastiansturm/autothemer")
  2582. (commit version)))
  2583. (file-name (git-file-name name version))
  2584. (sha256
  2585. (base32
  2586. "0cd2pqh6k32sjidkcd8682y4l6mx52xw4a05f38kk8nsrk28m74k"))))
  2587. (build-system emacs-build-system)
  2588. (propagated-inputs
  2589. `(("emacs-dash" ,emacs-dash)))
  2590. (home-page "https://github.com/sebastiansturm/autothemer")
  2591. (synopsis "Conveniently create Emacs themes")
  2592. (description
  2593. "Autothemer provides a thin layer on top of @code{deftheme} and
  2594. @code{custom-theme-set-faces} that creates a new custom color theme, based on
  2595. a set of simplified face specifications and a user-supplied color palette")
  2596. (license license:gpl3+)))
  2597. (define-public emacs-howm
  2598. (package
  2599. (name "emacs-howm")
  2600. (version "1.4.7")
  2601. (source
  2602. (origin
  2603. (method url-fetch)
  2604. (uri (string-append "https://howm.sourceforge.jp/a/"
  2605. "howm-" version ".tar.gz"))
  2606. (sha256
  2607. (base32 "11k0dzwyn7ly34g0zcd6i0i8qwyv9di8m6fx805axrxykxb0qan2"))))
  2608. (build-system gnu-build-system)
  2609. (native-inputs
  2610. `(("emacs" ,emacs-minimal)))
  2611. (arguments
  2612. `(#:configure-flags
  2613. (list (string-append "--with-howmdir=" (emacs:elpa-directory %output)))
  2614. #:modules ((guix build gnu-build-system)
  2615. ((guix build emacs-build-system) #:prefix emacs:)
  2616. (guix build utils))
  2617. #:imported-modules (,@%gnu-build-system-modules
  2618. (guix build emacs-build-system)
  2619. (guix build emacs-utils))
  2620. #:phases
  2621. (modify-phases %standard-phases
  2622. (add-after 'install 'make-autoloads
  2623. (assoc-ref emacs:%standard-phases 'make-autoloads)))))
  2624. (home-page "https://howm.osdn.jp/")
  2625. (synopsis "Note-taking tool for Emacs")
  2626. (description "Howm is a note-taking tool for Emacs. Like
  2627. code@{emacs-wiki.el}, it facilitates using hyperlinks and doing full-text
  2628. searches. Unlike code@{emacs-wiki.el}, it can be combined with any format.")
  2629. (license license:gpl1+)))
  2630. (define-public emacs-bm
  2631. (package
  2632. (name "emacs-bm")
  2633. (version "201905")
  2634. (source
  2635. (origin
  2636. (method git-fetch)
  2637. (uri (git-reference
  2638. (url "https://github.com/joodland/bm")
  2639. (commit version)))
  2640. (file-name (git-file-name name version))
  2641. (sha256
  2642. (base32 "180b3rc13asrmsdh7v405d54jkrininvaj52xhp71vw91ng51dkn"))))
  2643. (build-system emacs-build-system)
  2644. (home-page "https://github.com/joodland/bm")
  2645. (synopsis "Visual bookmarks for Emacs")
  2646. (description "This package provides visible, buffer local bookmarks and
  2647. the ability to jump forward and backward to the next bookmark.")
  2648. (license license:gpl2+)))
  2649. (define-public emacs-calfw
  2650. (package
  2651. (name "emacs-calfw")
  2652. (version "1.6")
  2653. (source
  2654. (origin
  2655. (method git-fetch)
  2656. (uri (git-reference
  2657. (url "https://github.com/kiwanami/emacs-calfw")
  2658. (commit (string-append "v" version))))
  2659. (file-name (git-file-name name version))
  2660. (sha256
  2661. (base32
  2662. "0r42cagvmvvib76kd15nd9ix55ys6i549vxnls4z16s864695zpa"))))
  2663. (build-system emacs-build-system)
  2664. (propagated-inputs
  2665. `(("emacs-howm" ,emacs-howm)))
  2666. (home-page "https://github.com/kiwanami/emacs-calfw/")
  2667. (synopsis "Calendar framework for Emacs")
  2668. (description
  2669. "This package displays a calendar view with various schedule data in the
  2670. Emacs buffer.")
  2671. (license license:gpl3+)))
  2672. (define-public emacs-caml
  2673. (package
  2674. (name "emacs-caml")
  2675. (version "4.9")
  2676. (source
  2677. (origin
  2678. (method url-fetch)
  2679. (uri (string-append "https://elpa.nongnu.org/nongnu/caml-"
  2680. version ".tar"))
  2681. (sha256
  2682. (base32
  2683. "00ldvz6r10vwwmk6f3az534p0340ywn7knsg2bmvbvh3q51vyl9i"))))
  2684. (build-system emacs-build-system)
  2685. (home-page "https://github.com/ocaml/caml-mode")
  2686. (synopsis "Caml mode for GNU Emacs")
  2687. (description
  2688. "This package provides a major mode for editing OCaml code in Emacs.
  2689. Some of its major features include:
  2690. @itemize
  2691. @item syntax highlighting (font lock);
  2692. @item automatic indentation;
  2693. @item querying the type of expressions (using compiler generated annot files);
  2694. @item running an OCaml REPL within Emacs;
  2695. @item scanning of declarations and placing them in a menu.
  2696. @end itemize")
  2697. (license license:gpl2+)))
  2698. (define-public emacs-caps-lock
  2699. (package
  2700. (name "emacs-caps-lock")
  2701. (version "1.0")
  2702. (source
  2703. (origin
  2704. (method url-fetch)
  2705. (uri (string-append "https://elpa.gnu.org/packages/"
  2706. "caps-lock-" version ".el"))
  2707. (sha256
  2708. (base32 "1i4hwam81p4dr0bk8257fkiz4xmv6knkjxj7a00fa35kgx5blpva"))))
  2709. (build-system emacs-build-system)
  2710. (home-page "http://elpa.gnu.org/packages/caps-lock.html")
  2711. (synopsis "Caps Lock as a minor mode")
  2712. (description
  2713. "This package provides a minor mode to emulate the behavior of a Caps
  2714. Lock key.")
  2715. (license license:gpl3+)))
  2716. (define-public emacs-chronometrist
  2717. (package
  2718. (name "emacs-chronometrist")
  2719. (version "0.9.0")
  2720. (source
  2721. (origin
  2722. (method git-fetch)
  2723. (uri (git-reference
  2724. (url "https://tildegit.org/contrapunctus/chronometrist")
  2725. (commit (string-append "v" version))))
  2726. (file-name (git-file-name name version))
  2727. (sha256
  2728. (base32 "156hj3sxjcfpwimnrykh4n3krkbzas9jg8m6xzy42rnzhx28ja6k"))))
  2729. (build-system emacs-build-system)
  2730. (arguments
  2731. `(#:phases
  2732. (modify-phases %standard-phases
  2733. (add-after 'unpack 'chdir-elisp
  2734. ;; Elisp directory is not in root of the source.
  2735. (lambda _
  2736. (chdir "elisp")))
  2737. (add-after 'install 'install-doc
  2738. ;; Documentation consists of several Markdown files.
  2739. (lambda* (#:key outputs #:allow-other-keys)
  2740. (let* ((out (assoc-ref outputs "out"))
  2741. (doc (string-append out
  2742. "/share/doc/emacs-chronometrist-"
  2743. ,version)))
  2744. (with-directory-excursion "../doc"
  2745. (for-each (lambda (f) (install-file f doc))
  2746. (cons* "../UNLICENSE"
  2747. "../WTFPL"
  2748. (find-files "." "\\.md$")))))
  2749. #t)))))
  2750. (propagated-inputs
  2751. `(("emacs-dash" ,emacs-dash)
  2752. ("emacs-s" ,emacs-s)
  2753. ("emacs-spark" ,emacs-spark)
  2754. ("emacs-ts" ,emacs-ts)))
  2755. (home-page "https://github.com/contrapunctus-1/chronometrist")
  2756. (synopsis "Time tracker for Emacs")
  2757. (description "Chronometrist is a time tracker in Emacs, largely modelled
  2758. after the Android application, @emph{A Time Tracker}.
  2759. Its features are:
  2760. @itemize
  2761. @item Simple and efficient to use,
  2762. @item Displays useful information about your time usage,
  2763. @item Support for both mouse and keyboard,
  2764. @item Human errors in tracking are easily fixed by editing a plain text file,
  2765. @item Hooks to let you perform arbitrary actions when starting/stopping tasks.
  2766. @end itemize")
  2767. ;; Software is dual-licensed.
  2768. (license (list license:unlicense license:wtfpl2))))
  2769. (define-public emacs-citeproc-el
  2770. ;; XXX: This commit includes a fix for an API change in libxml.
  2771. (let ((commit "893bcb8dcb48ac9850841b58c7b64c1969e6f3de")
  2772. (revision "0"))
  2773. (package
  2774. (name "emacs-citeproc-el")
  2775. (version (git-version "0.1.2" revision commit))
  2776. (source
  2777. (origin
  2778. (method git-fetch)
  2779. (uri (git-reference
  2780. (url "https://github.com/andras-simonyi/citeproc-el")
  2781. (commit commit)))
  2782. (file-name (git-file-name name version))
  2783. (sha256
  2784. (base32 "0xfkp8dccflas5ps30g3fw1vifn8pp9h9cyvxr1pcmyqr9rivy8f"))))
  2785. (build-system emacs-build-system)
  2786. (arguments
  2787. `(#:emacs ,emacs)) ;need libxml support
  2788. (propagated-inputs
  2789. `(("emacs-dash" ,emacs-dash)
  2790. ("emacs-f" ,emacs-f)
  2791. ("emacs-queue" ,emacs-queue)
  2792. ("emacs-s" ,emacs-s)))
  2793. (home-page "https://github.com/andras-simonyi/citeproc-el")
  2794. (synopsis "Citation Style Language (CSL) processor for Emacs")
  2795. (description
  2796. "Citeproc-el is an Emacs Lisp library for rendering citations
  2797. and bibliographies in styles described in the Citation Style
  2798. Language (CSL), an XML-based, open format to describe the formatting
  2799. of bibliographic references.")
  2800. (license license:gpl3+))))
  2801. (define-public emacs-corfu
  2802. (package
  2803. (name "emacs-corfu")
  2804. (version "0.11")
  2805. (source
  2806. (origin
  2807. (method git-fetch)
  2808. (uri (git-reference
  2809. (url "https://github.com/minad/corfu")
  2810. (commit version)))
  2811. (file-name (git-file-name name version))
  2812. (sha256
  2813. (base32 "0x4aa5fk1ywlfs8gvwj3v2bycyl4nx7mzz1ci37x69bdjl9wal80"))))
  2814. (build-system emacs-build-system)
  2815. (home-page "https://github.com/minad/corfu")
  2816. (synopsis "Completion overlay region function")
  2817. (description "Corfu enhances the default completion in region function
  2818. with a completion overlay. The current candidates are shown in a popup
  2819. overlay below or above the point. Corfu can be considered the minimalistic
  2820. @code{completion-in-region} counterpart of the Vertico minibuffer UI.")
  2821. (license license:gpl3+)))
  2822. (define-public emacs-direnv
  2823. (package
  2824. (name "emacs-direnv")
  2825. (version "2.1.0")
  2826. (source
  2827. (origin
  2828. (method git-fetch)
  2829. (uri (git-reference
  2830. (url "https://github.com/wbolster/emacs-direnv")
  2831. (commit version)))
  2832. (file-name (git-file-name name version))
  2833. (sha256
  2834. (base32 "0xkqn4604k2imas6azy1www56br8ls4iv9a44pxcd8h94j1fp44d"))))
  2835. (build-system emacs-build-system)
  2836. (arguments
  2837. `(#:phases
  2838. (modify-phases %standard-phases
  2839. (add-after 'unpack 'patch-in-direnv
  2840. (lambda* (#:key inputs #:allow-other-keys)
  2841. (let* ((direnv-path (assoc-ref inputs "direnv"))
  2842. (direnv-bin (string-append
  2843. "\"" direnv-path "/bin/direnv\"")))
  2844. (substitute* "direnv.el"
  2845. (("\"direnv\"") direnv-bin))))))))
  2846. (inputs
  2847. `(("direnv" ,direnv)))
  2848. (propagated-inputs
  2849. `(("dash" ,emacs-dash)
  2850. ("with-editor" ,emacs-with-editor)))
  2851. (home-page "https://github.com/wbolster/emacs-direnv")
  2852. (synopsis "Direnv integration for Emacs")
  2853. (description
  2854. "This package provides support for invoking direnv to get the environment
  2855. for the current file and updating the environment within Emacs to match.
  2856. Direnv can be invoked manually, and a global minor mode is included that will
  2857. update the environment when the active buffer changes.
  2858. Using emacs-direnv means that programs started from Emacs will use the
  2859. environment set through Direnv.")
  2860. (license license:gpl3+)))
  2861. (define-public emacs-elf-mode
  2862. (package
  2863. (name "emacs-elf-mode")
  2864. (version "0.1.0")
  2865. (source
  2866. (origin
  2867. (method git-fetch)
  2868. (uri
  2869. (git-reference
  2870. (url "https://github.com/abo-abo/elf-mode")
  2871. (commit version)))
  2872. (file-name (git-file-name name version))
  2873. (sha256
  2874. (base32 "0cbvjbk2893ag1iy8ggixpirfiyhssm7fii96hb9jqdz874cdl0k"))))
  2875. (build-system emacs-build-system)
  2876. (home-page "https://github.com/abo-abo/elf-mode")
  2877. (synopsis "Show symbol list when opening a binary file in Emacs")
  2878. (description "This Emacs package provides a command showing the symbols
  2879. that the binary uses instead of the actual binary contents.")
  2880. (license license:gpl3+)))
  2881. (define-public emacs-form-feed
  2882. (package
  2883. (name "emacs-form-feed")
  2884. (version "0.2.2")
  2885. (source
  2886. (origin
  2887. (method git-fetch)
  2888. (uri (git-reference
  2889. (url "https://github.com/wasamasa/form-feed")
  2890. (commit version)))
  2891. (file-name (git-file-name name version))
  2892. (sha256
  2893. (base32 "171jna631b2iqcimfsik9c66gii8nc0zdb58m077w00rn7rcxbh2"))))
  2894. (build-system emacs-build-system)
  2895. (home-page "https://github.com/wasamasa/form-feed")
  2896. (synopsis "Display ^L glyphs as horizontal lines")
  2897. (description
  2898. "This package provides a minor mode @code{form-feed-mode} to display page
  2899. delimiters which usually appear as ^L glyphs on a single line as horizontal
  2900. lines spanning the entire window. The minor mode is suitable for inclusion
  2901. into mode hooks and is intended to be used that way.")
  2902. (license license:gpl3+)))
  2903. (define-public emacs-ggtags
  2904. (package
  2905. (name "emacs-ggtags")
  2906. (version "0.9.0")
  2907. (source
  2908. (origin
  2909. (method url-fetch)
  2910. (uri (string-append "https://elpa.gnu.org/packages/ggtags-"
  2911. version ".tar"))
  2912. (sha256
  2913. (base32
  2914. "0p79x9g94jynl83ndvqp9349vhgkzxzhnc517r8hn44iqxqf6ghg"))))
  2915. (build-system emacs-build-system)
  2916. (inputs
  2917. `(("global" ,global)))
  2918. (arguments
  2919. `(#:phases
  2920. (modify-phases %standard-phases
  2921. (add-after 'unpack 'configure
  2922. (lambda* (#:key inputs #:allow-other-keys)
  2923. (chmod "ggtags.el" #o644)
  2924. (emacs-substitute-variables "ggtags.el"
  2925. ("ggtags-executable-directory"
  2926. (dirname (search-input-file inputs "bin/global")))))))))
  2927. (home-page "https://github.com/leoliu/ggtags")
  2928. (synopsis "Frontend to the GNU Global source code tagging system")
  2929. (description "@code{ggtags} provides a frontend to the GNU Global source
  2930. code tagging system.
  2931. Features:
  2932. @itemize
  2933. @item Build on @code{compile.el} for asynchronicity and its large feature-set.
  2934. @item Automatically update Global's tag files when needed with tuning for
  2935. large source trees.
  2936. @item Intuitive navigation among multiple matches with mode-line display of
  2937. current match, total matches and exit status.
  2938. @item Read tag with completion.
  2939. @item Show definition at point.
  2940. @item Jump to #include files.
  2941. @item Support search history and saving a search to register/bookmark.
  2942. @item Query replace.
  2943. @item Manage Global's environment variables on a per-project basis.
  2944. @item Highlight (definition) tag at point.
  2945. @item Abbreviated display of file names.
  2946. @item Support all Global search backends: @code{grep}, @code{idutils}, etc.
  2947. @item Support exuberant ctags @url{http://ctags.sourceforge.net/} and
  2948. @code{pygments} backend.
  2949. @item Support all Global's output formats: @code{grep}, @code{ctags-x},
  2950. @code{cscope} etc.
  2951. @item Support projects on remote hosts (e.g. via @code{tramp}).
  2952. @item Support eldoc.
  2953. @item Search @code{GTAGSLIBPATH} for references and symbols.
  2954. @end itemize\n")
  2955. (license license:gpl3+)))
  2956. (define-public emacs-go-mode
  2957. (package
  2958. (name "emacs-go-mode")
  2959. (version "1.5.0")
  2960. (source (origin
  2961. (method git-fetch)
  2962. (uri (git-reference
  2963. (url "https://github.com/dominikh/go-mode.el")
  2964. (commit (string-append "v" version))))
  2965. (file-name (git-file-name name version))
  2966. (sha256
  2967. (base32
  2968. "1nd2h50yb0493wvf1h7fzplq45rmqn2w7kxpgnlxzhkvq99v8vzf"))))
  2969. (build-system emacs-build-system)
  2970. (arguments
  2971. `(#:phases
  2972. (modify-phases %standard-phases
  2973. (add-after 'unpack 'make-writable
  2974. (lambda _
  2975. (for-each make-file-writable (find-files "." "\\.el$"))
  2976. #t)))))
  2977. (home-page "https://github.com/dominikh/go-mode.el")
  2978. (synopsis "Go mode for Emacs")
  2979. (description
  2980. "This package provides go-mode, an Emacs mode for working with software
  2981. written in the Go programming language.")
  2982. (license license:bsd-3)))
  2983. (define-public emacs-google-maps
  2984. ;; There has been no new release tag since 2013.
  2985. (let ((commit "2eb16ff609f5a9f8d02c15238a111fbb7db6c146")
  2986. (revision "1"))
  2987. (package
  2988. (name "emacs-google-maps")
  2989. (version (git-version "1.0.0" revision commit))
  2990. (source
  2991. (origin
  2992. (method git-fetch)
  2993. (uri (git-reference
  2994. (url "https://github.com/jd/google-maps.el")
  2995. (commit commit)))
  2996. (file-name (git-file-name name version))
  2997. (sha256
  2998. (base32 "1bl0dnksbf14d0xcnvdy9qpvzc5c8jwkxpmfvgayj6djikxnw2md"))))
  2999. (build-system emacs-build-system)
  3000. (home-page "https://github.com/jd/google-maps.el")
  3001. (synopsis "Access Google Maps from Emacs")
  3002. (description "The @code{google-maps} package displays Google Maps
  3003. directly inside Emacs. It requires a Google Map Static API key to function.")
  3004. (license license:gpl3+))))
  3005. (define-public emacs-graphviz-dot-mode
  3006. (package
  3007. (name "emacs-graphviz-dot-mode")
  3008. (version "0.4.2")
  3009. (source
  3010. (origin
  3011. (method git-fetch)
  3012. (uri (git-reference
  3013. (url "https://github.com/ppareit/graphviz-dot-mode")
  3014. (commit (string-append "v" version))))
  3015. (file-name (git-file-name name version))
  3016. (sha256
  3017. (base32 "1v1p85wk73nfsvv66qf90flgf9dqhmv15z1r7q4zmc4ifklqn08m"))))
  3018. (build-system emacs-build-system)
  3019. (arguments
  3020. `(#:phases
  3021. (modify-phases %standard-phases
  3022. (add-before 'install 'make-info
  3023. (lambda* (#:key inputs #:allow-other-keys)
  3024. (with-directory-excursion "texinfo"
  3025. (substitute* "Makefile"
  3026. (("\\/usr\\/bin\\/gzip")
  3027. (search-input-file inputs "/bin/gzip")))
  3028. (invoke "make"
  3029. "clean"
  3030. "info"
  3031. (string-append "TEXINFODIR="
  3032. (assoc-ref inputs "texinfo")
  3033. "/bin")))))
  3034. (add-after 'install 'install-info
  3035. (lambda* (#:key outputs #:allow-other-keys)
  3036. (let* ((out (assoc-ref outputs "out"))
  3037. (info (string-append out "/share/info")))
  3038. (install-file "texinfo/graphviz-dot-mode.info.gz" info)
  3039. #t))))))
  3040. (native-inputs
  3041. `(("gzip" ,gzip)
  3042. ("texinfo" ,texinfo)))
  3043. (propagated-inputs
  3044. `(("emacs-company" ,emacs-company)))
  3045. (home-page "http://ppareit.github.com/graphviz-dot-mode")
  3046. (synopsis "Major mode for editing Graphviz DOT files")
  3047. (description
  3048. "This Emacs package helps you to create @file{.dot} or @file{.gv} files
  3049. using the DOT syntax, and use Graphviz to convert these files to diagrams.")
  3050. (license license:gpl2+)))
  3051. (define-public emacs-imenu-list
  3052. (let ((commit "b50222378412fbe321622a84cb2b036e084c697a")
  3053. (revision "1")
  3054. (version "0.9"))
  3055. (package
  3056. (name "emacs-imenu-list")
  3057. (version (git-version version revision commit))
  3058. (source
  3059. (origin
  3060. (method git-fetch)
  3061. (uri
  3062. (git-reference
  3063. (url "https://github.com/bmag/imenu-list")
  3064. (commit commit)))
  3065. (file-name (git-file-name name version))
  3066. (sha256
  3067. (base32 "1936dd41fa05ndzf2bwhllvjz97iz0rflkazjipr7dvz5q072wj2"))))
  3068. (build-system emacs-build-system)
  3069. (home-page "https://github.com/bmag/imenu-list")
  3070. (synopsis
  3071. "Automatically tracks the current buffer's imenu entries")
  3072. (description
  3073. "This Emacs minor mode creates an automatically updated buffer called
  3074. @code{*Ilist*} that is populated with the current buffer's imenu entries.
  3075. This buffer is typically shown as a sidebar (Emacs vertically splits the
  3076. window).")
  3077. (license license:gpl3+))))
  3078. (define-public emacs-mmm-mode
  3079. (package
  3080. (name "emacs-mmm-mode")
  3081. (version "0.5.8")
  3082. (source
  3083. (origin
  3084. (method url-fetch)
  3085. (uri (string-append "https://elpa.gnu.org/packages/"
  3086. "mmm-mode-" version ".tar"))
  3087. (sha256
  3088. (base32 "05ckf4zapdpvnd3sqpw6kxaa567zh536a36m9qzx3sqyjbyn5fb4"))))
  3089. (build-system emacs-build-system)
  3090. (home-page "https://github.com/purcell/mmm-mode")
  3091. (synopsis "Allow multiple major modes in an Emacs buffer")
  3092. (description
  3093. "MMM Mode is a minor mode that allows multiple major modes to coexist in
  3094. a single buffer.")
  3095. (license license:gpl3+)))
  3096. (define-public emacs-mmt
  3097. (package
  3098. (name "emacs-mmt")
  3099. (version "0.2.0")
  3100. (source
  3101. (origin
  3102. (method git-fetch)
  3103. (uri (git-reference
  3104. (url "https://github.com/mrkkrp/mmt")
  3105. (commit version)))
  3106. (file-name (git-file-name name version))
  3107. (sha256
  3108. (base32 "13vbfc5597v0gd87qyhn10f93nb477vjpg3jlpphbax9fvkf4gav"))))
  3109. (build-system emacs-build-system)
  3110. (home-page "https://github.com/mrkkrp/mmt")
  3111. (synopsis "Classic tools to write Emacs Lisp macros")
  3112. (description "Emacs MMT is a package that contains classic tools for Emacs
  3113. Lisp developers who want to write macros with convenience.")
  3114. (license license:gpl3+)))
  3115. (define-public emacs-tablist
  3116. (package
  3117. (name "emacs-tablist")
  3118. (version "1.0")
  3119. (source (origin
  3120. (method git-fetch)
  3121. (uri (git-reference
  3122. (url "https://github.com/politza/tablist")
  3123. (commit (string-append "v" version))))
  3124. (file-name (git-file-name name version))
  3125. (sha256
  3126. (base32
  3127. "0pzsdg0rm59daw34ppss79cg05z9wnr8nkmdcc48nkd0p69ip2yy"))))
  3128. (build-system emacs-build-system)
  3129. (home-page "https://github.com/politza/tablist")
  3130. (synopsis "Extension for @code{tabulated-list-mode}")
  3131. (description "Tablist is the Emacs package that provides several
  3132. additional features to @code{tabulated-list-mode}: it adds marks,
  3133. filters, new key bindings and faces. It can be enabled by
  3134. @code{tablist-mode} or @code{tablist-minor-mode} commands.")
  3135. (license license:gpl3+)))
  3136. (define-public emacs-djvu
  3137. (package
  3138. (name "emacs-djvu")
  3139. (version "1.1.1")
  3140. (source
  3141. (origin
  3142. (method url-fetch)
  3143. (uri (string-append "https://elpa.gnu.org/packages/"
  3144. "djvu-" version ".el"))
  3145. (sha256
  3146. (base32 "0z2qk1v4qkvcwl27ycqfb8vyszq5v6b8ci29b4la00yaki16p04i"))))
  3147. (build-system emacs-build-system)
  3148. (inputs `(("djview" ,djview)
  3149. ("djvulibre" ,djvulibre)))
  3150. (arguments
  3151. `(#:phases
  3152. (modify-phases %standard-phases
  3153. (add-after 'unpack 'configure
  3154. (lambda* (#:key inputs outputs #:allow-other-keys)
  3155. (let ((file "djvu.el")
  3156. (djview (assoc-ref inputs "djview"))
  3157. (djvulibre (assoc-ref inputs "djvulibre")))
  3158. ;; Specify the absolute executable locations.
  3159. (chmod file #o644)
  3160. (substitute* file
  3161. (("\"djvused\"") (string-append "\"" djvulibre "/bin/djvused\""))
  3162. (("\"djvm\"") (string-append "\"" djvulibre "/bin/djvm\""))
  3163. (("\"ddjvu\"") (string-append "\"" djvulibre "/bin/ddjvu\"")))
  3164. (emacs-substitute-variables file
  3165. ("djvu-djview-command" (string-append djview "/bin/djview"))))
  3166. #t)))))
  3167. (home-page "http://elpa.gnu.org/packages/djvu.html")
  3168. (synopsis "Edit and view Djvu files via djvused")
  3169. (description
  3170. "This package is a front end for the command-line program djvused from
  3171. DjVuLibre, see @url{http://djvu.sourceforge.net/}.")
  3172. (license license:gpl3+)))
  3173. (define-public emacs-djvu3
  3174. ;; Commit from 2021-06-03.
  3175. (let ((commit "37b675be1d4d436cdd0c3b5d3f13e88b59a7bf18")
  3176. (revision "0"))
  3177. (package
  3178. (name "emacs-djvu3")
  3179. ;; `Version:' header says 1.0
  3180. (version (git-version "1.0" revision commit))
  3181. (source
  3182. (origin
  3183. (method git-fetch)
  3184. (uri (git-reference
  3185. (url "https://github.com/dalanicolai/djvu3")
  3186. (commit commit)))
  3187. (file-name (git-file-name name version))
  3188. (sha256
  3189. (base32
  3190. "0p0izjrgbayx5ybk1n6db5hbrjv9d4kpn57w4iyxdm3h96sp9cmr"))))
  3191. (propagated-inputs
  3192. `(("emacs-djvu" ,emacs-djvu)
  3193. ("emacs-tablist" ,emacs-tablist)))
  3194. (build-system emacs-build-system)
  3195. (home-page "https://github.com/dalanicolai/djvu3")
  3196. (synopsis "Extend djvu.el to display annotations and more")
  3197. (description "This package extends @code{emacs-djvu} with annotation
  3198. rendering features and a fast occur search feature using @code{svg.el}.
  3199. Other features include:
  3200. @itemize
  3201. @item clickable links
  3202. @item marker extension to @code{svg.el} for providing arrowheads (or other
  3203. types of markers)
  3204. @item a quite fancy keyboard annotation function
  3205. @item an @code{imenu} index function to enable imenu navigation
  3206. @item document restore function to open the document at the last location of
  3207. the previous session
  3208. @end itemize")
  3209. (license license:gpl3+))))
  3210. (define-public emacs-pabbrev
  3211. (package
  3212. (name "emacs-pabbrev")
  3213. (version "4.2.1")
  3214. (source
  3215. (origin
  3216. (method url-fetch)
  3217. (uri (string-append "https://elpa.gnu.org/packages/"
  3218. "pabbrev-" version ".el"))
  3219. (sha256
  3220. (base32 "19v5adk61y8fpigw7k6wz6dj79jwr450hnbi7fj0jvb21cvjmfxh"))))
  3221. (build-system emacs-build-system)
  3222. (home-page "http://elpa.gnu.org/packages/pabbrev.html")
  3223. (synopsis "Predictive abbreviation expansion")
  3224. (description
  3225. "The code provides a abbreviation expansion for Emacs. It is
  3226. fairly similar to Dabbrev expansion, which works based on the contents
  3227. of the current buffer (or other buffers).
  3228. Predictive abbreviation expansion works based on the previously
  3229. written text. Unlike dynamic abbreviation, the text is analysed
  3230. during idle time, while Emacs is doing nothing else.")
  3231. (license license:gpl3+)))
  3232. (define-public emacs-pdf-tools
  3233. ;; XXX: Development branch fixes an incompatibility with Emacs 27+. See
  3234. ;; <https://github.com/politza/pdf-tools/issues/616>.
  3235. (let ((commit "5f77dae43eb8f71e52e10ba8cf994883f74c3fb7")
  3236. (revision "2"))
  3237. (package
  3238. (name "emacs-pdf-tools")
  3239. (version (git-version "0.90" revision commit))
  3240. (source
  3241. (origin
  3242. (method git-fetch)
  3243. (uri (git-reference
  3244. (url "https://github.com/vedang/pdf-tools")
  3245. (commit commit)))
  3246. (file-name (git-file-name name version))
  3247. (sha256
  3248. (base32 "0hzqcnxi66d0c3dq7y3dn28f3yri4zcx46yylhy0xnm3f1yja0rm"))))
  3249. (build-system gnu-build-system)
  3250. (arguments
  3251. `(#:tests? #f ; there are no tests
  3252. #:modules ((guix build gnu-build-system)
  3253. ((guix build emacs-build-system) #:prefix emacs:)
  3254. (guix build utils)
  3255. (guix build emacs-utils))
  3256. #:imported-modules (,@%gnu-build-system-modules
  3257. (guix build emacs-build-system)
  3258. (guix build emacs-utils))
  3259. #:phases
  3260. (modify-phases %standard-phases
  3261. ;; Build server side using 'gnu-build-system'.
  3262. (add-after 'unpack 'enter-server-dir
  3263. (lambda _ (chdir "server") #t))
  3264. (add-after 'enter-server-dir 'autogen
  3265. (lambda _
  3266. (invoke "bash" "autogen.sh")))
  3267. ;; Build emacs side using 'emacs-build-system'.
  3268. (add-after 'compress-documentation 'enter-lisp-dir
  3269. (lambda _ (chdir "../lisp") #t))
  3270. (add-after 'enter-lisp-dir 'emacs-patch-variables
  3271. (lambda* (#:key outputs #:allow-other-keys)
  3272. (for-each make-file-writable (find-files "."))
  3273. ;; Set path to epdfinfo program.
  3274. (emacs-substitute-variables "pdf-info.el"
  3275. ("pdf-info-epdfinfo-program"
  3276. (string-append (assoc-ref outputs "out")
  3277. "/bin/epdfinfo")))
  3278. ;; Set 'pdf-tools-handle-upgrades' to nil to avoid "auto
  3279. ;; upgrading" that pdf-tools tries to perform.
  3280. (emacs-substitute-variables "pdf-tools.el"
  3281. ("pdf-tools-handle-upgrades" '()))))
  3282. (add-after 'emacs-patch-variables 'emacs-expand-load-path
  3283. (assoc-ref emacs:%standard-phases 'expand-load-path))
  3284. (add-after 'emacs-expand-load-path 'emacs-install
  3285. (assoc-ref emacs:%standard-phases 'install))
  3286. (add-after 'emacs-install 'emacs-build
  3287. (assoc-ref emacs:%standard-phases 'build))
  3288. (add-after 'emacs-install 'emacs-make-autoloads
  3289. (assoc-ref emacs:%standard-phases 'make-autoloads)))))
  3290. (native-inputs
  3291. `(("autoconf" ,autoconf)
  3292. ("automake" ,automake)
  3293. ("pkg-config" ,pkg-config)
  3294. ("emacs" ,emacs-minimal)))
  3295. (inputs
  3296. `(("poppler" ,poppler)
  3297. ("cairo" ,cairo)
  3298. ("glib" ,glib)
  3299. ("libpng" ,libpng)
  3300. ("zlib" ,zlib)))
  3301. (propagated-inputs
  3302. `(("tablist" ,emacs-tablist)))
  3303. (home-page "https://github.com/politza/pdf-tools")
  3304. (synopsis "Emacs support library for PDF files")
  3305. (description
  3306. "PDF Tools is, among other things, a replacement of DocView for PDF
  3307. files. The key difference is that pages are not pre-rendered by
  3308. e.g. ghostscript and stored in the file-system, but rather created on-demand
  3309. and stored in memory.")
  3310. (license license:gpl3+))))
  3311. (define-public emacs-saveplace-pdf-view
  3312. (package
  3313. (name "emacs-saveplace-pdf-view")
  3314. (version "1.0.4")
  3315. (source
  3316. (origin
  3317. (method git-fetch)
  3318. (uri (git-reference
  3319. (url "https://github.com/nicolaisingh/saveplace-pdf-view")
  3320. (commit (string-append "saveplace-pdf-view-" version))))
  3321. (file-name (git-file-name name version))
  3322. (sha256
  3323. (base32 "0i03qb6qc2agp9s5s7l08f1wl8anqndh6xshg1c3w357vd1whv7i"))))
  3324. (build-system emacs-build-system)
  3325. (home-page "https://github.com/nicolaisingh/saveplace-pdf-view")
  3326. (synopsis "Save place in pdf-view buffers for Emacs")
  3327. (description
  3328. "This package extends the built-in Save-Place mode by adding support for
  3329. PDF view (see @code{emacs-pdf-tools}). This package will store the
  3330. place (e.g., the current page and zoom) of PDF buffers under PDFView mode or
  3331. DocView mode, and revisiting those PDF files later using the same mode will
  3332. restore the saved place.")
  3333. (license license:gpl3+)))
  3334. (define-public emacs-dash
  3335. (package
  3336. (name "emacs-dash")
  3337. (version "2.19.1")
  3338. (source (origin
  3339. (method git-fetch)
  3340. (uri (git-reference
  3341. (url "https://github.com/magnars/dash.el")
  3342. (commit version)))
  3343. (file-name (git-file-name name version))
  3344. (sha256
  3345. (base32
  3346. "0z6f8y1m9amhg427iz1d4xcyr6n0kj5w7kmiz134p320ixsdnzd8"))))
  3347. (build-system emacs-build-system)
  3348. (arguments `(#:tests? #t))
  3349. (home-page "https://github.com/magnars/dash.el")
  3350. (synopsis "Modern list library for Emacs")
  3351. (description "This package provides a modern list API library for Emacs.")
  3352. (license license:gpl3+)))
  3353. (define-public emacs-bui
  3354. (package
  3355. (name "emacs-bui")
  3356. (version "1.2.1")
  3357. (source (origin
  3358. (method git-fetch)
  3359. (uri (git-reference
  3360. (url "https://notabug.org/alezost/emacs-bui.git")
  3361. (commit (string-append "v" version))))
  3362. (file-name (git-file-name name version))
  3363. (sha256
  3364. (base32
  3365. "0sszdl4kvqbihdh8d7mybpp0d8yw2p3gyiipjcxz9xhvvmw3ww4x"))))
  3366. (build-system emacs-build-system)
  3367. (propagated-inputs
  3368. `(("dash" ,emacs-dash)))
  3369. (home-page "https://notabug.org/alezost/emacs-bui")
  3370. (synopsis "Buffer interface library for Emacs")
  3371. (description
  3372. "BUI (Buffer User Interface) is a library for making @code{list} and
  3373. @code{info} interfaces to display an arbitrary data of the same
  3374. type, for example: packages, buffers, files, etc.")
  3375. (license license:gpl3+)))
  3376. (define-public emacs-guix
  3377. (let ((commit "c9aef52121b458297e70bb50f49f7276b4a8d759")
  3378. (revision "5"))
  3379. (package
  3380. (name "emacs-guix")
  3381. (version (git-version "0.5.2" revision commit))
  3382. (source (origin
  3383. (method git-fetch)
  3384. (uri (git-reference
  3385. (url "https://gitlab.com/emacs-guix/emacs-guix.git")
  3386. (commit commit)))
  3387. (file-name (git-file-name name version))
  3388. (sha256
  3389. (base32
  3390. "00xdxadbi9fxpfp60zah9190rcz3w08vl1blbhmaiy7c1hd2gi39"))))
  3391. (build-system gnu-build-system)
  3392. (arguments
  3393. `(#:modules ((guix build gnu-build-system)
  3394. ((guix build emacs-build-system) #:prefix emacs:)
  3395. (guix build utils))
  3396. #:imported-modules (,@%gnu-build-system-modules
  3397. (guix build emacs-build-system)
  3398. (guix build emacs-utils))
  3399. #:configure-flags
  3400. (list (string-append "--with-lispdir="
  3401. (emacs:elpa-directory (assoc-ref %outputs "out"))))
  3402. #:phases
  3403. (modify-phases %standard-phases
  3404. (add-after 'unpack 'expand-load-path
  3405. (lambda _
  3406. ((assoc-ref emacs:%standard-phases 'expand-load-path)
  3407. #:prepend-source? #f)
  3408. #t)))))
  3409. (native-inputs
  3410. `(("autoconf" ,autoconf)
  3411. ("automake" ,automake)
  3412. ("pkg-config" ,pkg-config)
  3413. ("texinfo" ,texinfo)
  3414. ("emacs" ,emacs-minimal)))
  3415. (inputs
  3416. `(("guile"
  3417. ,@(assoc-ref (package-native-inputs guix) "guile"))
  3418. ("guix" ,guix)))
  3419. (propagated-inputs
  3420. `(("geiser" ,emacs-geiser)
  3421. ("geiser-guile" ,emacs-geiser-guile)
  3422. ("guile-gcrypt" ,guile-gcrypt)
  3423. ("dash" ,emacs-dash)
  3424. ("bui" ,emacs-bui)
  3425. ("edit-indirect" ,emacs-edit-indirect)
  3426. ("magit-popup" ,emacs-magit-popup)))
  3427. (home-page "https://emacs-guix.gitlab.io/website/")
  3428. (synopsis "Emacs interface for GNU Guix")
  3429. (description
  3430. "Emacs-Guix provides a visual interface, tools and features for the GNU
  3431. Guix package manager. Particularly, it allows you to do various package
  3432. management tasks from Emacs. To begin with, run @code{M-x guix-about} or
  3433. @code{M-x guix-help} command.")
  3434. (license license:gpl3+))))
  3435. (define-public emacs-build-farm
  3436. (package
  3437. (name "emacs-build-farm")
  3438. (version "0.2.2")
  3439. (source (origin
  3440. (method git-fetch)
  3441. (uri (git-reference
  3442. (url "https://notabug.org/alezost/emacs-build-farm.git")
  3443. (commit (string-append "v" version))))
  3444. (file-name (git-file-name name version))
  3445. (sha256
  3446. (base32
  3447. "0i0bwbav5861j2y15j9nd5m9rdqg9q97zgcbld8pivr9nyxy63lz"))))
  3448. (build-system emacs-build-system)
  3449. (propagated-inputs
  3450. `(("bui" ,emacs-bui)
  3451. ("magit-popup" ,emacs-magit-popup)))
  3452. (home-page "https://notabug.org/alezost/emacs-build-farm")
  3453. (synopsis "Emacs interface for Hydra and Cuirass build farms")
  3454. (description
  3455. "This Emacs package provides an interface for Hydra and
  3456. Cuirass (build farms used by Nix and Guix). It allows you to look at
  3457. various data related to the build farm projects, jobsets, builds and
  3458. evaluations. The entry point is @code{M-x build-farm} command.")
  3459. (license license:gpl3+)))
  3460. (define-public emacs-d-mode
  3461. (package
  3462. (name "emacs-d-mode")
  3463. (version "2.0.11")
  3464. (source
  3465. (origin
  3466. (method git-fetch)
  3467. (uri (git-reference
  3468. (url "https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode")
  3469. (commit version)))
  3470. (file-name (git-file-name name version))
  3471. (sha256
  3472. (base32 "0vkl470vvmxap8ca773a0jvjvalmvdbbax3qvgjdclp54ml75al4"))))
  3473. (build-system emacs-build-system)
  3474. (propagated-inputs
  3475. `(("emacs-undercover" ,emacs-undercover)))
  3476. (home-page "https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode")
  3477. (synopsis "Emacs major mode for editing D code")
  3478. (description "This package provides an Emacs major mode for highlighting
  3479. code written in the D programming language.")
  3480. (license license:gpl2+)))
  3481. (define-public emacs-extempore-mode
  3482. ;; Use the latest commit at time of packaging. There are no releases or tags.
  3483. (let ((commit "09518ae6650d7be33a4633a4c0f31b7130d04c6e")
  3484. (revision "1"))
  3485. (package
  3486. (name "emacs-extempore-mode")
  3487. (version (git-version "0.0.0" revision commit))
  3488. (source
  3489. (origin
  3490. (method git-fetch)
  3491. (uri (git-reference
  3492. (url "https://github.com/extemporelang/extempore-emacs-mode")
  3493. (commit commit)))
  3494. (file-name (git-file-name name version))
  3495. (sha256
  3496. (base32 "0hfza9lzdsz94gxhmzyp9fwviscv19rmnjgd0q613faayn11sjsp"))))
  3497. (build-system emacs-build-system)
  3498. (home-page "https://github.com/extemporelang/extempore-emacs-mode")
  3499. (synopsis "Emacs major mode for Extempore source files")
  3500. (description
  3501. "This package provides a major mode for editing Extempore code. It can
  3502. create an Extempore REPL, connect the current @code{extempore-mode} buffer to a
  3503. running Extempore process, and more.")
  3504. (license license:bsd-2))))
  3505. (define-public emacs-kakoune
  3506. ;; Package has no release. Version is extracted from "Version:" keyword in
  3507. ;; main file.
  3508. (let ((commit "d73d14e69ea38076af50cc69f846808383ff539d")
  3509. (revision "0"))
  3510. (package
  3511. (name "emacs-kakoune")
  3512. (version (git-version "0.1" revision commit))
  3513. (source
  3514. (origin
  3515. (method git-fetch)
  3516. (uri (git-reference
  3517. (url "https://github.com/jmorag/kakoune.el")
  3518. (commit commit)))
  3519. (file-name (git-file-name name version))
  3520. (sha256
  3521. (base32 "0nk6jdy1y5mc3ryd0smiqghrk6iv34d5grc7f7migmshlbq0np92"))))
  3522. (build-system emacs-build-system)
  3523. (propagated-inputs
  3524. `(("emacs-expand-region" ,emacs-expand-region)
  3525. ("emacs-multiple-cursors" ,emacs-multiple-cursors)
  3526. ("emacs-ryo-modal" ,emacs-ryo-modal)))
  3527. (home-page "https://github.com/jmorag/kakoune.el")
  3528. (synopsis "Emacs simple simulation, but not emulation, of Kakoune")
  3529. (description "This package provides many, but not all of the editing
  3530. primitives in the Kakoune editor. Unlike Evil mode for Vim, this is a very
  3531. shallow emulation, which seeks to do as little work as possible, leveraging
  3532. Emacs native editing commands and the work of other packages wherever
  3533. possible.")
  3534. (license license:expat))))
  3535. (define-public emacs-kana
  3536. ;; Package has no release. Version is extracted from "Version:" keyword in
  3537. ;; main file.
  3538. (let ((commit "b239c3c3c6124b46ff720cca7b80ecbafd7fa489")
  3539. (revision "0"))
  3540. (package
  3541. (name "emacs-kana")
  3542. (version (git-version "1.0.0" revision commit))
  3543. (source
  3544. (origin
  3545. (method git-fetch)
  3546. (uri (git-reference
  3547. (url "https://github.com/chenyanming/kana")
  3548. (commit commit)))
  3549. (file-name (git-file-name name version))
  3550. (sha256
  3551. (base32 "0vrrl1kniq4h111jvnapvx3wybvsl3alfaygw634mmryr3h7pwi8"))))
  3552. (build-system emacs-build-system)
  3553. (home-page "https://github.com/chenyanming/kana")
  3554. (synopsis "Learn Japanese Kana in Emacs")
  3555. (description
  3556. "This Emacs mode displays Hiragana and Katakana flashcards. It can use
  3557. functionality from Emacs Kanji mode if it is installed.")
  3558. (license license:gpl3+))))
  3559. (define-public emacs-kanji
  3560. ;; Package has no release. Version is extracted from "Version:" keyword in
  3561. ;; main file.
  3562. (let ((commit "5e9d5b72468ece11cfb81b729be6babf63ede425")
  3563. (revision "0"))
  3564. (package
  3565. (name "emacs-kanji")
  3566. (version (git-version "1.0" revision commit))
  3567. (source
  3568. (origin
  3569. (method git-fetch)
  3570. (uri (git-reference
  3571. (url "https://github.com/wsgac/kanji-mode")
  3572. (commit commit)))
  3573. (file-name (git-file-name name version))
  3574. (sha256
  3575. (base32 "1zh7klqaza840q5f44zzh1wrnd6sqa2k93z3dgx3yhhsxfd1dxvy"))))
  3576. (build-system emacs-build-system)
  3577. (home-page "https://github.com/wsgac/kanji-mode")
  3578. (synopsis "Emacs minor mode for displaying Japanese Kanji stroke order")
  3579. (description
  3580. "This minor mode displays the stroke order of the Kanji sign under
  3581. cursor in a transient buffer. It has a built-in collection of SVG images
  3582. depicting stroke orders for all Kanji. The collection is a slightly modified
  3583. and limited version of the images provided by the KanjiVG project.")
  3584. (license license:gpl3+))))
  3585. (define-public emacs-kbd
  3586. ;; Package has no release. Version is extracted from "Version:" keyword in
  3587. ;; main file.
  3588. (let ((commit "a7f4c9b9770fa6a58895c5f121df82652bb1b737")
  3589. (revision "0"))
  3590. (package
  3591. (name "emacs-kbd")
  3592. (version (git-version "0.0.1" revision commit))
  3593. (source
  3594. (origin
  3595. (method git-fetch)
  3596. (uri (git-reference
  3597. (url "https://github.com/slotThe/kbd-mode")
  3598. (commit commit)))
  3599. (file-name (git-file-name name version))
  3600. (sha256
  3601. (base32 "0jv9yfsncgf96308c041hvps3jlc151xb0aipm0vasbma3x83ygm"))))
  3602. (build-system emacs-build-system)
  3603. (arguments
  3604. `(#:phases
  3605. (modify-phases %standard-phases
  3606. (add-after 'unpack 'enter-lisp-directory
  3607. (lambda _ (chdir "lisp") #t)))))
  3608. (home-page "https://github.com/slotThe/kbd-mode")
  3609. (synopsis "Minor mode for syntax highlighting kmonad's @file{.kbd} files")
  3610. (description
  3611. "This minor mode provides syntax highlighting for Lisp-like DSL used in
  3612. kmonad's configuration files (@file{.kbd}).")
  3613. (license license:gpl3+))))
  3614. (define-public emacs-keycast
  3615. (package
  3616. (name "emacs-keycast")
  3617. (version "1.1.1")
  3618. (source
  3619. (origin
  3620. (method git-fetch)
  3621. (uri (git-reference
  3622. (url "https://github.com/tarsius/keycast.git")
  3623. (commit (string-append "v" version))))
  3624. (file-name (git-file-name name version))
  3625. (sha256
  3626. (base32 "09xr0h2ag3pzlz455gv5h915vn1dz56gqx61jx3n7fc4a794pqxw"))))
  3627. (build-system emacs-build-system)
  3628. (home-page "https://github.com/tarsius/keycast")
  3629. (synopsis "Show current command and its key in the mode line")
  3630. (description
  3631. "This package provides Keycast mode. Once enabled, that mode shows the
  3632. current command and its key or mouse binding in the mode line, and updates
  3633. them whenever another command is invoked.")
  3634. (license license:gpl3+)))
  3635. (define-public emacs-keyfreq
  3636. (package
  3637. (name "emacs-keyfreq")
  3638. (version "20160516.716")
  3639. (source
  3640. (origin
  3641. (method url-fetch)
  3642. (uri (string-append "http://melpa.org/packages/keyfreq-"
  3643. version ".el"))
  3644. (sha256
  3645. (base32
  3646. "008hd7d06qskc3mx0bbdgpgy2pwxr8185fzlyqf9qjg49y74p6g8"))))
  3647. (build-system emacs-build-system)
  3648. (home-page "https://github.com/dacap/keyfreq")
  3649. (synopsis "Track Emacs command frequencies")
  3650. (description "@code{emacs-keyfeq} tracks and shows how many times you used
  3651. a command.")
  3652. (license license:gpl3+)))
  3653. (define-public emacs-olivetti
  3654. (package
  3655. (name "emacs-olivetti")
  3656. (version "2.0.3")
  3657. (source
  3658. (origin
  3659. (method git-fetch)
  3660. (uri (git-reference
  3661. (url "https://github.com/rnkn/olivetti")
  3662. (commit (string-append "v" version))))
  3663. (file-name (git-file-name name version))
  3664. (sha256
  3665. (base32 "0qhv4ah9bn1mjvivgxp7z1gf91d0cdr2ma5cy5xaja97ispa4l3z"))))
  3666. (build-system emacs-build-system)
  3667. (home-page "https://github.com/rnkn/olivetti")
  3668. (synopsis "Emacs minor mode for a nice writing environment")
  3669. (description "This package provides an Emacs minor mode that puts writing
  3670. in the center.")
  3671. (license license:gpl3+)))
  3672. (define-public emacs-undo-tree
  3673. (package
  3674. (name "emacs-undo-tree")
  3675. (version "0.8.1")
  3676. (source
  3677. (origin
  3678. (method git-fetch)
  3679. (uri (git-reference
  3680. (url "https://gitlab.com/tsc25/undo-tree")
  3681. (commit (string-append "release/" version))))
  3682. (file-name (git-file-name name version))
  3683. (sha256
  3684. (base32 "1khkwrrbwaimspc013n4k9mpv8g302r0zkrsqnza2x1d3qznn08y"))))
  3685. (build-system emacs-build-system)
  3686. (propagated-inputs
  3687. `(("emacs-queue" ,emacs-queue)))
  3688. (home-page "https://www.dr-qubit.org/undo-tree.html")
  3689. (synopsis "Treat undo history as a tree")
  3690. (description
  3691. "Tree-like interface to Emacs undo system, providing
  3692. graphical tree presentation of all previous states of buffer that
  3693. allows easily move between them.")
  3694. (license license:gpl3+)))
  3695. (define-public emacs-undo-fu
  3696. ;; There are no tagged releases upstream on gitlab, instead we are using
  3697. ;; the most recent commit.
  3698. (let ((commit "c0806c1903c5a0e4c69b6615cdc3366470a9b8ca")
  3699. (revision "0"))
  3700. (package
  3701. (name "emacs-undo-fu")
  3702. (version (git-version "0.4" revision commit))
  3703. (source
  3704. (origin
  3705. (method git-fetch)
  3706. (uri (git-reference
  3707. (url "https://gitlab.com/ideasman42/emacs-undo-fu")
  3708. (commit commit)))
  3709. (file-name (git-file-name name version))
  3710. (sha256
  3711. (base32 "1n594aakmcgyl7qbda86v4wsx8clm62ypiv3h559xz3x72h7mr3j"))))
  3712. (build-system emacs-build-system)
  3713. (home-page "https://gitlab.com/ideasman42/emacs-undo-fu")
  3714. (synopsis "Simple, stable linear undo with redo for Emacs")
  3715. (description
  3716. "This is a light weight wrapper for Emacs built-in undo system,
  3717. adding convenient undo/redo without losing access to the full undo history,
  3718. allowing you to visit all previous states of the document if you need.")
  3719. (license license:gpl3+))))
  3720. (define-public emacs-undo-fu-session
  3721. ;; There are no tagged releases upstream on gitlab, instead we are using the
  3722. ;; most recent commit.
  3723. (let ((commit "56cdd3538a058c6916bdf2d9010c2179f2505829")
  3724. (revision "0"))
  3725. (package
  3726. (name "emacs-undo-fu-session")
  3727. (version (git-version "0.2" revision commit))
  3728. (source
  3729. (origin
  3730. (method git-fetch)
  3731. (uri (git-reference
  3732. (url "https://gitlab.com/ideasman42/emacs-undo-fu-session")
  3733. (commit commit)))
  3734. (file-name (git-file-name name version))
  3735. (sha256
  3736. (base32 "04wq1alrzzlidcb4mjb5j7pg68pks1vgv7kvvmi6dzb3l602mb2a"))))
  3737. (build-system emacs-build-system)
  3738. (arguments
  3739. `(#:tests? #t
  3740. #:test-command '("emacs" "--batch" "-l" "undo-fu-session.el"
  3741. "-l" "undo-fu-session-test.el")
  3742. #:phases
  3743. (modify-phases %standard-phases
  3744. (add-before 'check 'set-home
  3745. (lambda _
  3746. (setenv "HOME" "/tmp")
  3747. #t)))))
  3748. (home-page "https://gitlab.com/ideasman42/emacs-undo-fu-session")
  3749. (synopsis "Save & recover undo steps between Emacs sessions")
  3750. (description "This package writes undo/redo information upon file save
  3751. which is restored where possible when the file is loaded again.")
  3752. (license license:gpl3+))))
  3753. (define-public emacs-s
  3754. (package
  3755. (name "emacs-s")
  3756. (version "1.12.0")
  3757. (source
  3758. (origin
  3759. (method git-fetch)
  3760. (uri (git-reference
  3761. (url "https://github.com/magnars/s.el")
  3762. (commit version)))
  3763. (file-name (git-file-name name version))
  3764. (sha256
  3765. (base32 "1g8mqd13llj007al4nlxxx4z2lcsg3wk970mgjn0avwrhjjgdmmv"))))
  3766. (build-system emacs-build-system)
  3767. (arguments
  3768. `(#:tests? #t
  3769. #:emacs ,emacs ; FIXME: tests fail with emacs-minimal
  3770. #:test-command '("./run-tests.sh")))
  3771. (home-page "https://github.com/magnars/s.el")
  3772. (synopsis "Emacs string manipulation library")
  3773. (description "This package provides an Emacs library for manipulating
  3774. strings.")
  3775. (license license:gpl3+)))
  3776. (define-public emacs-symon
  3777. (package
  3778. (name "emacs-symon")
  3779. (version "20160630")
  3780. (source
  3781. (origin
  3782. (method git-fetch)
  3783. (uri (git-reference
  3784. (url "https://github.com/zk-phi/symon")
  3785. (commit version)))
  3786. (file-name (git-file-name name version))
  3787. (sha256
  3788. (base32 "1q7di9s8k710nx98wnqnbkkhdimrn0jf6z4xkm4c78l6s5idjwlz"))))
  3789. (build-system emacs-build-system)
  3790. (home-page "https://github.com/zk-phi/symon")
  3791. (synopsis "Tiny graphical system monitor")
  3792. (description
  3793. "Tiny graphical system monitor for the Emacs minibuffer when idle.")
  3794. (license license:gpl2+)))
  3795. (define-public emacs-sx
  3796. (let ((version "20191229")
  3797. (revision "0")
  3798. (commit "e9d1093c97507a6d7b4f4710ef65200dae725e5f"))
  3799. (package
  3800. (name "emacs-sx")
  3801. (version (git-version version revision commit))
  3802. (source
  3803. (origin
  3804. (method git-fetch)
  3805. (uri (git-reference
  3806. (url "https://github.com/vermiculus/sx.el")
  3807. (commit commit)))
  3808. (file-name (git-file-name name version))
  3809. (sha256
  3810. (base32 "0m90ddwm8j0y6d1ppqhd2gil1107k202blw6mzm5bdambn4nfqkf"))))
  3811. (build-system emacs-build-system)
  3812. (propagated-inputs
  3813. `(("emacs-markdown-mode" ,emacs-markdown-mode)))
  3814. (home-page "https://github.com/vermiculus/sx.el")
  3815. (synopsis "Emacs StackExchange client")
  3816. (description
  3817. "Emacs StackExchange client. Ask and answer questions on
  3818. Stack Overflow, Super User, and other StackExchange sites.")
  3819. (license license:gpl3+))))
  3820. (define-public emacs-toc-org
  3821. (package
  3822. (name "emacs-toc-org")
  3823. (version "1.1.0")
  3824. (source
  3825. (origin
  3826. (method git-fetch)
  3827. (uri (git-reference
  3828. (url "https://github.com/snosov1/toc-org")
  3829. (commit version)))
  3830. (file-name (git-file-name name version))
  3831. (sha256
  3832. (base32 "0lk0rji85a1c0c5r9an0fdvsm4n4jyixsknmr8ywha3lfmc2p0l8"))))
  3833. (build-system emacs-build-system)
  3834. (home-page "https://github.com/snosov1/toc-org")
  3835. (synopsis "Table of Contents generator for Emacs Org mode")
  3836. (description
  3837. "This package generates a table of contents when saving in Org and
  3838. Markdown files.")
  3839. (license license:gpl2+)))
  3840. (define-public emacs-toml-mode
  3841. (let ((version "0.1.3")
  3842. (revision "0")
  3843. (commit "f6c61817b00f9c4a3cab1bae9c309e0fc45cdd06"))
  3844. (package
  3845. (name "emacs-toml-mode")
  3846. (version (git-version version revision commit))
  3847. (source
  3848. (origin
  3849. (method git-fetch)
  3850. (uri (git-reference
  3851. (url "https://github.com/dryman/toml-mode.el")
  3852. (commit commit)))
  3853. (file-name (git-file-name name version))
  3854. (sha256
  3855. (base32 "05b4ksay85c8y5ncax0qsvnmplwsfiw24z16a58gkarjz938hb57"))))
  3856. (build-system emacs-build-system)
  3857. (home-page "https://github.com/dryman/toml-mode.el")
  3858. (synopsis "Emacs major mode for editing TOML files")
  3859. (description
  3860. ;; XXX: Ideally we'd use @acronym for "TOML", but Guile's Texinfo
  3861. ;; parser does not currently support @comma{}, making it impossible
  3862. ;; to use commas in the @acronym arguments.
  3863. "This package provides a major mode for editing files in @dfn{TOML}
  3864. (Tom's Obvious, Minimal Language) data format.")
  3865. (license license:gpl3+))))
  3866. (define-public emacs-twittering-mode
  3867. (package
  3868. (name "emacs-twittering-mode")
  3869. (version "3.1.0")
  3870. (source
  3871. (origin
  3872. (method url-fetch)
  3873. (uri (string-append "mirror://sourceforge/twmode"
  3874. "/twittering-mode-" version
  3875. "/twittering-mode-" version ".tar.xz"))
  3876. (sha256
  3877. (base32 "02imis1gxz90lah0b5n37j2hlsaw5igss11d85vpsm5d1bgw8j28"))))
  3878. (build-system emacs-build-system)
  3879. (home-page "http://twmode.sourceforge.net")
  3880. (synopsis "Emacs major mode for Twitter")
  3881. (description
  3882. "Twittering mode is an Emacs major mode for Twitter.
  3883. You can check timelines, tweet, mark posts as favorites and so on with
  3884. Emacs.")
  3885. (license license:gpl2+)))
  3886. (define-public emacs-f
  3887. (package
  3888. (name "emacs-f")
  3889. (version "0.20.0")
  3890. (source (origin
  3891. (method git-fetch)
  3892. (uri (git-reference
  3893. (url "https://github.com/rejeep/f.el")
  3894. (commit (string-append "v" version))))
  3895. (file-name (git-file-name name version))
  3896. (sha256
  3897. (base32
  3898. "1a47xk3yp1rp17fqg7ldl3d3fb888h0fz3sysqfdz1bfdgs8a9bk"))))
  3899. (build-system emacs-build-system)
  3900. (propagated-inputs
  3901. `(("emacs-s" ,emacs-s)
  3902. ("emacs-dash" ,emacs-dash)))
  3903. (home-page "https://github.com/rejeep/f.el")
  3904. (synopsis "Emacs API for working with files and directories")
  3905. (description "This package provides an Emacs library for working with
  3906. files and directories.")
  3907. (license license:gpl3+)))
  3908. (define-public emacs-fountain-mode
  3909. (package
  3910. (name "emacs-fountain-mode")
  3911. (version "3.5.1")
  3912. (source
  3913. (origin
  3914. (method git-fetch)
  3915. (uri (git-reference
  3916. (url "https://github.com/rnkn/fountain-mode")
  3917. (commit (string-append "v" version))))
  3918. (file-name (git-file-name name version))
  3919. (sha256
  3920. (base32 "0y7dd6qq4b95scj7fay4zzhkf0g0x89npylc4v1hz59b1yyylfqy"))))
  3921. (build-system emacs-build-system)
  3922. (home-page "https://github.com/rnkn/fountain-mode")
  3923. (synopsis "Major mode for screenwriting in Fountain markup")
  3924. (description "Fountain Mode is a scriptwriting program for GNU Emacs
  3925. using the Fountain plain text markup format.")
  3926. (license license:gpl3+)))
  3927. (define-public emacs-fringe-helper
  3928. (let ((commit "ef4a9c023bae18ec1ddd7265f1f2d6d2e775efdd")
  3929. (revision "1"))
  3930. (package
  3931. (name "emacs-fringe-helper")
  3932. (version (git-version "1.0.1" revision commit))
  3933. (source
  3934. (origin
  3935. (method git-fetch)
  3936. (uri (git-reference
  3937. (url "https://github.com/nschum/fringe-helper.el")
  3938. (commit commit)))
  3939. (file-name (git-file-name name version))
  3940. (sha256
  3941. (base32 "0ra9rc53l1gvkqank8apasl3r7wz2yfjrcvmfk3wpxhh24ppxv9d"))))
  3942. (build-system emacs-build-system)
  3943. (arguments
  3944. `(#:tests? #t
  3945. #:test-command '("emacs" "--batch"
  3946. "-l" "tests.el"
  3947. "-f" "ert-run-tests-batch-and-exit")))
  3948. (home-page "https://github.com/nschum/fringe-helper.el")
  3949. (synopsis "Helper functions for fringe bitmaps")
  3950. (description
  3951. "This package allows fringe bitmaps to be defined with a visual string
  3952. representation.")
  3953. (license license:gpl2+))))
  3954. (define-public emacs-git-gutter
  3955. (package
  3956. (name "emacs-git-gutter")
  3957. (version "0.91")
  3958. (source
  3959. (origin
  3960. (method git-fetch)
  3961. (uri (git-reference
  3962. (url "https://github.com/syohex/emacs-git-gutter")
  3963. (commit version)))
  3964. (file-name (git-file-name name version))
  3965. (sha256
  3966. (base32 "0zc9f73app1d7j4yb10sy4xidh5252ncyxlvr5kh0kiqk88ck6j9"))))
  3967. (build-system emacs-build-system)
  3968. (home-page "https://github.com/syohex/emacs-git-gutter")
  3969. (synopsis "See and manage hunks of text in a version control system")
  3970. (description
  3971. "This package is an Emacs minor mode for displaying and interacting with
  3972. hunks of text managed in a version control system. Added modified and deleted
  3973. areas can be indicated with symbols on the edge of the buffer, and commands
  3974. can be used to move between and perform actions on these hunks.
  3975. Git, Mercurial, Subversion and Bazaar are supported, and many parts of the
  3976. display and behaviour is easily customisable.")
  3977. (license license:gpl3+)))
  3978. (define-public emacs-git-gutter-fringe
  3979. (let ((commit "16226caab44174301f1659f7bf8cc67a76153445")
  3980. (revision "1"))
  3981. (package
  3982. (name "emacs-git-gutter-fringe")
  3983. (version (git-version "0.23" revision commit))
  3984. (source
  3985. (origin
  3986. (method git-fetch)
  3987. (uri (git-reference
  3988. (url "https://github.com/emacsorphanage/git-gutter-fringe")
  3989. (commit commit)))
  3990. (file-name (git-file-name name version))
  3991. (sha256
  3992. (base32 "1y77gjl0yznamdj0f55d418zb75k22izisjg7ikvrfsl2yfqf3pm"))))
  3993. (build-system emacs-build-system)
  3994. (propagated-inputs
  3995. `(("emacs-git-gutter" ,emacs-git-gutter)
  3996. ("emacs-fringe-helper" ,emacs-fringe-helper)))
  3997. (home-page "https://github.com/emacsorphanage/git-gutter-fringe")
  3998. (synopsis "See and manage hunks of text in a version control system")
  3999. (description
  4000. "This package extends @code{git-gutter} to use the fringe area of a
  4001. window.")
  4002. (license license:gpl3+))))
  4003. (define-public emacs-git-link
  4004. (package
  4005. (name "emacs-git-link")
  4006. (version "0.8.3")
  4007. (source
  4008. (origin
  4009. (method git-fetch)
  4010. (uri (git-reference
  4011. (url "https://github.com/sshaw/git-link")
  4012. (commit (string-append "v" version))))
  4013. (file-name (git-file-name name version))
  4014. (sha256
  4015. (base32 "0l7xmvmj5s93hc39wjjv75f22zbhahnmcxpmvx3dfvsbig9pmk75"))))
  4016. (build-system emacs-build-system)
  4017. (arguments
  4018. `(#:tests? #t
  4019. #:test-command '("make" "test")))
  4020. (home-page "https://github.com/sshaw/git-link")
  4021. (synopsis "Create links for files and commits in GitHub/GitLab/etc. repos")
  4022. (description
  4023. "@code{git-link} returns the URL for the current buffer's file location
  4024. at the current line number or active region. @code{git-link-commit} returns
  4025. the URL for a commit. URLs are added to the kill ring.")
  4026. (license license:gpl3+)))
  4027. (define-public emacs-apheleia
  4028. (package
  4029. (name "emacs-apheleia")
  4030. (version "1.0")
  4031. (source
  4032. (origin
  4033. (method git-fetch)
  4034. (uri (git-reference
  4035. (url "https://github.com/raxod502/apheleia")
  4036. (commit (string-append "v" version))))
  4037. (file-name (git-file-name name version))
  4038. (sha256
  4039. (base32 "04pls7zahy4jfkikv6fvd9vfpm4glhyanmmkx79hgi9pwdv966rf"))))
  4040. (build-system emacs-build-system)
  4041. (home-page "https://github.com/raxod502/apheleia")
  4042. (synopsis "Reformat buffer stably")
  4043. (description
  4044. "This package allows for a buffer to be reformatted without moving point,
  4045. so that running a formatting tool like @code{Prettier} or @code{Black} upon
  4046. saving won't move point back to the beginning of the buffer.")
  4047. (license license:gpl3+)))
  4048. (define-public emacs-git-timemachine
  4049. (package
  4050. (name "emacs-git-timemachine")
  4051. (version "4.11")
  4052. (source
  4053. (origin
  4054. (method git-fetch)
  4055. (uri (git-reference
  4056. (url "https://gitlab.com/pidu/git-timemachine.git")
  4057. (commit version)))
  4058. (file-name (git-file-name name version))
  4059. (sha256
  4060. (base32
  4061. "1pz4l1xnq6s67w5yq9107vm8dg7rqf8n9dmbn90jys97c722g70n"))))
  4062. (build-system emacs-build-system)
  4063. (propagated-inputs
  4064. `(("emacs-transient" ,emacs-transient)))
  4065. (home-page "https://gitlab.com/pidu/git-timemachine")
  4066. (synopsis "Step through historic versions of Git-controlled files")
  4067. (description "This package enables you to step through historic versions
  4068. of files under Git version control from within Emacs.")
  4069. (license license:gpl3+)))
  4070. (define-public emacs-minitest
  4071. (package
  4072. (name "emacs-minitest")
  4073. (version "0.9.2")
  4074. (source (origin
  4075. (method git-fetch)
  4076. (uri (git-reference
  4077. (url "https://github.com/arthurnn/minitest-emacs")
  4078. (commit (string-append "v" version))))
  4079. (file-name (git-file-name name version))
  4080. (sha256
  4081. (base32
  4082. "0d8kg68yy5x1y3ivj43vzcakb3gii6bh8jm40g4sah5f53bbrs16"))))
  4083. (build-system emacs-build-system)
  4084. (arguments
  4085. '(#:include (cons "^snippets\\/minitest-mode\\/" %default-include)
  4086. #:exclude (delete "^[^/]*tests?\\.el$" %default-exclude)))
  4087. (propagated-inputs
  4088. `(("emacs-dash" ,emacs-dash)
  4089. ("emacs-f" ,emacs-f)))
  4090. (home-page "https://github.com/arthurnn/minitest-emacs")
  4091. (synopsis "Emacs minitest mode")
  4092. (description
  4093. "The minitest mode provides commands to run the tests for the current
  4094. file or line, as well as rerunning the previous tests, or all the tests for a
  4095. project.
  4096. This package also includes relevant snippets for yasnippet.")
  4097. (license license:expat)))
  4098. (define-public emacs-gdscript-mode
  4099. (package
  4100. (name "emacs-gdscript-mode")
  4101. (version "1.4.0")
  4102. (source
  4103. (origin
  4104. (method git-fetch)
  4105. (uri (git-reference
  4106. (url "https://github.com/godotengine/emacs-gdscript-mode")
  4107. (commit version)))
  4108. (file-name (git-file-name name version))
  4109. (sha256
  4110. (base32 "09q0himrz7a6xgz0jmcl85qc5xhk5fwi6d2vw1n8qaiavm96ksdy"))))
  4111. (build-system emacs-build-system)
  4112. (home-page "https://github.com/godotengine/emacs-gdscript-mode")
  4113. (synopsis "GDScript support and syntax highlighting in Emacs")
  4114. (description
  4115. "This package adds support for the GDScript programming language from the
  4116. Godot game engine in Emacs. It features all the essentials, e.g., syntax
  4117. highlighting, code folding, indentation, automatic pairing, auto-completion,
  4118. and code formatting.")
  4119. (license license:gpl3+)))
  4120. (define-public emacs-el-mock
  4121. (package
  4122. (name "emacs-el-mock")
  4123. (version "1.25.1")
  4124. (source
  4125. (origin
  4126. (method git-fetch)
  4127. (uri (git-reference
  4128. (url "https://github.com/rejeep/el-mock.el")
  4129. (commit (string-append "v" version))))
  4130. (file-name (git-file-name name version))
  4131. (sha256
  4132. (base32 "13mv1rhgkwiww2wh5w926jz7idppp492wir1vdl245c5x50dh4f7"))))
  4133. (build-system emacs-build-system)
  4134. (home-page "https://github.com/rejeep/el-mock.el")
  4135. (synopsis "Tiny mock and stub framework in Emacs Lisp")
  4136. (description
  4137. "Emacs Lisp Mock is a library for mocking and stubbing using readable
  4138. syntax. Most commonly Emacs Lisp Mock is used in conjunction with Emacs Lisp
  4139. Expectations, but it can be used in other contexts.")
  4140. (license license:gpl3+)))
  4141. (define-public emacs-ecukes
  4142. (package
  4143. (name "emacs-ecukes")
  4144. (version "0.6.17")
  4145. (home-page "https://github.com/ecukes/ecukes")
  4146. (source
  4147. (origin
  4148. (method git-fetch)
  4149. (uri (git-reference
  4150. (url home-page)
  4151. (commit (string-append "v" version))))
  4152. (file-name (git-file-name name version))
  4153. (sha256
  4154. (base32 "1isscwz4h3nx62lwfrj899lp2yc27zk1ndgr441d848495ccmshn"))))
  4155. (build-system emacs-build-system)
  4156. (arguments
  4157. `(#:include (cons* "^feature/" "^reporters/" "^templates/" %default-include)))
  4158. (propagated-inputs
  4159. `(("emacs-ansi" ,emacs-ansi)
  4160. ("emacs-commander" ,emacs-commander)
  4161. ("emacs-dash" ,emacs-dash)
  4162. ("emacs-espuds" ,emacs-espuds)
  4163. ("emacs-f" ,emacs-f)
  4164. ("emacs-s" ,emacs-s)))
  4165. (synopsis "Cucumber for Emacs")
  4166. (description
  4167. "This package provides Ecukes, a Cucumber-inspired integration testing
  4168. tool for Emacs. Ecukes is not a complete clone of Cucumber and is not
  4169. intended to be.")
  4170. (license license:gpl3+)))
  4171. (define-public emacs-espuds
  4172. (package
  4173. (name "emacs-espuds")
  4174. (version "0.3.3")
  4175. (source
  4176. (origin
  4177. (method git-fetch)
  4178. (uri (git-reference
  4179. (url "https://github.com/ecukes/espuds")
  4180. (commit (string-append "v" version))))
  4181. (file-name (git-file-name name version))
  4182. (sha256
  4183. (base32 "16r4j27j9yfdiy841w9q5ykkc6n3wrm7hvfacagb32mydk821ijg"))))
  4184. (build-system emacs-build-system)
  4185. (propagated-inputs
  4186. `(("emacs-s" ,emacs-s)
  4187. ("emacs-dash" ,emacs-dash)
  4188. ("emacs-f" ,emacs-f)))
  4189. (home-page "https://github.com/ecukes/espuds")
  4190. (synopsis "Common step definitions for Ecukes")
  4191. (description "Espuds is a collection of the most commonly used step
  4192. definitions for testing with the Ecukes framework.")
  4193. (license license:gpl3+)))
  4194. (define-public emacs-spark
  4195. (let ((version "20160503") ; no proper tag, use date of commit
  4196. (commit "0bf148c3ede3b31d56fd75f347cdd0b0eae60025")
  4197. (revision "1"))
  4198. (package
  4199. (name "emacs-spark")
  4200. (version (git-version version revision commit))
  4201. (source
  4202. (origin
  4203. (method git-fetch)
  4204. (uri (git-reference
  4205. (url "https://github.com/alvinfrancis/spark")
  4206. (commit commit)))
  4207. (file-name (git-file-name name version))
  4208. (sha256
  4209. (base32
  4210. "1ykqr86j17mi95s08d9fp02d7ych1331b04dcqxzxnmpkhwngyj1"))))
  4211. (build-system emacs-build-system)
  4212. (home-page "https://github.com/alvinfrancis/spark")
  4213. (synopsis "Sparkline generation library for Emacs Lisp")
  4214. (description "@code{emacs-spark} is a sparkline generation library for
  4215. Emacs Lisp. It generates a sparkline string given a list of numbers. It is a
  4216. port of @code{cl-spark} to Emacs Lisp.")
  4217. (license license:expat))))
  4218. (define-public emacs-es-mode
  4219. (package
  4220. (name "emacs-es-mode")
  4221. (version "4.3.0")
  4222. (source
  4223. (origin
  4224. (method git-fetch)
  4225. (uri (git-reference
  4226. (url "https://github.com/dakrone/es-mode")
  4227. (commit version)))
  4228. (file-name (git-file-name name version))
  4229. (sha256
  4230. (base32 "1qhfnd5anp5qrmravv7ks5ix763xnki2f5jwcyj70qyxwr0l60cg"))))
  4231. (build-system emacs-build-system)
  4232. (propagated-inputs
  4233. ;; The version of org in Emacs 24.5 is not sufficient, and causes tables
  4234. ;; to be rendered incorrectly
  4235. `(("emacs-dash" ,emacs-dash)
  4236. ("emacs-org" ,emacs-org)
  4237. ("emacs-spark" ,emacs-spark)))
  4238. (home-page "https://github.com/dakrone/es-mode")
  4239. (synopsis "Major mode for editing Elasticsearch queries")
  4240. (description "@code{es-mode} includes highlighting, completion and
  4241. indentation support for Elasticsearch queries. Also supported are
  4242. @code{es-mode} blocks in @code{org-mode}, for which the results of queries can
  4243. be processed through @code{jq}, or in the case of aggregations, can be
  4244. rendered in to a table. In addition, there is an @code{es-command-center}
  4245. mode, which displays information about Elasticsearch clusters.")
  4246. (license license:gpl3+)))
  4247. (define-public emacs-expand-region
  4248. (package
  4249. (name "emacs-expand-region")
  4250. (version "0.11.0")
  4251. (source
  4252. (origin
  4253. (method git-fetch)
  4254. (uri (git-reference
  4255. (url "https://github.com/magnars/expand-region.el")
  4256. (commit version)))
  4257. (file-name (git-file-name name version))
  4258. (sha256
  4259. (base32 "0h40dhc3kn8fq86xnwi5lz7ql8my8737y7wkqr897p15y90swr35"))))
  4260. (build-system emacs-build-system)
  4261. (home-page "https://github.com/magnars/expand-region.el")
  4262. (synopsis "Increase selected region by semantic units")
  4263. (description
  4264. "Expand region increases the selected region by semantic units. Just
  4265. keep pressing the key until it selects what you want. There's also
  4266. @code{er/contract-region} if you expand too far.")
  4267. (license license:gpl3+)))
  4268. (define-public emacs-explain-pause-mode
  4269. (let ((commit "2356c8c3639cbeeb9751744dbe737267849b4b51")
  4270. (revision "0"))
  4271. (package
  4272. (name "emacs-explain-pause-mode")
  4273. (version (git-version "0.1" revision commit))
  4274. (source (origin
  4275. (method git-fetch)
  4276. (uri (git-reference
  4277. (url "https://github.com/lastquestion/explain-pause-mode")
  4278. (commit commit)))
  4279. (file-name (git-file-name name version))
  4280. (sha256
  4281. (base32
  4282. "0frnfwqal9mrnrz6q4v7vcai26ahaw81894arff1yjw372pfgv7v"))))
  4283. (build-system emacs-build-system)
  4284. (native-inputs
  4285. `(("emacs" ,emacs-buttercup)))
  4286. (arguments
  4287. '(#:tests? #t
  4288. ;; Don't run case-tests as they will fail to create sockets because
  4289. ;; the path is too long
  4290. #:test-command '("make" "byte-compile" "unit-tests")
  4291. ;; Parallel testing will cause the tests to run before
  4292. ;; byte-compilation is finished
  4293. #:parallel-tests? #f))
  4294. (home-page "https://github.com/lastquestion/explain-pause-mode")
  4295. (synopsis "Top-like interface to determine why Emacs paused")
  4296. (description
  4297. "This package monitors Emacs function calls and records their execution
  4298. time. This information can be reviewed to determine what is causing the user
  4299. interface to pause.")
  4300. (license license:gpl3+))))
  4301. (define-public emacs-filladapt
  4302. (package
  4303. (name "emacs-filladapt")
  4304. (version "2.12.2")
  4305. (source
  4306. (origin
  4307. (method url-fetch)
  4308. (uri (string-append
  4309. "https://elpa.gnu.org/packages/filladapt-"
  4310. version ".el"))
  4311. (sha256
  4312. (base32
  4313. "1cxyxfdjg1dsmn1jrl6b7xy03xr42fb6vyggh27s4dk417ils6yg"))))
  4314. (build-system emacs-build-system)
  4315. (home-page "http://elpa.gnu.org/packages/filladapt.html")
  4316. (synopsis "Adaptive fill for Emacs")
  4317. (description
  4318. "This package provides funtions which enhance the default behavior of
  4319. Emacs' Auto Fill mode and the commands @code{fill-paragraph},
  4320. @code{lisp-fill-paragraph}, @code{fill-region-as-paragraph}, and
  4321. @code{fill-region}.
  4322. The chief improvement is that the beginning of a line to be
  4323. filled is examined and, based on information gathered, an
  4324. appropriate value for fill-prefix is constructed. Also the
  4325. boundaries of the current paragraph are located. This occurs
  4326. only if the fill prefix is not already non-nil.
  4327. The net result of this is that blurbs of text that are offset
  4328. from left margin by asterisks, dashes, and/or spaces, numbered
  4329. examples, included text from USENET news articles, etc. are
  4330. generally filled correctly with no fuss.")
  4331. (license license:gpl3+)))
  4332. (define-public emacs-fill-column-indicator
  4333. (package
  4334. (name "emacs-fill-column-indicator")
  4335. (version "1.90")
  4336. (source
  4337. (origin
  4338. (method git-fetch)
  4339. (uri (git-reference
  4340. (url "https://github.com/alpaker/Fill-Column-Indicator")
  4341. (commit version)))
  4342. (file-name (git-file-name name version))
  4343. (sha256
  4344. (base32 "0snjznxdwwfdgccdcvrnk467416r244r2r5qcm2sga8l0ha9gw9z"))))
  4345. (build-system emacs-build-system)
  4346. (home-page "https://www.emacswiki.org/emacs/FillColumnIndicator")
  4347. (synopsis "Graphically indicate the fill column")
  4348. (description
  4349. "Fill-column-indicator graphically indicates the location of the fill
  4350. column by drawing a thin line down the length of the editing window.")
  4351. (license license:gpl3+)))
  4352. (define-public emacs-grep-a-lot
  4353. (package
  4354. (name "emacs-grep-a-lot")
  4355. (version "1.0.7")
  4356. (source
  4357. (origin
  4358. (method git-fetch)
  4359. (uri (git-reference
  4360. (url "https://github.com/ZungBang/emacs-grep-a-lot")
  4361. (commit "9f9f645b9e308a0d887b66864ff97d0fca1ba4ad")))
  4362. (file-name (git-file-name name version))
  4363. (sha256
  4364. (base32 "1f8262mrlinzgnn4m49hbj1hm3c1mvzza24py4b37sasn49546lw"))))
  4365. (build-system emacs-build-system)
  4366. (home-page "https://github.com/ZungBang/emacs-grep-a-lot")
  4367. (synopsis "Enables multiple grep buffers in Emacs")
  4368. (description
  4369. "This Emacs package allows managing multiple grep buffers.")
  4370. (license license:gpl3+)))
  4371. (define-public emacs-fd
  4372. (package
  4373. (name "emacs-fd")
  4374. (version "0.1.0")
  4375. (source (origin
  4376. (method git-fetch)
  4377. (uri (git-reference
  4378. (url "https://github.com/yqrashawn/fd-dired")
  4379. (commit version)))
  4380. (file-name (git-file-name name version))
  4381. (sha256
  4382. (base32
  4383. "1fas0fpvym2lyzybwm44gly9jz6a2fpp72yxnwfbqqjkfgk9910y"))))
  4384. (build-system emacs-build-system)
  4385. (home-page "https://github.com/yqrashawn/fd-dired")
  4386. (synopsis "Dired-mode interface for fd result")
  4387. (description "This package provides a dired-mode interface for fd's
  4388. result.")
  4389. (license license:gpl3+)))
  4390. (define-public emacs-ripgrep
  4391. (package
  4392. (name "emacs-ripgrep")
  4393. (version "0.4.0")
  4394. (source
  4395. (origin
  4396. (method git-fetch)
  4397. (uri (git-reference
  4398. (url "https://github.com/nlamirault/ripgrep.el")
  4399. (commit version)))
  4400. (file-name (git-file-name name version))
  4401. (sha256
  4402. (base32 "1a5rdpmvsgsjlc9sywism9pq7jd6n9qbcdsvpbfkq1npwhpifkbj"))))
  4403. (build-system emacs-build-system)
  4404. (arguments
  4405. `(#:phases
  4406. (modify-phases %standard-phases
  4407. ;; The repository contains both ripgrep and projectile-ripgrep
  4408. ;; packages. The latter has been merged into projectile itself.
  4409. (add-after 'unpack 'delete-projectile-ripgrep
  4410. (lambda _
  4411. (delete-file "projectile-ripgrep.el"))))))
  4412. (propagated-inputs
  4413. `(("ripgrep" ,ripgrep)))
  4414. (home-page "https://github.com/nlamirault/ripgrep.el")
  4415. (synopsis "Search using ripgrep from inside Emacs")
  4416. (description "@code{ripgrep} is an Emacs search package based on the
  4417. @command{ripgrep} command line tool.")
  4418. (license license:gpl2+)))
  4419. (define-public emacs-rg
  4420. (package
  4421. (name "emacs-rg")
  4422. (version "2.1.0")
  4423. (source
  4424. (origin
  4425. (method git-fetch)
  4426. (uri (git-reference
  4427. (url "https://github.com/dajva/rg.el")
  4428. (commit version)))
  4429. (file-name (git-file-name name version))
  4430. (sha256
  4431. (base32 "17f11znjyfnxs5y0zafcx9aa055wkw3igzk9gy0cipnyp42yb4v7"))))
  4432. (build-system emacs-build-system)
  4433. (arguments
  4434. '(#:phases
  4435. (modify-phases %standard-phases
  4436. (add-after 'unpack 'remove-rg-path
  4437. ;; Remove the path to ripgrep so that it works on remote systems.
  4438. (lambda _
  4439. (let ((file "rg.el"))
  4440. (chmod file #o644)
  4441. (emacs-substitute-sexps file
  4442. ("(defcustom rg-executable" "rg"))))))))
  4443. (propagated-inputs
  4444. `(("emacs-s" ,emacs-s)
  4445. ("emacs-transient" ,emacs-transient)
  4446. ("emacs-wgrep" ,emacs-wgrep)
  4447. ("ripgrep" ,ripgrep)))
  4448. (home-page "https://rgel.readthedocs.io/en/latest/")
  4449. (synopsis "Search tool based on @code{ripgrep}")
  4450. (description
  4451. "@code{rg} is an Emacs search package based on the @code{ripgrep} command
  4452. line tool. It allows one to interactively search based on the editing context
  4453. then refine or modify the search results.")
  4454. (license license:gpl3+)))
  4455. (define-public emacs-inf-ruby
  4456. (package
  4457. (name "emacs-inf-ruby")
  4458. (version "2.5.2")
  4459. (source
  4460. (origin
  4461. (method git-fetch)
  4462. (uri (git-reference
  4463. (url "https://github.com/nonsequitur/inf-ruby")
  4464. (commit version)))
  4465. (file-name (git-file-name name version))
  4466. (sha256
  4467. (base32 "0a1hhvfbl6mq8rjsi77fg9fh5a91hi5scjrg9rjqc5ffbql67y0v"))))
  4468. (build-system emacs-build-system)
  4469. (home-page "https://github.com/nonsequitur/inf-ruby")
  4470. (synopsis "Provides a REPL buffer connected to a Ruby subprocess in Emacs")
  4471. (description
  4472. "@code{inf-ruby} provides a Read Eval Print Loop (REPL) buffer, allowing
  4473. for easy interaction with a ruby subprocess. Features include support for
  4474. detecting specific uses of Ruby, e.g. when using rails, and using a
  4475. appropriate console.")
  4476. (license license:gpl3+)))
  4477. (define-public emacs-znc
  4478. (package
  4479. (name "emacs-znc")
  4480. (version "0.4")
  4481. (source
  4482. (origin
  4483. (method git-fetch)
  4484. (uri (git-reference
  4485. (url "https://github.com/sshirokov/ZNC.el")
  4486. (commit version)))
  4487. (file-name (git-file-name name version))
  4488. (sha256
  4489. (base32 "1ran86ycnays9s23wk3iczqqgnpbyx0lijiarx65am3jc1yzg5ia"))))
  4490. (build-system emacs-build-system)
  4491. (home-page "https://github.com/sshirokov/ZNC.el")
  4492. (synopsis "Make ERC and ZNC get along better")
  4493. (description
  4494. "This is a thin wrapper around @code{erc} that enables one to use the ZNC
  4495. IRC bouncer with ERC.")
  4496. (license license:expat)))
  4497. (define-public emacs-erc-status-sidebar
  4498. (let ((commit "ea4189a1dbfe60117359c36e681ad7c389e2968c")
  4499. (revision "1"))
  4500. (package
  4501. (name "emacs-erc-status-sidebar")
  4502. (version (git-version "0.1" revision commit))
  4503. (source
  4504. (origin
  4505. (method git-fetch)
  4506. (uri (git-reference
  4507. (url "https://github.com/drewbarbs/erc-status-sidebar")
  4508. (commit commit)))
  4509. (file-name (git-file-name name version))
  4510. (sha256
  4511. (base32 "1hwlhzgx03z8891sblz56zdp8zj0izh72kxykgcnz5rrkyc3vfi3"))))
  4512. (build-system emacs-build-system)
  4513. (home-page "https://github.com/drewbarbs/erc-status-sidebar")
  4514. (synopsis "Hexchat-like activity overview for ERC channels")
  4515. (description
  4516. "This package provides a Hexchat-like status bar for joined channels in
  4517. ERC, an Emacs client for IRC (Internet Relay Chat). It relies on the
  4518. @code{erc-track} module, and displays all the same information
  4519. @code{erc-track} does in the mode line, but in an alternative format.")
  4520. (license license:gpl3+))))
  4521. (define-public emacs-shut-up
  4522. (package
  4523. (name "emacs-shut-up")
  4524. (version "0.3.3")
  4525. (source
  4526. (origin
  4527. (method git-fetch)
  4528. (uri (git-reference
  4529. (url "https://github.com/cask/shut-up")
  4530. (commit (string-append "v" version))))
  4531. (file-name (git-file-name name version))
  4532. (sha256
  4533. (base32 "1bnmrwrhra6cpc3jjgwwzrydj5ps7q2dlkh2ag4j7rkyv4dlk351"))))
  4534. (build-system emacs-build-system)
  4535. (home-page "https://github.com/cask/shut-up")
  4536. (synopsis "Silence Emacs")
  4537. (description "This package silences most output of Emacs when running an
  4538. Emacs shell script.")
  4539. (license license:expat)))
  4540. (define-public emacs-undercover
  4541. (package
  4542. (name "emacs-undercover")
  4543. (version "0.8.1")
  4544. (source
  4545. (origin
  4546. (method git-fetch)
  4547. (uri (git-reference
  4548. (url "https://github.com/sviridov/undercover.el")
  4549. (commit (string-append "v" version))))
  4550. (file-name (git-file-name name version))
  4551. (sha256
  4552. (base32 "0qmvyy3xg5qi7ws8zcs934d6afsappr1a6pgfp796xpa9vdr4y6j"))))
  4553. (build-system emacs-build-system)
  4554. (propagated-inputs
  4555. `(("emacs-dash" ,emacs-dash)
  4556. ("emacs-shut-up" ,emacs-shut-up)))
  4557. (home-page "https://github.com/sviridov/undercover.el")
  4558. (synopsis "Test coverage library for Emacs Lisp")
  4559. (description
  4560. "Undercover is a test coverage library for software written in Emacs
  4561. Lisp.")
  4562. (license license:expat)))
  4563. (define-public emacs-paren-face
  4564. (package
  4565. (name "emacs-paren-face")
  4566. (version "1.0.7")
  4567. (source
  4568. (origin
  4569. (method git-fetch)
  4570. (uri (git-reference
  4571. (url "https://github.com/tarsius/paren-face")
  4572. (commit version)))
  4573. (file-name (git-file-name name version))
  4574. (sha256
  4575. (base32 "1zyrrrr8rmksr3rfsv96psk1z15wbbx1bvcfp3hf5ciyc2n79000"))))
  4576. (build-system emacs-build-system)
  4577. (home-page "https://github.com/tarsius/paren-face")
  4578. (synopsis "Face for parentheses in Lisp modes")
  4579. (description
  4580. "This library defines a face named @code{parenthesis} used just for
  4581. parentheses. The intended purpose of this face is to make parentheses less
  4582. visible in Lisp code by dimming them. Lispers probably don't need to be
  4583. constantly made aware of the existence of the parentheses. Dimming them might
  4584. be even more useful for people new to Lisp who have not yet learned to
  4585. subconsciously blend out the parentheses.")
  4586. (license license:gpl3+)))
  4587. (define-public emacs-page-break-lines
  4588. (package
  4589. (name "emacs-page-break-lines")
  4590. (version "0.14")
  4591. (source
  4592. (origin
  4593. (method git-fetch)
  4594. (uri (git-reference
  4595. (url "https://github.com/purcell/page-break-lines")
  4596. (commit version)))
  4597. (file-name (git-file-name name version))
  4598. (sha256
  4599. (base32 "0plfyzmh93x1r3zgfjyx23cc7vi1pcniipclzlms1iwfkl7zsqvp"))))
  4600. (build-system emacs-build-system)
  4601. (home-page "https://github.com/purcell/page-break-lines")
  4602. (synopsis "Display page breaks as tidy horizontal lines")
  4603. (description
  4604. "This library provides a global mode which displays form feed characters
  4605. as horizontal rules.")
  4606. (license license:gpl3+)))
  4607. (define-public emacs-simple-httpd
  4608. (package
  4609. (name "emacs-simple-httpd")
  4610. (version "1.5.1")
  4611. (source
  4612. (origin
  4613. (method git-fetch)
  4614. (uri (git-reference
  4615. (url "https://github.com/skeeto/emacs-web-server")
  4616. (commit version)))
  4617. (file-name (git-file-name name version))
  4618. (sha256
  4619. (base32 "0dpn92rg813c4pq7a1vzj3znyxzp2lmvxqz6pzcqi0l2xn5r3wvb"))))
  4620. (build-system emacs-build-system)
  4621. (home-page "https://github.com/skeeto/emacs-web-server")
  4622. (synopsis "HTTP server in pure Emacs Lisp")
  4623. (description
  4624. "This package provides a simple HTTP server written in Emacs Lisp to
  4625. serve files and directory listings.")
  4626. (license license:unlicense)))
  4627. (define-public emacs-skewer-mode
  4628. (package
  4629. (name "emacs-skewer-mode")
  4630. (version "1.8.0")
  4631. (source
  4632. (origin
  4633. (method git-fetch)
  4634. (uri (git-reference
  4635. (url "https://github.com/skeeto/skewer-mode")
  4636. (commit version)))
  4637. (file-name (git-file-name name version))
  4638. (sha256
  4639. (base32 "1ha7jl7776pk1bki5zj2q0jy66450mn8xr3aqjc0m9kj3gc9qxgw"))))
  4640. (build-system emacs-build-system)
  4641. (propagated-inputs
  4642. `(("emacs-simple-httpd" ,emacs-simple-httpd)
  4643. ("emacs-js2-mode" ,emacs-js2-mode)))
  4644. (arguments '(#:include '("\\.el$" "\\.js$" "\\.html$")))
  4645. (home-page "https://github.com/skeeto/skewer-mode")
  4646. (synopsis "Live web development in Emacs")
  4647. (description
  4648. "Skewer-mode provides live interaction with JavaScript, CSS, and HTML in
  4649. a web browser. Expressions are sent on-the-fly from an editing buffer to be
  4650. evaluated in the browser, just like Emacs does with an inferior Lisp process
  4651. in Lisp modes.")
  4652. (license license:unlicense)))
  4653. (define-public emacs-litable
  4654. (let ((commit "b0278f3f8dcff424bfbdfdefb545b1fbff33206f"))
  4655. (package
  4656. (name "emacs-litable")
  4657. (version (git-version "0.1" "0" commit))
  4658. (source (origin
  4659. (method git-fetch)
  4660. (uri (git-reference
  4661. (url "https://github.com/Fuco1/litable")
  4662. (commit commit)))
  4663. (file-name (git-file-name name version))
  4664. (sha256
  4665. (base32
  4666. "0bny40hv9a024n01clxns351cs4j4ifhgcc7m4743xncqf612p7g"))))
  4667. (build-system emacs-build-system)
  4668. (propagated-inputs
  4669. `(("emacs-dash" ,emacs-dash)))
  4670. (home-page "https://github.com/Fuco1/litable/")
  4671. (synopsis "Dynamic evaluation replacement with Emacs")
  4672. (description "This package provides dynamic evaluation in Emacs.")
  4673. (license license:gpl3+))))
  4674. (define-public emacs-literate-elisp
  4675. (package
  4676. (name "emacs-literate-elisp")
  4677. (version "0.8")
  4678. (source (origin
  4679. (method git-fetch)
  4680. (uri (git-reference
  4681. (url "https://github.com/jingtaozf/literate-elisp")
  4682. (commit version)))
  4683. (file-name (git-file-name name version))
  4684. (sha256
  4685. (base32 "0i9468rh61l4xq918fgwk6li93lpm6zbn0lkpxr7pbvkgrl5xsr6"))))
  4686. (build-system emacs-build-system)
  4687. (home-page "https://github.com/jingtaozf/literate-elisp/tags")
  4688. (synopsis "Load Emacs Lisp code blocks from Org files")
  4689. (description
  4690. "Literate-Elisp is an Emacs lisp library to provide an easy way to use
  4691. literal programming in Emacs lisp. It extends the Emacs load mechanism so
  4692. Emacs can load Org files as Lisp source files directly.")
  4693. (license license:gpl3+)))
  4694. (define-public emacs-literate-calc-mode
  4695. (let ((commit "a50e897a816cb5580ad6ec867eeaae212e0e4798")
  4696. (revision "1"))
  4697. (package
  4698. (name "emacs-literate-calc-mode")
  4699. (version (git-version "0.1" revision commit))
  4700. (source
  4701. (origin
  4702. (method git-fetch)
  4703. (uri (git-reference
  4704. (url "https://github.com/sulami/literate-calc-mode.el")
  4705. (commit commit)))
  4706. (file-name (git-file-name name version))
  4707. (sha256
  4708. (base32 "0z6y5f1rj28lbr30m6g4a9l6ahs66whi8861g4cx9xzhs84nwv5g"))))
  4709. (build-system emacs-build-system)
  4710. (propagated-inputs
  4711. `(("emacs-s" ,emacs-s)))
  4712. (home-page "https://github.com/sulami/literate-calc-mode.el")
  4713. (synopsis "Literate programming for Emacs Calc")
  4714. (description
  4715. "This library provides literate programming for Calc. There is both
  4716. a major and a minor mode. The major mode does some basic syntax highlighting,
  4717. while the minor mode only evaluates all Calc statements while typing. In
  4718. particular, the minor mode works quite well with Org or Markdown modes, or
  4719. other markup language major modes.")
  4720. (license license:gpl3+))))
  4721. (define-public emacs-standard-dirs
  4722. (package
  4723. (name "emacs-standard-dirs")
  4724. (version "2.0.0")
  4725. (home-page "https://github.com/lafrenierejm/standard-dirs.el")
  4726. (source
  4727. (origin
  4728. (method git-fetch)
  4729. (uri (git-reference
  4730. (url home-page)
  4731. (commit version)))
  4732. (file-name (git-file-name name version))
  4733. (sha256
  4734. (base32 "0r814qcrhvx4qlx4sdzwdmrhiryslqclx0bnpp0qcrbx6g8qfl25"))))
  4735. (build-system emacs-build-system)
  4736. (propagated-inputs
  4737. `(("emacs-f" ,emacs-f)
  4738. ("emacs-s" ,emacs-s)))
  4739. (synopsis "Platform-specific paths for config, cache, and other data")
  4740. (description
  4741. "This package provides platform-specific paths for reading and writing
  4742. configuration, cache, and other data.")
  4743. (license license:gpl3+)))
  4744. (define-public emacs-string-inflection
  4745. (package
  4746. (name "emacs-string-inflection")
  4747. (version "1.0.15")
  4748. (source (origin
  4749. (method git-fetch)
  4750. (uri (git-reference
  4751. (url "https://github.com/akicho8/string-inflection")
  4752. (commit (string-append "v" version))))
  4753. (file-name (git-file-name name version))
  4754. (sha256
  4755. (base32
  4756. "194pd3g9ws72n3wy1b2pxgj3w20p1v8gn47gqg89mym9ps5hfjyv"))))
  4757. (build-system emacs-build-system)
  4758. (native-inputs
  4759. `(("ert-runner" ,emacs-ert-runner)))
  4760. (arguments
  4761. `(#:tests? #t
  4762. #:test-command '("ert-runner")))
  4763. (home-page "https://github.com/akicho8/string-inflection")
  4764. (synopsis "Convert symbol names between different naming conventions")
  4765. (description
  4766. "This Emacs package provides convenient methods for manipulating the
  4767. naming style of a symbol. It supports different naming conventions such as:
  4768. @enumerate
  4769. @item camel case
  4770. @item Pascal case
  4771. @item all upper case
  4772. @item lower case separated by underscore
  4773. @item etc...
  4774. @end enumerate\n")
  4775. (license license:gpl2+)))
  4776. (define-public emacs-stripe-buffer
  4777. (package
  4778. (name "emacs-stripe-buffer")
  4779. (version "0.2.5")
  4780. (source
  4781. (origin
  4782. (method git-fetch)
  4783. (uri (git-reference
  4784. (url "https://github.com/sabof/stripe-buffer")
  4785. (commit version)))
  4786. (file-name (git-file-name name version))
  4787. (sha256
  4788. (base32 "035ym1c1vzg6hjsnd258z4dkrfc11lj4c0y4gpgybhk54dq3w9dk"))))
  4789. (build-system emacs-build-system)
  4790. (home-page "https://github.com/sabof/stripe-buffer/")
  4791. (synopsis "Add stripes to list buffers")
  4792. (description
  4793. "This Emacs package adds faces to add stripes to list buffers and org
  4794. tables.")
  4795. (license license:gpl2+)))
  4796. (define-public emacs-org-beautify-theme
  4797. ;; Latest release (0.4) is not tagged, use commit hash.
  4798. (let ((commit "df6a1114fda313e1689363e196c8284fbe2a2738")
  4799. (revision "0"))
  4800. (package
  4801. (name "emacs-org-beautify-theme")
  4802. (version "0.4")
  4803. (source
  4804. (origin
  4805. (method git-fetch)
  4806. (uri (git-reference
  4807. (url "https://github.com/jonnay/org-beautify-theme")
  4808. (commit commit)))
  4809. (file-name (git-file-name name version))
  4810. (sha256
  4811. (base32 "1lkz7736swimad12khwbbqc4gxjydgr1k45p4mx03s25pv1w920y"))))
  4812. (build-system emacs-build-system)
  4813. (home-page "https://github.com/jonnay/org-beautify-theme")
  4814. (synopsis "Theme to make Org mode look more beautiful")
  4815. (description
  4816. "The theme adds padding between headings, increases the size of titles,
  4817. strike through completed TODO headings, changes Org blocks, changes Org check
  4818. boxes, and more.")
  4819. (license license:gpl3+))))
  4820. (define-public emacs-org-inline-pdf
  4821. (package
  4822. (name "emacs-org-inline-pdf")
  4823. (version "0.2")
  4824. (source (origin
  4825. (method git-fetch)
  4826. (uri (git-reference
  4827. (url "https://github.com/shg/org-inline-pdf.el")
  4828. (commit version)))
  4829. (file-name (git-file-name name version))
  4830. (sha256
  4831. (base32
  4832. "1qc92xvgxmnwjixk8bxwbc1l1jj0qk9dg73jyaip6lk4g0wjk6xf"))))
  4833. (build-system emacs-build-system)
  4834. (inputs
  4835. `(("pdf2svg" ,pdf2svg)))
  4836. (arguments
  4837. `(#:phases
  4838. (modify-phases %standard-phases
  4839. (add-after 'unpack 'patch-exec-paths
  4840. (lambda* (#:key inputs #:allow-other-keys)
  4841. (let ((pdf2svg (assoc-ref inputs "pdf2svg")))
  4842. (substitute* "org-inline-pdf.el"
  4843. (("\"pdf2svg\"") (string-append "\"" pdf2svg "/bin/pdf2svg\"")))))))))
  4844. (home-page "https://github.com/shg/org-inline-pdf.el")
  4845. (synopsis "Inline PDF previewing for Org")
  4846. (description "This package provides a minor mode that enables
  4847. inline PDF preview in Org buffers by using pdf2svg.")
  4848. (license license:gpl3+)))
  4849. (define-public emacs-org-rich-yank
  4850. (package
  4851. (name "emacs-org-rich-yank")
  4852. (version "0.2.1")
  4853. (source
  4854. (origin
  4855. (method git-fetch)
  4856. (uri (git-reference
  4857. (url "https://github.com/unhammer/org-rich-yank")
  4858. (commit (string-append "v" version))))
  4859. (file-name (git-file-name name version))
  4860. (sha256
  4861. (base32 "0gxb0fnh5gxjmld0hnk5hli0cvdd8gjd27m30bk2b80kwldxlq1z"))))
  4862. (build-system emacs-build-system)
  4863. (home-page "https://github.com/unhammer/org-rich-yank")
  4864. (synopsis "Automatically surround source code pasted into Org with
  4865. @code{#+BEGIN_SRC} blocks")
  4866. (description
  4867. "This package provides a utility function for Org buffers that makes a
  4868. @code{_SRC} block with the appropriate language annotation for code that has
  4869. been copied from an Emacs major mode.")
  4870. (license license:gpl2+)))
  4871. (define-public emacs-org-fancy-priorities
  4872. (let ((commit "819bb993b71e7253cefef7047306ab4e0f9d0a86")
  4873. (revision "1"))
  4874. (package
  4875. (name "emacs-org-fancy-priorities")
  4876. (version (git-version "1.1" revision commit))
  4877. (source
  4878. (origin
  4879. (method git-fetch)
  4880. (uri (git-reference
  4881. (url "https://github.com/harrybournis/org-fancy-priorities.git")
  4882. (commit commit)))
  4883. (file-name (git-file-name name version))
  4884. (sha256
  4885. (base32
  4886. "13cyzlx0415i953prq6ch7r5iy23c1pz116bdxi5yqags4igh4wv"))))
  4887. (build-system emacs-build-system)
  4888. (home-page "https://github.com/harrybournis/org-fancy-priorities")
  4889. (synopsis "Display org priorities as custom strings")
  4890. (description
  4891. "This package provides a minor mode that displays Org priorities as
  4892. custom strings. This mode does not change your files in any way, it only
  4893. displays the priority part of a heading as your preferred string value.")
  4894. (license license:expat))))
  4895. (define-public emacs-org-fragtog
  4896. (package
  4897. (name "emacs-org-fragtog")
  4898. (version "0.4.0")
  4899. (source
  4900. (origin
  4901. (method git-fetch)
  4902. (uri (git-reference
  4903. (url "https://github.com/io12/org-fragtog.git")
  4904. (commit version)))
  4905. (file-name (git-file-name name version))
  4906. (sha256
  4907. (base32 "0ra4sfy48p8pm1c7h8wlmbl68r4s0f4qc49xapvs550pm4mf3hiq"))))
  4908. (build-system emacs-build-system)
  4909. (propagated-inputs
  4910. `(("emacs-org" ,emacs-org)))
  4911. (home-page "https://github.com/io12/org-fragtog")
  4912. (synopsis "Toggle Org mode LaTeX fragments preview at cursor")
  4913. (description
  4914. "Org mode supports inline image previews of LaTeX fragments. This
  4915. package automates this, so fragment previews are disabled for editing when
  4916. your cursor steps onto them, and re-enabled when the cursor leaves.")
  4917. (license license:gpl3+)))
  4918. (define-public emacs-ob-erlang
  4919. (let ((revision "1")
  4920. (commit "a029c23902b4ad73b84f262a7fc5b98d87b63dfd"))
  4921. (package
  4922. (name "emacs-ob-erlang")
  4923. (version (git-version "20210321" revision commit))
  4924. (source (origin
  4925. (method git-fetch)
  4926. (uri (git-reference
  4927. (url "https://github.com/xfwduke/ob-erlang")
  4928. (commit commit)))
  4929. (file-name (git-file-name name version))
  4930. (sha256
  4931. (base32
  4932. "1dlb9qgmijff4giglwb358g5zzyjbnay0wkr5spks1bawvyxpiyl"))))
  4933. (build-system emacs-build-system)
  4934. (home-page "https://github.com/xfwduke/ob-erlang/")
  4935. (synopsis "Org-babel support for Erlang")
  4936. (description "This package adds support for working with Erlang code
  4937. blocks with @code{org-babel} in @code{org-mode}.")
  4938. (license license:gpl3+))))
  4939. (define-public emacs-ob-restclient
  4940. (let ((commit "f7449b2068498fe9d8ab9589e0a638148861533f"))
  4941. (package
  4942. (name "emacs-ob-restclient")
  4943. (version (git-version "0.02" "2" commit))
  4944. (source
  4945. (origin
  4946. (method git-fetch)
  4947. (uri (git-reference
  4948. (url "https://github.com/alf/ob-restclient.el")
  4949. (commit commit)))
  4950. (file-name (git-file-name name version))
  4951. (sha256
  4952. (base32 "0s3931w9ab3yfml2pmq71rw21yf6hpg7m3vihxyy3vs6zli1cvmq"))))
  4953. (propagated-inputs
  4954. `(("emacs-restclient" ,emacs-restclient)))
  4955. (build-system emacs-build-system)
  4956. (home-page "https://github.com/alf/ob-restclient.el")
  4957. (synopsis "Org-babel functionality for @code{restclient-mode}")
  4958. (description
  4959. "This package integrates @code{restclient-mode} with Org.")
  4960. (license license:gpl3+))))
  4961. (define-public emacs-org-now
  4962. (let ((commit "8f6b277a73f1c66e58ccb4b7f40d406851befc91"))
  4963. (package
  4964. (name "emacs-org-now")
  4965. (version (git-version "0.1-pre" "1" commit))
  4966. (source
  4967. (origin
  4968. (method git-fetch)
  4969. (uri (git-reference
  4970. (url "https://github.com/alphapapa/org-now")
  4971. (commit commit)))
  4972. (file-name (git-file-name name version))
  4973. (sha256
  4974. (base32 "117zzkryznznk6h4i1jqzdn888nl019xrgxm2gza0lndx8dxsg2c"))))
  4975. (propagated-inputs
  4976. `(("emacs-dash" ,emacs-dash)))
  4977. (build-system emacs-build-system)
  4978. (home-page "https://github.com/alphapapa/org-now")
  4979. (synopsis "Show current Org tasks in a sidebar")
  4980. (description
  4981. "This package provides commands to show Org headings in a sidebar
  4982. window while working on them. After defining one heading as the \"now\"
  4983. heading, other headings can be refiled to it with one command, and back to
  4984. their original location with another.")
  4985. (license license:gpl3+))))
  4986. (define-public emacs-rich-minority
  4987. (package
  4988. (name "emacs-rich-minority")
  4989. (version "1.0.3")
  4990. (source
  4991. (origin
  4992. (method git-fetch)
  4993. (uri (git-reference
  4994. (url "https://github.com/Malabarba/rich-minority")
  4995. (commit version)))
  4996. (file-name (git-file-name name version))
  4997. (sha256
  4998. (base32
  4999. "1kn7c9qr9ykj68iqffzzmjsr6aazwac8cxb7j960sjb282rq0yyj"))))
  5000. (build-system emacs-build-system)
  5001. (home-page "https://github.com/Malabarba/rich-minority")
  5002. (synopsis "Clean-up and beautify the list of minor modes")
  5003. (description
  5004. "This Emacs package hides and/or highlights minor modes in the
  5005. mode-line.")
  5006. (license license:gpl2+)))
  5007. (define-public emacs-robe
  5008. (package
  5009. (name "emacs-robe")
  5010. (version "0.8.3")
  5011. (source
  5012. (origin
  5013. (method git-fetch)
  5014. (uri (git-reference
  5015. (url "https://github.com/dgutov/robe")
  5016. (commit version)))
  5017. (file-name (git-file-name name version))
  5018. (sha256
  5019. (base32 "1xbj7wi389n6pxfvxrakvhylkdlqg8ll9ad2zmxggcchygwah6nl"))))
  5020. (build-system emacs-build-system)
  5021. (arguments
  5022. '(#:include (cons "^lib\\/" %default-include)))
  5023. (propagated-inputs
  5024. `(("emacs-inf-ruby" ,emacs-inf-ruby)))
  5025. (home-page "https://github.com/dgutov/robe")
  5026. (synopsis "Ruby code assistance tool for Emacs")
  5027. (description
  5028. "Robe can provide information on loaded classes and modules in Ruby code,
  5029. as well as where methods are defined. This allows the user to jump to method
  5030. definitions, modules and classes, display method documentation and provide
  5031. method and constant name completion.")
  5032. (license license:gpl3+)))
  5033. (define-public emacs-robot-mode
  5034. (let ((commit "32846e7e80ae3471b7c07f9709dcaa4f9b9ed4a0")
  5035. (revision "1"))
  5036. (package
  5037. (name "emacs-robot-mode")
  5038. (version (git-version "0.0.0" revision commit))
  5039. (source (origin
  5040. (method git-fetch)
  5041. (uri (git-reference
  5042. ;; A better maintained fork of robot-mode.
  5043. (url "https://github.com/jvalkeejarvi/robot-mode")
  5044. (commit commit)))
  5045. (file-name (git-file-name name version))
  5046. (sha256
  5047. (base32
  5048. "1i8wf7m0gml8zvvmlgppjzv78b432686p1qdbzgclc7qfcvzag0d"))))
  5049. (build-system emacs-build-system)
  5050. (propagated-inputs `(("emacs-s" ,emacs-s)))
  5051. (home-page "https://github.com/jvalkeejarvi/robot-mode")
  5052. (synopsis "Emacs mode for Robot Framework")
  5053. (description "This major mode facilitates editing Robot Framework source
  5054. files with features such as syntax highlighting, comments, finding keywords,
  5055. completing keywords and smart indentation.")
  5056. (license license:gpl3+))))
  5057. (define-public emacs-roguel-ike
  5058. (package
  5059. (name "emacs-roguel-ike")
  5060. (version "0.1.1")
  5061. (source
  5062. (origin
  5063. (method git-fetch)
  5064. (uri (git-reference
  5065. (url "https://github.com/stevenremot/roguel-ike")
  5066. (commit version)))
  5067. (file-name (git-file-name name version))
  5068. (sha256
  5069. (base32 "0rgv4y9aa5cc2ddz3y5z8d22xmr8kf5c60h0r3g8h91jmcw3rb4z"))))
  5070. (build-system emacs-build-system)
  5071. (propagated-inputs
  5072. `(("emacs-popup" ,emacs-popup)))
  5073. (arguments
  5074. `(#:include (cons* "^roguel-ike/" "^roguel-ike-lib/" %default-include)
  5075. #:phases
  5076. (modify-phases %standard-phases
  5077. (add-before 'check 'set-test-environment
  5078. (lambda _
  5079. (setenv "HOME" "/tmp")
  5080. #t)))))
  5081. (home-page "https://github.com/stevenremot/roguel-ike.git")
  5082. (synopsis "Coffee-break roguelike for Emacs")
  5083. (description
  5084. "Roguel-ike is an attempt to develop a coffee-break roguelike for
  5085. Emacs. The complete game would allow the player to create various characters
  5086. and to make them fulfill challenges like arena fight and short dungeon
  5087. explorations.")
  5088. (license license:gpl3+)))
  5089. (define-public emacs-rspec
  5090. (let ((commit "66ea7cc9699d6edc6115daa024818adbd85efc20")
  5091. (revision "1"))
  5092. (package
  5093. (name "emacs-rspec")
  5094. (version (git-version "1.11" revision commit))
  5095. (source
  5096. (origin
  5097. (method git-fetch)
  5098. (uri (git-reference
  5099. (url "https://github.com/pezra/rspec-mode")
  5100. (commit commit)))
  5101. (file-name (git-file-name name version))
  5102. (sha256
  5103. (base32 "0b11s8r0pi7ah54km4yg4fqff8wkk409d25qnlwm1l94pdwjd1c8"))))
  5104. (build-system emacs-build-system)
  5105. (arguments
  5106. `(#:include (cons "^snippets\\/rspec-mode\\/" %default-include)
  5107. #:tests? #t
  5108. #:test-command '("make" "test")))
  5109. (home-page "https://github.com/pezra/rspec-mode")
  5110. (synopsis "Provides a rspec mode for working with RSpec")
  5111. (description
  5112. "The Emacs RSpec mode provides keybindings for Ruby source files, e.g. to
  5113. verify the spec associated with the current buffer, or entire project, as well
  5114. as moving between the spec files, and corresponding code files.
  5115. Also included are keybindings for spec files and Dired buffers, as well as
  5116. snippets for yasnippet.")
  5117. (license license:gpl3+))))
  5118. (define-public emacs-mode-line-idle
  5119. ;; Package has no release. Version is extracted from "Version:" keyword in
  5120. ;; main file.
  5121. (let ((commit "02b1da6278e43cc9cc0356110cc6bfbb37eb8241")
  5122. (revision "1"))
  5123. (package
  5124. (name "emacs-mode-line-idle")
  5125. (version (git-version "0.1" revision commit))
  5126. (source
  5127. (origin
  5128. (method git-fetch)
  5129. (file-name (git-file-name name version))
  5130. (uri (git-reference
  5131. (url "https://gitlab.com/ideasman42/emacs-mode-line-idle")
  5132. (commit commit)))
  5133. (sha256
  5134. (base32 "0ky330b2sfbzkbxbfp9b21hdywsjw26bllspglz08hrbni7jmry8"))))
  5135. (build-system emacs-build-system)
  5136. (home-page "https://gitlab.com/ideasman42/emacs-mode-line-idle")
  5137. (synopsis "Simple delayed text evaluation for the mode-line")
  5138. (description
  5139. "Mode Line Idle provides a convenient way to defer text evaluation
  5140. which integrates into existing mode-line without requiring a minor mode or
  5141. configuration.")
  5142. (license license:gpl3+))))
  5143. (define-public emacs-smart-mode-line
  5144. (package
  5145. (name "emacs-smart-mode-line")
  5146. (version "2.13")
  5147. (source
  5148. (origin
  5149. (method git-fetch)
  5150. (uri (git-reference
  5151. (url "https://github.com/Malabarba/smart-mode-line")
  5152. (commit version)))
  5153. (file-name (git-file-name name version))
  5154. (sha256
  5155. (base32 "164b697xm1rwcggv37dymhf3npbyh2bs59z8b6m5x35lb4c3lf8b"))))
  5156. (build-system emacs-build-system)
  5157. (propagated-inputs
  5158. `(("emacs-rich-minority" ,emacs-rich-minority)))
  5159. (home-page "https://github.com/Malabarba/smart-mode-line")
  5160. (synopsis "Color-coded smart mode-line")
  5161. (description
  5162. "Smart Mode Line is a mode-line theme for Emacs. It aims to be easy to
  5163. read from small to large monitors by using colors, a prefix feature, and smart
  5164. truncation.")
  5165. (license license:gpl2+)))
  5166. (define-public emacs-sqlite
  5167. ;; XXX: There is no tagged commit.
  5168. (let ((commit "dad42b8bbca4994be1871343dd18fd6528ee5797")
  5169. (revision "0"))
  5170. (package
  5171. (name "emacs-sqlite")
  5172. (build-system emacs-build-system)
  5173. (version (git-version "1.0" revision commit))
  5174. (source
  5175. (origin
  5176. (method git-fetch)
  5177. (uri (git-reference
  5178. (url "https://gitlab.com/cnngimenez/sqlite.el")
  5179. (commit commit)))
  5180. (file-name (git-file-name name version))
  5181. (sha256
  5182. (base32 "06ln4vijl8kii3nzc5cscgsadx1fqgxksflijd3ain83bn8g4wrd"))))
  5183. (home-page "https://gitlab.com/cnngimenez/sqlite.el")
  5184. (synopsis "SQLite interface for Emacs Lisp")
  5185. (description "Emacs SQLite is a simple SQLite interface for connecting
  5186. and retrieving information using the SQLite program through Elisp programming.
  5187. It is not intended as a user interface.")
  5188. (license license:gpl3+))))
  5189. (define-public emacs-sr-speedbar
  5190. (let ((commit "77a83fb50f763a465c021eca7343243f465b4a47")
  5191. (revision "0"))
  5192. (package
  5193. (name "emacs-sr-speedbar")
  5194. (version (git-version "20161025" revision commit))
  5195. (source
  5196. (origin
  5197. (method git-fetch)
  5198. (uri (git-reference
  5199. (url "https://github.com/emacsorphanage/sr-speedbar")
  5200. (commit commit)))
  5201. (file-name (git-file-name name version))
  5202. (sha256
  5203. (base32
  5204. "0sd12555hk7z721y00kv3crdybvcn1i08wmd148z5imayzibj153"))))
  5205. (build-system emacs-build-system)
  5206. (home-page "https://www.emacswiki.org/emacs/SrSpeedbar")
  5207. (synopsis "Same frame Emacs @code{speedbar}")
  5208. (description
  5209. "This Emacs package allows you to show @code{M-x speedbar} in the
  5210. same frame (in an extra window). You can customize the initial width of
  5211. the speedbar window.")
  5212. (license license:gpl3+))))
  5213. (define-public emacs-shell-switcher
  5214. (package
  5215. (name "emacs-shell-switcher")
  5216. (version "1.0.1")
  5217. (source
  5218. (origin
  5219. (method git-fetch)
  5220. (uri (git-reference
  5221. (url "https://github.com/DamienCassou/shell-switcher")
  5222. (commit (string-append "v" version))))
  5223. (file-name (git-file-name name version))
  5224. (sha256
  5225. (base32 "0ia7sdip4hl27avckv3qpqgm3k4ynvp3xxq1cy53bqfzzx0gcria"))))
  5226. (build-system emacs-build-system)
  5227. (home-page "https://github.com/DamienCassou/shell-switcher")
  5228. (synopsis "Provide fast switching between shell buffers")
  5229. (description
  5230. "This package provides commands to quickly switch between shell buffers.")
  5231. (license license:gpl3+)))
  5232. (define-public emacs-shx
  5233. (package
  5234. (name "emacs-shx")
  5235. (version "1.5.0")
  5236. (source (origin
  5237. (method git-fetch)
  5238. (uri (git-reference
  5239. (url "https://github.com/riscy/shx-for-emacs")
  5240. (commit (string-append "v" version))))
  5241. (file-name (git-file-name name version))
  5242. (sha256
  5243. (base32 "1cb5w6p9gnfxgh8qp7yj2f5ibpk1b4b5af3ynldaaj6yfpa8hqzn"))))
  5244. (build-system emacs-build-system)
  5245. (arguments
  5246. `(#:tests? #t
  5247. #:test-command
  5248. '("emacs" "--batch" "--quiet"
  5249. "--script" "test/script.el")))
  5250. (home-page "https://github.com/riscy/shx-for-emacs")
  5251. (synopsis "Extras for the comint-mode shell")
  5252. (description
  5253. "This package extends @code{comint-mode}: it parses markup in the output
  5254. stream, enabling plots and graphics to be embedded, and adds command-line
  5255. functions which plug into Emacs (e.g. use @code{:e <filename>} to edit a
  5256. file).")
  5257. (license license:gpl3+)))
  5258. (define-public emacs-names
  5259. (let ((commit "d8baba5360e5253938a25d3e005455b6d2d86971")
  5260. (version "20151201.0")
  5261. (revision "8"))
  5262. (package
  5263. (name "emacs-names")
  5264. (version (git-version version revision commit))
  5265. (source
  5266. (origin
  5267. (method git-fetch)
  5268. (uri (git-reference
  5269. (url "https://github.com/Malabarba/names")
  5270. (commit commit)))
  5271. (file-name (git-file-name name version))
  5272. (sha256
  5273. (base32
  5274. "11wyha2q8y7bzqq3jrzix8n97ywvsibvddrahqcps1a1yqk4hzfz"))))
  5275. (build-system emacs-build-system)
  5276. (home-page "https://github.com/Malabarba/names/")
  5277. (synopsis "Namespace implementation for Emacs Lisp")
  5278. (description
  5279. "This package provides a macro that writes your namespaces for you.")
  5280. (license license:gpl3+))))
  5281. (define-public emacs-nameless
  5282. (package
  5283. (name "emacs-nameless")
  5284. (version "1.0.2")
  5285. (source
  5286. (origin
  5287. (method git-fetch)
  5288. (uri (git-reference
  5289. (url "https://github.com/Malabarba/Nameless")
  5290. (commit version)))
  5291. (file-name (git-file-name name version))
  5292. (sha256
  5293. (base32 "107q1rximjnag9r9vgwh0iv687i3rsscbdnjc46f8l16j6vi4n7d"))))
  5294. (build-system emacs-build-system)
  5295. (home-page "https://github.com/Malabarba/nameless")
  5296. (synopsis "Hide package namespace in your Emacs-lisp code")
  5297. (description
  5298. "This package provides a @code{nameless-mode} minor mode in which the
  5299. package namespace prefix is ​​hidden by a colon.")
  5300. (license license:gpl2+)))
  5301. (define-public emacs-evil-leader
  5302. (package
  5303. (name "emacs-evil-leader")
  5304. (version "0.4.3")
  5305. (source
  5306. (origin
  5307. (method git-fetch)
  5308. (uri
  5309. (git-reference
  5310. (url "https://github.com/cofi/evil-leader")
  5311. (commit version)))
  5312. (file-name (git-file-name name version))
  5313. (sha256
  5314. (base32 "1k2zinchs0jjllp8zkpggckyy63dkyi5yig3p46vh4w45jdzysk5"))))
  5315. (inputs
  5316. `(("emacs-evil" ,emacs-evil)))
  5317. (build-system emacs-build-system)
  5318. (home-page "https://github.com/cofi/evil-leader")
  5319. (synopsis "Implement <leader> feature from Vim")
  5320. (description
  5321. "Evil Leader provides the @code{<leader>} feature from Vim that provides
  5322. an easy way to bind keys under a configurable prefix key.")
  5323. (license license:gpl3+)))
  5324. (define-public emacs-evil-tex
  5325. (package
  5326. (name "emacs-evil-tex")
  5327. (version "1.0.2")
  5328. (source (origin
  5329. (method git-fetch)
  5330. (uri (git-reference
  5331. (url "https://github.com/iyefrat/evil-tex")
  5332. (commit version)))
  5333. (file-name (git-file-name name version))
  5334. (sha256
  5335. (base32
  5336. "1wrx8ihimn1sx3vzzfppcwv0yfh3x95jrkxqvzj0ykckipm3zk0b"))))
  5337. (build-system emacs-build-system)
  5338. (propagated-inputs
  5339. `(("emacs-evil" ,emacs-evil)
  5340. ("emacs-auctex" ,emacs-auctex)))
  5341. (home-page "https://github.com/iyefrat/evil-tex")
  5342. (synopsis "Evil oriented additions for editing LaTeX")
  5343. (description "This package is a toolbox for LaTeX editing with Evil. It
  5344. provides many text objects fully utilizing @code{evil-surround}, some useful
  5345. movements, and keymaps for quickly entering environments or
  5346. @code{cdlatex}-like accents.")
  5347. (license license:gpl3+)))
  5348. (define-public emacs-evil-textobj-syntax
  5349. (let ((commit "2d9ba8c75c754b409aea7469f46a5cfa52a872f3")
  5350. (version "0")
  5351. (revision "1"))
  5352. (package
  5353. (name "emacs-evil-textobj-syntax")
  5354. (version (git-version version revision commit))
  5355. (source
  5356. (origin
  5357. (method git-fetch)
  5358. (uri (git-reference
  5359. (url "https://github.com/laishulu/evil-textobj-syntax/")
  5360. (commit commit)))
  5361. (file-name (git-file-name name version))
  5362. (sha256
  5363. (base32
  5364. "031p5i3274dazp7rz6m5y38shfgszm1clmkcf58qfqlvy978ammc"))))
  5365. (build-system emacs-build-system)
  5366. (propagated-inputs `(("emacs-evil" ,emacs-evil)
  5367. ("emacs-names" ,emacs-names)))
  5368. (home-page "https://github.com/laishulu/evil-textobj-syntax/")
  5369. (synopsis "Text objects based on syntax highlighting")
  5370. (description
  5371. "This package provides text objects for @code{evil-mode} with
  5372. boundaries defined by syntax highlighting.")
  5373. (license license:gpl3+))))
  5374. (define-public emacs-flycheck-flow
  5375. (let ((commit "9e8e52cfc98af6a23fd906f9cb5d5d470d8cf82d")
  5376. (version "1.1")
  5377. (revision "1"))
  5378. (package
  5379. (name "emacs-flycheck-flow")
  5380. (version (git-version version revision commit))
  5381. (source
  5382. (origin
  5383. (method git-fetch)
  5384. (uri (git-reference
  5385. (url "https://github.com/lbolla/emacs-flycheck-flow")
  5386. (commit commit)))
  5387. (file-name (git-file-name name version))
  5388. (sha256
  5389. (base32
  5390. "14qldlisbmxzammr500gyha2hiv2xgyzfc6mysqii06kbcqn1ik1"))))
  5391. (build-system emacs-build-system)
  5392. (propagated-inputs
  5393. `(("emacs-flycheck" ,emacs-flycheck)))
  5394. (home-page "https://github.com/lbolla/emacs-flycheck-flow")
  5395. (synopsis "Flow support for @code{flycheck-mode}")
  5396. (description
  5397. "This package allows @code{flycheck-mode} to provide syntax-checking
  5398. for Flow files.")
  5399. (license license:gpl3+))))
  5400. (define-public emacs-flycheck-grammalecte
  5401. (package
  5402. (name "emacs-flycheck-grammalecte")
  5403. (version "2.0")
  5404. (source
  5405. (origin
  5406. (method git-fetch)
  5407. (uri (git-reference
  5408. (url "https://git.umaneti.net/flycheck-grammalecte/")
  5409. (commit (string-append "v" version))))
  5410. (file-name (git-file-name name version))
  5411. (sha256
  5412. (base32 "040mb9djj4cxpjsjch9i30pi36a2z7grkhnsnfdi5qyh341p4pq0"))))
  5413. (build-system emacs-build-system)
  5414. (arguments
  5415. `(#:include (cons "\\.py$" %default-include)
  5416. #:exclude '("^test-profile.el$")
  5417. #:emacs ,emacs ;need libxml support
  5418. #:phases
  5419. (modify-phases %standard-phases
  5420. (add-after 'unpack 'specify-python-location
  5421. ;; Hard-code python3 executable location in the library.
  5422. (lambda* (#:key inputs #:allow-other-keys)
  5423. (let ((python3 (search-input-file inputs "/bin/python3")))
  5424. (substitute* '("flycheck-grammalecte.el" "grammalecte.el")
  5425. (("\"python3") (string-append "\"" python3)))
  5426. (substitute* '("conjugueur.py" "flycheck_grammalecte.py")
  5427. (("/usr/bin/env python3?") python3)))))
  5428. (add-after 'unpack 'specify-grammalecte-location
  5429. ;; Use our own Grammalecte.
  5430. (lambda* (#:key inputs #:allow-other-keys)
  5431. (make-file-writable "grammalecte.el")
  5432. (emacs-substitute-variables "grammalecte.el"
  5433. ("grammalecte-python-package-directory"
  5434. (search-input-directory
  5435. inputs
  5436. (string-append "lib/python"
  5437. ,(version-major+minor (package-version python))
  5438. "/site-packages/grammalecte"))))))
  5439. (add-after 'unpack 'do-not-phone-home
  5440. ;; Do not check for Grammalecte updates, ever.
  5441. (lambda _
  5442. (make-file-writable "grammalecte.el")
  5443. (emacs-substitute-variables "grammalecte.el"
  5444. ("grammalecte-check-upstream-version-delay" 0)))))))
  5445. (inputs
  5446. `(("grammalecte" ,grammalecte)
  5447. ("python" ,python)))
  5448. (propagated-inputs
  5449. `(("emacs-flycheck" ,emacs-flycheck)))
  5450. (home-page "https://git.umaneti.net/flycheck-grammalecte/")
  5451. (synopsis "Integrate Grammalecte with Flycheck")
  5452. (description
  5453. "Integrate the French grammar and typography checker Grammalecte with
  5454. Flycheck to automatically look for mistakes in your writings. It also
  5455. provides an easy way to find synonyms and antonyms for a given word (to avoid
  5456. repetitions for example).")
  5457. (license license:gpl3+)))
  5458. (define-public emacs-flycheck-guile
  5459. (package
  5460. (name "emacs-flycheck-guile")
  5461. (version "0.2")
  5462. (source
  5463. (origin
  5464. (method git-fetch)
  5465. (uri
  5466. (git-reference
  5467. (url "https://github.com/flatwhatson/flycheck-guile")
  5468. (commit version)))
  5469. (file-name (git-file-name name version))
  5470. (sha256
  5471. (base32 "0cs5r0ik6a3bl1k3imjl0r8y1i69kx9x9m9cgxj470qk34brwyj5"))))
  5472. (propagated-inputs
  5473. `(("emacs-flycheck" ,emacs-flycheck)
  5474. ("emacs-geiser" ,emacs-geiser)
  5475. ("emacs-geiser-guile" ,emacs-geiser-guile)))
  5476. (build-system emacs-build-system)
  5477. (home-page "https://github.com/flatwhatson/flycheck-guile")
  5478. (synopsis "GNU Guile support for Flycheck")
  5479. (description
  5480. "This package provides a Flycheck checker for GNU Guile using @code{guild
  5481. compile}.")
  5482. (license license:gpl3+)))
  5483. (define-public emacs-flycheck-ledger
  5484. (package
  5485. (name "emacs-flycheck-ledger")
  5486. (version "0.5")
  5487. (source
  5488. (origin
  5489. (method git-fetch)
  5490. (uri (git-reference
  5491. (url "https://github.com/purcell/flycheck-ledger")
  5492. (commit version)))
  5493. (file-name (git-file-name name version))
  5494. (sha256
  5495. (base32 "1djrj3is0dzrl2703bw7bclf33dp4xqmy144q7xj5pvpb9v3kf50"))))
  5496. (inputs `(("ledger" ,ledger)))
  5497. (arguments
  5498. `(#:phases
  5499. (modify-phases %standard-phases
  5500. (add-after 'unpack 'configure
  5501. (lambda* (#:key inputs outputs #:allow-other-keys)
  5502. (let ((ledger (assoc-ref inputs "ledger")))
  5503. ;; Specify the absolute executable location of ledger.
  5504. (substitute* "flycheck-ledger.el"
  5505. (("\"ledger\"") (string-append "\"" ledger "\""))))
  5506. #t)))))
  5507. (propagated-inputs
  5508. `(("emacs-flycheck" ,emacs-flycheck)))
  5509. (build-system emacs-build-system)
  5510. (home-page "https://github.com/purcell/flycheck-ledger")
  5511. (synopsis "Ledger support for Flycheck")
  5512. (description
  5513. "This Flycheck checker uses the output of @code{ledger balance} on the
  5514. current file to find errors such as unbalanced transactions and syntax
  5515. errors.")
  5516. (license license:gpl3+)))
  5517. (define-public emacs-flycheck-rust
  5518. (package
  5519. (name "emacs-flycheck-rust")
  5520. (version "1.1")
  5521. (source
  5522. (origin
  5523. (method git-fetch)
  5524. (uri
  5525. (git-reference
  5526. (url "https://github.com/flycheck/flycheck-rust")
  5527. (commit version)))
  5528. (file-name (git-file-name name version))
  5529. (sha256
  5530. (base32 "1fh6j5w2387nh2fwwjphkhq17cgj5m2q5k0fhidvgc2w65lzbr1r"))))
  5531. (propagated-inputs
  5532. `(("emacs-dash" ,emacs-dash)
  5533. ("emacs-flycheck" ,emacs-flycheck)
  5534. ("emacs-let-alist" ,emacs-let-alist)))
  5535. (build-system emacs-build-system)
  5536. (home-page "https://github.com/flycheck/flycheck-rust")
  5537. (synopsis "Rust/Cargo support for Flycheck")
  5538. (description
  5539. "This Flycheck extension configures Flycheck automatically for
  5540. the current Cargo project.")
  5541. (license license:gpl3+)))
  5542. (define-public emacs-flycheck-package
  5543. (package
  5544. (name "emacs-flycheck-package")
  5545. (version "0.14")
  5546. (source
  5547. (origin
  5548. (method git-fetch)
  5549. (uri (git-reference
  5550. (url "https://github.com/purcell/flycheck-package")
  5551. (commit version)))
  5552. (file-name (git-file-name name version))
  5553. (sha256
  5554. (base32
  5555. "00py39n1383761wq6wp194pvyk94ydqdbxj9kl64g9jnipkp7849"))))
  5556. (build-system emacs-build-system)
  5557. (propagated-inputs
  5558. `(("emacs-flycheck" ,emacs-flycheck)
  5559. ("emacs-package-lint" ,emacs-package-lint)))
  5560. (home-page "https://github.com/purcell/flycheck-package")
  5561. (synopsis "Flycheck checker for elisp package metadata")
  5562. (description
  5563. "This library provides a flycheck checker for the metadata in Emacs Lisp
  5564. files which are intended to be packages.")
  5565. (license license:gpl3+)))
  5566. (define-public emacs-elisp-demos
  5567. (package
  5568. (name "emacs-elisp-demos")
  5569. (version "2020.02.19")
  5570. (source
  5571. (origin
  5572. (method git-fetch)
  5573. (uri (git-reference
  5574. (url "https://github.com/xuchunyang/elisp-demos")
  5575. (commit version)))
  5576. (file-name (git-file-name name version))
  5577. (sha256
  5578. (base32
  5579. "0mckgaz92v3y2vlkggx9kd51fd1mahylw39c42l51dyv8wscm7sc"))))
  5580. (build-system emacs-build-system)
  5581. (arguments
  5582. `(#:include '("\\.el$" "\\.org$")
  5583. #:tests? #t
  5584. #:test-command '("make" "test")))
  5585. (home-page "https://github.com/xuchunyang/elisp-demos/")
  5586. (synopsis "Enhance @code{*Help*} buffers with additional examples")
  5587. (description
  5588. "This package injects example uses of Elisp functions into their
  5589. respective @code{*Help*} buffers.")
  5590. (license license:gpl3+)))
  5591. (define-public emacs-docker-compose-mode
  5592. (package
  5593. (name "emacs-docker-compose-mode")
  5594. (version "1.1.0")
  5595. (source
  5596. (origin
  5597. (method git-fetch)
  5598. (uri (git-reference
  5599. (url "https://github.com/meqif/docker-compose-mode")
  5600. (commit version)))
  5601. (file-name (git-file-name name version))
  5602. (sha256
  5603. (base32
  5604. "1fbcxwfvm33xcdj3cs26d9i1zyrryyjjkv7sc3mfxd45nq8d3ivj"))))
  5605. (build-system emacs-build-system)
  5606. (propagated-inputs
  5607. `(("emacs-dash" ,emacs-dash)
  5608. ("emacs-f" ,emacs-f)
  5609. ("emacs-yaml-mode" ,emacs-yaml-mode)))
  5610. (home-page "https://github.com/meqif/docker-compose-mode/")
  5611. (synopsis "Major mode for editing @file{docker-compose} files")
  5612. (description
  5613. "This is a major mode for @file{docker-compose} files that provides
  5614. completion of relevant keywords.")
  5615. (license license:expat)))
  5616. (define-public emacs-dvc
  5617. (let ((revision "591") ;no tags or official releases
  5618. (guix-revision "1"))
  5619. (package
  5620. (name "emacs-dvc")
  5621. (version (string-append "0.0.0-" guix-revision "." revision))
  5622. (source
  5623. (origin
  5624. (method bzr-fetch)
  5625. (uri (bzr-reference
  5626. (url "lp:dvc")
  5627. (revision revision)))
  5628. (sha256
  5629. (base32
  5630. "03pqn493w70wcpgaxvqnfgynxghw114l9pyiv3r414d84vzhan6h"))
  5631. (file-name (string-append name "-" version "-checkout"))))
  5632. (build-system gnu-build-system)
  5633. (arguments
  5634. `(#:modules ((guix build gnu-build-system)
  5635. ((guix build emacs-build-system) #:prefix emacs:)
  5636. (guix build utils))
  5637. #:imported-modules (,@%gnu-build-system-modules
  5638. (guix build emacs-build-system)
  5639. (guix build emacs-utils))
  5640. #:configure-flags
  5641. (list (string-append "--with-lispdir="
  5642. (emacs:elpa-directory (assoc-ref %outputs "out"))))
  5643. #:tests? #f ;no test suite
  5644. #:phases
  5645. (modify-phases %standard-phases
  5646. (add-before 'build 'set-home
  5647. ;; Something in dvc-bookmarks.el attempts to write config files in
  5648. ;; $HOME during the autoload generation.
  5649. (lambda _ (setenv "HOME" (getenv "TMPDIR")) #t))
  5650. (add-before 'build 'fix-texinfo
  5651. ;; See https://bugs.launchpad.net/dvc/+bug/1264383.
  5652. (lambda _
  5653. (substitute* "texinfo/dvc-intro.texinfo"
  5654. (("@itemx update ``to''")
  5655. "@item update ``to''")
  5656. (("@itemx brief")
  5657. "@item brief")
  5658. (("@itemx full")
  5659. "@item full")
  5660. (("@itemx drop")
  5661. "@item drop")
  5662. (("@itemx left file")
  5663. "@item left file"))
  5664. #t)))))
  5665. (native-inputs
  5666. `(("autoconf" ,autoconf)
  5667. ("automake" ,automake) ;for aclocal
  5668. ("emacs" ,emacs-minimal)
  5669. ("texinfo" ,texinfo)))
  5670. (home-page "http://xsteve.at/prg/emacs_dvc/index.html")
  5671. (synopsis "Emacs front-end for various distributed version control systems.")
  5672. (description "DVC is a legacy Emacs front-end for a number of
  5673. distributed version control systems. It currently supports GNU Arch, GNU
  5674. Bazaar, git, Mercurial, and Monotone. It also provides some integration with
  5675. Gnus, e.g., for applying patches received by email.")
  5676. (license license:gpl2+))))
  5677. (define-public emacs-sudo-edit
  5678. (package
  5679. (name "emacs-sudo-edit")
  5680. (version "0.1.1")
  5681. (source
  5682. (origin
  5683. (method git-fetch)
  5684. (uri (git-reference
  5685. (url "https://github.com/nflath/sudo-edit")
  5686. (commit (string-append "v" version))))
  5687. (file-name (git-file-name name version))
  5688. (sha256
  5689. (base32 "1hncxbg5lvywzkwvdmzvrz71midy4samjq2vvxxhz90z1y5l8l29"))))
  5690. (build-system emacs-build-system)
  5691. (native-inputs
  5692. `(("emacs-undercover" ,emacs-undercover)))
  5693. (arguments
  5694. `(#:emacs ,emacs
  5695. #:phases
  5696. (modify-phases %standard-phases
  5697. (add-before 'check 'fix-makefile
  5698. (lambda _
  5699. (substitute* "Makefile"
  5700. (("\\$\\(CASK\\) exec ") ""))
  5701. #t)))
  5702. #:tests? #t
  5703. #:test-command '("make" "test")))
  5704. (home-page "https://github.com/nflath/sudo-edit/")
  5705. (synopsis "Open files as another user")
  5706. (description
  5707. "This package allows editing files as another user, including the root
  5708. user.")
  5709. (license license:gpl3+)))
  5710. (define-public emacs-miniedit
  5711. (package
  5712. (name "emacs-miniedit")
  5713. (version "2.0")
  5714. (source
  5715. (origin
  5716. (method git-fetch)
  5717. (uri (git-reference
  5718. (url "https://github.com/emacsmirror/miniedit")
  5719. (commit version)))
  5720. (file-name (git-file-name name version))
  5721. (sha256
  5722. (base32
  5723. "1850z96gly0jnr50472idqz1drzqarr0n23bbasslrc501xkg0bq"))))
  5724. (build-system emacs-build-system)
  5725. (home-page "https://github.com/emacsmirror/miniedit/")
  5726. (synopsis "Enhanced editing for minibuffer fields")
  5727. (description
  5728. "This package provides a function that can be called from the
  5729. minibuffer to enable editing the minibuffer input in another buffer with
  5730. @code{text-mode} enabled.")
  5731. (license license:gpl2+)))
  5732. (define-public emacs-ob-ipython
  5733. (package
  5734. (name "emacs-ob-ipython")
  5735. (version "20180224")
  5736. (source (origin
  5737. (method git-fetch)
  5738. (uri (git-reference
  5739. (commit "7147455230841744fb5b95dcbe03320313a77124")
  5740. (url "https://github.com/gregsexton/ob-ipython")))
  5741. (file-name (git-file-name name version))
  5742. (sha256
  5743. (base32
  5744. "1a10fc2jk37ni5sjjvf87s5nyaz2a6h2mlj5dxh4dhv5sd3bb85p"))))
  5745. (build-system emacs-build-system)
  5746. (propagated-inputs
  5747. `(("emacs-f" ,emacs-f)))
  5748. (home-page "http://www.gregsexton.org")
  5749. (synopsis "Org-Babel functions for IPython evaluation")
  5750. (description "This package adds support to Org-Babel for evaluating Python
  5751. source code using IPython.")
  5752. (license license:gpl3+)))
  5753. (define-public emacs-ob-async
  5754. (package
  5755. (name "emacs-ob-async")
  5756. (version "1.0.0")
  5757. (source
  5758. (origin
  5759. (method git-fetch)
  5760. (uri (git-reference
  5761. (url "https://github.com/astahlman/ob-async")
  5762. (commit (string-append "v" version))))
  5763. (file-name (git-file-name name version))
  5764. (sha256
  5765. (base32 "10x4hxrjm4pr6vg42a961h9ilqzyd0l0fv7fsbq9clxi439f1nd6"))))
  5766. (build-system emacs-build-system)
  5767. (propagated-inputs
  5768. `(("emacs-async" ,emacs-async)
  5769. ("emacs-dash" ,emacs-dash)))
  5770. (home-page "https://github.com/astahlman/ob-async")
  5771. (synopsis "Asynchronous src_block execution for org-babel")
  5772. (description "@code{ob-async} enables asynchronous execution of org-babel
  5773. src blocks.")
  5774. (license license:gpl3+)))
  5775. (define-public emacs-debbugs
  5776. (package
  5777. (name "emacs-debbugs")
  5778. (version "0.29")
  5779. (source
  5780. (origin
  5781. (method url-fetch)
  5782. (uri (string-append "https://elpa.gnu.org/packages/debbugs-"
  5783. version ".tar"))
  5784. (sha256
  5785. (base32 "1bn21d9dr9pb3vdak3v07x056xafym89kdpxavjf4avy6bry6s4d"))))
  5786. (build-system emacs-build-system)
  5787. (arguments '(#:include '("\\.el$" "\\.wsdl$" "\\.info$")))
  5788. (propagated-inputs
  5789. `(("emacs-async" ,emacs-async)))
  5790. (home-page "https://elpa.gnu.org/packages/debbugs.html")
  5791. (synopsis "Access the Debbugs bug tracker in Emacs")
  5792. (description
  5793. "This package lets you access the @uref{http://bugs.gnu.org,GNU Bug
  5794. Tracker} from within Emacs.
  5795. For instance, it defines the command @code{M-x debbugs-gnu} for listing bugs,
  5796. and the command @code{M-x debbugs-gnu-search} for bug searching. If you
  5797. prefer the listing of bugs as TODO items of @code{org-mode}, you could use
  5798. @code{M-x debbugs-org} and related commands.
  5799. A minor mode @code{debbugs-browse-mode} let you browse URLs to the GNU Bug
  5800. Tracker as well as bug identifiers prepared for @code{bug-reference-mode}.")
  5801. (license license:gpl3+)))
  5802. (define-public emacs-ert-expectations
  5803. (package
  5804. (name "emacs-ert-expectations")
  5805. (version "0.2")
  5806. (source
  5807. (origin
  5808. (method url-fetch)
  5809. (uri "https://www.emacswiki.org/emacs/download/ert-expectations.el")
  5810. (sha256
  5811. (base32
  5812. "0cwy3ilsid90abzzjb7ha2blq9kmv3gfp3icwwfcz6qczgirq6g7"))))
  5813. (build-system emacs-build-system)
  5814. (home-page "https://www.emacswiki.org/emacs/ert-expectations.el")
  5815. (synopsis "Simple unit test framework for Emacs Lisp")
  5816. (description "@code{emacs-ert-expectations} is a simple unit test
  5817. framework for Emacs Lisp to be used with @code{ert}.")
  5818. (license license:gpl3+)))
  5819. (define-public emacs-deferred
  5820. (package
  5821. (name "emacs-deferred")
  5822. (version "0.5.1")
  5823. (home-page "https://github.com/kiwanami/emacs-deferred")
  5824. (source (origin
  5825. (method git-fetch)
  5826. (uri (git-reference
  5827. (url home-page)
  5828. (commit (string-append "v" version))))
  5829. (file-name (git-file-name name version))
  5830. (sha256
  5831. (base32
  5832. "0xy9zb6wwkgwhcxdnslqk52bq3z24chgk6prqi4ks0qcf2bwyh5h"))))
  5833. (build-system emacs-build-system)
  5834. (arguments
  5835. `(#:phases
  5836. (modify-phases %standard-phases
  5837. (add-after 'unpack 'set-shell
  5838. ;; Setting the SHELL environment variable is required for the tests
  5839. ;; to find sh.
  5840. (lambda _
  5841. (setenv "SHELL" (which "sh"))
  5842. #t))
  5843. (add-before 'check 'fix-makefile
  5844. (lambda _
  5845. (substitute* "Makefile"
  5846. (("\\$\\(CASK\\) exec ") ""))
  5847. #t)))
  5848. #:tests? #t
  5849. #:test-command '("make" "test")))
  5850. (native-inputs
  5851. `(("emacs-ert-expectations" ,emacs-ert-expectations)
  5852. ("emacs-undercover" ,emacs-undercover)
  5853. ("ert-runner" ,emacs-ert-runner)))
  5854. (synopsis "Simple asynchronous functions for Emacs Lisp")
  5855. (description
  5856. "The @code{deferred.el} library provides support for asynchronous tasks.
  5857. The API is almost the same as that of
  5858. @uref{https://github.com/cho45/jsdeferred, JSDeferred}, a JavaScript library
  5859. for asynchronous tasks.")
  5860. (license license:gpl3+)))
  5861. (define-public emacs-butler
  5862. (package
  5863. (name "emacs-butler")
  5864. (version "0.2.4")
  5865. (home-page "https://github.com/AshtonKem/Butler")
  5866. (source (origin
  5867. (method git-fetch)
  5868. (uri (git-reference
  5869. (url home-page)
  5870. (commit version)))
  5871. (file-name (git-file-name name version))
  5872. (sha256
  5873. (base32
  5874. "1pii9dw4skq7nr4na6qxqasl36av8cwjp71bf1fgppqpcd9z8skj"))))
  5875. (build-system emacs-build-system)
  5876. (propagated-inputs
  5877. `(("emacs-deferred" ,emacs-deferred)))
  5878. (synopsis "Emacs client for Jenkins")
  5879. (description
  5880. "Butler provides an interface to connect to Jenkins continuous
  5881. integration servers. Users can specify a list of server in the
  5882. @code{butler-server-list} variable and then use @code{M-x butler-status} to
  5883. view the build status of those servers' build jobs, and possibly to trigger
  5884. build jobs.")
  5885. (license license:gpl3+)))
  5886. (define-public emacs-zmq
  5887. (package
  5888. (name "emacs-zmq")
  5889. (version "0.10.10")
  5890. (source
  5891. (origin
  5892. (method git-fetch)
  5893. (uri (git-reference
  5894. (url "https://github.com/nnicandro/emacs-zmq")
  5895. (commit (string-append "v" version))))
  5896. (file-name (git-file-name name version))
  5897. (sha256
  5898. (base32 "0ngxm5mm0kqgvn8977ryrngamx0khzlw86d8vz5s0jhm2kgwnqp8"))))
  5899. (build-system emacs-build-system)
  5900. (arguments
  5901. `(#:tests? #f ; no tests
  5902. #:phases
  5903. (modify-phases %standard-phases
  5904. (add-after 'unpack 'configure
  5905. (lambda _
  5906. (invoke "make" "src/configure")
  5907. (substitute* "src/configure"
  5908. (("/bin/sh") (which "sh"))
  5909. (("/usr/bin/file") (which "file")))
  5910. (invoke "make")))
  5911. (add-after 'install 'install-shared-object
  5912. (lambda* (#:key inputs outputs #:allow-other-keys)
  5913. (let* ((out (assoc-ref outputs "out"))
  5914. (site-lisp (string-append out "/share/emacs/site-lisp"))
  5915. (libdir (string-append site-lisp "/zmq-0.10.10")))
  5916. (copy-file "emacs-zmq.so"
  5917. (string-append libdir "/emacs-zmq.so"))))))))
  5918. (native-inputs
  5919. `(("autoconf" ,autoconf)
  5920. ("automake" ,automake)
  5921. ("libtool" ,libtool)
  5922. ("pkg-config" ,pkg-config)))
  5923. (inputs
  5924. `(("zeromq" ,zeromq)))
  5925. (home-page "https://github.com/nnicandro/emacs-zmq")
  5926. (synopsis "Emacs bindings to ØMQ")
  5927. (description "This package provides Emacs bindings to ØMQ.")
  5928. (license (list license:gpl2+ ;zmq.el
  5929. license:gpl3+)))) ;src/emacs-module.h
  5930. (define-public emacs-tup-mode
  5931. (package
  5932. (name "emacs-tup-mode")
  5933. (version "1.3.1")
  5934. (source
  5935. (origin
  5936. (method git-fetch)
  5937. (uri (git-reference
  5938. (url "https://github.com/ejmr/tup-mode")
  5939. (commit (string-append "v" version))))
  5940. (file-name (git-file-name name version))
  5941. (sha256
  5942. (base32 "0asd024n5v23wdsg1959sszq568wg3a1bp4jrk0cllfji1z0n78y"))))
  5943. (build-system emacs-build-system)
  5944. (home-page "https://github.com/ejmr/tup-mode")
  5945. (synopsis "Major mode for editing ``tupfiles'' used by the Tup build system")
  5946. (description
  5947. "Tup mode provides syntax highlighting for all of the elements of
  5948. tupfiles, such as rule definitions, user-defined variables, macros, flags, bin
  5949. variables, and so on. The mode also allows you to execute Tup commands.")
  5950. (license license:gpl3+)))
  5951. (define-public emacs-company
  5952. (package
  5953. (name "emacs-company")
  5954. (version "0.9.13")
  5955. (source
  5956. (origin
  5957. (method url-fetch)
  5958. (uri (string-append "https://elpa.gnu.org/packages/"
  5959. "company-" version ".tar"))
  5960. (sha256
  5961. (base32 "1c9x9wlzzsn7vrsm57l2l44nqx455saa6wrm853szzg09qn8dlnw"))))
  5962. (build-system emacs-build-system)
  5963. (home-page "https://company-mode.github.io/")
  5964. (synopsis "Modular text completion framework")
  5965. (description
  5966. "Company is a modular completion mechanism. Modules for retrieving
  5967. completion candidates are called back-ends, modules for displaying them are
  5968. front-ends. Company comes with many back-ends, e.g., @code{company-elisp}.
  5969. These are distributed in separate files and can be used individually.")
  5970. (license license:gpl3+)))
  5971. (define-public emacs-company-box
  5972. ;; There is no release yet. Version is extracted from the main
  5973. ;; file.
  5974. (let ((version "0.0.1")
  5975. (revision "0")
  5976. (commit "be37a9a30dc112ab172af21af694e2cb04a74f85"))
  5977. (package
  5978. (name "emacs-company-box")
  5979. (version (git-version version revision commit))
  5980. (source
  5981. (origin
  5982. (method git-fetch)
  5983. (uri (git-reference
  5984. (url "https://github.com/sebastiencs/company-box")
  5985. (commit commit)))
  5986. (file-name (git-file-name name version))
  5987. (sha256
  5988. (base32 "13fgmdy51gqdwijqfvb784pirx4lgva0y7ysi0c3fcx8f82cdj59"))))
  5989. (build-system emacs-build-system)
  5990. (propagated-inputs
  5991. `(("emacs-company" ,emacs-company)
  5992. ("emacs-dash" ,emacs-dash)
  5993. ("emacs-frame-local" ,emacs-frame-local)))
  5994. (home-page "https://github.com/sebastiencs/company-box")
  5995. (synopsis "Company front-end with icons")
  5996. (description
  5997. "Company box is a Company front-end. It supports different
  5998. colors for different backends, associates icons to functions,
  5999. variables... and their backends, and displays candidate's
  6000. documentation. It is not limited by the current window size or
  6001. buffer's text properties.
  6002. This package is not compatible with a TTY.")
  6003. (license license:gpl3+))))
  6004. (define-public emacs-company-posframe
  6005. (package
  6006. (name "emacs-company-posframe")
  6007. (version "0.5.0")
  6008. (source (origin
  6009. (method git-fetch)
  6010. (uri (git-reference
  6011. (url "https://github.com/tumashu/company-posframe")
  6012. (commit (string-append "v" version))))
  6013. (file-name (git-file-name name version))
  6014. (sha256
  6015. (base32
  6016. "05ays6xkqbxcfplvx7wfc2slflmwc3aw7vkixvabk0ilvisndvgm"))))
  6017. (build-system emacs-build-system)
  6018. (propagated-inputs
  6019. `(("emacs-company" ,emacs-company)
  6020. ("emacs-posframe" ,emacs-posframe)))
  6021. (home-page "https://github.com/tumashu/company-posframe")
  6022. (synopsis "Use a posframe for @code{emacs-company}'s candidate menu")
  6023. (description
  6024. "Allows @code{emacs-company} to use child frames for its candidate menus.
  6025. @code{emacs-company-posframe} is fast enough for daily use and supports CJK
  6026. languages.")
  6027. (license license:gpl3+)))
  6028. (define-public emacs-irony-mode
  6029. (package
  6030. (name "emacs-irony-mode")
  6031. (version "1.5.0")
  6032. (home-page "https://github.com/Sarcasm/irony-mode")
  6033. (source (origin
  6034. (method git-fetch)
  6035. (uri (git-reference
  6036. (url (string-append home-page ".git"))
  6037. (commit (string-append "v" version))))
  6038. (file-name (git-file-name name version))
  6039. (sha256
  6040. (base32
  6041. "1ilvfqn7hzrjjy2zrv08dbdnmgksdgsmrdcvx05s8704430ag0pb"))))
  6042. (build-system emacs-build-system)
  6043. (inputs `(("server" ,emacs-irony-mode-server)))
  6044. (arguments `(#:phases
  6045. (modify-phases %standard-phases
  6046. (add-after 'unpack 'configure
  6047. (lambda* (#:key inputs #:allow-other-keys)
  6048. (chmod "irony.el" #o644)
  6049. (emacs-substitute-variables "irony.el"
  6050. ("irony-server-install-prefix"
  6051. (assoc-ref inputs "server")))
  6052. #t)))))
  6053. (synopsis "C/C++/ObjC Code completion and syntax checks for Emacs")
  6054. (description "Irony-mode provides Clang-assisted syntax checking and
  6055. completion for C, C++, and ObjC in GNU Emacs. Using @code{libclang} it can
  6056. provide syntax checking and autocompletion on compiler level which is very
  6057. resistant against false positives. It also integrates well with other
  6058. packages like @code{eldoc-mode} and especially @code{company-mode} as
  6059. described on the homepage.")
  6060. (license license:gpl3+)))
  6061. (define-public emacs-irony-mode-server
  6062. (package (inherit emacs-irony-mode)
  6063. (name "emacs-irony-mode-server")
  6064. (inputs
  6065. `(("clang" ,clang)))
  6066. (arguments
  6067. `(#:phases
  6068. (modify-phases %standard-phases
  6069. (replace 'configure
  6070. (lambda* (#:key outputs #:allow-other-keys)
  6071. (let ((out (assoc-ref outputs "out")))
  6072. (invoke "cmake"
  6073. "server"
  6074. (string-append "-DCMAKE_INSTALL_PREFIX=" out)) #t))))))
  6075. (build-system cmake-build-system)
  6076. (synopsis "Server for the Emacs @dfn{irony mode}")))
  6077. (define-public emacs-company-irony
  6078. (package
  6079. (name "emacs-company-irony")
  6080. (version "1.1.1")
  6081. (source
  6082. (origin
  6083. (method git-fetch)
  6084. (uri (git-reference
  6085. (url "https://github.com/Sarcasm/company-irony")
  6086. (commit (string-append "v" version))))
  6087. (sha256
  6088. (base32 "1d3jw0d4zymznri86a5iixyxnw16jzkkrbhrh657ys73189c1c73"))
  6089. (file-name (git-file-name name version))))
  6090. (build-system emacs-build-system)
  6091. (inputs
  6092. `(("emacs-company" ,emacs-company)
  6093. ("emacs-irony-mode" ,emacs-irony-mode)))
  6094. (synopsis "C++ completion backend for Company using Irony mode")
  6095. (description "This backend for Company allows for C++ code completion
  6096. with Irony mode using Clang tooling.")
  6097. (home-page "https://github.com/Sarcasm/company-irony")
  6098. (license license:gpl3+)))
  6099. (define-public emacs-flycheck-irony
  6100. (package
  6101. (name "emacs-flycheck-irony")
  6102. (version "0.1.0")
  6103. (source (origin
  6104. (method git-fetch)
  6105. (uri (git-reference
  6106. (url "https://github.com/Sarcasm/flycheck-irony")
  6107. (commit (string-append "v" version))))
  6108. (file-name (git-file-name name version))
  6109. (sha256
  6110. (base32 "0qa5a8wzvzxwqql92ibc9s43k8sj3vwn7skz9hfr8av0skkhx996"))))
  6111. (build-system emacs-build-system)
  6112. (inputs
  6113. `(("irony-mode" ,emacs-irony-mode)
  6114. ("flycheck-mode" ,emacs-flycheck)
  6115. ("emacs-company" ,emacs-company)))
  6116. (synopsis "Live syntax checking frontend for Flycheck using irony-mode")
  6117. (description "This package provides a frontend for Flycheck that lets
  6118. irony-mode do the syntax checking.")
  6119. (home-page "https://github.com/Sarcasm/flycheck-irony")
  6120. (license license:gpl3+)))
  6121. (define-public emacs-irony-eldoc
  6122. (package
  6123. (name "emacs-irony-eldoc")
  6124. (version (package-version emacs-irony-mode))
  6125. (source
  6126. (origin
  6127. (method git-fetch)
  6128. (uri (git-reference
  6129. (url "https://github.com/ikirill/irony-eldoc")
  6130. (commit "0df5831eaae264a25422b061eb2792aadde8b3f2")))
  6131. (file-name (git-file-name name version))
  6132. (sha256
  6133. (base32 "1l5qpr66v1l12fb50yh73grb2rr85xxmbj19mm33b5rdrq2bqmmd"))))
  6134. (build-system emacs-build-system)
  6135. (inputs
  6136. `(("irony-mode" ,emacs-irony-mode)))
  6137. (synopsis "Eldoc integration for irony-mode")
  6138. (description "Irony-eldoc is an eldoc extension that shows documentation
  6139. for the current function or variable in the minibuffer.")
  6140. (home-page "https://github.com/ikirill/irony-eldoc")
  6141. (license license:gpl3+)))
  6142. (define-public emacs-company-quickhelp
  6143. ;; XXX: release version 2.3.0 is on an unmaintained branch for some reason,
  6144. ;; so we use the latest 2.2.0 commit instead
  6145. (let ((commit "479676cade80a9f03802ca3d956591820ed5c537")
  6146. (revision "1"))
  6147. (package
  6148. (name "emacs-company-quickhelp")
  6149. (version (git-version "2.2.0" revision commit))
  6150. (source
  6151. (origin
  6152. (method git-fetch)
  6153. (uri (git-reference
  6154. (url "https://github.com/expez/company-quickhelp")
  6155. (commit commit)))
  6156. (file-name (git-file-name name version))
  6157. (sha256
  6158. (base32 "0hbqpnaf4hnin3nmdzmfj3v22kk9a97b6zssqs96ns36d9h52xcp"))))
  6159. (build-system emacs-build-system)
  6160. (propagated-inputs
  6161. `(("emacs-pos-tip" ,emacs-pos-tip)
  6162. ("emacs-company" ,emacs-company)))
  6163. (home-page "https://github.com/expez/company-quickhelp")
  6164. (synopsis "Popup documentation for completion candidates")
  6165. (description "@code{company-quickhelp} shows documentation for the
  6166. completion candidate when using the Company text completion framework.")
  6167. (license license:gpl3+))))
  6168. (define-public emacs-math-symbol-lists
  6169. (package
  6170. (name "emacs-math-symbol-lists")
  6171. (version "1.3")
  6172. (source
  6173. (origin
  6174. (method git-fetch)
  6175. (uri (git-reference
  6176. (url "https://github.com/vspinu/math-symbol-lists")
  6177. (commit (string-append "v" version))))
  6178. (file-name (git-file-name name version))
  6179. (sha256
  6180. (base32 "1r2i600356k8g0l53s4b5xc24flpka664i8f23zbj4h7gk1g2787"))))
  6181. (build-system emacs-build-system)
  6182. (home-page "https://github.com/vspinu/math-symbol-lists")
  6183. (synopsis "Lists of Unicode math symbols and @code{LaTeX} commands")
  6184. (description "This is a storage package used by completion engines like
  6185. @code{company-math}.")
  6186. (license license:gpl3+)))
  6187. (define-public emacs-company-coq
  6188. (package
  6189. (name "emacs-company-coq")
  6190. (version "1.0.1")
  6191. (source
  6192. (origin
  6193. (method git-fetch)
  6194. (uri
  6195. (git-reference
  6196. (url "https://github.com/cpitclaudel/company-coq")
  6197. (commit version)))
  6198. (file-name (git-file-name name version))
  6199. (sha256
  6200. (base32 "0dxi4h8xqq5647k7h89s4pi8nwyj3brlhsckrv3p3b1g4dr6mk3b"))))
  6201. (inputs
  6202. `(("emacs-company" ,emacs-company)
  6203. ("emacs-company-math" ,emacs-company-math)
  6204. ("emacs-dash" ,emacs-dash)
  6205. ("emacs-yasnippet" ,emacs-yasnippet)))
  6206. (build-system emacs-build-system)
  6207. (home-page "https://github.com/cpitclaudel/company-coq")
  6208. (synopsis "Emacs extensions for Proof General's Coq mode")
  6209. (description "This package includes a collection of Company mode backends
  6210. for Proof-General's Coq mode, and many useful extensions to Proof-General. It
  6211. features:
  6212. @itemize
  6213. @item Prettification of operators, types, and subscripts,
  6214. @item Auto-completion,
  6215. @item Insertion of cases,
  6216. @item Fully explicit intros,
  6217. @item Outlines, code folding, and jumping to definition,
  6218. @item Help with errors,
  6219. @item and more.
  6220. @end itemize")
  6221. (license license:gpl3+)))
  6222. (define-public emacs-company-math
  6223. (package
  6224. (name "emacs-company-math")
  6225. (version "1.4")
  6226. (source
  6227. (origin
  6228. (method git-fetch)
  6229. (uri (git-reference
  6230. (url "https://github.com/vspinu/company-math")
  6231. (commit (string-append "v" version))))
  6232. (file-name (git-file-name name version))
  6233. (sha256
  6234. (base32 "1y1fw926insgdl7ib9ynxjrxf3p6wfjkfxvf5vgdca7267cvcll1"))))
  6235. (build-system emacs-build-system)
  6236. (propagated-inputs
  6237. `(("emacs-math-symbol-lists" ,emacs-math-symbol-lists)
  6238. ("emacs-company" ,emacs-company)))
  6239. (home-page "https://github.com/vspinu/company-math")
  6240. (synopsis "Completion backends for math symbols and @code{LaTeX} tags")
  6241. (description
  6242. "This package provides a backend for use with Company mode allowing for
  6243. completion of common math symbols.")
  6244. (license license:gpl3+)))
  6245. (define-public emacs-compdef
  6246. (let ((commit "67104a38763cc819644f711248b170a43bce151b")
  6247. (revision "2"))
  6248. (package
  6249. (name "emacs-compdef")
  6250. (version (git-version "0.2" revision commit))
  6251. (source
  6252. (origin
  6253. (method git-fetch)
  6254. (uri (git-reference
  6255. (url "https://gitlab.com/jjzmajic/compdef.git")
  6256. (commit commit)))
  6257. (file-name (git-file-name name version))
  6258. (sha256
  6259. (base32 "1f6y6cr67gps9jp5hd20xszfd3k26v70g6z4g5db6wdkvlnc2wkg"))))
  6260. (build-system emacs-build-system)
  6261. (home-page "https://gitlab.com/jjzmajic/compdef")
  6262. (synopsis "Set local completion backends")
  6263. (description "This package provides a function to cleanly set local
  6264. completion backends according to mode, and integrates with
  6265. @code{use-package}.")
  6266. (license license:gpl3+))))
  6267. (define-public emacs-icomplete-vertical
  6268. (package
  6269. (name "emacs-icomplete-vertical")
  6270. (version "0.3")
  6271. (source
  6272. (origin
  6273. (method git-fetch)
  6274. (uri (git-reference
  6275. (url "https://github.com/oantolin/icomplete-vertical")
  6276. (commit version)))
  6277. (file-name (git-file-name name version))
  6278. (sha256
  6279. (base32 "02v190pb802vck7di39jyf5prvmfsgcxln8mgwsls2b4clx9da97"))))
  6280. (build-system emacs-build-system)
  6281. (home-page "https://github.com/oantolin/icomplete-vertical")
  6282. (synopsis "Display Icomplete candidates vertically")
  6283. (description
  6284. "This package defines a global minor mode to display Icomplete
  6285. completion candidates vertically.")
  6286. (license license:gpl3+)))
  6287. (define-public emacs-handle
  6288. (let ((commit "51c050bc1c6e5caf0eb47ecd985daea1db7241ab")
  6289. (revision "2"))
  6290. (package
  6291. (name "emacs-handle")
  6292. (version (git-version "0.1" revision commit))
  6293. (source
  6294. (origin
  6295. (method git-fetch)
  6296. (uri (git-reference
  6297. (url "https://gitlab.com/jjzmajic/handle.git")
  6298. (commit commit)))
  6299. (file-name (git-file-name name version))
  6300. (sha256
  6301. (base32 "14f15qzfmwdslml4rv37zb5d1lsjf0jibriz636hb7q7knx1n4sg"))))
  6302. (build-system emacs-build-system)
  6303. (propagated-inputs
  6304. `(("emacs-parent-mode" ,emacs-parent-mode)))
  6305. (home-page "https://gitlab.com/jjzmajic/handle")
  6306. (synopsis "Handle generic functions across related major modes")
  6307. (description "This package provides generic functions that specialize on
  6308. major modes and intended purpose rather than on arguments. Different
  6309. callables for tasks like expression evaluation, definition-jumping, and more
  6310. can now be grouped accordingly and tried in sequence until one of them
  6311. succeeds.")
  6312. (license license:gpl3+))))
  6313. (define-public emacs-nswbuff
  6314. (package
  6315. (name "emacs-nswbuff")
  6316. (version "1.3")
  6317. (source
  6318. (origin
  6319. (method git-fetch)
  6320. (uri (git-reference
  6321. (url "https://github.com/joostkremers/nswbuff")
  6322. (commit version)))
  6323. (file-name (git-file-name name version))
  6324. (sha256
  6325. (base32 "0bkx7mwy3zbb0ixawvn4cysxk3jjc7ahssvdprvw19ls9xx3wbsp"))))
  6326. (build-system emacs-build-system)
  6327. (home-page "https://github.com/joostkremers/nswbuff")
  6328. (synopsis "Quickly switch between buffers")
  6329. (description "This package allows for navigating between buffers within
  6330. a customizable list.")
  6331. (license license:gpl3+)))
  6332. (define-public emacs-phi-search
  6333. (let ((commit "9a089b8271cb1cff9640848850298c9ec855286c")
  6334. (revision "1"))
  6335. (package
  6336. (name "emacs-phi-search")
  6337. (version (git-version "20160630" revision commit))
  6338. (source
  6339. (origin
  6340. (method git-fetch)
  6341. (uri (git-reference
  6342. (url "https://github.com/zk-phi/phi-search")
  6343. (commit commit)))
  6344. (file-name (git-file-name name version))
  6345. (sha256
  6346. (base32 "1gr5plcbrfdc4pglfj905s89hf8x0kc083h30wcnd81bnw9jwz1x"))))
  6347. (build-system emacs-build-system)
  6348. (home-page "https://github.com/zk-phi/phi-search")
  6349. (synopsis "Interactive search compatible with @code{multiple-cursors}")
  6350. (description "This package can be used with @code{multiple-cursors} to
  6351. provide an incremental search that moves all fake cursors in sync.")
  6352. (license license:gpl2+))))
  6353. (define-public emacs-phi-search-mc
  6354. (let ((commit "7aa671910f766437089aec26c3aa7814222d1356")
  6355. (revision "1"))
  6356. (package
  6357. (name "emacs-phi-search-mc")
  6358. (version (git-version "2.2.1" revision commit))
  6359. (source
  6360. (origin
  6361. (method git-fetch)
  6362. (uri (git-reference
  6363. (url "https://github.com/knu/phi-search-mc.el")
  6364. (commit commit)))
  6365. (file-name (git-file-name name version))
  6366. (sha256
  6367. (base32 "0wr86ad0yl52im6b9z0b9pzmhcn39qg5m9878yfv1nbxliw40lcd"))))
  6368. (build-system emacs-build-system)
  6369. (propagated-inputs
  6370. `(("emacs-phi-search" ,emacs-phi-search)
  6371. ("emacs-multiple-cursors" ,emacs-multiple-cursors)))
  6372. (home-page "https://github.com/knu/phi-search-mc.el")
  6373. (synopsis "Extend @code{phi-search} with additional
  6374. @code{multiple-cursors} functionality")
  6375. (description "This package provides further integration between
  6376. @code{multiple-cursors} and @code{phi-search}, a package that allows for
  6377. interactive searches to move multiple fake cursors.")
  6378. (license license:bsd-2))))
  6379. (define-public emacs-multiple-cursors
  6380. (package
  6381. (name "emacs-multiple-cursors")
  6382. (version "1.4.0")
  6383. (source
  6384. (origin
  6385. (method git-fetch)
  6386. (uri (git-reference
  6387. (url "https://github.com/magnars/multiple-cursors.el")
  6388. (commit version)))
  6389. (file-name (git-file-name name version))
  6390. (sha256
  6391. (base32 "1ijgvzv5r44xqvz751fd5drbvrspapw6xwv47582w255j363r6ss"))))
  6392. (build-system emacs-build-system)
  6393. (home-page "https://github.com/magnars/multiple-cursors.el")
  6394. (synopsis "Multiple cursors for Emacs")
  6395. (description
  6396. "This package adds support to Emacs for editing text with multiple
  6397. simultaneous cursors.")
  6398. (license license:gpl3+)))
  6399. (define-public emacs-multifiles
  6400. ;; There is no tag and no "Version:" keyword. Using the latest release
  6401. ;; instead.
  6402. (let ((commit "dddfe64b8e1c1cd1f9ccc1f03405477fc0d53897")
  6403. (revision "1"))
  6404. (package
  6405. (name "emacs-multifiles")
  6406. (version (git-version "0" revision commit))
  6407. (source
  6408. (origin
  6409. (method git-fetch)
  6410. (uri (git-reference
  6411. (url "https://github.com/magnars/multifiles.el")
  6412. (commit commit)))
  6413. (file-name (git-file-name name version))
  6414. (sha256
  6415. (base32 "065l04ylplng1vgykkbn2vnkcs3sn1k2cikx1ha2q8wmgx6bkvai"))))
  6416. (build-system emacs-build-system)
  6417. (propagated-inputs
  6418. `(("emacs-dash" ,emacs-dash)))
  6419. (home-page "https://github.com/magnars/multifiles.el")
  6420. (synopsis "Edit multiple files in a single Emacs buffer")
  6421. (description
  6422. "This package allows one to view and edit parts of multiple files in
  6423. one Emacs buffer.")
  6424. (license license:gpl3+))))
  6425. (define-public emacs-mc-extras
  6426. (let ((commit "053abc52181b8718559d7361a587bbb795faf164")
  6427. (revision "1"))
  6428. (package
  6429. (name "emacs-mc-extras")
  6430. (version (git-version "1.2.4" revision commit))
  6431. (source
  6432. (origin
  6433. (method git-fetch)
  6434. (uri (git-reference
  6435. (url "https://github.com/knu/mc-extras.el")
  6436. (commit commit)))
  6437. (file-name (git-file-name name version))
  6438. (sha256
  6439. (base32 "16y48qrd20m20vypvys5jp4v4gc1qrqlkm75s1pk1r68i9zrw481"))))
  6440. (build-system emacs-build-system)
  6441. (propagated-inputs
  6442. `(("emacs-multiple-cursors" ,emacs-multiple-cursors)))
  6443. (home-page "https://github.com/knu/mc-extras.el")
  6444. (synopsis "Extra functions for manipulating multiple cursors")
  6445. (description
  6446. "This package provides additional functions for
  6447. @code{multiple-cursors}, including functions for marking s-expressions,
  6448. comparing characters, removing cursors, and more.")
  6449. (license license:bsd-2))))
  6450. (define-public emacs-typo
  6451. (package
  6452. (name "emacs-typo")
  6453. (version "1.1")
  6454. (home-page "https://github.com/jorgenschaefer/typoel")
  6455. (source (origin
  6456. (method git-fetch)
  6457. (uri (git-reference
  6458. (url home-page)
  6459. (commit (string-append "v" version))))
  6460. (file-name (git-file-name name version))
  6461. (sha256
  6462. (base32
  6463. "1jhd4grch5iz12gyxwfbsgh4dmz5hj4bg4gnvphccg8dsnni05k2"))))
  6464. (build-system emacs-build-system)
  6465. (synopsis "Minor mode for typographic editing")
  6466. (description
  6467. "This package provides two Emacs modes, @code{typo-mode} and
  6468. @code{typo-global-mode}. These modes automatically insert Unicode characters
  6469. for quotation marks, dashes, and ellipses. For example, typing @kbd{\"}
  6470. automatically inserts a Unicode opening or closing quotation mark, depending
  6471. on context.")
  6472. (license license:gpl3+)))
  6473. (define-public emacs-company-lsp
  6474. (package
  6475. (name "emacs-company-lsp")
  6476. (version "2.1.0")
  6477. (source (origin
  6478. (method git-fetch)
  6479. (uri (git-reference
  6480. (url "https://github.com/tigersoldier/company-lsp")
  6481. (commit version)))
  6482. (file-name (git-file-name name version))
  6483. (sha256
  6484. (base32
  6485. "1hy1x2w0yp5brm7714d1hziz3rpkywb5jp3yj78ibmi9ifny9vri"))))
  6486. (build-system emacs-build-system)
  6487. (propagated-inputs
  6488. `(("emacs-dash" ,emacs-dash)
  6489. ("emacs-lsp-mode" ,emacs-lsp-mode)
  6490. ("emacs-company" ,emacs-company)
  6491. ("emacs-s" ,emacs-s)
  6492. ("emacs-dash" ,emacs-dash)))
  6493. (native-inputs
  6494. `(("emacs-buttercup" ,emacs-buttercup)))
  6495. (arguments
  6496. `(#:tests? #t
  6497. #:test-command '("buttercup" "-L" ".")))
  6498. (home-page "https://github.com/tigersoldier/company-lsp")
  6499. (synopsis "Completion for @code{lsp-mode}")
  6500. (description
  6501. "This package provides completion features that are not possible with
  6502. @code{lsp-mode} and @code{company-capf} alone, including support for trigger
  6503. characters and asynchronous fetching of completion candidates.")
  6504. (license license:gpl3+)))
  6505. (define-public emacs-scala-mode
  6506. (package
  6507. (name "emacs-scala-mode")
  6508. (version "1.1.0")
  6509. (source
  6510. (origin
  6511. (method git-fetch)
  6512. (uri (git-reference
  6513. (url "https://github.com/hvesalai/emacs-scala-mode")
  6514. (commit (string-append "v" version))))
  6515. (file-name (git-file-name name version))
  6516. (sha256
  6517. (base32 "1072lsin7dxadc0xyhy42wd0cw549axbbd4dy95wfmfcc1xbzjwv"))))
  6518. (build-system emacs-build-system)
  6519. (home-page "https://github.com/hvesalai/emacs-scala-mode")
  6520. (synopsis "Emacs major mode for Scala")
  6521. (description
  6522. "This package provides basic Emacs support for the Scala language,
  6523. including: local indenting of code, comments and multi-line strings, motion
  6524. commands and highlighting.")
  6525. ;; There are no copyright headers in the source code. The LICENSE file
  6526. ;; indicates GPL3.
  6527. (license license:gpl3)))
  6528. (define-public emacs-sbt-mode
  6529. (package
  6530. (name "emacs-sbt-mode")
  6531. (version "2.0.0")
  6532. (source
  6533. (origin
  6534. (method git-fetch)
  6535. (uri (git-reference
  6536. (url "https://github.com/hvesalai/emacs-sbt-mode")
  6537. (commit (string-append "v" version))))
  6538. (file-name (git-file-name name version))
  6539. (sha256
  6540. (base32 "0lv9ridzk9x6rkf7lj21srnszypyq04vqg05vl10zhpz1yqlnbjd"))))
  6541. (build-system emacs-build-system)
  6542. (home-page "https://github.com/hvesalai/emacs-sbt-mode")
  6543. (synopsis "Basic functionality for interacting with sbt inside Emacs")
  6544. (description
  6545. "This mode provides basic functionality required for successfully
  6546. interacting with sbt inside Emacs. The core functionality includes
  6547. interacting with the sbt shell and Scala console, compiling code and
  6548. navigation to errors.")
  6549. (license license:gpl3+)))
  6550. (define-public emacs-scheme-complete
  6551. ;; Upstream does not provide tags. The commit below corresponds to the
  6552. ;; exact version update. Version is extracted from main file.
  6553. (let ((commit "5c0a16684a3be7021d67067b2955f1c3e17a320a"))
  6554. (package
  6555. (name "emacs-scheme-complete")
  6556. (version "0.9.9")
  6557. (source
  6558. (origin
  6559. (method git-fetch)
  6560. (uri (git-reference
  6561. (url "https://github.com/ashinn/scheme-complete")
  6562. (commit commit)))
  6563. (file-name (git-file-name name version))
  6564. (sha256
  6565. (base32 "1smxr5bkzbfrjx21vhrj1wagmqx5yd92i997dbgs16iaqbzzr7cz"))))
  6566. (build-system emacs-build-system)
  6567. (home-page "https://github.com/ashinn/scheme-complete")
  6568. (synopsis "Smart tab completion for Scheme in Emacs")
  6569. (description
  6570. "This file provides a single function, @code{scheme-smart-complete},
  6571. which you can use for intelligent, context-sensitive completion for any Scheme
  6572. implementation in Emacs. To use it just load this file and bind that function
  6573. to a key in your preferred mode.")
  6574. (license license:public-domain))))
  6575. (define-public emacs-scel
  6576. (let ((version "20170629")
  6577. (revision "1")
  6578. (commit "aeea3ad4be9306d14c3a734a4ff54fee10ac135b"))
  6579. (package
  6580. (name "emacs-scel")
  6581. (version (git-version version revision commit))
  6582. (source
  6583. (origin
  6584. (method git-fetch)
  6585. (uri (git-reference
  6586. (url "https://github.com/supercollider/scel")
  6587. (commit commit)))
  6588. (file-name (git-file-name name version))
  6589. (sha256
  6590. (base32
  6591. "0jvmzs1lsjyndqshhii2y4mnr3wghai26i3p75453zrpxpg0zvvw"))))
  6592. (build-system emacs-build-system)
  6593. (arguments
  6594. `(#:modules ((guix build emacs-build-system)
  6595. ((guix build cmake-build-system) #:prefix cmake:)
  6596. (guix build utils))
  6597. #:imported-modules (,@%emacs-build-system-modules
  6598. (guix build cmake-build-system))
  6599. #:phases
  6600. (modify-phases %standard-phases
  6601. (add-after 'unpack 'configure
  6602. (lambda* (#:key outputs #:allow-other-keys)
  6603. (substitute* "el/CMakeLists.txt"
  6604. (("share/emacs/site-lisp/SuperCollider")
  6605. (elpa-directory (assoc-ref outputs "out"))))
  6606. ((assoc-ref cmake:%standard-phases 'configure)
  6607. #:outputs outputs
  6608. #:configure-flags '("-DSC_EL_BYTECOMPILE=OFF"))))
  6609. (add-after 'expand-load-path 'add-el-dir-to-emacs-load-path
  6610. (lambda _
  6611. (setenv "EMACSLOADPATH"
  6612. (string-append (getcwd) "/el:" (getenv "EMACSLOADPATH")))
  6613. #t))
  6614. (replace 'install (assoc-ref cmake:%standard-phases 'install)))))
  6615. (inputs
  6616. `(("supercollider" ,supercollider)))
  6617. (native-inputs
  6618. `(("cmake" ,cmake-minimal)))
  6619. (home-page "https://github.com/supercollider/scel")
  6620. (synopsis "SuperCollider Emacs interface")
  6621. (description "@code{emacs-scel} is an Emacs interface to SuperCollider.
  6622. SuperCollider is a platform for audio synthesis and algorithmic composition.")
  6623. (license license:gpl2+))))
  6624. (define-public emacs-company-auctex
  6625. (let ((commit "48c42c58ce2f0e693301b0cb2d085055410c1b25")
  6626. (revision "1"))
  6627. (package
  6628. (name "emacs-company-auctex")
  6629. (version (git-version "0" revision commit))
  6630. (source (origin
  6631. (method git-fetch)
  6632. (uri (git-reference
  6633. (url "https://github.com/alexeyr/company-auctex")
  6634. (commit commit)))
  6635. (file-name (git-file-name name version))
  6636. (sha256
  6637. (base32
  6638. "10qn7frn5wcmrlci3v6iliqzj7r9dls87h9zp3xkgrgn4bqprfp8"))))
  6639. (build-system emacs-build-system)
  6640. (propagated-inputs
  6641. `(("emacs-yasnippet" ,emacs-yasnippet)
  6642. ("emacs-auctex" ,emacs-auctex)
  6643. ("emacs-company" ,emacs-company)))
  6644. (home-page "https://github.com/alexeyr/company-auctex/")
  6645. (synopsis "Completion for @code{AUCTeX}")
  6646. (description
  6647. "This package provides a group of backends permitting auto-completion
  6648. for @code{AUCTeX}.")
  6649. (license license:gpl3+))))
  6650. (define-public emacs-mit-scheme-doc
  6651. (package
  6652. (name "emacs-mit-scheme-doc")
  6653. (version "20140203")
  6654. (source
  6655. (origin
  6656. (modules '((guix build utils)))
  6657. (snippet
  6658. ;; keep only file of interest
  6659. '(begin
  6660. (for-each delete-file '("dot-emacs.el" "Makefile"))
  6661. (install-file "6.945-config/mit-scheme-doc.el" ".")
  6662. (delete-file-recursively "6.945-config")
  6663. #t))
  6664. (file-name (string-append name "-" version ".tar.bz2"))
  6665. (method url-fetch)
  6666. (uri (string-append "http://groups.csail.mit.edu/mac/users/gjs/"
  6667. "6.945/dont-panic/emacs-basic-config.tar.bz2"))
  6668. (sha256
  6669. (base32
  6670. "0dqidg2bd66pawqfarvwca93w5gqf9mikn1k2a2rmd9ymfjpziq1"))))
  6671. (build-system emacs-build-system)
  6672. (inputs `(("mit-scheme" ,mit-scheme)))
  6673. (arguments
  6674. `(#:phases
  6675. (modify-phases %standard-phases
  6676. (add-after 'unpack 'configure-doc
  6677. (lambda* (#:key inputs #:allow-other-keys)
  6678. (let* ((mit-scheme-dir (assoc-ref inputs "mit-scheme"))
  6679. (doc-dir (string-append mit-scheme-dir "/share/doc/"
  6680. "mit-scheme-"
  6681. ,(package-version mit-scheme))))
  6682. (substitute* "mit-scheme-doc.el"
  6683. (("http://www\\.gnu\\.org/software/mit-scheme/documentation/mit-scheme-ref/")
  6684. (string-append "file:" doc-dir "/mit-scheme-ref/")))))))))
  6685. (home-page "https://groups.csail.mit.edu/mac/users/gjs/6.945/dont-panic/")
  6686. (synopsis "MIT-Scheme documentation lookup for Emacs")
  6687. (description
  6688. "This package provides a set of Emacs functions to search definitions of
  6689. identifiers in the MIT-Scheme documentation.")
  6690. (license license:gpl2+)))
  6691. (define-public emacs-constants
  6692. (package
  6693. (name "emacs-constants")
  6694. (version "2.6")
  6695. (home-page "https://staff.fnwi.uva.nl/c.dominik/Tools/constants")
  6696. (source
  6697. (origin
  6698. (method git-fetch)
  6699. (uri (git-reference
  6700. (url "https://github.com/fedeinthemix/emacs-constants")
  6701. (commit (string-append "v" version))))
  6702. (file-name (git-file-name name version))
  6703. (sha256
  6704. (base32 "0f5sh6b45a8p9kancjp9jk44ws8ww6x50a0i6zgyyvr7dbvii1a0"))))
  6705. (build-system emacs-build-system)
  6706. (synopsis "Enter definition of constants into an Emacs buffer")
  6707. (description
  6708. "This package provides functions for inserting the definition of natural
  6709. constants and units into an Emacs buffer.")
  6710. (license license:gpl2+)))
  6711. (define-public emacs-tagedit
  6712. (package
  6713. (name "emacs-tagedit")
  6714. (version "1.4.0")
  6715. (source
  6716. (origin
  6717. (method git-fetch)
  6718. (uri (git-reference
  6719. (url "https://github.com/magnars/tagedit")
  6720. (commit version)))
  6721. (file-name (git-file-name name version))
  6722. (sha256
  6723. (base32 "0kq40g46s8kgiafrhdq99h79rz9h5fvgz59k7ralmf86bl4sdmdb"))))
  6724. (build-system emacs-build-system)
  6725. (propagated-inputs
  6726. `(("emacs-s" ,emacs-s)
  6727. ("emacs-dash" ,emacs-dash)))
  6728. (home-page "https://github.com/magnars/tagedit")
  6729. (synopsis "Some paredit-like features for html-mode")
  6730. (description
  6731. "This package provides a collection of paredit-like functions for editing
  6732. in @code{html-mode}.")
  6733. (license license:gpl3+)))
  6734. (define-public emacs-slime
  6735. (package
  6736. (name "emacs-slime")
  6737. (version "2.26.1")
  6738. (source
  6739. (origin
  6740. (method git-fetch)
  6741. (uri (git-reference
  6742. (url "https://github.com/slime/slime")
  6743. (commit (string-append "v" version))))
  6744. (file-name (git-file-name name version))
  6745. (sha256
  6746. (base32 "1a25ixb7q4svqabxnhwkk43v47mbsh13qwm7qlazkd3zkr8j3cli"))))
  6747. (build-system emacs-build-system)
  6748. (native-inputs
  6749. `(("texinfo" ,texinfo)))
  6750. (arguments
  6751. `(#:include '("\\.el$" "\\.lisp$" "\\.asd$" "contrib")
  6752. #:exclude '("^slime-tests.el" "^contrib/test/"
  6753. "^contrib/Makefile$" "^contrib/README.md$")
  6754. #:phases
  6755. (modify-phases %standard-phases
  6756. (add-after 'unpack 'make-git-checkout-writable
  6757. (lambda _
  6758. (for-each make-file-writable (find-files "."))
  6759. #t))
  6760. (add-before 'install 'configure
  6761. (lambda* _
  6762. (emacs-substitute-variables "slime.el"
  6763. ("inferior-lisp-program" "sbcl"))
  6764. #t))
  6765. (add-before 'install 'install-doc
  6766. (lambda* (#:key outputs #:allow-other-keys)
  6767. (let* ((out (assoc-ref outputs "out"))
  6768. (info-dir (string-append out "/share/info"))
  6769. (doc-dir (string-append out "/share/doc/"
  6770. ,name "-" ,version))
  6771. (doc-files '("doc/slime-refcard.pdf"
  6772. "README.md" "NEWS" "PROBLEMS"
  6773. "CONTRIBUTING.md")))
  6774. (with-directory-excursion "doc"
  6775. (substitute* "Makefile"
  6776. (("infodir=/usr/local/info")
  6777. (string-append "infodir=" info-dir)))
  6778. (invoke "make" "html/index.html")
  6779. (invoke "make" "slime.info")
  6780. (install-file "slime.info" info-dir)
  6781. (copy-recursively "html" (string-append doc-dir "/html")))
  6782. (for-each (lambda (f)
  6783. (install-file f doc-dir)
  6784. (delete-file f))
  6785. doc-files)
  6786. (delete-file-recursively "doc")
  6787. #t))))))
  6788. (home-page "https://github.com/slime/slime")
  6789. (synopsis "Superior Lisp Interaction Mode for Emacs")
  6790. (description
  6791. "SLIME extends Emacs with support for interactive programming in
  6792. Common Lisp. The features are centered around @command{slime-mode},
  6793. an Emacs minor mode that complements the standard @command{lisp-mode}.
  6794. While lisp-mode supports editing Lisp source files, @command{slime-mode}
  6795. adds support for interacting with a running Common Lisp process
  6796. for compilation, debugging, documentation lookup, and so on.")
  6797. (license (list license:gpl2+ license:public-domain))))
  6798. (define-public emacs-popup
  6799. (package
  6800. (name "emacs-popup")
  6801. (version "0.5.8")
  6802. (source
  6803. (origin
  6804. (method git-fetch)
  6805. (uri (git-reference
  6806. (url "https://github.com/auto-complete/popup-el")
  6807. (commit (string-append "v" version))))
  6808. (file-name (git-file-name name version))
  6809. (sha256
  6810. (base32 "0qrsz4z9q2bfq9xv4n94mvyslm232v2ql9r1fjycx7rnmpqggiwl"))))
  6811. (build-system emacs-build-system)
  6812. (home-page "https://github.com/auto-complete/popup-el")
  6813. (synopsis "Visual Popup User Interface for Emacs")
  6814. (description
  6815. "Popup.el is a visual popup user interface library for Emacs.
  6816. This provides a basic API and common UI widgets such as popup tooltips
  6817. and popup menus.")
  6818. (license license:gpl3+)))
  6819. (define-public emacs-python-black
  6820. (package
  6821. (name "emacs-python-black")
  6822. (version "1.1.0")
  6823. (source
  6824. (origin
  6825. (method git-fetch)
  6826. (uri (git-reference
  6827. (url "https://github.com/wbolster/emacs-python-black")
  6828. (commit version)))
  6829. (file-name (git-file-name name version))
  6830. (sha256
  6831. (base32
  6832. "1cmzc0fa3jj7ajxbqhbsc8jx47k6g223sfd42c4lrqdnmh95760m"))))
  6833. (build-system emacs-build-system)
  6834. (propagated-inputs
  6835. `(("emacs-dash" ,emacs-dash)
  6836. ("emacs-reformatter" ,emacs-reformatter)
  6837. ("python-black-macchiato" ,python-black-macchiato)))
  6838. (arguments `(#:tests? #f))
  6839. (home-page "https://github.com/wbolster/emacs-python-black")
  6840. (synopsis "Reformat Python code via @code{python-black}")
  6841. (description
  6842. "This package makes it easy to reformat Python code using
  6843. @code{python-black} and @code{python-black-macchiato} for entire and partial
  6844. buffers, respectively.")
  6845. (license license:bsd-3)))
  6846. (define-public emacs-py-isort
  6847. (package
  6848. (name "emacs-py-isort")
  6849. (version "2016.1")
  6850. (source
  6851. (origin
  6852. (method git-fetch)
  6853. (uri (git-reference
  6854. (url "https://github.com/paetzke/py-isort.el")
  6855. (commit (string-append "v" version))))
  6856. (file-name (git-file-name name version))
  6857. (sha256
  6858. (base32 "08i55gv392wc12x8v3dca0dmz8a8p9ljsqhyajsb6qv1k120wqhx"))))
  6859. (build-system emacs-build-system)
  6860. (arguments
  6861. `(#:tests? #f)) ;tests fail with "emacs: standard input is not a tty"
  6862. (propagated-inputs
  6863. `(("python-isort" ,python-isort)))
  6864. (home-page "https://github.com/paetzke/py-isort.el")
  6865. (synopsis "Sort the imports in Python buffers")
  6866. (description
  6867. "This package provides commands and a minor mode to sort Python imports
  6868. using @code{python-isort}.")
  6869. (license license:gpl3+)))
  6870. (define-public emacs-python-environment
  6871. (package
  6872. (name "emacs-python-environment")
  6873. (version "0.0.2")
  6874. (source
  6875. (origin
  6876. (method git-fetch)
  6877. (uri (git-reference
  6878. (url "https://github.com/tkf/emacs-python-environment/")
  6879. (commit version)))
  6880. (file-name (git-file-name name version))
  6881. (sha256
  6882. (base32 "0q6bib9nr6xiq6npzbngyfcjk87yyvwzq1zirr3z1h5wadm34lsk"))))
  6883. (build-system emacs-build-system)
  6884. (propagated-inputs
  6885. `(("emacs-deferred" ,emacs-deferred)))
  6886. (home-page "https://github.com/tkf/emacs-python-environment")
  6887. (synopsis "Provides a @code{virtualenv} API in Emacs Lisp")
  6888. (description
  6889. "This package permits automated installation of tools written in Python.")
  6890. (license license:gpl3+)))
  6891. (define-public emacs-jedi
  6892. (package
  6893. (name "emacs-jedi")
  6894. (version "0.2.8")
  6895. (source (origin
  6896. (method git-fetch)
  6897. (uri (git-reference
  6898. (url "https://github.com/tkf/emacs-jedi/")
  6899. (commit (string-append "v" version))))
  6900. (file-name (git-file-name name version))
  6901. (sha256
  6902. (base32
  6903. "1bckxppfzd5gwn0aw4h86igb7igal9axqncq7j8zmflg7zppncf1"))))
  6904. (build-system emacs-build-system)
  6905. (native-inputs
  6906. `(("emacs-mocker" ,emacs-mocker)))
  6907. (propagated-inputs
  6908. `(("emacs-auto-complete" ,emacs-auto-complete)
  6909. ("emacs-python-environment" ,emacs-python-environment)
  6910. ("emacs-epc" ,emacs-epc)))
  6911. (home-page "https://github.com/tkf/emacs-jedi")
  6912. (synopsis "Provides Python completion in Emacs")
  6913. (description
  6914. "This package provides completion in Python buffers and also helps find
  6915. the locations of docstrings, arguments, and functions.")
  6916. (license license:gpl3+)))
  6917. (define-public emacs-company-jedi
  6918. (package
  6919. (name "emacs-company-jedi")
  6920. (version "0.04")
  6921. (source (origin
  6922. (method git-fetch)
  6923. (uri (git-reference
  6924. (url "https://github.com/syohex/emacs-company-jedi")
  6925. (commit version)))
  6926. (file-name (git-file-name name version))
  6927. (sha256
  6928. (base32
  6929. "1ihqapp4dv92794rsgyq0rmhwika60cmradqd4bn9b72ss6plxs1"))))
  6930. (build-system emacs-build-system)
  6931. (propagated-inputs
  6932. `(("emacs-jedi" ,emacs-jedi)
  6933. ("emacs-company" ,emacs-company)))
  6934. (home-page "https://github.com/syohex/emacs-company-jedi")
  6935. (synopsis "Provides Python completion in @code{company-mode}")
  6936. (description
  6937. "This package provides a Company backend for Python.")
  6938. (license license:gpl3+)))
  6939. (define-public emacs-puppet-mode
  6940. (package
  6941. (name "emacs-puppet-mode")
  6942. (version "0.4")
  6943. (source
  6944. (origin
  6945. (method git-fetch)
  6946. (uri (git-reference
  6947. (url "https://github.com/voxpupuli/puppet-mode")
  6948. (commit version)))
  6949. (file-name (git-file-name name version))
  6950. (sha256
  6951. (base32
  6952. "0c5q8qmbligzjsn05di4wh6ggpd3944j4yqb78vzd441b8ssq70i"))))
  6953. (build-system emacs-build-system)
  6954. (home-page "https://github.com/voxpupuli/puppet-mode")
  6955. (synopsis "Emacs major mode for the Puppet configuration language")
  6956. (description
  6957. "This package provides support for the Puppet configuration language,
  6958. including syntax highlighting, indentation of expressions and statements,
  6959. linting of manifests and integration with Puppet Debugger.")
  6960. ;; Also incorporates work covered by the Apache License, Version 2.0
  6961. (license license:gpl3+)))
  6962. (define-public emacs-purescript-mode
  6963. ;; Retrieved on 2021-05-18.
  6964. (let ((revision "0")
  6965. (commit "0acd1af446424ba855153161fe07a20f67dc0a89"))
  6966. (package
  6967. (name "emacs-purescript-mode")
  6968. (version (git-version "0.0.0" revision commit))
  6969. (source
  6970. (origin
  6971. (method git-fetch)
  6972. (uri (git-reference
  6973. (url "https://github.com/purescript-emacs/purescript-mode")
  6974. (commit commit)))
  6975. (file-name (git-file-name name version))
  6976. (sha256
  6977. (base32
  6978. "0rxdsmx8826az4blhnnvqrx7bjky9hwph6gkyrh33sck26xhh3g5"))))
  6979. (build-system emacs-build-system)
  6980. (arguments
  6981. `(#:phases
  6982. (modify-phases %standard-phases
  6983. (add-before 'install 'make-info
  6984. (lambda _
  6985. (invoke "makeinfo" "--no-split"
  6986. "-o" "purescript-mode.info" "purescript-mode.texi"))))))
  6987. (native-inputs
  6988. `(("texinfo" ,texinfo)))
  6989. (home-page "https://github.com/purescript-emacs/purescript-mode")
  6990. (synopsis "Emacs major mode and related tools for Purescript")
  6991. (description "This package provides an Emacs major mode for writing Purescript.")
  6992. (license license:gpl3+))))
  6993. (define-public emacs-god-mode
  6994. (package
  6995. (name "emacs-god-mode")
  6996. (version "2.17.3")
  6997. (source
  6998. (origin
  6999. (method git-fetch)
  7000. (uri (git-reference
  7001. (url "https://github.com/chrisdone/god-mode")
  7002. (commit version)))
  7003. (file-name (git-file-name name version))
  7004. (sha256
  7005. (base32
  7006. "1wsc04l5j5a9y5439qx85pcchxjnjgcgwbffw3l30q9zlblvc58b"))))
  7007. (build-system emacs-build-system)
  7008. (home-page "https://github.com/chrisdone/god-mode")
  7009. (synopsis "Minor mode for entering commands without modifier keys")
  7010. (description
  7011. "This package provides a global minor mode for entering Emacs commands
  7012. without modifier keys. It's similar to Vim's separation of commands and
  7013. insertion mode. When enabled all keys are implicitly prefixed with
  7014. @samp{C-} (among other helpful shortcuts).")
  7015. (license license:gpl3+)))
  7016. (define-public emacs-jinja2-mode
  7017. (package
  7018. (name "emacs-jinja2-mode")
  7019. (version "0.2")
  7020. (source
  7021. (origin
  7022. (method git-fetch)
  7023. (uri (git-reference
  7024. (url "https://github.com/paradoxxxzero/jinja2-mode")
  7025. (commit (string-append "v" version))))
  7026. (file-name (git-file-name name version))
  7027. (sha256
  7028. (base32 "0l26wcy496k6xk7q5sf905xir0p73ziy6c44is77854lv3y0z381"))))
  7029. (build-system emacs-build-system)
  7030. (home-page "https://github.com/paradoxxxzero/jinja2-mode")
  7031. (synopsis "Major mode for jinja2")
  7032. (description
  7033. "Emacs major mode for jinja2 with: syntax highlighting,
  7034. sgml/html integration, and indentation (working with sgml).")
  7035. (license license:gpl3+)))
  7036. (define-public emacs-company-cabal
  7037. ;; The latest version is 0.3.0, but no release has been provided after 0.2.1.
  7038. (let ((commit "62112a7259e24bd6c08885629a185afe512b7d3d")
  7039. (revision "1"))
  7040. (package
  7041. (name "emacs-company-cabal")
  7042. (version (git-version "0.3.0" revision commit))
  7043. (source (origin
  7044. (method git-fetch)
  7045. (uri (git-reference
  7046. (url "https://github.com/iquiw/company-cabal/")
  7047. (commit commit)))
  7048. (file-name (git-file-name name version))
  7049. (sha256
  7050. (base32
  7051. "1gf45xwjzdm8i4q6c6khk4dbg1mmp2r0awz2sjr4dcr2dbd1n7mg"))))
  7052. (build-system emacs-build-system)
  7053. (propagated-inputs
  7054. `(("emacs-company" ,emacs-company)))
  7055. (arguments
  7056. `(#:include (cons "^tools\\/" %default-include)))
  7057. (home-page "https://github.com/iquiw/company-cabal/")
  7058. (synopsis "Company completion for Haskell Cabal files")
  7059. (description
  7060. "This package allows for completion of field names, section names,
  7061. field values, and more within @code{haskell-cabal-mode}.")
  7062. (license license:gpl3+))))
  7063. (define-public emacs-rfcview
  7064. (package
  7065. (name "emacs-rfcview")
  7066. (version "0.13")
  7067. (home-page "http://www.loveshack.ukfsn.org/emacs")
  7068. (source (origin
  7069. (method url-fetch)
  7070. (uri "http://www.loveshack.ukfsn.org/emacs/rfcview.el")
  7071. (sha256
  7072. (base32
  7073. "0ympj5rxig383zl2jf0pzdsa80nnq0dpvjiriq0ivfi98fj7kxbz"))))
  7074. (build-system emacs-build-system)
  7075. (synopsis "Prettify Request for Comments (RFC) documents")
  7076. (description "The Internet Engineering Task Force (IETF) and the Internet
  7077. Society (ISOC) publish various Internet-related protocols and specifications
  7078. as \"Request for Comments\" (RFC) documents and Internet Standard (STD)
  7079. documents. RFCs and STDs are published in a simple text form. This package
  7080. provides an Emacs major mode, rfcview-mode, which makes it more pleasant to
  7081. read these documents in Emacs. It prettifies the text and adds
  7082. hyperlinks/menus for easier navigation. It also provides functions for
  7083. browsing the index of RFC documents and fetching them from remote servers or
  7084. local directories.")
  7085. (license license:gpl3+)))
  7086. (define-public emacs-ffap-rfc-space
  7087. (package
  7088. (name "emacs-ffap-rfc-space")
  7089. (version "12")
  7090. (home-page "https://user42.tuxfamily.org/ffap-rfc-space/index.html")
  7091. (source (origin
  7092. (method url-fetch)
  7093. (uri "http://download.tuxfamily.org/user42/ffap-rfc-space.el")
  7094. (sha256
  7095. (base32
  7096. "1iv61dv57a73mdps7rn6zmgz7nqh14v0ninidyrasy45b1nv6gck"))))
  7097. (build-system emacs-build-system)
  7098. (synopsis "Make ffap recognize an RFC with a space before its number")
  7099. (description "The Internet Engineering Task Force (IETF) and the
  7100. Internet Society (ISOC) publish various Internet-related protocols and
  7101. specifications as \"Request for Comments\" (RFC) documents. The
  7102. built-in Emacs module \"ffap\" (Find File at Point) has the ability to
  7103. recognize names at point which look like \"RFC1234\" and \"RFC-1234\"
  7104. and load the appropriate RFC from a remote server. However, it fails
  7105. to recognize a name like \"RFC 1234\". This package enhances ffap so
  7106. that it correctly finds RFCs even when a space appears before the
  7107. number.")
  7108. (license license:gpl3+)))
  7109. (define-public emacs-feature-mode
  7110. (let ((version "20190801")
  7111. (revision "1")
  7112. (commit "11ae1671629bfedaa553c7b819676d64eb320992"))
  7113. (package
  7114. (name "emacs-feature-mode")
  7115. (version (git-version version revision commit))
  7116. (source (origin
  7117. (method git-fetch)
  7118. (uri (git-reference
  7119. (url "https://github.com/michaelklishin/cucumber.el")
  7120. (commit commit)))
  7121. (file-name (git-file-name name version))
  7122. (sha256
  7123. (base32
  7124. "0yd4gkxz9xcbgibfgr8apsid3f83nmg5jgqk5nql0linj5gymc28"))))
  7125. (build-system emacs-build-system)
  7126. (arguments
  7127. `(#:include (cons* "^features\\/" "snippets\\/" "^support\\/"
  7128. %default-include)))
  7129. (home-page "https://github.com/michaelklishin/cucumber.el/")
  7130. (synopsis "Emacs mode for editing Gherkin plain text user stories")
  7131. (description "Major mode for editing Gherkin (popularized by the
  7132. Cucumber tool) user stories. Also known by the name @code{cucumber.el}.")
  7133. (license license:gpl2+))))
  7134. (define-public emacs-org-bullets
  7135. (package
  7136. (name "emacs-org-bullets")
  7137. (version "0.2.4")
  7138. (source
  7139. (origin
  7140. (method git-fetch)
  7141. (uri (git-reference
  7142. (url "https://github.com/sabof/org-bullets")
  7143. (commit version)))
  7144. (file-name (git-file-name name version))
  7145. (sha256
  7146. (base32 "10nr4sjffnqbllv6gmak6pviyynrb7pi5nvrq331h5alm3xcpq0w"))))
  7147. (build-system emacs-build-system)
  7148. (home-page "https://github.com/sabof/org-bullets")
  7149. (synopsis "Show bullets in org-mode as UTF-8 characters")
  7150. (description
  7151. "This package provides an Emacs minor mode causing bullets in
  7152. @code{org-mode} to be rendered as UTF-8 characters.")
  7153. (license license:gpl3+)))
  7154. (define-public emacs-org-appear
  7155. (package
  7156. (name "emacs-org-appear")
  7157. (version "0.2.4")
  7158. (source
  7159. (origin
  7160. (method git-fetch)
  7161. (uri (git-reference
  7162. (url "https://github.com/awth13/org-appear")
  7163. (commit version)))
  7164. (file-name (git-file-name name version))
  7165. (sha256
  7166. (base32 "0sfz8rpvc9hidjj81wlc48vi7ii90mssgvfnp2z215phv67npbzp"))))
  7167. (build-system emacs-build-system)
  7168. (home-page "https://github.com/awth13/org-appear")
  7169. (synopsis "Make invisible parts of Org fragments appear visible")
  7170. (description "This package enables automatic visibility toggling of
  7171. org-mode elements depending on cursor position. Hidden fragment parts appear
  7172. when the cursor enters a fragment and disappear when it leaves.")
  7173. (license license:expat)))
  7174. (define-public emacs-org-drill
  7175. (package
  7176. (name "emacs-org-drill")
  7177. (version "2.7.0")
  7178. (source
  7179. (origin
  7180. (method git-fetch)
  7181. (uri (git-reference
  7182. (url "https://gitlab.com/phillord/org-drill")
  7183. (commit version)))
  7184. (file-name (git-file-name name version))
  7185. (sha256
  7186. (base32 "13y302lyscdqrba1sfx60yf5ji2xi7fbsvjsjbw7hiz63kg6rccy"))))
  7187. (build-system emacs-build-system)
  7188. (propagated-inputs
  7189. `(("emacs-org" ,emacs-org)
  7190. ("emacs-persist" ,emacs-persist)))
  7191. (home-page "https://gitlab.com/phillord/org-drill")
  7192. (synopsis "Flash card memorization system using Org mode")
  7193. (description
  7194. "This package uses spaced repetition algorithms to conduct interactive
  7195. drill sessions to aid in memorization. In these sessions you are shown flash
  7196. cards created in Org mode.")
  7197. (license license:gpl3+)))
  7198. (define-public emacs-anki-editor
  7199. ;; Last release was in 2018.
  7200. (let ((commit "546774a453ef4617b1bcb0d1626e415c67cc88df")
  7201. (revision "0")
  7202. (version "0.3.3"))
  7203. (package
  7204. (name "emacs-anki-editor")
  7205. (version (git-version version revision commit))
  7206. (source
  7207. (origin
  7208. (method git-fetch)
  7209. (uri (git-reference
  7210. (url "https://github.com/louietan/anki-editor")
  7211. (commit commit)))
  7212. (file-name (git-file-name name version))
  7213. (sha256
  7214. (base32 "1if610hq5j8rbjh1caw5bwbgnsn231awwxqbpwvrh966kdxzl4qf"))))
  7215. (build-system emacs-build-system)
  7216. (propagated-inputs
  7217. `(("emacs-dash" ,emacs-dash)
  7218. ("emacs-request" ,emacs-request)))
  7219. (home-page "https://github.com/louietan/anki-editor")
  7220. (synopsis "Minor mode for making Anki cards with Org mode")
  7221. (description
  7222. "This package is for people who use Anki as a spaced repetition system
  7223. (SRS) but would like to make cards in Org mode.")
  7224. (license license:gpl3+))))
  7225. (define-public emacs-org-mime
  7226. (package
  7227. (name "emacs-org-mime")
  7228. (version "0.2.3")
  7229. (source
  7230. (origin
  7231. (method git-fetch)
  7232. (uri (git-reference
  7233. (url "https://github.com/org-mime/org-mime")
  7234. (commit version)))
  7235. (file-name (git-file-name name version))
  7236. (sha256
  7237. (base32 "1g32chan6rhlp3kvzd2lvf104i3p37q1sm0d89pq6sya0ia2as1n"))))
  7238. (build-system emacs-build-system)
  7239. (home-page "https://github.com/org-mime/org-mime")
  7240. (synopsis "Send HTML email using Org mode HTML export")
  7241. (description
  7242. "This program sends HTML email using Org-mode HTML export.
  7243. This approximates a WYSiWYG HTML mail editor from within Emacs, and can be
  7244. useful for sending tables, fontified source code, and inline images in
  7245. email.")
  7246. (license license:gpl3+)))
  7247. (define-public emacs-org-msg
  7248. ;; No git tags. The commit below corresponds to the release of version 3.3.
  7249. (let ((commit "89e746c0a864031eef940758230bc7263a6f2289"))
  7250. (package
  7251. (name "emacs-org-msg")
  7252. (version "3.3")
  7253. (source
  7254. (origin
  7255. (method git-fetch)
  7256. (uri (git-reference
  7257. (url "https://github.com/jeremy-compostella/org-msg")
  7258. (commit commit)))
  7259. (file-name (git-file-name name version))
  7260. (sha256
  7261. (base32 "15gd5zbxvdallyra9lmpb9i1r2mmwz0j0i0ra7j9imnbfiz3ln9r"))))
  7262. (build-system emacs-build-system)
  7263. (propagated-inputs
  7264. `(("emacs-htmlize" ,emacs-htmlize)))
  7265. (home-page "https://github.com/jeremy-compostella/org-msg")
  7266. (synopsis "Mix Org mode and Message mode to compose emails")
  7267. (description
  7268. "OrgMsg is a GNU Emacs global minor mode mixing up Org mode and your
  7269. Mail User Agent Mode (Message, mu4e, or Notmuch) to compose and reply to
  7270. emails in a Outlook HTML friendly style.")
  7271. (license license:gpl3+))))
  7272. (define-public emacs-org-superstar
  7273. (package
  7274. (name "emacs-org-superstar")
  7275. (version "1.5.0")
  7276. (source
  7277. (origin
  7278. (method git-fetch)
  7279. (uri (git-reference
  7280. (url "https://github.com/integral-dw/org-superstar-mode")
  7281. (commit (string-append "v" version))))
  7282. (file-name (git-file-name name version))
  7283. (sha256
  7284. (base32 "12inin2p6pm6vbv3yc06fx343dsp0vp07fjb35w088akhikmqh2a"))))
  7285. (build-system emacs-build-system)
  7286. (propagated-inputs
  7287. `(("emacs-org" ,emacs-org)))
  7288. (home-page "https://github.com/integral-dw/org-superstar-mode")
  7289. (synopsis "Prettify headings and plain lists in Org mode")
  7290. (description "This package prettifies headings and plain lists in
  7291. Org mode. It is a direct descendant of @code{org-bullets}, with most
  7292. of the code base completely rewritten.
  7293. Currently, this package prettifies Org heading lines by:
  7294. @itemize
  7295. @item replacing trailing bullets by UTF-8 bullets,
  7296. @item hiding leading stars, customizing their look or removing them from vision,
  7297. @item applying a custom face to the header bullet,
  7298. @item applying a custom face to the leading bullets,
  7299. @item using double-bullets for inline tasks,
  7300. @item (optional) using special bullets for TODO keywords.
  7301. @end itemize
  7302. It also prettifies Org plain list bullets by:
  7303. @itemize
  7304. @item replacing each bullet type (*, + and -) with UTF-8 bullets,
  7305. @item applying a custom face to item bullets.
  7306. @end itemize
  7307. Features degrade gracefully when viewed from terminal.")
  7308. (license license:gpl3+)))
  7309. (define-public emacs-org-pandoc-import
  7310. (package
  7311. (name "emacs-org-pandoc-import")
  7312. (version "1.0")
  7313. (source
  7314. (origin
  7315. (method git-fetch)
  7316. (uri (git-reference
  7317. (url "https://github.com/tecosaur/org-pandoc-import/")
  7318. (commit (string-append "v" version))))
  7319. (file-name (git-file-name name version))
  7320. (sha256
  7321. (base32 "00z9bpm975mlyqlxbyib3j547br6kvcam04b70qkmq22vh8yf341"))))
  7322. (build-system emacs-build-system)
  7323. (arguments
  7324. `(#:include
  7325. (cons* "^filters\\/" "^preprocessors" %default-include)
  7326. #:phases
  7327. (modify-phases %standard-phases
  7328. (add-after 'unpack 'patch-exec-paths
  7329. (lambda* (#:key inputs #:allow-other-keys)
  7330. (let ((pandoc (assoc-ref inputs "pandoc")))
  7331. (substitute* "org-pandoc-import.el"
  7332. (("\"pandoc\"") (string-append "\"" pandoc "/bin/pandoc\"")))))))))
  7333. (inputs
  7334. `(("pandoc" ,pandoc)))
  7335. (home-page "https://github.com/tecosaur/org-pandoc-import/")
  7336. (synopsis "Read and edit non-Org file types in Org")
  7337. (description
  7338. "This package uses Pandoc to convert selected file types to Org. It can
  7339. convert supported non-Org files to an Org file with Pandoc.
  7340. It can also intercept requests for non-Org files it knows it can convert,
  7341. convert the file to a temporary Org file, and open this file instead. On
  7342. save, it exports back to the original non-Org file.")
  7343. (license license:gpl3+)))
  7344. (define-public emacs-org-pomodoro
  7345. ;; Last release version was from 2016.
  7346. (let ((commit "aa07c11318f91219336197e62c47bc7a3d090479")
  7347. (revision "1"))
  7348. (package
  7349. (name "emacs-org-pomodoro")
  7350. (version (git-version "2.1.0" revision commit))
  7351. (source
  7352. (origin
  7353. (method git-fetch)
  7354. (uri (git-reference
  7355. (url "https://github.com/marcinkoziej/org-pomodoro")
  7356. (commit commit)))
  7357. (file-name (git-file-name name version))
  7358. (sha256
  7359. (base32 "0nbprh2nhnmb7ngp9ndr6zr37ashcsvpi5slv7a37x1dl7j6w1k4"))))
  7360. (build-system emacs-build-system)
  7361. (propagated-inputs
  7362. `(("emacs-alert" ,emacs-alert)))
  7363. (arguments
  7364. `(#:include (cons "^resources\\/" %default-include)
  7365. #:tests? #t
  7366. #:test-command '("emacs" "--batch"
  7367. "-l" "org-pomodoro-tests.el"
  7368. "-f" "ert-run-tests-batch-and-exit")
  7369. #:phases
  7370. (modify-phases %standard-phases
  7371. (add-before 'check 'make-tests-writable
  7372. (lambda _
  7373. (make-file-writable "org-pomodoro-tests.el")
  7374. #t))
  7375. (add-before 'check 'add-require
  7376. (lambda _
  7377. (emacs-batch-edit-file "org-pomodoro-tests.el"
  7378. `(progn (progn (goto-char (point-min))
  7379. (re-search-forward
  7380. "ert-deftest")
  7381. (beginning-of-line)
  7382. (forward-line -1)
  7383. (insert "(require 'org-pomodoro)"))
  7384. (basic-save-buffer)))
  7385. #t)))))
  7386. (home-page "https://github.com/marcinkoziej/org-pomodoro")
  7387. (synopsis "Pomodoro technique for org-mode")
  7388. (description "@code{emacs-org-pomodoro} adds very basic support for
  7389. Pomodoro technique in Emacs org-mode.
  7390. Run @code{M-x org-pomodoro} for the task at point or select one of the
  7391. last tasks that you clocked time for. Each clocked-in pomodoro starts
  7392. a timer of 25 minutes and after each pomodoro a break timer of 5
  7393. minutes is started automatically. Every 4 breaks a long break is
  7394. started with 20 minutes. All values are customizable.")
  7395. (license license:gpl3+))))
  7396. (define-public emacs-org-sidebar
  7397. (package
  7398. (name "emacs-org-sidebar")
  7399. (version "0.3.2")
  7400. (source
  7401. (origin
  7402. (method git-fetch)
  7403. (uri (git-reference
  7404. (url "https://github.com/alphapapa/org-sidebar")
  7405. (commit version)))
  7406. (file-name (git-file-name name version))
  7407. (sha256
  7408. (base32 "1r8kp954ciin4j7j7j8ihdkryf5x09s3ryl7bi9h2j6xqc1ij4wq"))))
  7409. (build-system emacs-build-system)
  7410. (propagated-inputs
  7411. `(("emacs-dash" ,emacs-dash)
  7412. ("emacs-org-super-agenda" ,emacs-org-super-agenda)
  7413. ("emacs-org" ,emacs-org)
  7414. ("emacs-org-ql" ,emacs-org-ql)
  7415. ("emacs-s" ,emacs-s)))
  7416. (home-page "https://github.com/alphapapa/org-sidebar")
  7417. (synopsis "Helpful sidebar for Org buffers")
  7418. (description "This package provides a sidebar for Org buffers. At the
  7419. top is a chronological list of scheduled and deadlined tasks in the current
  7420. buffer (similar to the Org agenda ,but without all its features), and below
  7421. that is a list of all other non-done to-do items. If the buffer is narrowed,
  7422. the sidebar only shows items in the narrowed portion; this allows seeing an
  7423. overview of tasks in a subtree.")
  7424. (license license:gpl3+)))
  7425. (define-public emacs-org-trello
  7426. (package
  7427. (name "emacs-org-trello")
  7428. (version "0.8.2")
  7429. (source
  7430. (origin
  7431. (method git-fetch)
  7432. (uri (git-reference
  7433. (url "https://github.com/org-trello/org-trello")
  7434. (commit version)))
  7435. (file-name (git-file-name name version))
  7436. (sha256
  7437. (base32
  7438. "18y5zdjc7zh4jlwz6k1nl13i721rknqm0vp4mxfnmq0sc5a0qva0"))))
  7439. (build-system emacs-build-system)
  7440. (propagated-inputs
  7441. `(("emacs-dash" ,emacs-dash)
  7442. ("emacs-deferred" ,emacs-deferred)
  7443. ("emacs-f" ,emacs-f)
  7444. ("emacs-helm" ,emacs-helm)
  7445. ("emacs-request" ,emacs-request)
  7446. ("emacs-s" ,emacs-s)))
  7447. (home-page "https://org-trello.github.io")
  7448. (synopsis "Emacs minor mode for interacting with Trello")
  7449. (description "This package provides an Emacs minor mode to extend
  7450. @code{org-mode} with Trello abilities. Trello is an online project
  7451. organizer.")
  7452. (license license:gpl3+)))
  7453. (define-public emacs-org-tanglesync
  7454. (let ((commit "d99181f173b4e55b4e835d99fcd415e62beb047f")
  7455. (revision "2"))
  7456. (package
  7457. (name "emacs-org-tanglesync")
  7458. (version (git-version "0.6" revision commit))
  7459. (source
  7460. (origin
  7461. (method git-fetch)
  7462. (uri (git-reference
  7463. (url "https://github.com/mtekman/org-tanglesync.el")
  7464. (commit commit)))
  7465. (file-name (git-file-name name version))
  7466. (sha256
  7467. (base32 "0x94gy1bgfd1f3p9w2bfrqj11bwy9ql0cpi1gw6srpj7kykx0lml"))))
  7468. (build-system emacs-build-system)
  7469. (propagated-inputs
  7470. `(("emacs-org" ,emacs-org)))
  7471. (home-page "https://github.com/mtekman/org-tanglesync.el")
  7472. (synopsis "Sync Org source blocks with tangled external files")
  7473. (description "This package automatically pulls changes from source code
  7474. to their corresponding tangled blocks.")
  7475. (license license:gpl3+))))
  7476. (define-public emacs-company-flow
  7477. (let ((commit "76ef585c70d2a3206c2eadf24ba61e59124c3a16")
  7478. (revision "1"))
  7479. (package
  7480. (name "emacs-company-flow")
  7481. (version (git-version "0.1.0" revision commit))
  7482. (source (origin
  7483. (method git-fetch)
  7484. (uri (git-reference
  7485. (url "https://github.com/aaronjensen/company-flow/")
  7486. (commit commit)))
  7487. (file-name (git-file-name name version))
  7488. (sha256
  7489. (base32
  7490. "0zs9cblnbkxa0dxw4lyllmybqizxcdx96gv8jlhx20nrjpi78piw"))))
  7491. (build-system emacs-build-system)
  7492. (propagated-inputs
  7493. `(("emacs-company" ,emacs-company)
  7494. ("emacs-dash" ,emacs-dash)))
  7495. (home-page "https://github.com/aaronjensen/company-flow/")
  7496. (synopsis "Flow backend for @code{company-mode}")
  7497. (description
  7498. "This package provides completion for JavaScript files utilizing Flow.")
  7499. (license license:gpl3+))))
  7500. (define-public emacs-habitica
  7501. (let ((commit "c45c602ddf9d6cbb0e3baf5cb3e1b7ef90f2759d")
  7502. (revision "1"))
  7503. (package
  7504. (name "emacs-habitica")
  7505. (version (git-version "1.0" revision commit))
  7506. (source
  7507. (origin
  7508. (method git-fetch)
  7509. (uri (git-reference
  7510. (url "https://github.com/abrochard/emacs-habitica")
  7511. (commit commit)))
  7512. (file-name (git-file-name name version))
  7513. (sha256
  7514. (base32
  7515. "0wgnzn3z98bl28jgqi7xklw9fwx2wwgihj3mq0jb8ah4vn70d0j3"))))
  7516. (build-system emacs-build-system)
  7517. (home-page "https://github.com/abrochard/emacs-habitica")
  7518. (synopsis "Emacs interface for Habitica")
  7519. (description "Emacs extension for @uref{https://habitica.com/, Habitica},
  7520. a RPG style habit tracker and todo list.")
  7521. (license license:gpl3+))))
  7522. (define-public emacs-atom-one-dark-theme
  7523. (let ((commit "1f1185bf667a38d3d0d180ce85fd4c131818aae2")
  7524. (revision "0"))
  7525. (package
  7526. (name "emacs-atom-one-dark-theme")
  7527. (version (git-version "0.4.0" revision commit))
  7528. (source (origin
  7529. (method git-fetch)
  7530. (uri (git-reference
  7531. (url "https://github.com/jonathanchu/atom-one-dark-theme")
  7532. (commit commit)))
  7533. (sha256
  7534. (base32
  7535. "1alma16hg3mfjly8a9s3mrswkjjx4lrpdnf43869hn2ibkn7zx9z"))
  7536. (file-name (git-file-name name version))))
  7537. (build-system emacs-build-system)
  7538. (home-page "https://github.com/jonathanchu/atom-one-dark-theme")
  7539. (synopsis "Atom One Dark color theme for Emacs")
  7540. (description "An Emacs port of the Atom One Dark theme from Atom.io.")
  7541. (license license:gpl3+))))
  7542. (define-public emacs-zenburn-theme
  7543. (package
  7544. (name "emacs-zenburn-theme")
  7545. (version "2.7.0")
  7546. (source
  7547. (origin
  7548. (method git-fetch)
  7549. (uri (git-reference
  7550. (url "https://github.com/bbatsov/zenburn-emacs")
  7551. (commit (string-append "v" version))))
  7552. (file-name (git-file-name name version))
  7553. (sha256
  7554. (base32 "1991s1gz2i3jchf0yvcsjjb5flwn13ifbnnfkqqrxxvy2imfh18q"))))
  7555. (build-system emacs-build-system)
  7556. (home-page "https://github.com/bbatsov/zenburn-emacs")
  7557. (synopsis "Low contrast color theme for Emacs")
  7558. (description
  7559. "Zenburn theme is a port of the popular Vim Zenburn theme for Emacs.
  7560. It is built on top of the custom theme support in Emacs 24 or later.")
  7561. (license license:gpl3+)))
  7562. (define-public emacs-moe-theme-el
  7563. (package
  7564. (name "emacs-moe-theme-el")
  7565. (version "1.0.1")
  7566. (source
  7567. (origin
  7568. (method git-fetch)
  7569. (uri (git-reference
  7570. (url "https://github.com/kuanyui/moe-theme.el")
  7571. (commit (string-append "v" version))))
  7572. (file-name (git-file-name name version))
  7573. (sha256
  7574. (base32 "14higsv6h0pka90gr25a3yxh95xn65l6qxb39mmdzkfdlnzsg664"))))
  7575. (build-system emacs-build-system)
  7576. (home-page "https://github.com/kuanyui/moe-theme.el")
  7577. (synopsis "Anime-inspired color themes")
  7578. (description
  7579. "This package provides vibrant color schemes with light and dark
  7580. variants.")
  7581. (license license:gpl3+)))
  7582. (define-public emacs-solarized-theme
  7583. (package
  7584. (name "emacs-solarized-theme")
  7585. (version "1.3.1")
  7586. (source
  7587. (origin
  7588. (method git-fetch)
  7589. (uri (git-reference
  7590. (url "https://github.com/bbatsov/solarized-emacs/")
  7591. (commit (string-append "v" version))))
  7592. (file-name (git-file-name name version))
  7593. (sha256
  7594. (base32 "15ql8xcixgm7mbs7rsbybwszanqibq057j5b5ds89a31dw7zxf1g"))))
  7595. (build-system emacs-build-system)
  7596. (propagated-inputs
  7597. `(("emacs-dash" ,emacs-dash)))
  7598. (home-page "https://github.com/bbatsov/solarized-emacs")
  7599. (synopsis "Port of the Solarized theme for Emacs")
  7600. (description
  7601. "Solarized for Emacs is a port of the Solarized theme for Vim. This
  7602. package provides a light and a dark variant.")
  7603. (license license:gpl3+)))
  7604. (define-public emacs-poet-theme
  7605. (let ((commit "d84f7b259cc9b6ff8d442cf4c38bd6c7065ff8f4")
  7606. (revision "0"))
  7607. (package
  7608. (name "emacs-poet-theme")
  7609. (version (git-version "0" revision commit))
  7610. (source
  7611. (origin
  7612. (method git-fetch)
  7613. (uri (git-reference
  7614. (url "https://github.com/kunalb/poet")
  7615. (commit commit)))
  7616. (file-name (git-file-name name version))
  7617. (sha256
  7618. (base32
  7619. "0a84jdaj619mb59a46dmkk2sfs42rylqk9ryl1drgs8d3lia79mz"))))
  7620. (build-system emacs-build-system)
  7621. (home-page "https://github.com/kunalb/poet/")
  7622. (synopsis "Emacs theme for prose")
  7623. (description
  7624. "Emacs has very good support for multiple fonts in a single file. Poet
  7625. uses this support to make it much more convenient to write prose within Emacs,
  7626. with particular attention paid to @code{org-mode} and @code{markdown-mode}.
  7627. Code blocks, tables, etc are formatted in monospace text with the appropriate
  7628. backgrounds.")
  7629. (license license:expat))))
  7630. (define-public emacs-ahungry-theme
  7631. (package
  7632. (name "emacs-ahungry-theme")
  7633. (version "1.10.0")
  7634. (source
  7635. (origin (method url-fetch)
  7636. (uri (string-append "https://elpa.gnu.org/packages/ahungry-theme-"
  7637. version ".tar"))
  7638. (sha256
  7639. (base32
  7640. "14q5yw56n82qph09bk7wmj5b1snhh9w0nk5s1l7yn9ldg71xq6pm"))))
  7641. (build-system emacs-build-system)
  7642. (home-page "https://github.com/ahungry/color-theme-ahungry")
  7643. (synopsis "Ahungry color theme for Emacs")
  7644. (description "Ahungry theme for Emacs provides bright and bold colors.
  7645. If you load it from a terminal, you will be able to make use of the
  7646. transparent background. If you load it from a GUI, it will default to a
  7647. dark background.")
  7648. (license license:gpl3+)))
  7649. (define-public emacs-gruvbox-theme
  7650. (package
  7651. (name "emacs-gruvbox-theme")
  7652. (version "1.28.0")
  7653. (source (origin
  7654. (method git-fetch)
  7655. (uri (git-reference
  7656. (url "https://github.com/greduan/emacs-theme-gruvbox")
  7657. (commit version)))
  7658. (file-name (git-file-name name version))
  7659. (sha256
  7660. (base32
  7661. "00qq92gp1g55pzm97rh7k0dgxy44pxziridl8kqm4rbpi31r7k9p"))))
  7662. (build-system emacs-build-system)
  7663. (propagated-inputs
  7664. `(("emacs-autothemer" ,emacs-autothemer)))
  7665. (home-page "https://github.com/greduan/emacs-theme-gruvbox")
  7666. (synopsis "Gruvbox is a retro groove color scheme ported from Vim")
  7667. (description
  7668. "Gruvbox is heavily inspired by badwolf, jellybeans and solarized.
  7669. Designed as a bright theme with pastel 'retro groove' colors and light/dark
  7670. mode switching in the way of solarized. The main focus when developing gruvbox
  7671. is to keep colors easily distinguishable, contrast enough and still pleasant
  7672. for the eyes.")
  7673. (license license:expat))) ; MIT license
  7674. (define-public emacs-spacegray-theme
  7675. (let ((commit "9826265c2bceb2ebc1c5e16a45021da0253ace97")
  7676. (revision "0"))
  7677. (package
  7678. (name "emacs-spacegray-theme")
  7679. (version (git-version "0" revision commit))
  7680. (source (origin
  7681. (method git-fetch)
  7682. (uri (git-reference
  7683. (url "https://github.com/bruce/emacs-spacegray-theme")
  7684. (commit commit)))
  7685. (file-name (git-file-name name version))
  7686. (sha256
  7687. (base32
  7688. "0aplwmm17ypbns5blc4rf5rr6dasj0zp5ibykpfl43fh4bd8z89n"))))
  7689. (build-system emacs-build-system)
  7690. (home-page "https://github.com/bruce/emacs-spacegray-theme")
  7691. (synopsis "Port of Sublime Text's Spacegray theme for Emacs")
  7692. (description
  7693. "@code{spacegray-theme} is an Emacs port of the Spacegray theme from
  7694. Sublime Text. It features a dark blue/gray background and soft blue, green,
  7695. orange and red as accent colors.")
  7696. (license license:expat)))) ; MIT license
  7697. (define-public emacs-org-cv
  7698. ;; There are no tagged releases.
  7699. (let ((commit "24bcd82348d441d95c2c80fb8ef8b5d6d4b80d95")
  7700. (revision "0"))
  7701. (package
  7702. (name "emacs-org-cv")
  7703. (version (git-version "0" revision commit))
  7704. (source
  7705. (origin
  7706. (method git-fetch)
  7707. (uri (git-reference
  7708. (url "https://gitlab.com/Titan-C/org-cv")
  7709. (commit commit)))
  7710. (file-name (git-file-name name version))
  7711. (sha256
  7712. (base32 "0zcnbxvlwi4d6vzsm3ag7z74qphdigmx303gppb9d614jnsfsdg2"))))
  7713. (build-system emacs-build-system)
  7714. (propagated-inputs
  7715. `(("emacs-ox-hugo" ,emacs-ox-hugo)))
  7716. (home-page "https://titan-c.gitlab.io/org-cv/")
  7717. (synopsis "Collection of export backends for Org to generate a CV")
  7718. (description
  7719. "This project exports an Org file with reasonably structured items into
  7720. a LaTeX file, which compiles into a nice CV. In the same spirit, the Org file
  7721. may export to Markdown so that it can be used for a web based CV.")
  7722. (license license:gpl3+))))
  7723. (define-public emacs-2048-game
  7724. (package
  7725. (name "emacs-2048-game")
  7726. (version "20151026.1233")
  7727. (source
  7728. (origin
  7729. (method url-fetch)
  7730. (uri (string-append "https://melpa.org/packages/2048-game-"
  7731. version ".el"))
  7732. (sha256
  7733. (base32
  7734. "0gy2pvz79whpavp4jmz8h9krzn7brmvv3diixi1d4w51pcdvaldd"))))
  7735. (build-system emacs-build-system)
  7736. (home-page "https://hg.sr.ht/~zck/game-2048")
  7737. (synopsis "Implementation of the game 2048 in Emacs Lisp")
  7738. (description
  7739. "This program is an implementation of 2048 for Emacs.
  7740. The goal of this game is to create a tile with value 2048. The size of the
  7741. board and goal value can be customized.")
  7742. (license license:gpl3+)))
  7743. (define-public emacs-chess
  7744. (package
  7745. (name "emacs-chess")
  7746. (version "2.0.5")
  7747. (source
  7748. (origin
  7749. (method url-fetch)
  7750. (uri (string-append "https://elpa.gnu.org/packages/"
  7751. "chess-" version ".tar"))
  7752. (sha256
  7753. (base32 "1a4iwjdh6k348df6qywjws9z9f862d62m0b2sz57z4xhywiyxpr7"))))
  7754. (build-system emacs-build-system)
  7755. (arguments
  7756. `(#:phases
  7757. (modify-phases %standard-phases
  7758. (add-after 'install 'install-pieces
  7759. (lambda* (#:key outputs #:allow-other-keys)
  7760. (let* ((out (assoc-ref outputs "out"))
  7761. (pieces
  7762. (string-append out "/share/emacs/site-lisp/pieces")))
  7763. (mkdir-p pieces)
  7764. (copy-recursively "pieces" pieces)
  7765. #t))))))
  7766. (home-page "https://elpa.gnu.org/packages/chess.html")
  7767. (synopsis "Play chess in GNU Emacs")
  7768. (description
  7769. "Chess is an Emacs Lisp library and several clients on top of the
  7770. underlying library functionality for performing various activities related to
  7771. the game of chess.")
  7772. (license license:gpl3+)))
  7773. (define-public emacs-4clojure
  7774. ;; There is no release. Base version is extracted from Version keyword in
  7775. ;; the main file.
  7776. (let ((commit "4eccf8c7d4341a36c269451838114b27836699f9")
  7777. (revision "1"))
  7778. (package
  7779. (name "emacs-4clojure")
  7780. (version (git-version "0.2.1" revision commit))
  7781. (source
  7782. (origin
  7783. (method git-fetch)
  7784. (uri (git-reference
  7785. (url "https://github.com/emacsorphanage/4clojure")
  7786. (commit commit)))
  7787. (file-name (git-file-name name version))
  7788. (sha256
  7789. (base32 "19x653lzc1dxil4ix257hciidbdmbhaxhs6qhlkwi9ygjrlrgvnk"))))
  7790. (build-system emacs-build-system)
  7791. (propagated-inputs
  7792. `(("emacs-request" ,emacs-request)))
  7793. (home-page "https://github.com/emacsorphanage/4clojure/")
  7794. (synopsis "Open and evaluate 4clojure questions in Emacs")
  7795. (description "Emacs 4clojure interacts with
  7796. @url{http://www.4clojure.com, 4clojure} problems. You can open a specific
  7797. question and move to the next or previous one. You can also verify your
  7798. answers.")
  7799. (license license:gpl3+))))
  7800. (define-public emacs-base16-theme
  7801. (package
  7802. (name "emacs-base16-theme")
  7803. (version "2.2")
  7804. (source
  7805. (origin
  7806. (method git-fetch)
  7807. (uri (git-reference
  7808. (url "https://github.com/belak/base16-emacs")
  7809. (commit version)))
  7810. (file-name (git-file-name name version))
  7811. (sha256
  7812. (base32 "01w89g413s1da6rf94y1xnhw79cjy2bqb01yfjs58cy492cm0vr6"))))
  7813. (build-system emacs-build-system)
  7814. (home-page "https://github.com/belak/base16-emacs")
  7815. (synopsis "Base16 color themes for Emacs")
  7816. (description
  7817. "Base16 provides carefully chosen syntax highlighting and a default set
  7818. of sixteen colors suitable for a wide range of applications. Base16 is not a
  7819. single theme but a set of guidelines with numerous implementations.")
  7820. (license license:expat)))
  7821. (define-public emacs-solaire-mode
  7822. (package
  7823. (name "emacs-solaire-mode")
  7824. (version "2.0.2")
  7825. (source
  7826. (origin
  7827. (method git-fetch)
  7828. (uri (git-reference
  7829. (url "https://github.com/hlissner/emacs-solaire-mode")
  7830. (commit (string-append "v" version))))
  7831. (file-name (git-file-name name version))
  7832. (sha256
  7833. (base32 "01c1lkr21y0cd6gixzd38mql89k70jn049jr0xhazgz16cnw1g7j"))))
  7834. (build-system emacs-build-system)
  7835. (home-page "https://github.com/hlissner/emacs-solaire-mode")
  7836. (synopsis "Change background of file-visiting buffers in Emacs")
  7837. (description
  7838. "@code{solaire-mode} is inspired by editors which visually distinguish
  7839. code-editing windows from sidebars, popups, terminals, ecetera. It changes the
  7840. background of file-visiting buffers (and certain aspects of the UI) to make
  7841. them easier to distinguish from other, less important buffers.")
  7842. (license license:expat)))
  7843. (define-public emacs-embark
  7844. (package
  7845. (name "emacs-embark")
  7846. (version "0.10")
  7847. (source
  7848. (origin
  7849. (method git-fetch)
  7850. (uri (git-reference
  7851. (url "https://github.com/oantolin/embark")
  7852. (commit version)))
  7853. (sha256
  7854. (base32 "063hc0hganws11vjdk3ic0mxm9i0vpw6s7hzbgxvja0gjkdxjldz"))
  7855. (file-name (git-file-name name version))))
  7856. (build-system emacs-build-system)
  7857. (propagated-inputs
  7858. `(("emacs-avy" ,emacs-avy)
  7859. ("emacs-consult" ,emacs-consult)))
  7860. (home-page "https://github.com/oantolin/embark")
  7861. (synopsis "Emacs mini-buffer actions rooted in keymaps")
  7862. (description
  7863. "This package provides a sort of right-click contextual menu for Emacs
  7864. offering you relevant @emph{actions} to use on a @emph{target} determined by
  7865. the context.
  7866. In the minibuffer, the target is the current best completion candidate. In
  7867. the @code{*Completions*} buffer the target is the completion at point.
  7868. n a regular buffer, the target is the region if active, or else the file,
  7869. symbol or URL at point.
  7870. The type of actions offered depend on the type of the target. For files you
  7871. get offered actions like deleting, copying, renaming, visiting in another
  7872. window, running a shell command on the file, etc. For buffers the actions
  7873. include switching to or killing the buffer. For package names the actions
  7874. include installing, removing or visiting the homepage.")
  7875. (license license:gpl3+)))
  7876. (define-public emacs-prescient
  7877. (package
  7878. (name "emacs-prescient")
  7879. (version "5.1")
  7880. (source
  7881. (origin
  7882. (method git-fetch)
  7883. (uri (git-reference
  7884. (url "https://github.com/raxod502/prescient.el")
  7885. (commit (string-append "v" version))))
  7886. (file-name (git-file-name name version))
  7887. (sha256
  7888. (base32 "0d6kbczkamhhcmc8bf01q6k1x0g7dwjihwllzsldgga3dclyh4ks"))))
  7889. (build-system emacs-build-system)
  7890. (propagated-inputs
  7891. `(("emacs-company" ,emacs-company)
  7892. ("emacs-ivy" ,emacs-ivy)
  7893. ("emacs-selectrum" ,emacs-selectrum)))
  7894. (home-page "https://github.com/raxod502/prescient.el/")
  7895. (synopsis "Emacs library for sorting and filtering candidates")
  7896. (description
  7897. "Prescient is a library for sorting and filtering, as well as extensions
  7898. for Ivy and Company that make use of the library.")
  7899. (license license:expat)))
  7900. (define-public emacs-selectrum
  7901. (package
  7902. (name "emacs-selectrum")
  7903. (version "3.1")
  7904. (source
  7905. (origin
  7906. (method git-fetch)
  7907. (uri (git-reference
  7908. (url "https://github.com/raxod502/selectrum")
  7909. (commit (string-append "v" version))))
  7910. (file-name (git-file-name name version))
  7911. (sha256
  7912. (base32 "02jrki6vzyfyi1bbslki5pk2348flh9dz18jkc4y7p60bvbr52cb"))))
  7913. (build-system emacs-build-system)
  7914. (home-page "https://github.com/raxod502/selectrum/")
  7915. (synopsis "Incremental narrowing in Emacs")
  7916. (description "Selectrum is a solution for incremental narrowing in
  7917. Emacs, replacing Helm, Ivy, and IDO. Its design philosophy is based
  7918. on choosing the right abstractions and prioritizing consistency and
  7919. predictability over special-cased improvements for particular cases.
  7920. As such, Selectrum follows existing Emacs conventions where they exist
  7921. and are reasonable, and it declines to implement features which have
  7922. marginal benefit compared to the additional complexity of a new
  7923. interface.")
  7924. (license license:expat)))
  7925. (define-public emacs-orderless
  7926. (package
  7927. (name "emacs-orderless")
  7928. (version "0.6")
  7929. (source
  7930. (origin
  7931. (method git-fetch)
  7932. (uri (git-reference
  7933. (url "https://github.com/oantolin/orderless")
  7934. (commit version)))
  7935. (sha256
  7936. (base32 "1javw5n3h3iv7f433b2ack49aka1jdpp8yxnaahzg5qbvr80hnay"))
  7937. (file-name (git-file-name name version))))
  7938. (build-system emacs-build-system)
  7939. (arguments
  7940. `(#:phases
  7941. (modify-phases %standard-phases
  7942. (add-after 'install 'makeinfo
  7943. (lambda* (#:key outputs #:allow-other-keys)
  7944. (invoke "makeinfo" "orderless.texi")
  7945. (install-file "orderless.info"
  7946. (string-append (assoc-ref outputs "out")
  7947. "/share/info")))))))
  7948. (native-inputs
  7949. `(("texinfo" ,texinfo)))
  7950. (home-page "https://github.com/oantolin/orderless")
  7951. (synopsis "Emacs completion style that matches multiple regexps in any order")
  7952. (description "This package provides an orderless completion style that
  7953. divides the pattern into space-separated components, and matches candidates
  7954. that match all of the components in any order. Each component can match in
  7955. any one of several ways: literally, as a regexp, as an initialism, in the flex
  7956. style, or as multiple word prefixes.")
  7957. (license license:gpl3+)))
  7958. (define-public emacs-consult
  7959. (package
  7960. (name "emacs-consult")
  7961. (version "0.11")
  7962. (source
  7963. (origin
  7964. (method git-fetch)
  7965. (uri (git-reference
  7966. (url "https://github.com/minad/consult")
  7967. (commit version)))
  7968. (sha256
  7969. (base32 "01kx3zg858bqyajglamxn319qabycnabzj73kl4x7sd55p2yi179"))
  7970. (file-name (git-file-name name version))))
  7971. (build-system emacs-build-system)
  7972. (propagated-inputs
  7973. `(("emacs-flycheck" ,emacs-flycheck)
  7974. ("emacs-selectrum" ,emacs-selectrum)))
  7975. (home-page "https://github.com/minad/consult")
  7976. (synopsis "Consulting completing-read")
  7977. (description "This package provides various handy commands based on the
  7978. Emacs completion function completing-read, which allows quickly selecting from a
  7979. list of candidates.")
  7980. (license license:gpl3+)))
  7981. (define-public emacs-consult-notmuch
  7982. (package
  7983. (name "emacs-consult-notmuch")
  7984. (version "0.5")
  7985. (source
  7986. (origin
  7987. (method git-fetch)
  7988. (uri (git-reference
  7989. (url "https://codeberg.org/jao/consult-notmuch")
  7990. (commit version)))
  7991. (file-name (git-file-name name version))
  7992. (sha256
  7993. (base32 "04ha4mysxvfz6yzbkgrl1mcwic1lwr1xx6gdy5rl6hn1wwnwam4p"))))
  7994. (build-system emacs-build-system)
  7995. (propagated-inputs
  7996. `(("emacs-consult" ,emacs-consult)
  7997. ("emacs-notmuch" ,emacs-notmuch)))
  7998. (home-page "https://codeberg.org/jao/consult-notmuch")
  7999. (synopsis "Search and preview Notmuch emails using Consult")
  8000. (description
  8001. "This package provides two commands using consult to query Notmuch emails
  8002. and present results either as single emails or full trees.")
  8003. (license license:gpl3+)))
  8004. (define-public emacs-marginalia
  8005. (package
  8006. (name "emacs-marginalia")
  8007. (version "0.8")
  8008. (source
  8009. (origin
  8010. (method git-fetch)
  8011. (uri (git-reference
  8012. (url "https://github.com/minad/marginalia")
  8013. (commit version)))
  8014. (file-name (git-file-name name version))
  8015. (sha256
  8016. (base32 "1d6xbidxcxd5gxs5cjxbx1i1wdcmgdnn3hh7fxz0sgf1gaxyp5kv"))))
  8017. (build-system emacs-build-system)
  8018. (home-page "https://github.com/minad/marginalia")
  8019. (synopsis "Marginalia in the minibuffer completions")
  8020. (description
  8021. "This package provides Marginalia mode which adds marginalia to the
  8022. minibuffer completions. Marginalia are marks or annotations placed at the
  8023. margin of the page of a book or in this case helpful colorful annotations
  8024. placed at the margin of the minibuffer for your completion candidates.")
  8025. (license license:gpl3+)))
  8026. (define-public emacs-smartparens
  8027. (package
  8028. (name "emacs-smartparens")
  8029. (version "1.11.0")
  8030. (source
  8031. (origin
  8032. (method git-fetch)
  8033. (uri (git-reference
  8034. (url "https://github.com/Fuco1/smartparens")
  8035. (commit version)))
  8036. (file-name (git-file-name name version))
  8037. (sha256
  8038. (base32 "0zij2f2rjjym98w68jkp10n1ckpfprlkk217c3fg16hz5nq4vnm6"))))
  8039. (build-system emacs-build-system)
  8040. (propagated-inputs
  8041. `(("emacs-dash" ,emacs-dash)
  8042. ("emacs-markdown-mode" ,emacs-markdown-mode)))
  8043. (home-page "https://github.com/Fuco1/smartparens")
  8044. (synopsis "Paredit-like insertion, wrapping and navigation with user
  8045. defined pairs")
  8046. (description
  8047. "Smartparens is a minor mode for Emacs that deals with parens pairs
  8048. and tries to be smart about it. It started as a unification effort to
  8049. combine functionality of several existing packages in a single,
  8050. compatible and extensible way to deal with parentheses, delimiters, tags
  8051. and the like. Some of these packages include autopair, textmate,
  8052. wrap-region, electric-pair-mode, paredit and others. With the basic
  8053. features found in other packages it also brings many improvements as
  8054. well as completely new features.")
  8055. (license license:gpl3+)))
  8056. (define-public emacs-highlight-symbol
  8057. ;; We prefer a more recent commit that provides an option to squelch
  8058. ;; echo-area alerts that can drown out useful information like eldoc
  8059. ;; messages.
  8060. (let ((commit "7a789c779648c55b16e43278e51be5898c121b3a")
  8061. (version "1.3")
  8062. (revision "1"))
  8063. (package
  8064. (name "emacs-highlight-symbol")
  8065. (version (git-version version revision commit))
  8066. (source
  8067. (origin
  8068. (method git-fetch)
  8069. (uri (git-reference
  8070. (url "https://github.com/nschum/highlight-symbol.el")
  8071. (commit commit)))
  8072. (file-name (git-file-name name version))
  8073. (sha256
  8074. (base32 "19cgyk0sh8nsmf3jbi92i8qsdx4l4yilfq5jj9zfdbj9p5gvwx96"))))
  8075. (build-system emacs-build-system)
  8076. (home-page "https://nschum.de/src/emacs/highlight-symbol/")
  8077. (synopsis "Automatic and manual symbol highlighting for Emacs")
  8078. (description
  8079. "Use @code{highlight-symbol} to toggle highlighting of the symbol at
  8080. point throughout the current buffer. Use @code{highlight-symbol-mode} to keep
  8081. the symbol at point highlighted.
  8082. The functions @code{highlight-symbol-next}, @code{highlight-symbol-prev},
  8083. @code{highlight-symbol-next-in-defun} and
  8084. @code{highlight-symbol-prev-in-defun} allow for cycling through the locations
  8085. of any symbol at point. Use @code{highlight-symbol-nav-mode} to enable key
  8086. bindings @code{M-p} and @code{M-p} for navigation. When
  8087. @code{highlight-symbol-on-navigation-p} is set, highlighting is triggered
  8088. regardless of @code{highlight-symbol-idle-delay}.
  8089. @code{highlight-symbol-query-replace} can be used to replace the symbol. ")
  8090. (license license:gpl2+))))
  8091. (define-public emacs-symbol-overlay
  8092. (package
  8093. (name "emacs-symbol-overlay")
  8094. (version "4.2")
  8095. (source
  8096. (origin
  8097. (method git-fetch)
  8098. (uri (git-reference
  8099. (url "https://github.com/wolray/symbol-overlay")
  8100. (commit version)))
  8101. (file-name (git-file-name name version))
  8102. (sha256
  8103. (base32 "10n0871xzycifyqp73xnbqmrgy60imlb26yhm3p6vfj3d84mg1b2"))))
  8104. (build-system emacs-build-system)
  8105. (home-page "https://github.com/wolray/symbol-overlay")
  8106. (synopsis "Highlight symbols and perform various search operations on them")
  8107. (description
  8108. "This package provides functions for highlighting and navigating
  8109. between symbols.")
  8110. (license license:gpl3+)))
  8111. (define-public emacs-hl-todo
  8112. (package
  8113. (name "emacs-hl-todo")
  8114. (version "3.3.0")
  8115. (source (origin
  8116. (method git-fetch)
  8117. (uri (git-reference
  8118. (url "https://github.com/tarsius/hl-todo")
  8119. (commit (string-append "v" version))))
  8120. (file-name (git-file-name name version))
  8121. (sha256
  8122. (base32
  8123. "0bdwdp8d0g7n0kv6l4h7alya3z6fsfi618dzw5x8f2az3r87yg8y"))))
  8124. (build-system emacs-build-system)
  8125. (home-page "https://github.com/tarsius/hl-todo")
  8126. (synopsis "Emacs mode to highlight TODO and similar keywords")
  8127. (description
  8128. "This package provides an Emacs mode to highlight TODO and similar
  8129. keywords in comments and strings. This package also provides commands for
  8130. moving to the next or previous keyword and to invoke @code{occur} with a
  8131. regexp that matches all known keywords.")
  8132. (license license:gpl3+)))
  8133. (define-public emacs-perspective
  8134. (package
  8135. (name "emacs-perspective")
  8136. (version "2.16")
  8137. (source
  8138. (origin
  8139. (method git-fetch)
  8140. (uri (git-reference
  8141. (url "https://github.com/nex3/perspective-el")
  8142. (commit version)))
  8143. (file-name (git-file-name name version))
  8144. (sha256
  8145. (base32 "0hg4rj3v748f6k4fwa21g683vs3bfya0wg9r9xdg216kdhfdk5j7"))))
  8146. (build-system emacs-build-system)
  8147. (arguments
  8148. `(#:tests? #t
  8149. #:test-command '("emacs" "-Q" "-batch" "-L" "."
  8150. "-l" "test/test-perspective.el"
  8151. "-f" "ert-run-tests-batch-and-exit")))
  8152. (home-page "https://github.com/nex3/perspective-el")
  8153. (synopsis "Switch between named \"perspectives\"")
  8154. (description
  8155. "This package provides tagged workspaces in Emacs, similar to workspaces in
  8156. windows managers such as Awesome and XMonad. @code{perspective.el} provides
  8157. multiple workspaces (or \"perspectives\") for each Emacs frame. Each
  8158. perspective is composed of a window configuration and a set of buffers.
  8159. Switching to a perspective activates its window configuration, and when in a
  8160. perspective only its buffers are available by default.")
  8161. ;; This package is released under the same license as Emacs (GPLv3+) or
  8162. ;; the Expat license.
  8163. (license license:gpl3+)))
  8164. (define-public emacs-persp-mode
  8165. (package
  8166. (name "emacs-persp-mode")
  8167. (version "2.9.8")
  8168. (source
  8169. (origin
  8170. (method git-fetch)
  8171. (uri (git-reference
  8172. (url "https://github.com/Bad-ptr/persp-mode.el")
  8173. (commit (string-append "v" version))))
  8174. (file-name (git-file-name name version))
  8175. (sha256
  8176. (base32
  8177. "0b4y7a6j70s9lvr37riyy9k5kh3yvmx0m6nd9c0c8572ji4ij65g"))))
  8178. (build-system emacs-build-system)
  8179. (home-page "https://github.com/Bad-ptr/persp-mode.el")
  8180. (synopsis "Switch between named \"perspectives\" shared among frames")
  8181. (description
  8182. "This package extends @code{perspective.el} to enable perspectives that
  8183. can be saved to and restored from a file.")
  8184. (license license:gpl2+)))
  8185. (define-public emacs-eyebrowse
  8186. ;; XXX: Upstream has no tagged release. Version is extracted from keyword
  8187. ;; in main file.
  8188. (let ((commit "88c7b59aa7c5c93bc23812217213adfa238f977b")
  8189. (revision "0"))
  8190. (package
  8191. (name "emacs-eyebrowse")
  8192. (version (git-version "0.7.8" revision commit))
  8193. (source
  8194. (origin
  8195. (method git-fetch)
  8196. (uri (git-reference
  8197. (url "https://depp.brause.cc/eyebrowse.git")
  8198. (commit commit)))
  8199. (file-name (git-file-name name version))
  8200. (sha256
  8201. (base32 "09s07mvg5bz3dm9sxgn40c7z6d6ry1sdjzsxwgmy825f3xm66avs"))))
  8202. (build-system emacs-build-system)
  8203. (propagated-inputs
  8204. `(("emacs-dash" ,emacs-dash)))
  8205. (home-page "https://depp.brause.cc/eyebrowse/")
  8206. (synopsis "Simple-minded way to manage window configs in Emacs")
  8207. (description
  8208. "Eyebrowse is a global minor mode for Emacs that allows you to manage
  8209. your window configurations in a simple manner, just like tiling window
  8210. managers like i3wm with their workspaces do. It displays their current state
  8211. in the modeline by default.")
  8212. (license license:gpl3+))))
  8213. (define-public emacs-test-simple
  8214. (package
  8215. (name "emacs-test-simple")
  8216. (version "1.3.0")
  8217. (source
  8218. (origin
  8219. (method url-fetch)
  8220. (uri (string-append "https://elpa.gnu.org/packages/test-simple-"
  8221. version ".el"))
  8222. (sha256
  8223. (base32
  8224. "1yd61jc9ds95a5n09052kwc5gasy57g4lxr0jsff040brlyi9czz"))))
  8225. (build-system emacs-build-system)
  8226. (home-page "https://github.com/rocky/emacs-test-simple")
  8227. (synopsis "Simple unit test framework for Emacs Lisp")
  8228. (description
  8229. "Test Simple is a simple unit test framework for Emacs Lisp. It
  8230. alleviates the need for context macros, enclosing specifications or required
  8231. test tags. It supports both interactive and non-interactive use.")
  8232. (license license:gpl3+)))
  8233. (define-public emacs-load-relative
  8234. (package
  8235. (name "emacs-load-relative")
  8236. (version "1.3.1")
  8237. (source
  8238. (origin
  8239. (method url-fetch)
  8240. (uri (string-append "https://elpa.gnu.org/packages/load-relative-"
  8241. version ".el"))
  8242. (sha256
  8243. (base32 "1m37scr82lqqy954fchjxrmdh4lngrl4d1yzxhp3yfjhsydizhrj"))))
  8244. (build-system emacs-build-system)
  8245. (home-page "https://github.com/rocky/emacs-load-relative")
  8246. (synopsis "Emacs Lisp relative file loading related functions")
  8247. (description
  8248. "Provides functions which facilitate writing multi-file Emacs packages
  8249. and running from the source tree without having to \"install\" code or fiddle
  8250. with @{load-path}.
  8251. The main function, @code{load-relative}, loads an Emacs Lisp file relative to
  8252. another (presumably currently running) Emacs Lisp file.")
  8253. (license license:gpl3+)))
  8254. (define-public emacs-loc-changes
  8255. (package
  8256. (name "emacs-loc-changes")
  8257. (version "1.2")
  8258. (source
  8259. (origin
  8260. (method url-fetch)
  8261. (uri (string-append "https://elpa.gnu.org/packages/loc-changes-"
  8262. version ".el"))
  8263. (sha256
  8264. (base32
  8265. "1x8fn8vqasayf1rb8a6nma9n6nbvkx60krmiahyb05vl5rrsw6r3"))))
  8266. (build-system emacs-build-system)
  8267. (home-page "https://github.com/rocky/emacs-loc-changes")
  8268. (synopsis "Keeps track of positions even after buffer changes")
  8269. (description
  8270. "This Emacs package provides a mean to track important buffer positions
  8271. after buffer changes.")
  8272. (license license:gpl3+)))
  8273. (define-public emacs-realgud
  8274. (package
  8275. (name "emacs-realgud")
  8276. (version "1.5.1")
  8277. (source
  8278. (origin
  8279. (method git-fetch)
  8280. (uri (git-reference
  8281. (url "https://github.com/realgud/realgud/")
  8282. (commit version)))
  8283. (sha256
  8284. (base32
  8285. "1d3s23jk0i34wpyxfajydgyyvsxnpbqrfl0mgydsq7zw2c75ylnq"))
  8286. (file-name (git-file-name name version))))
  8287. (build-system emacs-build-system)
  8288. (arguments
  8289. `(#:tests? #t
  8290. #:phases
  8291. (modify-phases %standard-phases
  8292. (add-after 'unpack 'fix-realgud:run-process-void-error
  8293. ;; See: https://github.com/realgud/realgud/issues/269.
  8294. (lambda _
  8295. (substitute* '("realgud/debugger/gdb/gdb.el"
  8296. "realgud/debugger/gub/gub.el")
  8297. (("^\\(require 'load-relative\\).*" anchor)
  8298. (string-append anchor
  8299. "(require-relative-list \
  8300. '(\"../../common/run\") \"realgud:\")\n")))
  8301. #t))
  8302. (add-after 'expand-load-path 'fix-autogen-script
  8303. (lambda _
  8304. (substitute* "autogen.sh"
  8305. (("./configure") "sh configure"))
  8306. #t))
  8307. (add-after 'fix-autogen-script 'autogen
  8308. (lambda _
  8309. (setenv "CONFIG_SHELL" "sh")
  8310. (invoke "sh" "autogen.sh")))
  8311. (add-after 'fix-autogen-script 'set-home
  8312. (lambda _
  8313. (setenv "HOME" (getenv "TMPDIR"))
  8314. #t))
  8315. (add-before 'patch-el-files 'remove-realgud-pkg.el
  8316. (lambda _
  8317. ;; FIXME: `patch-el-files' crashes on this file with error:
  8318. ;; unable to locate "bashdb".
  8319. (delete-file "./test/test-regexp-bashdb.el")
  8320. #t)))
  8321. #:include (cons* ".*\\.el$" %default-include)))
  8322. (native-inputs
  8323. `(("autoconf" ,autoconf)
  8324. ("automake" ,automake)
  8325. ("emacs-test-simple" ,emacs-test-simple)))
  8326. (propagated-inputs
  8327. `(("emacs-load-relative" ,emacs-load-relative)
  8328. ("emacs-loc-changes" ,emacs-loc-changes)))
  8329. (home-page "https://github.com/realgud/realgud/")
  8330. (synopsis
  8331. "Modular front-end for interacting with external debuggers")
  8332. (description
  8333. "RealGUD is a modular, extensible GNU Emacs front-end for interacting
  8334. with external debuggers. It integrates various debuggers such as gdb, pdb,
  8335. ipdb, jdb, lldb, bashdb, zshdb, etc. and allows visually steping through code in the
  8336. sources. Unlike GUD, it also supports running multiple debug sessions in
  8337. parallel.")
  8338. (license license:gpl3+)))
  8339. (define-public emacs-rmsbolt
  8340. ;; There is no release tag. Version is extracted from main file.
  8341. (let ((commit "ff496660cc52a6dd33d358ef0acc6d4bb70cc340")
  8342. (revision "0")
  8343. (version "0.1.2"))
  8344. (package
  8345. (name "emacs-rmsbolt")
  8346. (version (git-version version revision commit))
  8347. (source
  8348. (origin
  8349. (method git-fetch)
  8350. (uri (git-reference
  8351. (url "https://gitlab.com/jgkamat/rmsbolt")
  8352. (commit commit)))
  8353. (file-name (git-file-name name version))
  8354. (sha256
  8355. (base32 "05i0101238yy1da6z543nr9x5gpvgdxrrdn3sw5dibcn6z62ml3p"))))
  8356. (build-system emacs-build-system)
  8357. (home-page "https://gitlab.com/jgkamat/rmsbolt")
  8358. (synopsis "Emacs viewer for compiler output")
  8359. (description
  8360. "RMSBolt is a package to provide assembly or bytecode output for
  8361. a source code input file.")
  8362. (license license:agpl3+))))
  8363. (define-public emacs-request
  8364. ;; We prefer a more recent commit that has support for auth-source,
  8365. ;; which makes authentication more convenient for users and maintainers.
  8366. (let ((commit "d02d1347ffdf138cffd380cbeac62ac8732036ef")
  8367. (revision "0"))
  8368. (package
  8369. (name "emacs-request")
  8370. (version (git-version "0.3.2" revision commit))
  8371. (source (origin
  8372. (method git-fetch)
  8373. (uri (git-reference
  8374. (url "https://github.com/tkf/emacs-request")
  8375. (commit commit)))
  8376. (file-name (git-file-name name version))
  8377. (sha256
  8378. (base32
  8379. "1rkpakzish2d470ca15yq3k0m1j7a2lrkvvddcyvc2rx0sncsdjs"))))
  8380. (build-system emacs-build-system)
  8381. (arguments
  8382. `(#:tests? #f)) ; requires network access.
  8383. (propagated-inputs
  8384. `(("emacs-deferred" ,emacs-deferred)))
  8385. (home-page "https://github.com/tkf/emacs-request")
  8386. (synopsis "Package for speaking HTTP in Emacs Lisp")
  8387. (description "This package provides a HTTP request library with multiple
  8388. backends. It supports url.el which is shipped with Emacs and the curl command
  8389. line program.")
  8390. (license license:gpl3+))))
  8391. (define-public emacs-rudel
  8392. (package
  8393. (name "emacs-rudel")
  8394. (version "0.3.2")
  8395. (source
  8396. (origin
  8397. (method url-fetch)
  8398. (uri (string-append "https://elpa.gnu.org/packages/rudel-"
  8399. version ".tar"))
  8400. (sha256
  8401. (base32 "03hcvpp6ykavidwn5x48gs986w1i5icvh7ks6p74pdaagpgw4jmk"))))
  8402. (build-system emacs-build-system)
  8403. (home-page "http://rudel.sourceforge.net/")
  8404. (synopsis "Collaborative editing framework")
  8405. (description
  8406. "Rudel is a collaborative editing environment for GNU Emacs. Its purpose
  8407. is to share buffers with other users in order to edit the contents of those
  8408. buffers collaboratively. Rudel supports multiple backends to enable
  8409. communication with other collaborative editors using different protocols,
  8410. though currently Obby (for use with the Gobby editor) is the only
  8411. fully-functional one.")
  8412. (license license:gpl3+)))
  8413. (define-public emacs-hydra
  8414. (package
  8415. (name "emacs-hydra")
  8416. (version "0.15.0")
  8417. (source
  8418. (origin
  8419. (method git-fetch)
  8420. (uri (git-reference
  8421. (url "https://github.com/abo-abo/hydra")
  8422. (commit version)))
  8423. (file-name (git-file-name name version))
  8424. (sha256
  8425. (base32
  8426. "0fapvhmhgc9kppf3bvkgry0cd7gyilg7sfvlscfrfjxpx4xvwsfy"))))
  8427. (build-system emacs-build-system)
  8428. (arguments
  8429. `(#:tests? #t
  8430. #:test-command '("make" "test")))
  8431. (home-page "https://github.com/abo-abo/hydra")
  8432. (synopsis "Make Emacs bindings that stick around")
  8433. (description
  8434. "This package can be used to tie related commands into a family of short
  8435. bindings with a common prefix---a Hydra. Once you summon the Hydra (through
  8436. the prefixed binding), all the heads can be called in succession with only a
  8437. short extension. Any binding that isn't the Hydra's head vanquishes the
  8438. Hydra. Note that the final binding, besides vanquishing the Hydra, will still
  8439. serve its original purpose, calling the command assigned to it. This makes
  8440. the Hydra very seamless; it's like a minor mode that disables itself
  8441. automatically.")
  8442. (license license:gpl3+)))
  8443. (define-public emacs-pretty-hydra
  8444. (package
  8445. (name "emacs-pretty-hydra")
  8446. (version "0.2.2")
  8447. (source
  8448. (origin
  8449. (method git-fetch)
  8450. (uri (git-reference
  8451. (url "https://github.com/jerrypnz/major-mode-hydra.el")
  8452. (commit version)))
  8453. (file-name (git-file-name name version))
  8454. (sha256
  8455. (base32
  8456. "08a15knkdq35pzjq82imff016fbfdib5q4glg2xmdy2b5fnk7jqa"))))
  8457. (build-system emacs-build-system)
  8458. (propagated-inputs
  8459. `(("emacs-dash" ,emacs-dash)
  8460. ("emacs-hydra" ,emacs-hydra)
  8461. ("emacs-s" ,emacs-s)))
  8462. (arguments
  8463. `(#:exclude (cons "^major-mode-hydra\\.el" %default-exclude)))
  8464. (home-page "https://github.com/jerrypnz/major-mode-hydra.el")
  8465. (synopsis "Major mode keybindings managed by Hydra")
  8466. (description
  8467. "This package offers an hydra-based method of managing major
  8468. mode-specific key bindings. It is intended for use as a library only; see
  8469. package @code{emacs-major-mode-hydra} for a user-friendly interface.")
  8470. (license license:gpl3+)))
  8471. (define-public emacs-interleave
  8472. (package
  8473. (name "emacs-interleave")
  8474. (version "1.4.0")
  8475. (source
  8476. (origin
  8477. (method git-fetch)
  8478. (uri
  8479. (git-reference
  8480. (url "https://github.com/rudolfochrist/interleave")
  8481. (commit (string-append "interleave-" version))))
  8482. (file-name (git-file-name name version))
  8483. (sha256
  8484. (base32 "0l5b681mrpk12lx5c16m7kc13p29z6zismwg1llsjg7cdmrmsrcb"))))
  8485. (build-system emacs-build-system)
  8486. (home-page "https://github.com/rudolfochrist/interleave")
  8487. (synopsis "Emacs minor mode to interleave notes and text books")
  8488. (description
  8489. "Interleave is a minor mode that presents a document viewer side
  8490. by side to an Org buffer with your notes relevant to the current page.")
  8491. (license license:gpl3+)))
  8492. (define-public emacs-major-mode-hydra
  8493. (package
  8494. (inherit emacs-pretty-hydra)
  8495. (name "emacs-major-mode-hydra")
  8496. (propagated-inputs
  8497. `(("emacs-dash" ,emacs-dash)
  8498. ("emacs-pretty-hydra" ,emacs-pretty-hydra)))
  8499. (arguments
  8500. `(#:exclude (cons "^pretty-hydra\\.el" %default-exclude)))
  8501. (synopsis "Create nice-looking hydras")
  8502. (description
  8503. "This package provides the macro @code{pretty-hydra-define} to define
  8504. hydras with one column per group of heads.")))
  8505. (define-public emacs-ivy
  8506. (package
  8507. (name "emacs-ivy")
  8508. (version "0.13.4")
  8509. (source
  8510. (origin
  8511. (method url-fetch)
  8512. (uri (string-append "https://elpa.gnu.org/packages/ivy-" version ".tar"))
  8513. (sha256
  8514. (base32 "0qpza1c45mr8fcpnm32cck4v22fnzz1yb7kww05rzgq1k9iivx5v"))))
  8515. (build-system emacs-build-system)
  8516. (propagated-inputs
  8517. `(("emacs-hydra" ,emacs-hydra)))
  8518. (home-page "https://github.com/abo-abo/swiper")
  8519. (synopsis "Incremental vertical completion for Emacs")
  8520. (description
  8521. "This package provides @code{ivy-read} as an alternative to
  8522. @code{completing-read} and similar functions. No attempt is made to determine
  8523. the best candidate. Instead, the user can navigate candidates with
  8524. @code{ivy-next-line} and @code{ivy-previous-line}. The matching is done by
  8525. splitting the input text by spaces and re-building it into a regular
  8526. expression.")
  8527. (license license:gpl3+)))
  8528. (define-public emacs-counsel
  8529. (package
  8530. (name "emacs-counsel")
  8531. (version "0.13.4")
  8532. (source
  8533. (origin
  8534. (method url-fetch)
  8535. (uri (string-append "https://elpa.gnu.org/packages/"
  8536. "counsel-" version ".tar"))
  8537. (sha256
  8538. (base32 "094zfapfn1l8wjf3djkipk0d9nks0g77sbk107pfsbr3skkzh031"))))
  8539. (build-system emacs-build-system)
  8540. (propagated-inputs
  8541. `(("emacs-swiper" ,emacs-swiper)))
  8542. (home-page "https://github.com/abo-abo/swiper")
  8543. (synopsis "Various completion functions using Ivy")
  8544. (description
  8545. "Just call one of the interactive functions in a file to complete the
  8546. corresponding thing using Ivy.
  8547. The following completions are currently available:
  8548. @itemize
  8549. @item Symbol completion for Elisp, Common Lisp, Python, Clojure, C, C++.
  8550. @item Describe functions for Elisp: function, variable, library, command,
  8551. @item bindings, theme.
  8552. @item Navigation functions: imenu, ace-line, semantic, outline.
  8553. @item Git utilities: git-files, git-grep, git-log, git-stash, git-checkout.
  8554. @item Grep utilities: grep, ag, pt, recoll, ack, rg.
  8555. @item System utilities: process list, rhythmbox, linux-app.
  8556. @item Many more.
  8557. @end itemize")
  8558. (license license:gpl3+)))
  8559. (define-public emacs-swiper
  8560. (package
  8561. (name "emacs-swiper")
  8562. (version "0.13.4")
  8563. (source
  8564. (origin
  8565. (method url-fetch)
  8566. (uri (string-append "https://elpa.gnu.org/packages/swiper-" version ".tar"))
  8567. (sha256
  8568. (base32 "197pq2cvvskib87aky907wv2am55vilr7y5dabmmm07a8vr9py0v"))))
  8569. (build-system emacs-build-system)
  8570. (propagated-inputs
  8571. `(("emacs-ivy" ,emacs-ivy)))
  8572. (home-page "https://github.com/abo-abo/swiper")
  8573. (synopsis "Isearch with an overview")
  8574. (description
  8575. "This package gives an overview of the current regex search candidates.
  8576. The search regex can be split into groups with a space. Each group is
  8577. highlighted with a different face.
  8578. It can double as a quick `regex-builder', although only single lines will be
  8579. matched.")
  8580. (license license:gpl3+)))
  8581. (define-public emacs-ivy-xref
  8582. (let ((commit "1a35fc0f070388701b05b0a455cbe262e924d547")
  8583. (revision "1"))
  8584. (package
  8585. (name "emacs-ivy-xref")
  8586. (version (git-version "0.1" revision commit))
  8587. (source
  8588. (origin
  8589. (method git-fetch)
  8590. (uri (git-reference
  8591. (url "https://github.com/alexmurray/ivy-xref")
  8592. (commit commit)))
  8593. (file-name (git-file-name name version))
  8594. (sha256
  8595. (base32
  8596. "0d71nm9d9ajp5i6dnl8h1hw9jqp8gd1ajgninb1h13i80rplzl9k"))))
  8597. (build-system emacs-build-system)
  8598. (propagated-inputs
  8599. `(("emacs-ivy" ,emacs-ivy)))
  8600. (home-page "https://github.com/alexmurray/ivy-xref")
  8601. (synopsis "Ivy interface for @code{xref}")
  8602. (description "This package provides an Ivy interface for selecting from
  8603. @code{xref} results.")
  8604. (license license:gpl3))))
  8605. (define-public emacs-ivy-pass
  8606. (let ((commit "5b523de1151f2109fdd6a8114d0af12eef83d3c5")
  8607. (revision "1"))
  8608. (package
  8609. (name "emacs-ivy-pass")
  8610. (version (git-version "0.1" revision commit))
  8611. (source
  8612. (origin
  8613. (method git-fetch)
  8614. (uri (git-reference
  8615. (url "https://github.com/ecraven/ivy-pass")
  8616. (commit commit)))
  8617. (file-name (git-file-name name version))
  8618. (sha256
  8619. (base32
  8620. "18crb4zh2pjf0cmv3b913m9vfng27girjwfqc3mk7vqd1r5a49yk"))))
  8621. (build-system emacs-build-system)
  8622. (propagated-inputs
  8623. `(("emacs-ivy" ,emacs-ivy)
  8624. ("emacs-password-store" ,emacs-password-store)
  8625. ("password-store" ,password-store)))
  8626. (home-page "https://github.com/ecraven/ivy-pass")
  8627. (synopsis "Ivy interface for password store (pass)")
  8628. (description "This package provides an Ivy interface for working with
  8629. the password store @code{pass}.")
  8630. (license license:gpl3))))
  8631. (define-public emacs-ivy-yasnippet
  8632. (let ((commit "32580b4fd23ebf9ca7dde96704f7d53df6e253cd")
  8633. (revision "2"))
  8634. (package
  8635. (name "emacs-ivy-yasnippet")
  8636. (version (git-version "0.1" revision commit))
  8637. (source
  8638. (origin
  8639. (method git-fetch)
  8640. (uri (git-reference
  8641. (url "https://github.com/mkcms/ivy-yasnippet")
  8642. (commit commit)))
  8643. (file-name (git-file-name name version))
  8644. (sha256
  8645. (base32
  8646. "1wfg6mmd5gl1qgvayyzpxlkh9s7jgn20y8l1vh1zbj1czvv51xp8"))))
  8647. (build-system emacs-build-system)
  8648. (propagated-inputs
  8649. `(("emacs-ivy" ,emacs-ivy)
  8650. ("emacs-yasnippet" ,emacs-yasnippet)
  8651. ("emacs-dash" ,emacs-dash)))
  8652. (home-page "https://github.com/mkcms/ivy-yasnippet")
  8653. (synopsis "Preview @code{yasnippets} with @code{ivy}")
  8654. (description "This package allows you to select @code{yasnippet}
  8655. snippets using @code{ivy} completion. When current selection changes in the
  8656. minibuffer, the snippet contents are temporarily expanded in the buffer. To
  8657. use it, call @code{M-x ivy-yasnippet} (but make sure you have enabled
  8658. @code{yas-minor-mode} first).")
  8659. (license license:gpl3+))))
  8660. ;; The 0.1.6 release is incompatible with newer ivy versions, so we instead
  8661. ;; pick a more recent snapshot of the repository, see
  8662. ;; https://github.com/Yevgnen/ivy-rich/pull/80.
  8663. (define-public emacs-ivy-rich
  8664. (let ((commit "600b8183ed0be8668dcc548cc2c8cb94b001363b")
  8665. (revision "2"))
  8666. (package
  8667. (name "emacs-ivy-rich")
  8668. (version (git-version "0.1.6" revision commit))
  8669. (source
  8670. (origin
  8671. (method git-fetch)
  8672. (uri (git-reference
  8673. (url "https://github.com/Yevgnen/ivy-rich")
  8674. (commit commit)))
  8675. (file-name (git-file-name name version))
  8676. (sha256
  8677. (base32 "1dv6vr7fv32v5m04zdy02sdajpvrnpc4i3pbh2dwfv73ff8d8yxm"))))
  8678. (build-system emacs-build-system)
  8679. (propagated-inputs
  8680. `(("emacs-ivy" ,emacs-ivy)))
  8681. (home-page "https://github.com/Yevgnen/ivy-rich")
  8682. (synopsis "More friendly interface for @code{ivy}")
  8683. (description
  8684. "This package extends Ivy by showing more information in the minibuffer
  8685. for each candidate. It adds columns showing buffer modes, file sizes,
  8686. docstrings, etc. If @code{emacs-all-the-icons} is installed, it can show
  8687. icons as well.")
  8688. (license license:gpl3+))))
  8689. (define-public emacs-avy
  8690. (package
  8691. (name "emacs-avy")
  8692. (version "0.5.0")
  8693. (source
  8694. (origin
  8695. (method git-fetch)
  8696. (uri (git-reference
  8697. (url "https://github.com/abo-abo/avy")
  8698. (commit version)))
  8699. (file-name (git-file-name name version))
  8700. (sha256
  8701. (base32 "09qdni1s74i5pv8741szl5g4ynj8fxn0x65qmwa9rmfkbimnc0fs"))))
  8702. (build-system emacs-build-system)
  8703. (arguments
  8704. `(#:tests? #t
  8705. #:test-command '("make" "test")))
  8706. (home-page "https://github.com/abo-abo/avy")
  8707. (synopsis "Tree-based completion for Emacs")
  8708. (description
  8709. "This package provides a generic completion method based on building a
  8710. balanced decision tree with each candidate being a leaf. To traverse the tree
  8711. from the root to a desired leaf, typically a sequence of @code{read-key} can
  8712. be used.
  8713. In order for @code{read-key} to make sense, the tree needs to be visualized
  8714. appropriately, with a character at each branch node. So this completion
  8715. method works only for things that you can see on your screen, all at once,
  8716. such as the positions of characters, words, line beginnings, links, or
  8717. windows.")
  8718. (license license:gpl3+)))
  8719. (define-public emacs-ace-window
  8720. (package
  8721. (name "emacs-ace-window")
  8722. (version "0.10.0")
  8723. (source
  8724. (origin
  8725. (method git-fetch)
  8726. (uri (git-reference
  8727. (url "https://github.com/abo-abo/ace-window")
  8728. (commit version)))
  8729. (file-name (git-file-name name version))
  8730. (sha256
  8731. (base32
  8732. "0f3r40d5yxp2pm2j0nn86s29nqj8py0jxjbj50v4ci3hsd92d8jl"))))
  8733. (build-system emacs-build-system)
  8734. (propagated-inputs
  8735. `(("emacs-avy" ,emacs-avy)))
  8736. (home-page "https://github.com/abo-abo/ace-window")
  8737. (synopsis "Quickly switch windows in Emacs")
  8738. (description
  8739. "@code{ace-window} is meant to replace @code{other-window}.
  8740. In fact, when there are only two windows present, @code{other-window} is
  8741. called. If there are more, each window will have its first character
  8742. highlighted. Pressing that character will switch to that window.")
  8743. (license license:gpl3+)))
  8744. (define-public emacs-windsize
  8745. ;; There is no proper release. The base version is extracted from the
  8746. ;; "Version" keyword in the main file.
  8747. (let ((revision "1")
  8748. (commit "62c2846bbe95b0a73e996c75e4a644d05f57aaaa"))
  8749. (package
  8750. (name "emacs-windsize")
  8751. (version (git-version "0.1" revision commit))
  8752. (source
  8753. (origin
  8754. (method git-fetch)
  8755. (uri (git-reference
  8756. (url "https://github.com/grammati/windsize")
  8757. (commit commit)))
  8758. (file-name (git-file-name name version))
  8759. (sha256
  8760. (base32 "13kfrmv3vmkfanxv9nym5v43hx5p7xkgqmx65zcxh4gcbaham1mi"))))
  8761. (build-system emacs-build-system)
  8762. (home-page "https://github.com/grammati/windsize")
  8763. (synopsis "Easy resizing of Emacs windows")
  8764. (description
  8765. "This package allows moving the borders of the active window
  8766. with the arrow keys. It prefers to move the right or bottom border when
  8767. possible, and falls back to moving the left or top border otherwise.")
  8768. (license license:gpl3+))))
  8769. (define-public emacs-window-purpose
  8770. (package
  8771. (name "emacs-window-purpose")
  8772. (version "1.8.1")
  8773. (source
  8774. (origin
  8775. (method git-fetch)
  8776. (uri (git-reference
  8777. (url "https://github.com/bmag/emacs-purpose.git")
  8778. (commit (string-append "v" version))))
  8779. (file-name (git-file-name name version))
  8780. (sha256
  8781. (base32
  8782. "1cw513mh3gyl21qpmgwqjgpi8kwddmd4n69l4ax5a5pv3vvwrcx9"))))
  8783. (build-system emacs-build-system)
  8784. (propagated-inputs
  8785. `(("emacs-let-alist" ,emacs-let-alist)
  8786. ("emacs-imenu-list" ,emacs-imenu-list)))
  8787. (arguments
  8788. '(#:include
  8789. '("^[^/]+.el$"
  8790. "^[^/]+.el.in$"
  8791. "^dir$"
  8792. "^[^/]+.info$"
  8793. "^[^/]+.texi$"
  8794. "^[^/]+.texinfo$"
  8795. "^doc/dir$"
  8796. "^doc/[^/]+.info$"
  8797. "^doc/[^/]+.texi$"
  8798. "^doc/[^/]+.texinfo$"
  8799. "^layouts$")
  8800. #:exclude
  8801. '("^.dir-locals.el$"
  8802. "^test.el$"
  8803. "^tests.el$"
  8804. "^[^/]+-test.el$"
  8805. "^[^/]+-tests.el$")))
  8806. (home-page "https://github.com/bmag/emacs-purpose")
  8807. (synopsis "Purpose-based window management for Emacs")
  8808. (description "Purpose is a package that introduces the concept of a
  8809. \"purpose\" for windows and buffers, and then helps you maintain a robust
  8810. window layout easily.")
  8811. (license license:gpl3+)))
  8812. (define-public emacs-iedit
  8813. ;; Last release version was in 2016.
  8814. (let ((commit "e2c100cdd67b7d82835d281ac2cd1bf4f374bc8f")
  8815. (revision "1"))
  8816. (package
  8817. (name "emacs-iedit")
  8818. (version (git-version "0.9.9.9" revision commit))
  8819. (source
  8820. (origin
  8821. (method git-fetch)
  8822. (uri (git-reference
  8823. (url "https://github.com/victorhge/iedit")
  8824. (commit commit)))
  8825. (file-name (git-file-name name version))
  8826. (sha256
  8827. (base32 "0wr3w2id95wx2rma8n1ifjrv9rx37ly26ijc5zi58id0yrip3hnc"))))
  8828. (build-system emacs-build-system)
  8829. (home-page "https://www.emacswiki.org/emacs/Iedit")
  8830. (synopsis "Edit multiple regions in the same way simultaneously")
  8831. (description
  8832. "This package is an Emacs minor mode and allows you to edit one
  8833. occurrence of some text in a buffer (possibly narrowed) or region, and
  8834. simultaneously have other occurrences edited in the same way.
  8835. You can also use Iedit mode as a quick way to temporarily show only the buffer
  8836. lines that match the current text being edited. This gives you the effect of
  8837. a temporary @code{keep-lines} or @code{occur}.")
  8838. (license license:gpl3+))))
  8839. (define-public emacs-zoutline
  8840. (package
  8841. (name "emacs-zoutline")
  8842. (version "0.2.0")
  8843. (source
  8844. (origin
  8845. (method git-fetch)
  8846. (uri (git-reference
  8847. (url "https://github.com/abo-abo/zoutline")
  8848. (commit version)))
  8849. (sha256
  8850. (base32
  8851. "1w0zh6vs7klgivq5r030a82mcfg1zwic4x3fimyiqyg5n8p67hyx"))
  8852. (file-name (git-file-name name version))))
  8853. (build-system emacs-build-system)
  8854. (home-page "https://github.com/abo-abo/zoutline")
  8855. (synopsis "Simple outline library")
  8856. (description
  8857. "This library provides helpers for outlines. Outlines allow users to
  8858. navigate code in a tree-like fashion.")
  8859. (license license:gpl3+)))
  8860. (define-public emacs-lispy
  8861. ;; No release since May 2019 and tons of fixes have landed on master.
  8862. ;; https://github.com/abo-abo/lispy/issues/513
  8863. (let ((commit "38a7df4cbb16cfe3d62dc8ea98b50e2d9a572e58"))
  8864. (package
  8865. (name "emacs-lispy")
  8866. (version (git-version "0.27.0" "2" commit))
  8867. (home-page "https://github.com/abo-abo/lispy")
  8868. (source (origin
  8869. (method git-fetch)
  8870. (uri (git-reference
  8871. (url "https://github.com/abo-abo/lispy")
  8872. (commit commit)))
  8873. (sha256
  8874. (base32
  8875. "1q3sgk8ffwajmh8l7c4p4fz36xw4fqds8yqblbi5kardaa8bs8cs"))
  8876. (file-name (git-file-name name version))))
  8877. (build-system emacs-build-system)
  8878. (propagated-inputs
  8879. `(("emacs-ace-window" ,emacs-ace-window)
  8880. ("emacs-hydra" ,emacs-hydra)
  8881. ("emacs-iedit" ,emacs-iedit)
  8882. ("emacs-swiper" ,emacs-swiper)
  8883. ("emacs-zoutline" ,emacs-zoutline)))
  8884. (native-inputs
  8885. `(("which" ,which)
  8886. ("emacs-clojure-mode" ,emacs-clojure-mode)
  8887. ("emacs-undercover" ,emacs-undercover)))
  8888. (arguments
  8889. `(#:include (cons* "^lispy-clojure\\.clj$"
  8890. "^lispy-python\\.py$"
  8891. %default-include)
  8892. #:phases
  8893. ;; XXX: Some failing tests
  8894. (modify-phases %standard-phases
  8895. (add-before 'check 'make-test-writable
  8896. (lambda _
  8897. (make-file-writable "lispy-test.el")
  8898. #t))
  8899. (add-before 'check 'remove-failing-test
  8900. (lambda _
  8901. (emacs-batch-edit-file "lispy-test.el"
  8902. `(progn
  8903. (dolist (test '("lispy-eval-python-str" "lispy--clojure-dot-object"))
  8904. (goto-char (point-min))
  8905. (re-search-forward
  8906. (concat "ert-deftest " test))
  8907. (beginning-of-line)
  8908. (kill-sexp))
  8909. (basic-save-buffer)))
  8910. #t)))
  8911. #:tests? #t
  8912. ;; Set BEMACS to prevent the test suite from loading straight.el.
  8913. #:test-command '("make" "test" "BEMACS=emacs -batch")))
  8914. (synopsis "Modal S-expression editing")
  8915. (description
  8916. "Due to the structure of Lisp syntax it's very rare for the programmer
  8917. to want to insert characters right before \"(\" or right after \")\". Thus
  8918. unprefixed printable characters can be used to call commands when the point is
  8919. at one of these special locations. Lispy provides unprefixed keybindings for
  8920. S-expression editing when point is at the beginning or end of an
  8921. S-expression.")
  8922. (license license:gpl3+))))
  8923. (define-public emacs-lispyville
  8924. (let ((commit "89316f01822b2135e52ca27fd308d207ef618052")
  8925. (revision "3"))
  8926. (package
  8927. (name "emacs-lispyville")
  8928. (version (git-version "0.1" revision commit))
  8929. (home-page "https://github.com/noctuid/lispyville")
  8930. (source (origin
  8931. (method git-fetch)
  8932. (uri (git-reference (url home-page) (commit commit)))
  8933. (sha256
  8934. (base32
  8935. "10k3hxxpx2v2k4dyad7j1bzmr1q7rzvv4y6c67pa9zcqyaw8m91v"))
  8936. (file-name (git-file-name name version))))
  8937. (propagated-inputs
  8938. `(("emacs-evil" ,emacs-evil)
  8939. ("emacs-lispy" ,emacs-lispy)))
  8940. (build-system emacs-build-system)
  8941. (synopsis "Minor mode for integrating Evil with lispy")
  8942. (description
  8943. "LispyVille's main purpose is to provide a Lisp editing environment
  8944. suited towards Evil users. It can serve as a minimal layer on top of lispy
  8945. for better integration with Evil, but it does not require the use of lispy’s
  8946. keybinding style. The provided commands allow for editing Lisp in normal
  8947. state and will work even without lispy being enabled.")
  8948. (license license:gpl3+))))
  8949. (define-public emacs-lpy
  8950. (let ((commit "43b401fe15f0f0d01edb189378b9498121e9f766")
  8951. (revision "3"))
  8952. (package
  8953. (name "emacs-lpy")
  8954. (version (git-version "0.1.0" revision commit))
  8955. (source
  8956. (origin
  8957. (method git-fetch)
  8958. (uri (git-reference
  8959. (url "https://github.com/abo-abo/lpy")
  8960. (commit commit)))
  8961. (sha256
  8962. (base32
  8963. "0xj1r7cn1rivaxhvawvmgx9fg3xilpfw4lkf2x2aqplr4s85ijas"))
  8964. (file-name (git-file-name name version))))
  8965. (propagated-inputs
  8966. `(("emacs-zoutline" ,emacs-zoutline)
  8967. ("emacs-lispy" ,emacs-lispy)))
  8968. (build-system emacs-build-system)
  8969. (home-page "https://github.com/abo-abo/lpy")
  8970. (synopsis "Modal editing for Python")
  8971. (description
  8972. "This package provides a minor mode for Python that binds useful
  8973. commands to unprefixed keys, such as @code{j} or @code{e}, under certain
  8974. circumstances, and leaves the keys untouched outside of those situations,
  8975. allowing unprefixed keys to insert their respective characters as expected.")
  8976. (license license:gpl3+))))
  8977. (define-public emacs-clojure-mode
  8978. (package
  8979. (name "emacs-clojure-mode")
  8980. (version "5.13.0")
  8981. (source
  8982. (origin
  8983. (method git-fetch)
  8984. (uri (git-reference
  8985. (url "https://github.com/clojure-emacs/clojure-mode")
  8986. (commit version)))
  8987. (file-name (git-file-name name version))
  8988. (sha256
  8989. (base32 "1ikl29rygr1habcsglz07m4ihd4ivi732kkzg8q676ihf367wa9i"))))
  8990. (build-system emacs-build-system)
  8991. (native-inputs
  8992. `(("emacs-buttercup" ,emacs-buttercup)
  8993. ("emacs-dash" ,emacs-dash)
  8994. ("emacs-paredit" ,emacs-paredit)
  8995. ("emacs-s" ,emacs-s)))
  8996. (arguments
  8997. `(#:tests? #t
  8998. #:test-command '("buttercup")))
  8999. (home-page "https://github.com/clojure-emacs/clojure-mode")
  9000. (synopsis "Major mode for Clojure code")
  9001. (description
  9002. "This Emacs package provides font-lock, indentation, navigation and basic
  9003. refactoring for the @uref{http://clojure.org, Clojure programming language}.
  9004. It is recommended to use @code{clojure-mode} with Paredit or Smartparens.")
  9005. (license license:gpl3+)))
  9006. (define-public emacs-clojure-snippets
  9007. ;; Use latest commit (2018) since latest tagged release is too old and is
  9008. ;; missing important changes.
  9009. (let ((version "1.0.1")
  9010. (revision "0")
  9011. (commit "6068dca90467a0f4ebc2cd39338a173d6f5ddc04"))
  9012. (package
  9013. (name "emacs-clojure-snippets")
  9014. (version (git-version version revision commit))
  9015. (source
  9016. (origin
  9017. (method git-fetch)
  9018. (uri (git-reference
  9019. (url "https://github.com/mpenet/clojure-snippets")
  9020. (commit commit)))
  9021. (file-name (git-file-name name version))
  9022. (sha256
  9023. (base32 "0vvadcydpsz4b17dlm1jd4fbddzfqibh3mlzv3k4gvp67vv10cqy"))))
  9024. (build-system emacs-build-system)
  9025. (arguments
  9026. `(#:include (cons* "^.*\\/" %default-include)))
  9027. (propagated-inputs
  9028. `(("emacs-yasnippet" ,emacs-yasnippet)))
  9029. (home-page "https://github.com/mpenet/clojure-snippets")
  9030. (synopsis "Yasnippets for Clojure")
  9031. (description
  9032. "This package provides Yasnippets snippets for Clojure.")
  9033. (license license:gpl3+))))
  9034. (define-public emacs-anakondo
  9035. ;; This particular commit introduces bug fixes above latest release.
  9036. (let ((version "0.2.1")
  9037. (revision "0")
  9038. (commit "c48518560815c49d8d78fb9069906d17e883385e"))
  9039. (package
  9040. (name "emacs-anakondo")
  9041. (version (git-version version revision commit))
  9042. (source
  9043. (origin
  9044. (method git-fetch)
  9045. (uri (git-reference
  9046. (url "https://github.com/didibus/anakondo")
  9047. (commit commit)))
  9048. (file-name (git-file-name name version))
  9049. (sha256
  9050. (base32 "1fzsqd150gpmrj8kz3zy9cd78x9vank7ra720mljhyf04z0h1mj6"))))
  9051. (build-system emacs-build-system)
  9052. (home-page "https://github.com/didibus/anakondo")
  9053. (synopsis "clj-kondo based Clojure[Script] editing facilities")
  9054. (description
  9055. "This package makes use of clj-kondo's analysis data to provide code
  9056. editing facilities related to Clojure, ClojureScript and cljc source.")
  9057. (license license:expat))))
  9058. (define-public emacs-epl
  9059. (package
  9060. (name "emacs-epl")
  9061. (version "0.9")
  9062. (source
  9063. (origin
  9064. (method git-fetch)
  9065. (uri (git-reference
  9066. (url "https://github.com/cask/epl")
  9067. (commit version)))
  9068. (file-name (git-file-name name version))
  9069. (sha256
  9070. (base32 "0d3z5z90ln8ipk1yds1n1p8fj9yyh2kpspqjs7agl38indra3nb4"))))
  9071. (build-system emacs-build-system)
  9072. (home-page "https://github.com/cask/epl")
  9073. (synopsis "Emacs Package Library")
  9074. (description
  9075. "A package management library for Emacs, based on @code{package.el}.
  9076. The purpose of this library is to wrap all the quirks and hassle of
  9077. @code{package.el} into a sane API.")
  9078. (license license:gpl3+)))
  9079. (define-public emacs-counsel-jq
  9080. (package
  9081. (name "emacs-counsel-jq")
  9082. (version "1.1")
  9083. (home-page "https://github.com/200ok-ch/counsel-jq")
  9084. (source
  9085. (origin
  9086. (method git-fetch)
  9087. (uri (git-reference
  9088. (url home-page)
  9089. (commit "aaf33fc2447096cd0d03b77395fe2a95c9fe1481")))
  9090. (file-name (git-file-name name version))
  9091. (sha256
  9092. (base32 "10rz0qm8a4bl0m86kx19zq8lri047p4sxqyny08bgm9pbam0wvwn"))))
  9093. (build-system emacs-build-system)
  9094. (propagated-inputs
  9095. `(("emacs-swiper" ,emacs-swiper)
  9096. ("jq" ,jq)))
  9097. (synopsis "Live preview @code{jq} queries using counsel")
  9098. (description
  9099. "This Emacs package provides the ability to live preview @code{jq}
  9100. queries using counsel.")
  9101. (license license:gpl3+)))
  9102. (define-public emacs-counsel-notmuch
  9103. ;; Upstream provides no release. Extract version for main file.
  9104. (let ((commit "a4a1562935e4180c42524c51609d1283e9be0688")
  9105. (revision "0"))
  9106. (package
  9107. (name "emacs-counsel-notmuch")
  9108. (version (git-version "1.0" revision commit))
  9109. (source
  9110. (origin
  9111. (method git-fetch)
  9112. (uri (git-reference
  9113. (url "https://github.com/fuxialexander/counsel-notmuch")
  9114. (commit commit)))
  9115. (file-name (git-file-name name version))
  9116. (sha256
  9117. (base32 "01k1321d961kc2i660a5595bqk0d85f16snsxngsn5si6y83kqr7"))))
  9118. (build-system emacs-build-system)
  9119. (arguments
  9120. `(#:phases
  9121. (modify-phases %standard-phases
  9122. (add-after 'unpack 'locate-notmuch
  9123. (lambda* (#:key inputs #:allow-other-keys)
  9124. (make-file-writable "counsel-notmuch.el")
  9125. (emacs-substitute-variables "counsel-notmuch.el"
  9126. ("counsel-notmuch-path"
  9127. (search-input-file inputs "/bin/notmuch"))))))))
  9128. (inputs
  9129. `(("emacs-counsel" ,emacs-counsel)
  9130. ("notmuch" ,notmuch)
  9131. ("emacs-s" ,emacs-s)))
  9132. (propagated-inputs
  9133. `(("emacs-notmuch" ,emacs-notmuch)))
  9134. (home-page "https://github.com/fuxialexander/counsel-notmuch")
  9135. (synopsis "Search emails in Notmuch asynchronously with Ivy")
  9136. (description
  9137. "This package can be used to search emails in Notmuch
  9138. asynchronously, with Counsel and Ivy. Simply call
  9139. @code{counsel-notmuch} and input your Notmuch query.")
  9140. (license license:gpl3+))))
  9141. (define-public emacs-counsel-projectile
  9142. ;; Use a recent commit in order to fix recent breakage with Ivy.
  9143. (let ((commit "06b03c1080d3ccc3fa9b9c41b1ccbcf13f058e4b")
  9144. (revision "0"))
  9145. (package
  9146. (name "emacs-counsel-projectile")
  9147. (version (git-version "0.3.1" revision commit))
  9148. (source
  9149. (origin
  9150. (method git-fetch)
  9151. (uri (git-reference
  9152. (url "https://github.com/ericdanan/counsel-projectile")
  9153. (commit commit)))
  9154. (file-name (git-file-name name version))
  9155. (sha256
  9156. (base32 "10afil6grwxj1x8fxd3ar7ikw3s3hzrkjsjin8wzchbz04389l7s"))))
  9157. (build-system emacs-build-system)
  9158. (propagated-inputs
  9159. `(("emacs-counsel" ,emacs-counsel)
  9160. ("emacs-projectile" ,emacs-projectile)))
  9161. (home-page "https://github.com/ericdanan/counsel-projectile")
  9162. (synopsis "Enhance Projectile with Ivy")
  9163. (description
  9164. "This package uses Ivy to provide additional actions for Projectile
  9165. commands and replacements for existing functions.")
  9166. (license license:gpl3+))))
  9167. (define-public emacs-qml-mode
  9168. (package
  9169. (name "emacs-qml-mode")
  9170. (version "0.4")
  9171. (source (origin
  9172. (method git-fetch)
  9173. (uri (git-reference
  9174. (url "https://github.com/coldnew/qml-mode")
  9175. (commit version)))
  9176. (file-name (git-file-name name version))
  9177. (sha256
  9178. (base32
  9179. "1sncsvzjfgmhp4m8w5jd4y51k24n2jfpgvrkd64wlhhzbj3wb947"))))
  9180. (build-system emacs-build-system)
  9181. (home-page "https://github.com/coldnew/qml-mode/")
  9182. (synopsis "Qt Modeling Language (QML) mode for Emacs")
  9183. (description "This package provides the @code{qml-mode} major Emacs mode
  9184. for editing source files written in the Qt Modeling Language (QML) user
  9185. interface markup language. It provides syntax highlighting and basic
  9186. navigation commands. @code{qml-mode} is derived from code{js-mode}, the Emacs
  9187. builtin JavaScript mode.")
  9188. (license license:gpl2+)))
  9189. (define-public emacs-queue
  9190. (package
  9191. (name "emacs-queue")
  9192. (version "0.2")
  9193. (source (origin
  9194. (method url-fetch)
  9195. (uri (string-append "https://elpa.gnu.org/packages/queue-"
  9196. version ".el"))
  9197. (sha256
  9198. (base32
  9199. "0cx2848sqnnkkr4zisvqadzxngjyhmb36mh0q3if7q19yjjhmrkb"))))
  9200. (build-system emacs-build-system)
  9201. (home-page "https://www.dr-qubit.org/emacs_data-structures.html")
  9202. (synopsis "Queue data structure for Emacs")
  9203. (description
  9204. "This Emacs library provides queue data structure. These queues can be
  9205. used both as a first-in last-out (FILO) and as a first-in first-out (FIFO)
  9206. stack, i.e. elements can be added to the front or back of the queue, and can
  9207. be removed from the front. This type of data structure is sometimes called an
  9208. \"output-restricted deque\".")
  9209. (license license:gpl3+)))
  9210. (define-public emacs-quickrun
  9211. (package
  9212. (name "emacs-quickrun")
  9213. (version "2.3.1")
  9214. (source
  9215. (origin
  9216. (method git-fetch)
  9217. (uri (git-reference
  9218. (url "https://github.com/emacsorphanage/quickrun")
  9219. (commit version)))
  9220. (sha256
  9221. (base32 "0a1n2v09h0n7d9p2izflqqang4ny0b46dlqvmxvkkik4bb6f4wcz"))
  9222. (file-name (git-file-name name version))))
  9223. (build-system emacs-build-system)
  9224. (home-page "https://github.com/emacsorphanage/quickrun")
  9225. (synopsis "Execute editing buffer and show its output quickly")
  9226. (description
  9227. "This package evaluates the content of a buffer, or region, and displays
  9228. the result. Quickrun executes not only script languages (Perl, Ruby, Python
  9229. etc), but also compiling languages (C, C++, Go, Java etc) and markup
  9230. languages.")
  9231. (license license:gpl3+)))
  9232. (define-public emacs-pkg-info
  9233. (package
  9234. (name "emacs-pkg-info")
  9235. (version "0.6")
  9236. (source
  9237. (origin
  9238. (method git-fetch)
  9239. (uri (git-reference
  9240. (url "https://github.com/lunaryorn/pkg-info.el")
  9241. (commit version)))
  9242. (file-name (git-file-name name version))
  9243. (sha256
  9244. (base32 "0nk12dcppdyhav6m6yf7abpywyd7amxd4237zsfd32w4zxsx39k1"))))
  9245. (build-system emacs-build-system)
  9246. (propagated-inputs `(("emacs-epl" ,emacs-epl)))
  9247. (home-page "https://github.com/lunaryorn/pkg-info.el")
  9248. (synopsis "Information about Emacs packages")
  9249. (description
  9250. "This library extracts information from the installed Emacs packages.")
  9251. (license license:gpl3+)))
  9252. (define-public emacs-spinner
  9253. (package
  9254. (name "emacs-spinner")
  9255. (version "1.7.4")
  9256. (source (origin
  9257. (method url-fetch)
  9258. (uri (string-append "https://elpa.gnu.org/packages/spinner-"
  9259. version ".tar"))
  9260. (sha256
  9261. (base32 "140kss25ijbwf8hzflbjz67ry76w2cyrh02axk95n6qcxv7jr7pv"))))
  9262. (build-system emacs-build-system)
  9263. (home-page "https://github.com/Malabarba/spinner.el")
  9264. (synopsis "Emacs mode-line spinner for operations in progress")
  9265. (description
  9266. "This Emacs package adds spinners and progress-bars to the mode-line for
  9267. ongoing operations.")
  9268. (license license:gpl3+)))
  9269. (define-public emacs-sparql-mode
  9270. (package
  9271. (name "emacs-sparql-mode")
  9272. (version "4.0.2")
  9273. (source
  9274. (origin
  9275. (method git-fetch)
  9276. (uri (git-reference
  9277. (url "https://github.com/ljos/sparql-mode")
  9278. (commit (string-append "v" version))))
  9279. (file-name (git-file-name name version))
  9280. (sha256
  9281. (base32 "0hqp8r24wvzrkl630wbm0lynrcrnawv2yn2a3xgwqwwhwgva35rn"))))
  9282. (build-system emacs-build-system)
  9283. (propagated-inputs
  9284. `(("emacs-company" ,emacs-company)))
  9285. (home-page "https://github.com/ljos/sparql-mode")
  9286. (synopsis "SPARQL mode for Emacs")
  9287. (description
  9288. "This package is a major mode for Emacs that provides syntax highlighting
  9289. for SPARQL. It can also execute queries against a SPARQL HTTP endpoint, such
  9290. as Fuseki or DBPedia.")
  9291. (license license:gpl3+)))
  9292. (define-public emacs-better-defaults
  9293. (package
  9294. (name "emacs-better-defaults")
  9295. (version "0.1.3")
  9296. (source
  9297. (origin
  9298. (method git-fetch)
  9299. (uri (git-reference
  9300. (url "https://github.com/technomancy/better-defaults")
  9301. (commit version)))
  9302. (file-name (git-file-name name version))
  9303. (sha256
  9304. (base32
  9305. "1rxznx2l0cdpiz8mad8s6q17m1fngpgb1cki7ch6yh18r3qz8ysr"))))
  9306. (build-system emacs-build-system)
  9307. (home-page "https://github.com/technomancy/better-defaults")
  9308. (synopsis "Better defaults for Emacs")
  9309. (description
  9310. "Better defaults attempts to address the most obvious deficiencies of the
  9311. Emacs default configuration in uncontroversial ways that nearly everyone can
  9312. agree upon.")
  9313. (license license:gpl3+)))
  9314. (define-public emacs-undohist-el
  9315. (package
  9316. (name "emacs-undohist-el")
  9317. (version "0.2.1")
  9318. (source
  9319. (origin
  9320. (method git-fetch)
  9321. (uri (git-reference
  9322. (url "https://github.com/m2ym/undohist-el")
  9323. (commit version)))
  9324. (file-name (git-file-name name version))
  9325. (sha256
  9326. (base32 "0hmx2b20nrxg2lb8vplgrzdh8chgxwlbmjvbq5scddggd302sd56"))))
  9327. (build-system emacs-build-system)
  9328. (home-page "https://github.com/m2ym/undohist-el")
  9329. (synopsis "Save undo history between sessions")
  9330. (description "This package allows persistent use of undo history for
  9331. individual file buffers.")
  9332. (license license:gpl3+)))
  9333. (define-public emacs-eprime
  9334. (let ((commit "17a481af26496be91c07139a9bfc05cfe722506f"))
  9335. (package
  9336. (name "emacs-eprime")
  9337. (version (string-append "20140513-" (string-take commit 7)))
  9338. (source (origin
  9339. (method url-fetch)
  9340. (uri (string-append "https://raw.githubusercontent.com"
  9341. "/AndrewHynes/eprime-mode/"
  9342. commit "/eprime-mode.el"))
  9343. (file-name (string-append "eprime-" version ".el"))
  9344. (sha256
  9345. (base32
  9346. "0v68lggkyq7kbcr9zyi573m2g2x251xy3jadlaw8kx02l8krwq8d"))))
  9347. (build-system emacs-build-system)
  9348. (home-page "https://github.com/AndrewHynes/eprime-mode")
  9349. (synopsis "E-prime checking mode for Emacs")
  9350. (description "This package provides an E-prime checking mode for Emacs
  9351. that highlights non-conforming text. The subset of the English language called
  9352. E-Prime forbids the use of the \"to be\" form to strengthen your writing.")
  9353. (license license:gpl3+))))
  9354. (define-public emacs-julia-mode
  9355. (package
  9356. (name "emacs-julia-mode")
  9357. (version "0.4")
  9358. (source
  9359. (origin
  9360. (method git-fetch)
  9361. (uri (git-reference
  9362. (url "https://github.com/JuliaEditorSupport/julia-emacs")
  9363. (commit version)))
  9364. (file-name (git-file-name name version))
  9365. (sha256
  9366. (base32
  9367. "1w131jb9mhvyjxa0p93iwfhzidgbcs6b8i6jg79yisqb9wchik99"))))
  9368. (build-system emacs-build-system)
  9369. (arguments
  9370. `(#:tests? #t
  9371. #:test-command '("emacs" "--batch"
  9372. "-l" "julia-mode-tests.el"
  9373. "-f" "ert-run-tests-batch-and-exit")))
  9374. (home-page "https://github.com/JuliaEditorSupport/julia-emacs")
  9375. (synopsis "Major mode for Julia")
  9376. (description "This Emacs package provides a mode for the Julia
  9377. programming language.")
  9378. (license license:expat)))
  9379. (define-public emacs-julia-repl
  9380. (package
  9381. (name "emacs-julia-repl")
  9382. (version "1.3.0")
  9383. (source (origin
  9384. (method git-fetch)
  9385. (uri (git-reference
  9386. (url "https://github.com/tpapp/julia-repl")
  9387. (commit version)))
  9388. (file-name (git-file-name name version))
  9389. (sha256
  9390. (base32
  9391. "11vpqqnxqj9nxh8kccj4y6h3f8lib6jxnsk6vxc2j2fqw6alnafm"))))
  9392. (build-system emacs-build-system)
  9393. (home-page "https://github.com/tpapp/julia-repl")
  9394. (synopsis "Minor mode for interacting with a Julia REPL")
  9395. (description "This package provides a minor mode for interacting with a
  9396. Julia REPL running inside Emacs. The julia process is started in an ANSI
  9397. terminal (term), which allows text formatting and colors, and interaction with
  9398. the help system and the debugger. It is recommended that you use this minor
  9399. mode with the package emacs-julia-mode.")
  9400. (license license:expat)))
  9401. (define-public emacs-julia-snail
  9402. (package
  9403. (name "emacs-julia-snail")
  9404. (version "1.0.0rc4") ;rc5 requires CSTParser (julia package)
  9405. (source (origin
  9406. (method git-fetch)
  9407. (uri (git-reference
  9408. (url "https://github.com/gcv/julia-snail")
  9409. (commit version)))
  9410. (file-name (git-file-name name version))
  9411. (sha256
  9412. (base32
  9413. "065ix3jycsx3wvkq7a6060i93caxisdvgxgqb1l6rq15n4qln78y"))))
  9414. (build-system emacs-build-system)
  9415. (arguments
  9416. `(#:include (cons "^JuliaSnail\\.jl" %default-include)))
  9417. (inputs
  9418. `(("emacs-dash" ,emacs-dash)
  9419. ("emacs-s" ,emacs-s)
  9420. ("emacs-spinner" ,emacs-spinner)
  9421. ("emacs-xref" ,emacs-xref)))
  9422. (propagated-inputs
  9423. `(("libvterm" ,libvterm)
  9424. ("emacs-julia-mode" ,emacs-julia-mode) ;required by parser
  9425. ("emacs-parsec" ,emacs-parsec) ;required by parser
  9426. ("emacs-vterm" ,emacs-vterm)))
  9427. (home-page "https://github.com/gcv/julia-snail")
  9428. (synopsis "Development environment and REPL interaction package for Julia")
  9429. (description "This package provides a development environment and REPL
  9430. interaction package for Julia in the spirit of Common Lisp’s SLIME and
  9431. Clojure’s CIDER. It enables convenient and dynamic REPL-driven development.")
  9432. (license license:gpl3)))
  9433. (define-public emacs-smex
  9434. (package
  9435. (name "emacs-smex")
  9436. (version "3.0")
  9437. (source (origin
  9438. (method url-fetch)
  9439. (uri (string-append "https://raw.githubusercontent.com"
  9440. "/nonsequitur/smex/" version "/smex.el"))
  9441. (file-name (string-append "smex-" version ".el"))
  9442. (sha256
  9443. (base32
  9444. "0ar310zx9k5y4i1vl2rawvi712xj9gx77160860jbs691p77cxqp"))))
  9445. (build-system emacs-build-system)
  9446. (home-page "https://github.com/nonsequitur/smex/")
  9447. (synopsis "M-x interface with Ido-style fuzzy matching")
  9448. (description
  9449. "Smex is a M-x enhancement for Emacs. Built on top of Ido, it provides a
  9450. convenient interface to your recently and most frequently used commands. And
  9451. to all the other commands, too.")
  9452. (license license:gpl3+)))
  9453. (define-public emacs-js2-mode
  9454. (package
  9455. (name "emacs-js2-mode")
  9456. (version "20201220")
  9457. (source
  9458. (origin
  9459. (method git-fetch)
  9460. (uri (git-reference
  9461. (url "https://github.com/mooz/js2-mode")
  9462. (commit version)))
  9463. (file-name (git-file-name name version))
  9464. (sha256
  9465. (base32 "00jy917cgp5xzfgs4m0spzlbqk8mg63layin8nxmn2647rfjnik4"))))
  9466. (build-system emacs-build-system)
  9467. (arguments
  9468. `(#:tests? #t
  9469. #:test-command '("make" "test")))
  9470. (home-page "https://github.com/mooz/js2-mode/")
  9471. (synopsis "Improved JavaScript editing mode for Emacs")
  9472. (description
  9473. "Js2-mode provides a JavaScript major mode for Emacs that is more
  9474. advanced than the built-in javascript-mode. Features include accurate syntax
  9475. highlighting using a recursive-descent parser, on-the-fly reporting of syntax
  9476. errors and strict-mode warnings, smart line-wrapping within comments and
  9477. strings, and code folding.")
  9478. (license license:gpl3+)))
  9479. (define-public emacs-nodejs-repl
  9480. (package
  9481. (name "emacs-nodejs-repl")
  9482. (version "0.2.4")
  9483. (source (origin
  9484. (method git-fetch)
  9485. (uri (git-reference
  9486. (url "https://github.com/abicky/nodejs-repl.el")
  9487. (commit version)))
  9488. (file-name (git-file-name name version))
  9489. (sha256
  9490. (base32
  9491. "0a5mmg3cmdi73giblp07ksl06xzl9nb2m3f96ny4r3rv0ar3v1bx"))))
  9492. (build-system emacs-build-system)
  9493. (inputs
  9494. `(("node" ,node)))
  9495. (native-inputs
  9496. `(("emacs-ert-expectations" ,emacs-ert-expectations)))
  9497. (arguments
  9498. `(#:phases
  9499. (modify-phases %standard-phases
  9500. (add-after 'unpack 'set-shell
  9501. ;; Setting the SHELL environment variable is required for the tests
  9502. ;; to find sh.
  9503. (lambda _
  9504. (setenv "SHELL" (which "sh"))
  9505. #t))
  9506. (add-after 'unpack 'configure
  9507. (lambda* (#:key inputs outputs #:allow-other-keys)
  9508. (let ((node (assoc-ref inputs "node")))
  9509. ;; Specify the absolute file names of the various
  9510. ;; programs so that everything works out-of-the-box.
  9511. (make-file-writable "nodejs-repl.el")
  9512. (emacs-substitute-variables
  9513. "nodejs-repl.el"
  9514. ("nodejs-repl-command"
  9515. (string-append node "/bin/node")))))))
  9516. #:tests? #t
  9517. #:test-command '("emacs" "-Q" "--batch"
  9518. "-L" "."
  9519. "-l" "test/test.el"
  9520. "-f" "ert-run-tests-batch-and-exit")))
  9521. (home-page "https://github.com/abicky/nodejs-repl.el")
  9522. (synopsis "Node.js REPL inside Emacs")
  9523. (description
  9524. "This program is derived from comint-mode and provides the following
  9525. features:
  9526. @itemize
  9527. @item TAB completion same as Node.js REPL
  9528. @item file name completion in string
  9529. @item incremental history search
  9530. @end itemize")
  9531. (license license:gpl3+)))
  9532. (define-public emacs-typescript-mode
  9533. (package
  9534. (name "emacs-typescript-mode")
  9535. (version "0.4")
  9536. (source (origin
  9537. (method git-fetch)
  9538. (uri (git-reference
  9539. (url "https://github.com/ananthakumaran/typescript.el")
  9540. (commit (string-append "v" version))))
  9541. (file-name (git-file-name name version))
  9542. (sha256
  9543. (base32
  9544. "186bpvqxx87kp3857mq0mzn1ddsvzmpijix810k6bdz8522x7zdw"))))
  9545. (build-system emacs-build-system)
  9546. (home-page "https://github.com/ananthakumaran/typescript.el")
  9547. (synopsis "Emacs major mode for editing Typescript code")
  9548. (description
  9549. "This is based on Karl Landstrom's barebones @code{typescript-mode}.
  9550. This is much more robust and works with @code{cc-mode}'s comment
  9551. filling (mostly). The modifications to the original @code{javascript.el} mode
  9552. mainly consisted in replacing \"javascript\" with \"typescript\"
  9553. The main features of this Typescript mode are syntactic highlighting (enabled
  9554. with @code{font-lock-mode} or @code{global-font-lock-mode}), automatic
  9555. indentation and filling of comments and C preprocessor fontification.")
  9556. (license license:gpl3+)))
  9557. (define-public emacs-tide
  9558. (package
  9559. (name "emacs-tide")
  9560. (version "4.2.3")
  9561. (source (origin
  9562. (method git-fetch)
  9563. (uri (git-reference
  9564. (url "https://github.com/ananthakumaran/tide")
  9565. (commit (string-append "v" version))))
  9566. (file-name (git-file-name name version))
  9567. (sha256
  9568. (base32
  9569. "1fj2fghiycnzds2zxfxgj1d9mdzsvs9rvl9bwy2f1vwawqk1m48w"))))
  9570. (build-system emacs-build-system)
  9571. (propagated-inputs
  9572. `(("emacs-dash" ,emacs-dash)
  9573. ("emacs-s" ,emacs-s)
  9574. ("emacs-flycheck" ,emacs-flycheck)
  9575. ("emacs-typescript-mode" ,emacs-typescript-mode)))
  9576. (home-page "https://github.com/ananthakumaran/tide")
  9577. (synopsis "Typescript IDE for Emacs")
  9578. (description
  9579. "Tide is an Interactive Development Environment (IDE) for Emacs which
  9580. provides the following features:
  9581. @itemize
  9582. @item ElDoc
  9583. @item Auto complete
  9584. @item Flycheck
  9585. @item Jump to definition, Jump to type definition
  9586. @item Find occurrences
  9587. @item Rename symbol
  9588. @item Imenu
  9589. @item Compile On Save
  9590. @item Highlight Identifiers
  9591. @item Code Fixes
  9592. @item Code Refactor
  9593. @item Organize Imports
  9594. @end itemize")
  9595. (license license:gpl3+)))
  9596. (define-public emacs-markdown-mode
  9597. (package
  9598. (name "emacs-markdown-mode")
  9599. (version "2.4")
  9600. (source
  9601. (origin
  9602. (method git-fetch)
  9603. (uri (git-reference
  9604. (url "https://github.com/jrblevin/markdown-mode")
  9605. (commit (string-append "v" version))))
  9606. (file-name (git-file-name name version))
  9607. (sha256
  9608. (base32 "0g0ja4h651yfabm3k6gbw4y8w7wibc9283fyfzb33kjj38ivl5d7"))))
  9609. (build-system emacs-build-system)
  9610. (home-page "https://jblevins.org/projects/markdown-mode/")
  9611. (synopsis "Emacs Major mode for Markdown files")
  9612. (description
  9613. "Markdown-mode is a major mode for editing Markdown-formatted text files
  9614. in Emacs.")
  9615. (license license:gpl3+)))
  9616. (define-public emacs-evil-markdown
  9617. (let ((commit "685d7fbb81bc02fa32779d2a127b99a0c8c7436b")
  9618. (revision "2"))
  9619. (package
  9620. (name "emacs-evil-markdown")
  9621. (version (git-version "0.0.2" revision commit))
  9622. (source
  9623. (origin
  9624. (method git-fetch)
  9625. (uri (git-reference
  9626. (url "https://github.com/Somelauw/evil-markdown")
  9627. (commit commit)))
  9628. (file-name (git-file-name name version))
  9629. (sha256
  9630. (base32 "1z1sjn6dcqv8mmkh6nfcwhnql2z6xr9yx3hs77bfxj79pf3c466p"))))
  9631. (build-system emacs-build-system)
  9632. (propagated-inputs
  9633. `(("emacs-evil" ,emacs-evil)
  9634. ("emacs-markdown-mode" ,emacs-markdown-mode)))
  9635. (home-page "https://github.com/Somelauw/evil-markdown/")
  9636. (synopsis "Evil keybindings for @code{markdown-mode}")
  9637. (description
  9638. "This package provides custom text objects and bindings for
  9639. @code{markdown-mode}.")
  9640. (license license:gpl3+))))
  9641. (define-public emacs-edit-indirect
  9642. (package
  9643. (name "emacs-edit-indirect")
  9644. (version "0.1.6")
  9645. (source
  9646. (origin
  9647. (method git-fetch)
  9648. (uri (git-reference
  9649. (url "https://github.com/Fanael/edit-indirect")
  9650. (commit version)))
  9651. (file-name (git-file-name name version))
  9652. (sha256
  9653. (base32 "189nvmlkki1jfszm9i0crbb1p4nzgmbly0wpvpg0i8vmw7vrpl40"))))
  9654. (build-system emacs-build-system)
  9655. (home-page "https://github.com/Fanael/edit-indirect")
  9656. (synopsis "Edit regions in separate buffers")
  9657. (description "This package allows you to edit regions in separate buffers,
  9658. like @code{org-edit-src-code} but for arbitrary regions.")
  9659. (license license:bsd-2)))
  9660. (define-public emacs-projectile
  9661. (package
  9662. (name "emacs-projectile")
  9663. (version "2.5.0")
  9664. (source (origin
  9665. (method url-fetch)
  9666. (uri (string-append "https://raw.githubusercontent.com/bbatsov"
  9667. "/projectile/v" version "/projectile.el"))
  9668. (file-name (string-append "projectile-" version ".el"))
  9669. (sha256
  9670. (base32
  9671. "1wy2kpli90z7p4dqr4b7f1fv99g6lfxi1kzy2bfl0p8qi40rpmyv"))))
  9672. (build-system emacs-build-system)
  9673. (propagated-inputs
  9674. `(("emacs-dash" ,emacs-dash)
  9675. ("emacs-pkg-info" ,emacs-pkg-info)))
  9676. (home-page "https://github.com/bbatsov/projectile")
  9677. (synopsis "Manage and navigate projects in Emacs easily")
  9678. (description
  9679. "This library provides easy project management and navigation. The
  9680. concept of a project is pretty basic - just a folder containing special file.
  9681. Currently git, mercurial and bazaar repos are considered projects by default.
  9682. If you want to mark a folder manually as a project just create an empty
  9683. .projectile file in it.")
  9684. (license license:gpl3+)))
  9685. (define-public emacs-skeletor
  9686. (let ((commit "47c5b761aee8452716c97a69949ac2f675affe13")
  9687. (revision "1"))
  9688. (package
  9689. (name "emacs-skeletor")
  9690. (version (git-version "1.6.1" revision commit))
  9691. (source (origin
  9692. (method git-fetch)
  9693. (uri (git-reference
  9694. (url "https://github.com/chrisbarrett/skeletor.el")
  9695. (commit commit)))
  9696. (file-name (git-file-name name version))
  9697. (sha256
  9698. (base32
  9699. "12bdgykfh4mwsqdazxjdvha62h3q3v33159ypy91f6x59y01fi0n"))))
  9700. (build-system emacs-build-system)
  9701. (propagated-inputs
  9702. `(("emacs-s" ,emacs-s)
  9703. ("emacs-f" ,emacs-f)
  9704. ("emacs-dash" ,emacs-dash)
  9705. ("emacs-let-alist" ,emacs-let-alist)))
  9706. (native-inputs
  9707. `(("emacs-ert-runner" ,emacs-ert-runner)))
  9708. (arguments
  9709. `(#:include (cons "^project-skeletons\\/" %default-include)
  9710. ;; XXX: one failing test involving initializing a git repo
  9711. #:phases
  9712. (modify-phases %standard-phases
  9713. (add-before 'check 'make-test-writable
  9714. (lambda _
  9715. (make-file-writable "test/skeletor-test.el")
  9716. #t))
  9717. (add-before 'check 'remove-git-test
  9718. (lambda _
  9719. (emacs-batch-edit-file "test/skeletor-test.el"
  9720. `(progn
  9721. (progn
  9722. (goto-char (point-min))
  9723. (re-search-forward
  9724. "ert-deftest initialises-git-repo")
  9725. (beginning-of-line)
  9726. (kill-sexp))
  9727. (basic-save-buffer)))
  9728. #t)))
  9729. #:tests? #t
  9730. #:test-command '("ert-runner")))
  9731. (home-page "https://github.com/chrisbarrett/skeletor.el")
  9732. (synopsis "Project skeletons for Emacs")
  9733. (description "This package provides project templates and automates the
  9734. mundane parts of setting up a new project, such as version control, licenses,
  9735. and tooling.")
  9736. (license license:gpl3+))))
  9737. (define-public emacs-elfeed
  9738. (package
  9739. (name "emacs-elfeed")
  9740. (version "3.4.1")
  9741. (source
  9742. (origin
  9743. (method git-fetch)
  9744. (uri (git-reference
  9745. (url "https://github.com/skeeto/elfeed")
  9746. (commit version)))
  9747. (file-name (git-file-name name version))
  9748. (sha256
  9749. (base32 "1ghdvfn4f9y69r59i1ga9b3ib1r8sbqg6q1v5rz3f9paagfavrd1"))))
  9750. (build-system emacs-build-system)
  9751. (arguments
  9752. `(#:tests? #t
  9753. #:test-command '("make" "test")))
  9754. (home-page "https://github.com/skeeto/elfeed")
  9755. (synopsis "Atom/RSS feed reader for Emacs")
  9756. (description
  9757. "Elfeed is an extensible web feed reader for Emacs, supporting both Atom
  9758. and RSS, with a user interface inspired by notmuch.")
  9759. (license license:gpl3+)))
  9760. (define-public emacs-elfeed-org
  9761. (let ((commit "77b6bbf222487809813de260447d31c4c59902c9"))
  9762. (package
  9763. (name "emacs-elfeed-org")
  9764. (version (git-version "0.1" "1" commit))
  9765. (source
  9766. (origin
  9767. (method git-fetch)
  9768. (uri (git-reference
  9769. (url "https://github.com/remyhonig/elfeed-org")
  9770. (commit commit)))
  9771. (file-name (git-file-name name version))
  9772. (sha256
  9773. (base32 "0a2ibka82xq1dhy2z7rd2y9zhcj8rna8357881yz49wf55ccgm53"))))
  9774. (build-system emacs-build-system)
  9775. (propagated-inputs
  9776. `(("emacs-elfeed" ,emacs-elfeed)
  9777. ("emacs-org" ,emacs-org)
  9778. ("emacs-dash" ,emacs-dash)
  9779. ("emacs-s" ,emacs-s)))
  9780. (native-inputs
  9781. `(("ert-runner" ,emacs-ert-runner)
  9782. ("emacs-xtest" ,emacs-xtest)))
  9783. (arguments
  9784. `(#:tests? #t
  9785. #:test-command '("ert-runner" "-L" "org-mode/lisp")
  9786. #:phases
  9787. (modify-phases %standard-phases
  9788. (add-before 'check 'chmod
  9789. (lambda _
  9790. (chmod "test/fixture-mark-feed-ignore.org" #o644)
  9791. #t)))))
  9792. (home-page "https://github.com/remyhonig/elfeed-org")
  9793. (synopsis "Configure Elfeed with an Org-mode file")
  9794. (description
  9795. "@code{elfeed-org} lets you manage your Elfeed subscriptions
  9796. in Org-mode. Maintaining tags for all RSS feeds is cumbersome using
  9797. the regular flat list, where there is no hierarchy and tag names are
  9798. duplicated a lot. Org-mode makes the book keeping of tags and feeds
  9799. much easier.")
  9800. (license license:gpl3+))))
  9801. (define-public emacs-elfeed-protocol
  9802. (package
  9803. (name "emacs-elfeed-protocol")
  9804. (version "0.8.0")
  9805. (source
  9806. (origin
  9807. (method git-fetch)
  9808. (uri (git-reference
  9809. (url "https://github.com/fasheng/elfeed-protocol")
  9810. (commit version)))
  9811. (file-name (git-file-name name version))
  9812. (sha256
  9813. (base32 "07r1qlldgd0kfikd0y737y5n42ab3nkw2s5jx7frimj41yandbdp"))))
  9814. (build-system emacs-build-system)
  9815. (propagated-inputs
  9816. `(("emacs-elfeed" ,emacs-elfeed)))
  9817. (home-page "https://github.com/fasheng/elfeed-protocol")
  9818. (synopsis "Fever/NewsBlur/ownCloud/tt-RSS protocols for Elfeed")
  9819. (description
  9820. "Elfeed-protocol provides extra protocols to make self-hosting RSS
  9821. readers like Fever, NewsBlur, ownCloud News and Tiny TIny RSS work
  9822. with Elfeed.")
  9823. (license license:gpl3+)))
  9824. (define-public emacs-elfeed-score
  9825. (package
  9826. (name "emacs-elfeed-score")
  9827. (version "0.8.6")
  9828. (source
  9829. (origin
  9830. (method git-fetch)
  9831. (uri (git-reference
  9832. (url "https://github.com/sp1ff/elfeed-score")
  9833. (commit version)))
  9834. (file-name (git-file-name name version))
  9835. (sha256
  9836. (base32 "1r77b5vj4klqww7q7flw8h5i9w6y36zv2n7hx36pp1sav6s3a4r9"))))
  9837. (build-system emacs-build-system)
  9838. (propagated-inputs
  9839. `(("emacs-elfeed" ,emacs-elfeed)))
  9840. (home-page "https://github.com/sp1ff/elfeed-score")
  9841. (synopsis "Gnus-style scoring for Elfeed")
  9842. (description
  9843. "Elfeed-score is an add-on for Elfeed, an RSS reader for Emacs. It
  9844. brings Gnus-style scoring to your RSS feeds. Elfeed, by default, displays
  9845. feed entries by date. This package allows you to setup rules for assigning
  9846. numeric scores to entries, and sorting entries with higher scores ahead of
  9847. those with lower, regardless of date. The idea is to prioritize content
  9848. important to you.")
  9849. (license license:gpl3+)))
  9850. (define-public emacs-el-x
  9851. (package
  9852. (name "emacs-el-x")
  9853. (version "0.3.1")
  9854. (source (origin
  9855. (method git-fetch)
  9856. (uri (git-reference
  9857. (url "https://github.com/sigma/el-x")
  9858. (commit (string-append "v" version))))
  9859. (file-name (git-file-name name version))
  9860. (sha256
  9861. (base32
  9862. "1i6j44ssxm1xdg0mf91nh1lnprwsaxsx8vsrf720nan7mfr283h5"))))
  9863. (build-system emacs-build-system)
  9864. (arguments
  9865. `(#:phases
  9866. (modify-phases %standard-phases
  9867. ;; Move the source files to the top level, which is included in
  9868. ;; the EMACSLOADPATH.
  9869. (add-after 'unpack 'move-source-files
  9870. (lambda _
  9871. (let ((el-files (find-files "./lisp" ".*\\.el$")))
  9872. (for-each (lambda (f)
  9873. (rename-file f (basename f)))
  9874. el-files))
  9875. #t)))))
  9876. (home-page "https://github.com/sigma/el-x")
  9877. (synopsis "Emacs Lisp extensions")
  9878. (description "command@{emacs-el-x} defines the @code{dflet} macro to
  9879. provide the historic behavior of @code{flet}, as well as
  9880. @code{declare-function} stub for older Emacs.")
  9881. (license license:gpl2+)))
  9882. (define-public emacs-epithet
  9883. ;; No tags.
  9884. (let ((commit "cc42338376c2c58da561214c554be8e8856f6a2b"))
  9885. (package
  9886. (name "emacs-epithet")
  9887. (version "0.1")
  9888. (source (origin
  9889. (method git-fetch)
  9890. (uri (git-reference
  9891. (url "https://github.com/oantolin/epithet")
  9892. (commit commit)))
  9893. (file-name (git-file-name name version))
  9894. (sha256
  9895. (base32
  9896. "06irgshgcgmm09nswrny8mam6l660ai71rgn0l3rmyp9li8n97j0"))))
  9897. (build-system emacs-build-system)
  9898. (home-page "https://github.com/oantolin/epithet")
  9899. (synopsis "Rename Emacs buffers with descriptive names")
  9900. (description
  9901. "This package provides a function---@code{epithet-rename-buffer}---to rename
  9902. the current buffer with a descriptive name. The name suggestion is governed by
  9903. the @code{epithet-suggesters} hook variable: each hook should return either a
  9904. name suggestion or @code{nil}, they are called in turn and the first non-nil
  9905. suggestion is taken.")
  9906. (license license:gpl3+))))
  9907. (define-public emacs-mocker
  9908. (package
  9909. (name "emacs-mocker")
  9910. (version "0.5.0")
  9911. (source (origin
  9912. (method git-fetch)
  9913. (uri (git-reference
  9914. (url "https://github.com/sigma/mocker.el")
  9915. (commit (string-append "v" version))))
  9916. (file-name (git-file-name name version))
  9917. (sha256
  9918. (base32
  9919. "1dc514cqbfmg33sb3j90s5jmw6jnm3wzvs0zhw3maz13bp7w6z48"))))
  9920. (build-system emacs-build-system)
  9921. (arguments
  9922. `(#:tests? #t
  9923. #:test-command '("ert-runner")))
  9924. (native-inputs
  9925. `(("ert-runner" ,emacs-ert-runner)))
  9926. (propagated-inputs
  9927. `(("emacs-el-x" ,emacs-el-x)))
  9928. (home-page "https://github.com/sigma/mocker.el")
  9929. (synopsis "Mocking framework for Emacs Lisp")
  9930. (description "Mocker.el is a framework for writing tests in Emacs Lisp.
  9931. It uses regular Lisp rather than a domain specific language (DSL), which
  9932. maximizes flexibility (at the expense of conciseness).")
  9933. (license license:gpl2+)))
  9934. (define-public emacs-find-file-in-project
  9935. (package
  9936. (name "emacs-find-file-in-project")
  9937. (version "6.1.1")
  9938. (source (origin
  9939. (method git-fetch)
  9940. (uri (git-reference
  9941. (url "https://github.com/technomancy/find-file-in-project")
  9942. (commit version)))
  9943. (file-name (git-file-name name version))
  9944. (sha256
  9945. (base32
  9946. "13vsmi02v1rv5h2m62s36dw21781nxsj9dj4hlaxfz2v5avmp00c"))))
  9947. (build-system emacs-build-system)
  9948. (arguments
  9949. `(#:tests? #t
  9950. #:test-command '("ert-runner" "tests")))
  9951. (native-inputs
  9952. `(("ert-runner" ,emacs-ert-runner)))
  9953. (home-page "https://github.com/technomancy/find-file-in-project")
  9954. (synopsis "File/directory finder for Emacs")
  9955. (description "@code{find-file-in-project} finds files or
  9956. directories quickly in the current project. The project root is detected
  9957. automatically when Git, Subversion or Mercurial are used. It also provides
  9958. functions to assist in reviewing changes on files.")
  9959. (license license:gpl3+)))
  9960. (define-public emacs-pyvenv
  9961. (package
  9962. (name "emacs-pyvenv")
  9963. (version "1.21")
  9964. (source (origin
  9965. (method git-fetch)
  9966. (uri (git-reference
  9967. (url "https://github.com/jorgenschaefer/pyvenv")
  9968. (commit (string-append "v" version))))
  9969. (file-name (git-file-name name version))
  9970. (sha256
  9971. (base32
  9972. "055sgk8zf4wb5nqsf3qasf5gg861zlb1831733f1qcrd2ij5gzxx"))))
  9973. (build-system emacs-build-system)
  9974. (arguments
  9975. `(#:phases
  9976. (modify-phases %standard-phases
  9977. ;; This phase incorrectly attempts to substitute "activate" and fails
  9978. ;; doing so.
  9979. (delete 'patch-el-files))
  9980. #:tests? #t
  9981. #:test-command '("ert-runner")))
  9982. (native-inputs
  9983. `(("ert-runner" ,emacs-ert-runner)
  9984. ("emacs-mocker" ,emacs-mocker)))
  9985. (home-page "https://github.com/jorgenschaefer/pyvenv")
  9986. (synopsis "Python virtual environment interface for Emacs")
  9987. (description "pyvenv.el is a minor mode to support using Python virtual
  9988. environments (virtualenv) inside Emacs.")
  9989. (license license:gpl3+)))
  9990. (define-public emacs-highlight-indent-guides
  9991. (let ((version "0.8.5") ; from package metadata
  9992. (revision "0")
  9993. (commit "c2c9de4d01edfb89609c91d4d7f1d81312015a2c"))
  9994. (package
  9995. (name "emacs-highlight-indent-guides")
  9996. (version (git-version version revision commit))
  9997. (source
  9998. (origin
  9999. (method git-fetch)
  10000. (uri (git-reference
  10001. (url "https://github.com/DarthFennec/highlight-indent-guides")
  10002. (commit commit)))
  10003. (file-name (git-file-name name version))
  10004. (sha256
  10005. (base32 "10chvqnmdmkx6i9sigqframr85ziyafiz44glwhvhjajfkv42ad2"))))
  10006. (build-system emacs-build-system)
  10007. (home-page
  10008. "https://github.com/DarthFennec/highlight-indent-guides")
  10009. (synopsis "Minor mode to highlight indentation")
  10010. (description
  10011. "This package provides a minor mode to highlight indentation levels via
  10012. font-lock. Indent widths are dynamically discovered, which means this
  10013. correctly highlights in any mode, regardless of indent width, even in
  10014. languages with non-uniform indentation such as Haskell. This mode works
  10015. properly around hard tabs and mixed indentation and behaves well in large
  10016. buffers.")
  10017. (license license:expat))))
  10018. (define-public emacs-highlight-indentation
  10019. ;; Last release version is from 2015.
  10020. (let ((commit "d03803f2c06749c430443a3d24e039cbafc9c58f")
  10021. (revision "1"))
  10022. (package
  10023. (name "emacs-highlight-indentation")
  10024. (version (git-version "0.7.0" revision commit))
  10025. (source
  10026. (origin
  10027. (method git-fetch)
  10028. (uri (git-reference
  10029. (url "https://github.com/antonj/Highlight-Indentation-for-Emacs")
  10030. (commit commit)))
  10031. (file-name (git-file-name name version))
  10032. (sha256
  10033. (base32
  10034. "1jq0gf4kcx9hvrw40rnw5c2qynjpjw1vsjbi2i4lqjbsnfnxn4wz"))))
  10035. (build-system emacs-build-system)
  10036. (home-page "https://github.com/antonj/Highlight-Indentation-for-Emacs/")
  10037. (synopsis "Highlighting indentation for Emacs")
  10038. (description "This package provides two minor modes to highlight
  10039. indentation guides in Emacs:
  10040. @enumerate
  10041. @item @code{highlight-indentation-mode}, which displays guidelines
  10042. indentation (space indentation only).
  10043. @item @code{highlight-indentation-current-column-mode}, which displays
  10044. guidelines for the current-point indentation (space indentation only).
  10045. @end enumerate")
  10046. (license license:gpl2+))))
  10047. (define-public emacs-elpy
  10048. (package
  10049. (name "emacs-elpy")
  10050. (version "1.35.0")
  10051. (source (origin
  10052. (method git-fetch)
  10053. (uri (git-reference
  10054. (url "https://github.com/jorgenschaefer/elpy")
  10055. (commit version)))
  10056. (file-name (git-file-name name version))
  10057. (sha256
  10058. (base32
  10059. "07rdb9w3bxzfr07224awa541xdy116hyc2b3bpl3fc3ikddmbydk"))))
  10060. (build-system emacs-build-system)
  10061. (arguments
  10062. `(#:include (cons* "^elpy/[^/]+\\.py$" "^snippets\\/" %default-include)
  10063. #:phases
  10064. (modify-phases %standard-phases
  10065. (add-after 'unpack 'patch-ffip-project-search-call
  10066. (lambda _
  10067. ;; Since version 6.0.0 of find-file-in-project,
  10068. ;; ffip-project-search doesn't accept a third argument anymore
  10069. ;; (see: https://github.com/jorgenschaefer/elpy/issues/1889).
  10070. (substitute* "elpy.el"
  10071. (("\\((ffip-project-search nil nil) project-root\\)" _ signature)
  10072. (format #f "(let ((ffip-project-root project-root)) (~a))"
  10073. signature)))))
  10074. ;; The default environment of the RPC uses Virtualenv to install
  10075. ;; Python dependencies from PyPI. We don't want/need this in Guix.
  10076. (add-before 'check 'do-not-use-virtualenv
  10077. (lambda _
  10078. (setenv "ELPY_TEST_DONT_USE_VIRTUALENV" "1")
  10079. (substitute* "elpy-rpc.el"
  10080. (("defcustom elpy-rpc-virtualenv-path 'default")
  10081. "defcustom elpy-rpc-virtualenv-path 'system"))))
  10082. (add-before 'check 'build-doc
  10083. (lambda _
  10084. (with-directory-excursion "docs"
  10085. (invoke "make" "info" "man"))
  10086. ;; Move .info file at the root so that it can installed by the
  10087. ;; 'move-doc phase.
  10088. (rename-file "docs/_build/texinfo/Elpy.info" "Elpy.info")))
  10089. (add-after 'build-doc 'install-manpage
  10090. (lambda* (#:key outputs #:allow-other-keys)
  10091. (let* ((out (assoc-ref outputs "out"))
  10092. (man1 (string-append out "/share/man/man1")))
  10093. (mkdir-p man1)
  10094. (copy-file "docs/_build/man/elpy.1"
  10095. (string-append man1 "/elpy.1"))))))
  10096. #:tests? #t
  10097. #:test-command '("ert-runner")))
  10098. (propagated-inputs
  10099. `(("emacs-company" ,emacs-company)
  10100. ("emacs-find-file-in-project" ,emacs-find-file-in-project)
  10101. ("emacs-highlight-indentation" ,emacs-highlight-indentation)
  10102. ("emacs-yasnippet" ,emacs-yasnippet)
  10103. ("pyvenv" ,emacs-pyvenv)
  10104. ("s" ,emacs-s)
  10105. ;; The following are recommended Python dependencies that make Elpy
  10106. ;; much more useful. Installing these avoids Elpy prompting to install them
  10107. ;; from PyPI using pip.
  10108. ("python-autopep8" ,python-autopep8)
  10109. ("python-black" ,python-black)
  10110. ("python-flake8" ,python-flake8)
  10111. ("python-jedi" ,python-jedi)
  10112. ("python-rope" ,python-rope)
  10113. ("python-yapf" ,python-yapf)))
  10114. (native-inputs
  10115. `(("ert-runner" ,emacs-ert-runner)
  10116. ("emacs-f" ,emacs-f)
  10117. ("python" ,python-wrapper)
  10118. ;; For documentation.
  10119. ("python-sphinx" ,python-sphinx)
  10120. ("texinfo" ,texinfo)))
  10121. (home-page "https://github.com/jorgenschaefer/elpy")
  10122. (synopsis "Python development environment for Emacs")
  10123. (description "Elpy brings powerful Python editing to Emacs. It combines
  10124. and configures a number of other packages written in Emacs Lisp as well as
  10125. Python, together offering features such as navigation, documentation,
  10126. completion, interactive development and more.")
  10127. (license license:gpl3+)))
  10128. (define-public emacs-rainbow-delimiters
  10129. (package
  10130. (name "emacs-rainbow-delimiters")
  10131. (version "2.1.5")
  10132. (source (origin
  10133. (method git-fetch)
  10134. (uri (git-reference
  10135. (url "https://github.com/Fanael/rainbow-delimiters")
  10136. (commit version)))
  10137. (file-name (git-file-name name version))
  10138. (sha256
  10139. (base32
  10140. "179mzsd8nvlr0ym9zf9fgdngsgxj3kdgbjblynliirsyk05ssrwc"))))
  10141. (build-system emacs-build-system)
  10142. (home-page "https://github.com/Fanael/rainbow-delimiters")
  10143. (arguments
  10144. `(#:tests? #t
  10145. #:test-command '("emacs" "-Q" "-batch"
  10146. "-l" "rainbow-delimiters-test.el"
  10147. "-f" "ert-run-tests-batch-and-exit")))
  10148. (synopsis "Highlight brackets according to their depth")
  10149. (description
  10150. "Rainbow-delimiters is a \"rainbow parentheses\"-like mode for Emacs which
  10151. highlights parentheses, brackets, and braces according to their depth. Each
  10152. successive level is highlighted in a different color, making it easy to spot
  10153. matching delimiters, orient yourself in the code, and tell which statements
  10154. are at a given level.")
  10155. (license license:gpl3+)))
  10156. (define-public emacs-rainbow-identifiers
  10157. (package
  10158. (name "emacs-rainbow-identifiers")
  10159. (version "0.2.2")
  10160. (source (origin
  10161. (method url-fetch)
  10162. (uri (string-append "https://raw.githubusercontent.com/Fanael"
  10163. "/rainbow-identifiers/" version
  10164. "/rainbow-identifiers.el"))
  10165. (file-name (string-append "rainbow-identifiers-" version ".el"))
  10166. (sha256
  10167. (base32
  10168. "0325abxj47k0g1i8nqrq70w2wr6060ckhhf92krv1s072b3jzm31"))))
  10169. (build-system emacs-build-system)
  10170. (home-page "https://github.com/Fanael/rainbow-identifiers")
  10171. (synopsis "Highlight identifiers in source code")
  10172. (description
  10173. "Rainbow identifiers mode is an Emacs minor mode providing highlighting of
  10174. identifiers based on their names. Each identifier gets a color based on a hash
  10175. of its name.")
  10176. (license license:bsd-2)))
  10177. (define-public emacs-rainbow-mode
  10178. (package
  10179. (name "emacs-rainbow-mode")
  10180. (version "1.0.5")
  10181. (source
  10182. (origin
  10183. (method url-fetch)
  10184. (uri (string-append "https://elpa.gnu.org/packages/"
  10185. "rainbow-mode-" version ".el"))
  10186. (sha256
  10187. (base32 "159fps843k5pap9k04a7ll1k3gw6d9c6w08lq4bbc3lqg78aa2l9"))))
  10188. (build-system emacs-build-system)
  10189. (home-page "https://elpa.gnu.org/packages/rainbow-mode.html")
  10190. (synopsis "Colorize color names in buffers")
  10191. (description
  10192. "This minor mode sets background color to strings that match color
  10193. names, e.g., @samp{#0000ff} is displayed in white with a blue background.")
  10194. (license license:gpl3+)))
  10195. (define-public emacs-ryo-modal
  10196. ;; Package has no release. Version is extracted from "Version:" keyword in
  10197. ;; main file.
  10198. (let ((commit "3a54312eea7023a86ca3f8eb3c03c872554bff2f")
  10199. (revision "0"))
  10200. (package
  10201. (name "emacs-ryo-modal")
  10202. (version (git-version "0.4" revision commit))
  10203. (source
  10204. (origin
  10205. (method git-fetch)
  10206. (uri (git-reference
  10207. (url "https://github.com/Kungsgeten/ryo-modal")
  10208. (commit commit)))
  10209. (file-name (git-file-name name version))
  10210. (sha256
  10211. (base32 "1cyvp3bi6yhckbdnq98xvghmhdzghya5y9wd7hxjawibs75rza95"))))
  10212. (build-system emacs-build-system)
  10213. (home-page "https://github.com/Kungsgeten/ryo-modal")
  10214. (synopsis "Emacs minor mode for defining modal editing environments")
  10215. (description "RYO modal provides a convenient way of defining modal
  10216. keybindings in Emacs, and does not come with any predefined bindings.")
  10217. (license license:expat))))
  10218. (define-public emacs-valign
  10219. (package
  10220. (name "emacs-valign")
  10221. (version "3.1.1")
  10222. (source
  10223. (origin
  10224. (method git-fetch)
  10225. (uri (git-reference
  10226. (url "https://github.com/casouri/valign")
  10227. (commit (string-append "v" version))))
  10228. (file-name (git-file-name name version))
  10229. (sha256
  10230. (base32 "11ks6z532i7vxi6f9g32zhimvikhsqywa2bd5fnnj2ahfx3msa95"))))
  10231. (build-system emacs-build-system)
  10232. (home-page "https://github.com/casouri/valign")
  10233. (synopsis "Pixel-perfect visual alignment for Org and Markdown tables")
  10234. (description
  10235. "Valign provides visual alignment for Org mode, Markdown and Table.el
  10236. tables on GUI Emacs. It can properly align tables containing variable-pitch
  10237. font, CJK characters and images. Meanwhile, the text-based alignment
  10238. generated by Org mode (or Markdown mode) is left untouched.")
  10239. (license license:gpl3+)))
  10240. (define-public emacs-visual-fill-column
  10241. (package
  10242. (name "emacs-visual-fill-column")
  10243. (version "2.4")
  10244. (source
  10245. (origin
  10246. (method git-fetch)
  10247. (uri (git-reference
  10248. (url "https://github.com/joostkremers/visual-fill-column")
  10249. (commit version)))
  10250. (file-name (git-file-name name version))
  10251. (sha256
  10252. (base32 "1wfww6bqdphv871in80fc84ml8gkl04il6w51z2ycx99km8b723l"))))
  10253. (build-system emacs-build-system)
  10254. (home-page "https://github.com/joostkremers/visual-fill-column")
  10255. (synopsis "Fill-column for visual-line-mode")
  10256. (description
  10257. "@code{visual-fill-column-mode} is a small Emacs minor mode that mimics
  10258. the effect of @code{fill-column} in @code{visual-line-mode}. Instead of
  10259. wrapping lines at the window edge, which is the standard behaviour of
  10260. @code{visual-line-mode}, it wraps lines at @code{fill-column}. If
  10261. @code{fill-column} is too large for the window, the text is wrapped at the
  10262. window edge.")
  10263. (license license:gpl3+)))
  10264. (define-public emacs-writeroom
  10265. (package
  10266. (name "emacs-writeroom")
  10267. (version "3.11")
  10268. (source
  10269. (origin
  10270. (method git-fetch)
  10271. (uri (git-reference
  10272. (url "https://github.com/joostkremers/writeroom-mode")
  10273. (commit version)))
  10274. (file-name (git-file-name name version))
  10275. (sha256
  10276. (base32
  10277. "0y4jcja9kml1lq88r8b9myk39dgaggh7q7f3a43sj828hvzlccb7"))))
  10278. (build-system emacs-build-system)
  10279. (propagated-inputs
  10280. `(("emacs-visual-fill-column" ,emacs-visual-fill-column)))
  10281. (home-page "https://github.com/joostkremers/writeroom-mode")
  10282. (synopsis "Distraction-free writing for Emacs")
  10283. (description
  10284. "This package defines a minor mode for distraction-free writing. Some of
  10285. the default effects include entering fullscreen, deleting other windows of the
  10286. current frame, disabling the mode line, and adding margins to the buffer that
  10287. restrict the text width to 80 characters.")
  10288. (license license:bsd-3)))
  10289. (define-public emacs-wucuo
  10290. (package
  10291. (name "emacs-wucuo")
  10292. (version "0.2.9")
  10293. (source
  10294. (origin
  10295. (method git-fetch)
  10296. (uri (git-reference
  10297. (url "https://github.com/redguardtoo/wucuo")
  10298. (commit "89b99166768afb811c48a7db7c93c02d51a32b09")))
  10299. (file-name (git-file-name name version))
  10300. (sha256
  10301. (base32 "03a6jlbv9axrd9yr0xscq3ni7fipm20ppc51kxy0sn241rplv0pg"))))
  10302. (build-system emacs-build-system)
  10303. (arguments
  10304. `(#:tests? #t
  10305. #:test-command '("make" "test")
  10306. #:phases (modify-phases %standard-phases
  10307. ;; Set HOME, otherwise tests fail on loading aspell dict.
  10308. (add-before 'check 'set-home
  10309. (lambda _ (setenv "HOME" (getcwd)))))))
  10310. (native-inputs
  10311. ;; For tests.
  10312. `(("aspell" ,aspell)
  10313. ("aspell-dict-en" ,aspell-dict-en)))
  10314. (home-page "https://github.com/redguardtoo/wucuo")
  10315. (synopsis "Fast spell checker for camel case code or plain text")
  10316. (description
  10317. "Wucuo provides a spell checker on top of either Aspell or Hunspell, and
  10318. relies on Flyspell internally. It operates on the current region or buffer,
  10319. a file, or a complete directory.")
  10320. (license license:gpl3+)))
  10321. (define-public emacs-ido-completing-read+
  10322. (package
  10323. (name "emacs-ido-completing-read+")
  10324. (version "4.14")
  10325. (source (origin
  10326. (method url-fetch)
  10327. (uri (string-append "https://raw.githubusercontent.com"
  10328. "/DarwinAwardWinner/ido-ubiquitous/v"
  10329. version "/ido-completing-read+.el"))
  10330. (file-name (string-append "ido-completing-read+-" version ".el"))
  10331. (sha256
  10332. (base32
  10333. "1wn94nkfv6qyyj6clvms7m7ncqf09bgszv67may530y75kylivav"))))
  10334. (build-system emacs-build-system)
  10335. (propagated-inputs
  10336. `(("emacs-s" ,emacs-s)))
  10337. (home-page "https://github.com/DarwinAwardWinner/ido-ubiquitous")
  10338. (synopsis "Replacement for completing-read using ido")
  10339. (description
  10340. "The ido-completing-read+ function is a wrapper for ido-completing-read.
  10341. Importantly, it detects edge cases that ordinary ido cannot handle and either
  10342. adjusts them so ido can handle them, or else simply falls back to the standard
  10343. Emacs completion function instead.")
  10344. (license license:gpl3+)))
  10345. (define-public emacs-ido-ubiquitous
  10346. (package
  10347. (name "emacs-ido-ubiquitous")
  10348. (version "4.13")
  10349. (source (origin
  10350. (method url-fetch)
  10351. (uri (string-append "https://raw.githubusercontent.com"
  10352. "/DarwinAwardWinner/ido-ubiquitous/v"
  10353. version "/ido-ubiquitous.el"))
  10354. (file-name (string-append "ido-ubiquitous-" version ".el"))
  10355. (sha256
  10356. (base32
  10357. "08iwvqknicqlffda7ixwgzw7q9g2g4j4nsxdw6544r85vaysi4cc"))))
  10358. (build-system emacs-build-system)
  10359. (propagated-inputs
  10360. `(("emacs-ido-completing-read+" ,emacs-ido-completing-read+)))
  10361. (home-page "https://github.com/DarwinAwardWinner/ido-ubiquitous")
  10362. (synopsis "Use ido (nearly) everywhere")
  10363. (description
  10364. "Ido-ubiquitous enables ido-style completion for almost every function
  10365. that uses the standard completion function completing-read.")
  10366. (license license:gpl3+)))
  10367. (define-public emacs-yaml-mode
  10368. (package
  10369. (name "emacs-yaml-mode")
  10370. (version "0.0.15")
  10371. (source
  10372. (origin
  10373. (method git-fetch)
  10374. (uri (git-reference
  10375. (url "https://github.com/yoshiki/yaml-mode")
  10376. (commit version)))
  10377. (file-name (git-file-name name version))
  10378. (sha256
  10379. (base32 "0gsa153yp8lmwrvcc3nzpw5lj037y7q2nm23k5k404r5as4k355l"))))
  10380. (build-system emacs-build-system)
  10381. (home-page "https://github.com/yoshiki/yaml-mode")
  10382. (synopsis "Major mode for editing YAML files")
  10383. (description
  10384. "Yaml mode is an Emacs major mode for editing files in the YAML data
  10385. serialization format. As YAML and Python share the fact that indentation
  10386. determines structure, this mode provides indentation and indentation command
  10387. behavior very similar to that of Python mode.")
  10388. (license license:gpl3+)))
  10389. (define-public emacs-gitlab-ci-mode
  10390. (package
  10391. (name "emacs-gitlab-ci-mode")
  10392. (version "20190824.12.2")
  10393. (source (origin
  10394. (method git-fetch)
  10395. (uri (git-reference
  10396. (url "https://gitlab.com/joewreschnig/gitlab-ci-mode")
  10397. (commit (string-append "v" version))))
  10398. (file-name (git-file-name name version))
  10399. (sha256
  10400. (base32
  10401. "16fb4r3vq8xkzl911v7gaky95w1agfxjlpaxpjmidwx48rbcar59"))))
  10402. (build-system emacs-build-system)
  10403. (propagated-inputs
  10404. `(("emacs-yaml-mode" ,emacs-yaml-mode)))
  10405. (home-page "https://gitlab.com/joewreschnig/gitlab-ci-mode/")
  10406. (synopsis "Emacs mode for editing GitLab CI files")
  10407. (description
  10408. "@code{gitlab-ci-mode} is an Emacs major mode for editing GitLab CI
  10409. files. It provides syntax highlighting and completion for keywords and
  10410. special variables. An interface to GitLab’s CI file linter is also provided
  10411. via @code{gitlab-ci-lint}.")
  10412. (license license:gpl3+)))
  10413. (define-public emacs-gitlab-snip-helm
  10414. (package
  10415. (name "emacs-gitlab-snip-helm")
  10416. (version "0.0.2")
  10417. (source (origin
  10418. (method git-fetch)
  10419. (uri (git-reference
  10420. (url "https://gitlab.com/sasanidas/gitlab-snip-helm.git")
  10421. (commit version)))
  10422. (file-name (git-file-name name version))
  10423. (sha256
  10424. (base32
  10425. "1c5js19zyb1z61hapvbfcl5jhrjqij46cxldgqij6al0scw44dga"))))
  10426. (build-system emacs-build-system)
  10427. (propagated-inputs
  10428. `(("emacs-dash" ,emacs-dash)
  10429. ("emacs-helm" ,emacs-helm)))
  10430. (home-page "https://gitlab.com/sasanidas/gitlab-snip-helm/")
  10431. (synopsis "GitLab snippet API interaction for Emacs")
  10432. (description "This package provides GitLab snippet API interaction for
  10433. Emacs.")
  10434. (license license:gpl3+)))
  10435. (define-public emacs-web-mode
  10436. (package
  10437. (name "emacs-web-mode")
  10438. (version "17")
  10439. (source
  10440. (origin
  10441. (method git-fetch)
  10442. (uri (git-reference
  10443. (url "https://github.com/fxbois/web-mode")
  10444. (commit (string-append "v" version))))
  10445. (file-name (git-file-name name version))
  10446. (sha256
  10447. (base32 "0jr5a1nzp8nbdng0k2fcaymiiv9ngrbknbrqaswgqn3akvx793jk"))))
  10448. (build-system emacs-build-system)
  10449. (synopsis "Major mode for editing web templates")
  10450. (description "Web mode is an Emacs major mode for editing web templates
  10451. aka HTML files embedding parts (CSS/JavaScript) and blocks (pre rendered by
  10452. client/server side engines). Web mode is compatible with many template
  10453. engines: PHP, JSP, ASP, Django, Twig, Jinja, Mustache, ERB, FreeMarker,
  10454. Velocity, Cheetah, Smarty, CTemplate, Mustache, Blade, ErlyDTL, Go Template,
  10455. Dust.js, React/JSX, Angularjs, ejs, etc.")
  10456. (home-page "https://web-mode.org/")
  10457. (license license:gpl3+)))
  10458. (define-public emacs-templatel
  10459. (package
  10460. (name "emacs-templatel")
  10461. (version "0.1.6")
  10462. (source
  10463. (origin
  10464. (method git-fetch)
  10465. (uri (git-reference
  10466. (url "https://github.com/clarete/templatel")
  10467. (commit version)))
  10468. (file-name (git-file-name name version))
  10469. (sha256
  10470. (base32 "03n7amd2mfr4jmc4s1ar5ckm86knr7qarxxlkdhbnw3svy5kbc57"))))
  10471. (build-system emacs-build-system)
  10472. (home-page "https://clarete.li/templatel")
  10473. (synopsis "Jinja inspired template language for Emacs Lisp")
  10474. (description
  10475. "templatel is the modern templating language. It provides variable
  10476. substitution and control flow through a clean and powerful language inspired
  10477. by Python's Jinja.")
  10478. (license license:gpl3+)))
  10479. (define-public emacs-wgrep
  10480. (package
  10481. (name "emacs-wgrep")
  10482. (version "2.3.2")
  10483. (source (origin
  10484. (method git-fetch)
  10485. (uri (git-reference
  10486. (url "https://github.com/mhayashi1120/Emacs-wgrep")
  10487. (commit version)))
  10488. (file-name (git-file-name name version))
  10489. (sha256
  10490. (base32
  10491. "00cwqzb94jlq4mwgv8z7r3mn0a6mhq95z6j189kacq9g4473zh8d"))))
  10492. (build-system emacs-build-system)
  10493. (home-page "https://github.com/mhayashi1120/Emacs-wgrep")
  10494. (synopsis "Edit a grep buffer and apply those changes to the files")
  10495. (description
  10496. "Emacs wgrep allows you to edit a grep buffer and apply those changes
  10497. to the file buffer. Several backends are supported beside the classic grep:
  10498. ack, ag, helm and pt.")
  10499. (license license:gpl3+)))
  10500. (define-public emacs-helm
  10501. (package
  10502. (name "emacs-helm")
  10503. (version "3.8.0")
  10504. (source
  10505. (origin
  10506. (method git-fetch)
  10507. (uri (git-reference
  10508. (url "https://github.com/emacs-helm/helm")
  10509. (commit (string-append "v" version))))
  10510. (file-name (git-file-name name version))
  10511. (sha256
  10512. (base32 "1xrpv0sqmlwn94bc31k2iav284i1hl95937541ihlkhqg6v2vwrv"))))
  10513. (build-system emacs-build-system)
  10514. (propagated-inputs
  10515. `(("emacs-async" ,emacs-async)
  10516. ("emacs-popup" ,emacs-popup)))
  10517. (home-page "https://emacs-helm.github.io/helm/")
  10518. (synopsis
  10519. "Incremental completion and selection narrowing framework for Emacs")
  10520. (description
  10521. "Helm is an incremental completion and selection narrowing framework for
  10522. Emacs. It will help steer you in the right direction when you're looking for
  10523. stuff in Emacs (like buffers, files, etc).")
  10524. (license license:gpl3+)))
  10525. (define-public emacs-helm-org
  10526. (let ((commit "8457e1e46227bf87726e05c42cec5a4b51c2ef7b")
  10527. (revision "3"))
  10528. (package
  10529. (name "emacs-helm-org")
  10530. (version (git-version "1.0" revision commit))
  10531. (source
  10532. (origin
  10533. (method git-fetch)
  10534. (uri (git-reference
  10535. (url "https://github.com/emacs-helm/helm-org")
  10536. (commit commit)))
  10537. (file-name (git-file-name name version))
  10538. (sha256
  10539. (base32 "0kcjhwwi492n9m2w894hvdavfvhj45zygy7bwvx103wvpay5h6h6"))))
  10540. (build-system emacs-build-system)
  10541. (propagated-inputs
  10542. `(("emacs-helm" ,emacs-helm)))
  10543. (home-page "https://github.com/emacs-helm/helm-org")
  10544. (synopsis "Helm interface to the Silver Searcher")
  10545. (description
  10546. "This package provides a frontend for grepping tools like ag and ack,
  10547. as well as features for editing search results.")
  10548. (license license:gpl3+))))
  10549. (define-public emacs-helm-swoop
  10550. (package
  10551. (name "emacs-helm-swoop")
  10552. (version "3.0.0")
  10553. (source
  10554. (origin
  10555. (method git-fetch)
  10556. (uri (git-reference
  10557. (url "https://github.com/emacsorphanage/helm-swoop")
  10558. (commit version)))
  10559. (file-name (git-file-name name version))
  10560. (sha256
  10561. (base32 "1qjay0fvryxa8n1ws6r1by512p2fylb2nj7ycm1497fcalb0d706"))))
  10562. (build-system emacs-build-system)
  10563. (propagated-inputs
  10564. `(("emacs-helm" ,emacs-helm)))
  10565. (home-page "https://github.com/emacsorphanage/helm-swoop")
  10566. (synopsis "Filter and jump to lines in an Emacs buffer using Helm")
  10567. (description
  10568. "This package builds on the Helm interface to provide several commands
  10569. for search-based navigation of buffers.")
  10570. (license license:gpl2+)))
  10571. (define-public emacs-helm-ag
  10572. (package
  10573. (name "emacs-helm-ag")
  10574. (version "0.64")
  10575. (source
  10576. (origin
  10577. (method git-fetch)
  10578. (uri (git-reference
  10579. (url "https://github.com/syohex/emacs-helm-ag")
  10580. (commit version)))
  10581. (file-name (git-file-name name version))
  10582. (sha256
  10583. (base32 "0ml9yp3qaiwn7iixyxvsj3fxn7gw913qxisr47df57q4ka912law"))))
  10584. (build-system emacs-build-system)
  10585. (propagated-inputs
  10586. `(("emacs-helm" ,emacs-helm)))
  10587. (home-page "https://github.com/syohex/emacs-helm-ag")
  10588. (synopsis "Helm interface to the Silver Searcher")
  10589. (description
  10590. "This package provides a frontend for grepping tools like ag and ack,
  10591. as well as features for editing search results.")
  10592. (license license:gpl3+)))
  10593. (define-public emacs-helm-projectile
  10594. (package
  10595. (name "emacs-helm-projectile")
  10596. (version "1.0.0")
  10597. (source
  10598. (origin
  10599. (method git-fetch)
  10600. (uri (git-reference
  10601. (url "https://github.com/bbatsov/helm-projectile")
  10602. (commit (string-append "v" version))))
  10603. (file-name (git-file-name name version))
  10604. (sha256
  10605. (base32 "05gpg90gg03yalmv9fw1y9k21i2l617iipvs0p9n80aln8nrzs8g"))))
  10606. (build-system emacs-build-system)
  10607. (propagated-inputs
  10608. `(("emacs-helm" ,emacs-helm)
  10609. ("emacs-projectile" ,emacs-projectile)))
  10610. (home-page "https://github.com/bbatsov/helm-projectile")
  10611. (synopsis "Helm integration for Projectile")
  10612. (description
  10613. "This Emacs library provides a Helm interface for Projectile.")
  10614. (license license:gpl3+)))
  10615. (define-public emacs-taskrunner
  10616. (let ((commit "3afd4a546d42339543d3d4e51b175fc3e82b3358")
  10617. (revision "1"))
  10618. (package
  10619. (name "emacs-taskrunner")
  10620. (version (git-version "0.6" revision commit))
  10621. (source
  10622. (origin
  10623. (method git-fetch)
  10624. (uri (git-reference
  10625. (url "https://github.com/emacs-taskrunner/emacs-taskrunner")
  10626. (commit commit)))
  10627. (file-name (git-file-name name version))
  10628. (sha256
  10629. (base32
  10630. "1lkdvmjn3alhqxq2i64sdr977sbw3g0b2670d9bwyzi67qh0jxrv"))))
  10631. (build-system emacs-build-system)
  10632. (propagated-inputs
  10633. `(("emacs-async" ,emacs-async)
  10634. ("emacs-projectile" ,emacs-projectile)))
  10635. (home-page "https://github.com/emacs-taskrunner/emacs-taskrunner")
  10636. (synopsis "Retrieve tasks from various build systems and task-runners")
  10637. (description "This package parses Makefiles and build-system files for
  10638. multiple project types.")
  10639. (license license:gpl3+))))
  10640. (define-public emacs-ivy-taskrunner
  10641. (let ((commit "75d8d67cfe3c29663fe0f5508a887adf40ed5162")
  10642. (revision "1"))
  10643. (package
  10644. (name "emacs-ivy-taskrunner")
  10645. (version (git-version "0.9" revision commit))
  10646. (source
  10647. (origin
  10648. (method git-fetch)
  10649. (uri (git-reference
  10650. (url "https://github.com/emacs-taskrunner/ivy-taskrunner")
  10651. (commit commit)))
  10652. (file-name (git-file-name name version))
  10653. (sha256
  10654. (base32
  10655. "1wf4s4k0ap21f7g5w6128an8nsvbja7f5n889vcml5b6gjz058db"))))
  10656. (build-system emacs-build-system)
  10657. (propagated-inputs
  10658. `(("emacs-ivy" ,emacs-ivy)
  10659. ("emacs-taskrunner" ,emacs-taskrunner)
  10660. ("emacs-projectile" ,emacs-projectile)))
  10661. (home-page "https://github.com/emacs-taskrunner/ivy-taskrunner")
  10662. (synopsis "Retrieve build-system tasks using Ivy")
  10663. (description "This package provides an Ivy interface for selecting
  10664. Makefile targets.")
  10665. (license license:gpl3+))))
  10666. (define-public emacs-helm-taskrunner
  10667. (let ((commit "1910dac19cbc7bd4fd08b0faf9affd455339fbea")
  10668. (revision "1"))
  10669. (package
  10670. (name "emacs-helm-taskrunner")
  10671. (version (git-version "0.9" revision commit))
  10672. (source
  10673. (origin
  10674. (method git-fetch)
  10675. (uri (git-reference
  10676. (url "https://github.com/emacs-taskrunner/helm-taskrunner")
  10677. (commit commit)))
  10678. (file-name (git-file-name name version))
  10679. (sha256
  10680. (base32
  10681. "182lmr858fx6rdhp1fy7kv8dvrhzcnxzwfck1q22s6xs8x85d5q7"))))
  10682. (build-system emacs-build-system)
  10683. (propagated-inputs
  10684. `(("emacs-helm" ,emacs-helm)
  10685. ("emacs-taskrunner" ,emacs-taskrunner)
  10686. ("emacs-projectile" ,emacs-projectile)))
  10687. (home-page "https://github.com/emacs-taskrunner/helm-taskrunner")
  10688. (synopsis "Retrieve build-system tasks using Helm")
  10689. (description "This package provides a Helm interface for selecting
  10690. Makefile targets.")
  10691. (license license:gpl3+))))
  10692. (define-public emacs-helm-make
  10693. (let ((commit "feae8df22bc4b20705ea08ac9adfc2b43bb348d0")
  10694. (revision "1"))
  10695. (package
  10696. (name "emacs-helm-make")
  10697. (version (string-append "0.1.0-" revision "." (string-take commit 7)))
  10698. (source
  10699. (origin
  10700. (method git-fetch)
  10701. (uri (git-reference
  10702. (url "https://github.com/abo-abo/helm-make")
  10703. (commit commit)))
  10704. (file-name (git-file-name name version))
  10705. (sha256
  10706. (base32
  10707. "1y2v77mmd1bfkkz51cnk1l0dg3lvvxc39wlamnm7wjns66dbvlam"))))
  10708. (build-system emacs-build-system)
  10709. (propagated-inputs
  10710. `(("emacs-helm" ,emacs-helm)
  10711. ("emacs-projectile" ,emacs-projectile)))
  10712. (home-page "https://github.com/abo-abo/helm-make")
  10713. (synopsis "Select a Makefile target with helm")
  10714. (description "@code{helm-make} or @code{helm-make-projectile} will give
  10715. you a @code{helm} selection of directory Makefile's targets. Selecting a
  10716. target will call @code{compile} on it.")
  10717. (license license:gpl3+))))
  10718. (define-public emacs-cider
  10719. (package
  10720. (name "emacs-cider")
  10721. (version "1.1.1")
  10722. (source
  10723. (origin
  10724. (method git-fetch)
  10725. (uri (git-reference
  10726. (url "https://github.com/clojure-emacs/cider")
  10727. (commit (string-append "v" version))))
  10728. (file-name (git-file-name name version))
  10729. (sha256
  10730. (base32 "0psd8zrhs5w1cfmksd5sjgy9xzfs9i9zp55g97rp7zp6y5als0lx"))))
  10731. (build-system emacs-build-system)
  10732. (arguments
  10733. '(#:exclude ;don't exclude 'cider-test.el'
  10734. '("^\\.dir-locals\\.el$" "^test/")))
  10735. (propagated-inputs
  10736. `(("emacs-clojure-mode" ,emacs-clojure-mode)
  10737. ("emacs-parseedn" ,emacs-parseedn)
  10738. ("emacs-pkg-info" ,emacs-pkg-info)
  10739. ("emacs-queue" ,emacs-queue)
  10740. ("emacs-sesman" ,emacs-sesman)
  10741. ("emacs-spinner" ,emacs-spinner)))
  10742. (home-page "https://cider.mx/")
  10743. (synopsis "Clojure development environment for Emacs")
  10744. (description
  10745. "CIDER (Clojure Interactive Development Environment that Rocks) aims to
  10746. provide an interactive development experience similar to the one you'd get
  10747. when programming in Emacs Lisp, Common Lisp (with SLIME or Sly), Scheme (with
  10748. Geiser) and Smalltalk.
  10749. CIDER is the successor to the now deprecated combination of using SLIME +
  10750. swank-clojure for Clojure development.
  10751. There are plenty of differences between CIDER and SLIME, but the core ideas
  10752. are pretty much the same (and SLIME served as the principle inspiration for
  10753. CIDER).")
  10754. (license license:gpl3+)))
  10755. (define-public emacs-sly
  10756. ;; Update together with sbcl-slynk.
  10757. (let ((commit "fb84318c08f59bc786e047006fc81e2ace568309"))
  10758. ;; Versions are not always tagged. Besides, latest master contains
  10759. ;; important fixes.
  10760. (package
  10761. (name "emacs-sly")
  10762. (version (git-version "1.0.43" "4" commit))
  10763. (source
  10764. (origin
  10765. (method git-fetch)
  10766. (uri (git-reference
  10767. (url "https://github.com/joaotavora/sly")
  10768. (commit commit)))
  10769. (file-name (git-file-name name version))
  10770. (sha256
  10771. (base32
  10772. "0z123k9ak7yjb9bxb5qx48f33ma8066rhkqh8xc14z7shk75jybj"))))
  10773. (build-system emacs-build-system)
  10774. (native-inputs
  10775. `(("texinfo" ,texinfo)))
  10776. (arguments
  10777. `(#:include (cons* "^contrib\\/" "^lib\\/" "^slynk\\/" %default-include)
  10778. #:phases
  10779. ;; The package provides autoloads.
  10780. (modify-phases %standard-phases
  10781. (delete 'make-autoloads)
  10782. (add-before 'install 'install-doc
  10783. (lambda* (#:key outputs #:allow-other-keys)
  10784. (let* ((out (assoc-ref outputs "out"))
  10785. (info-dir (string-append out "/share/info"))
  10786. (doc-dir (string-append out "/share/doc/"
  10787. ,name "-" ,version))
  10788. (doc-files '( ;; "doc/sly-refcard.pdf" ; See sly-refcard.pdf below.
  10789. "README.md" "NEWS.md" "PROBLEMS.md"
  10790. "CONTRIBUTING.md")))
  10791. (with-directory-excursion "doc"
  10792. (substitute* "Makefile"
  10793. (("infodir=/usr/local/info")
  10794. (string-append "infodir=" info-dir))
  10795. ;; Don't rebuild contributors.texi since we are not in
  10796. ;; the git repo.
  10797. (("contributors.texi: Makefile texinfo-tabulate.awk")
  10798. "contributors.texi:"))
  10799. (invoke "make" "html/index.html")
  10800. (invoke "make" "sly.info")
  10801. ;; TODO: We need minimal texlive with "preprint" package
  10802. ;; (for fullpage.sty). (invoke "make" "sly-refcard.pdf")
  10803. (install-file "sly.info" info-dir)
  10804. (copy-recursively "html" (string-append doc-dir "/html")))
  10805. (for-each (lambda (f)
  10806. (install-file f doc-dir)
  10807. (delete-file f))
  10808. doc-files)
  10809. (delete-file-recursively "doc")
  10810. #t))))))
  10811. (home-page "https://github.com/joaotavora/sly")
  10812. (synopsis "Sylvester the Cat's Common Lisp IDE")
  10813. (description
  10814. "SLY is Sylvester the Cat's Common Lisp IDE. SLY is a fork of SLIME, and
  10815. contains the following improvements over it:
  10816. @enumerate
  10817. @item A full-featured REPL based on Emacs's @code{comint.el}. Everything
  10818. can be copied to the REPL;
  10819. @item Stickers, or live code annotations that record values as code traverses them.
  10820. @item Flex-style completion out-of-the-box, using Emacs's completion API.
  10821. Company, Helm, and other supported natively, no plugin required;
  10822. @item An interactive Trace Dialog;
  10823. @item Multiple inspectors and multiple REPLs, with independent history.
  10824. @item Regexp-capable @code{M-x sly-apropos}.
  10825. @item Cleanly ASDF-loaded by default, including contribs, enabled out-of-the-box;
  10826. @item \"Presentations\" replaced by interactive backreferences, which
  10827. highlight the object and remain stable throughout the REPL session;
  10828. @end enumerate
  10829. SLY tracks SLIME's bugfixes and all its familiar features (debugger, inspector,
  10830. xref, etc.) are still available, but with better integration.")
  10831. (license license:gpl3+))))
  10832. (define-public emacs-sly-quicklisp
  10833. (let ((commit "01ebe3976a244309f2e277c09206831135a0b66c")
  10834. (revision "1"))
  10835. (package
  10836. (name "emacs-sly-quicklisp")
  10837. (version (git-version "0.0.0" revision commit))
  10838. (home-page "https://github.com/joaotavora/sly-quicklisp")
  10839. (source
  10840. (origin
  10841. (method git-fetch)
  10842. (uri (git-reference
  10843. (url home-page)
  10844. (commit commit)))
  10845. (file-name (git-file-name name version))
  10846. (sha256
  10847. (base32
  10848. "1vfqmvayf35g6y3ljsm3rlzv5jm50qikhh4lv2zkkswj6gkkb1cv"))))
  10849. (build-system emacs-build-system)
  10850. (propagated-inputs
  10851. `(("emacs-sly" ,emacs-sly)))
  10852. (arguments
  10853. `(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)
  10854. #:phases
  10855. ;; The package provides autoloads.
  10856. (modify-phases %standard-phases
  10857. (delete 'make-autoloads)
  10858. (delete 'enable-autoloads-compilation))))
  10859. (synopsis "Quicklisp support for SLY")
  10860. (description
  10861. "@command{sly-quicklisp} is an external contrib for SLY that provides a
  10862. sly-quickload command that prompts the user for a package to install. ")
  10863. (license license:gpl3+))))
  10864. (define-public emacs-sly-asdf
  10865. (let ((commit "32ce14994e8faee9321605cec36d156b02996c46")
  10866. (revision "4"))
  10867. (package
  10868. (name "emacs-sly-asdf")
  10869. (version (git-version "0.1.0" revision commit))
  10870. (home-page "https://github.com/mmgeorge/sly-asdf")
  10871. (source
  10872. (origin
  10873. (method git-fetch)
  10874. (uri (git-reference
  10875. (url home-page)
  10876. (commit commit)))
  10877. (file-name (git-file-name name version))
  10878. (sha256
  10879. (base32
  10880. "09x8l37wwqw74xc2frwzbfdb1if8rb3szg5akdk3v2qhik4sm3dd"))))
  10881. (build-system emacs-build-system)
  10882. (propagated-inputs
  10883. `(("emacs-sly" ,emacs-sly)
  10884. ("emacs-popup" ,emacs-popup)))
  10885. (arguments
  10886. '(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)))
  10887. (synopsis "ASDF contrib for SLY")
  10888. (description
  10889. "@command{sly-asdf} is an external contrib for SLY that provides
  10890. additional support for working with ASDF projects.")
  10891. (license license:gpl3+))))
  10892. (define-public emacs-sly-named-readtables
  10893. (let ((commit "a5a42674ccffa97ccd5e4e9742beaf3ea719931f")
  10894. (revision "1"))
  10895. (package
  10896. (name "emacs-sly-named-readtables")
  10897. (version (git-version "0.1" revision commit))
  10898. (home-page "https://github.com/joaotavora/sly-named-readtables")
  10899. (source
  10900. (origin
  10901. (method git-fetch)
  10902. (uri (git-reference
  10903. (url home-page)
  10904. (commit commit)))
  10905. (file-name (git-file-name name version))
  10906. (sha256
  10907. (base32
  10908. "16asd119rzqrlclps2q6yrkis8jy5an5xgzzqvb7jdyq39zxg54q"))))
  10909. (build-system emacs-build-system)
  10910. (propagated-inputs
  10911. `(("emacs-sly" ,emacs-sly)))
  10912. (arguments
  10913. '(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)
  10914. #:phases (modify-phases %standard-phases
  10915. ;; Byte compilation of the autoload file fails.
  10916. (delete 'enable-autoloads-compilation))))
  10917. (synopsis "Named-readtables support for SLY")
  10918. (description
  10919. "@command{sly-named-readtables} is an external contrib for SLY that
  10920. enables different readtables to be active in different parts of the same
  10921. file.")
  10922. (license license:gpl3+))))
  10923. (define-public emacs-sly-macrostep
  10924. (let ((commit "5113e4e926cd752b1d0bcc1508b3ebad5def5fad")
  10925. (revision "2"))
  10926. (package
  10927. (name "emacs-sly-macrostep")
  10928. (version (git-version "0.1" revision commit))
  10929. (home-page "https://github.com/joaotavora/sly-macrostep")
  10930. (source
  10931. (origin
  10932. (method git-fetch)
  10933. (uri (git-reference
  10934. (url home-page)
  10935. (commit commit)))
  10936. (file-name (git-file-name name version))
  10937. (sha256
  10938. (base32
  10939. "1nxf28gn4f3n0wnv7nb5sgl36fz175y470zs9hig4kq8cp0yal0r"))))
  10940. (build-system emacs-build-system)
  10941. (propagated-inputs
  10942. `(("emacs-sly" ,emacs-sly)
  10943. ("emacs-macrostep" ,emacs-macrostep)))
  10944. (arguments
  10945. '(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)
  10946. #:phases
  10947. ;; The package provides autoloads.
  10948. (modify-phases %standard-phases
  10949. (delete 'make-autoloads)
  10950. (delete 'enable-autoloads-compilation))))
  10951. (synopsis "Expand Common Lisp macros inside source files with SLY")
  10952. (description
  10953. "@command{sly-macrostep} is a SLY contrib for expanding CL macros right
  10954. inside the source file.")
  10955. (license license:gpl3+))))
  10956. (define-public emacs-sly-stepper
  10957. (let ((commit "ec3c0a7f3c8b82926882e5fcfdacf67b86d989f8"))
  10958. (package
  10959. (name "emacs-sly-stepper")
  10960. (version (git-version "0.0.0" "1" commit))
  10961. (home-page "https://github.com/joaotavora/sly-stepper")
  10962. (source
  10963. (origin
  10964. (method git-fetch)
  10965. (uri (git-reference
  10966. (url home-page)
  10967. (commit commit)))
  10968. (file-name (git-file-name name version))
  10969. (sha256
  10970. (base32
  10971. "1hxniaxifdw3m4y4yssgy22xcmmf558wx7rpz66wy5hwybjslf7b"))
  10972. (modules '((guix build utils)))
  10973. (snippet
  10974. '(begin
  10975. (map delete-file (find-files "." ".*-autoloads\\.elc?$"))
  10976. #t))))
  10977. (build-system emacs-build-system)
  10978. (inputs
  10979. `(("cl-agnostic-lizard" ,cl-agnostic-lizard)))
  10980. (propagated-inputs
  10981. `(("emacs-sly" ,emacs-sly)))
  10982. (arguments
  10983. `(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)
  10984. #:phases
  10985. (modify-phases %standard-phases
  10986. (add-after 'expand-load-path 'expand-sly-contrib
  10987. (lambda* (#:key inputs #:allow-other-keys)
  10988. (let* ((sly (assoc-ref inputs "emacs-sly"))
  10989. (contrib (find-files sly "^contrib$" #:directories? #t)))
  10990. (setenv "EMACSLOADPATH"
  10991. (string-append (string-join contrib ":")
  10992. ":"
  10993. (getenv "EMACSLOADPATH")))
  10994. #t)))
  10995. (add-after 'install 'find-agnostic-lizard
  10996. (lambda* (#:key inputs outputs #:allow-other-keys)
  10997. (let* ((out (assoc-ref outputs "out"))
  10998. (file (string-append (elpa-directory out)
  10999. "/slynk-stepper.lisp"))
  11000. (asd (string-append
  11001. (assoc-ref inputs "cl-agnostic-lizard")
  11002. "/share/common-lisp/systems/agnostic-lizard.asd")))
  11003. ;; agnostic-lizard is found at runtime.
  11004. (substitute* file
  11005. (("\\(require :asdf\\)")
  11006. (string-append
  11007. "(require :asdf)\n"
  11008. " (funcall (read-from-string \"asdf:load-asd\")\n"
  11009. " \"" asd "\")\n")))))))))
  11010. (synopsis "Portable Common Lisp stepper interface for Emacs")
  11011. (description
  11012. "This package features a new, portable, visual stepping facility for
  11013. Common Lisp, realized as an extension to SLY.")
  11014. (license license:gpl3+))))
  11015. (define-public emacs-sly-package-inferred
  11016. (let ((commit "800e71e2be631422277e2ec77e6d6f6ea20e95ef")
  11017. (revision "1"))
  11018. (package
  11019. (name "emacs-sly-package-inferred")
  11020. (version (git-version "0.1" revision commit))
  11021. (home-page "https://github.com/40ants/sly-package-inferred")
  11022. (source
  11023. (origin
  11024. (method git-fetch)
  11025. (uri (git-reference
  11026. (url home-page)
  11027. (commit commit)))
  11028. (file-name (git-file-name name version))
  11029. (sha256
  11030. (base32
  11031. "1216idyp034nkqddhw4p53jkhhdxa6xnjjmsvijpf4rxqnfqvapg"))))
  11032. (build-system emacs-build-system)
  11033. (propagated-inputs
  11034. `(("emacs-sly" ,emacs-sly)))
  11035. (arguments
  11036. '(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)
  11037. #:phases
  11038. ;; The package provides autoloads.
  11039. (modify-phases %standard-phases
  11040. (delete 'make-autoloads))))
  11041. (synopsis "Improved package inferred systems support for SLY")
  11042. (description
  11043. "@command{sly-package-inferred} is an external contrib for SLY that
  11044. replaces its completion with a function which is better suited for systems
  11045. using package inferred style.")
  11046. (license license:gpl3+))))
  11047. (define-public emacs-lua-mode
  11048. (package
  11049. (name "emacs-lua-mode")
  11050. (version "20210802")
  11051. (home-page "https://github.com/immerrr/lua-mode/")
  11052. (source
  11053. (origin
  11054. (method git-fetch)
  11055. (uri (git-reference
  11056. (url home-page)
  11057. (commit (string-append "v" version))))
  11058. (file-name (git-file-name name version))
  11059. (sha256
  11060. (base32 "0r3svhggdml2n256k3b0zmbjnw51p46gan6dg07bhavpfrqs5196"))))
  11061. (build-system emacs-build-system)
  11062. (arguments
  11063. `(#:tests? #t
  11064. #:test-command '("buttercup" "-l" "lua-mode.el")))
  11065. (native-inputs
  11066. `(("emacs-buttercup" ,emacs-buttercup)
  11067. ("lua" ,lua)))
  11068. (synopsis "Major mode for lua")
  11069. (description
  11070. "This Emacs package provides a mode for @uref{https://www.lua.org/,
  11071. Lua programming language}.")
  11072. (license license:gpl2+)))
  11073. (define-public emacs-ebuild-mode
  11074. (package
  11075. (name "emacs-ebuild-mode")
  11076. (version "1.53")
  11077. (source
  11078. (origin
  11079. (method url-fetch)
  11080. (uri (string-append
  11081. "https://dev.gentoo.org/~ulm/emacs/"
  11082. "ebuild-mode-" version ".tar.xz"))
  11083. (file-name (string-append name "-" version ".tar.xz"))
  11084. (sha256
  11085. (base32 "1l740qp71df9ids0c49kvp942rk8k1rfkg1hyv7ysfns5shk7b9l"))))
  11086. (build-system emacs-build-system)
  11087. (arguments
  11088. '(#:phases
  11089. (modify-phases %standard-phases
  11090. (add-after 'install 'install-doc
  11091. (lambda* (#:key outputs #:allow-other-keys)
  11092. (invoke "make" "ebuild-mode.info")
  11093. (install-file "ebuild-mode.info"
  11094. (string-append (assoc-ref outputs "out")
  11095. "/share/info"))
  11096. #t)))))
  11097. (native-inputs
  11098. `(("texinfo" ,texinfo)))
  11099. (home-page "https://devmanual.gentoo.org")
  11100. (synopsis "Major modes for Gentoo package files")
  11101. (description
  11102. "This Emacs package provides modes for ebuild, eclass, eblit, GLEP42
  11103. news items, openrc and runscripts.")
  11104. (license license:gpl2+)))
  11105. (define-public emacs-evil
  11106. (package
  11107. (name "emacs-evil")
  11108. (version "1.14.0")
  11109. (source
  11110. (origin
  11111. (method git-fetch)
  11112. (uri (git-reference
  11113. (url "https://github.com/emacs-evil/evil")
  11114. (commit version)))
  11115. (file-name (git-file-name name version))
  11116. (sha256
  11117. (base32
  11118. "17xrn3s6a4afmls8fw8nnxa1jq9dmj2qqrxa2vngh50hxpz8840p"))))
  11119. (arguments
  11120. `(#:phases
  11121. (modify-phases %standard-phases
  11122. (add-before 'check 'fix-test-helpers
  11123. (lambda _
  11124. (substitute* "evil-test-helpers.el"
  11125. (("\\(undo-tree-mode 1\\)") ""))
  11126. #t))
  11127. (add-before 'install 'make-info
  11128. (lambda _
  11129. (with-directory-excursion "doc/build/texinfo"
  11130. (invoke "makeinfo" "--no-split"
  11131. "-o" "evil.info" "evil.texi")))))))
  11132. (build-system emacs-build-system)
  11133. (native-inputs `(("texinfo" ,texinfo)))
  11134. (home-page "https://github.com/emacs-evil/evil")
  11135. (synopsis "Extensible Vi layer for Emacs")
  11136. (description
  11137. "Evil is an extensible vi layer for Emacs. It emulates the
  11138. main features of Vim, and provides facilities for writing custom
  11139. extensions.")
  11140. (license license:gpl3+)))
  11141. (define-public emacs-evil-collection
  11142. (package
  11143. (name "emacs-evil-collection")
  11144. (version "0.0.6")
  11145. (source (origin
  11146. (method git-fetch)
  11147. (uri (git-reference
  11148. (url "https://github.com/emacs-evil/evil-collection")
  11149. (commit version)))
  11150. (file-name (git-file-name name version))
  11151. (sha256
  11152. (base32
  11153. "0ssb3n1i67b6zp2j8djaalkr33x4c7zalw6vl6p5kqxkh8vy8cdf"))))
  11154. (build-system emacs-build-system)
  11155. (propagated-inputs
  11156. `(("emacs-evil" ,emacs-evil)
  11157. ("emacs-annalist" ,emacs-annalist)))
  11158. (arguments
  11159. `(#:include (cons* "^modes\\/" %default-include)))
  11160. (home-page "https://github.com/emacs-evil/evil-collection")
  11161. (synopsis "Collection of Evil bindings for many major and minor modes")
  11162. (description "This is a collection of Evil bindings for the parts of
  11163. Emacs that Evil does not cover properly by default, such as @code{help-mode},
  11164. @code{M-x calendar}, Eshell and more.")
  11165. (license license:gpl3+)))
  11166. (define-public emacs-evil-goggles
  11167. (let ((commit "08a22058fd6a167f9f1b684c649008caef571459")
  11168. (version "0.0.1")
  11169. (revision "0"))
  11170. (package
  11171. (name "emacs-evil-goggles")
  11172. (version (git-version version revision commit))
  11173. (source
  11174. (origin
  11175. (method git-fetch)
  11176. (uri (git-reference
  11177. (url "https://github.com/edkolev/evil-goggles")
  11178. (commit commit)))
  11179. (file-name (git-file-name name version))
  11180. (sha256
  11181. (base32 "1p3vjrij63v9nrcyj3b5jsqzv9y7dgv9i1inx1q7x3s90vndavac"))))
  11182. (build-system emacs-build-system)
  11183. (propagated-inputs
  11184. `(("emacs-evil" ,emacs-evil)))
  11185. (home-page "https://github.com/edkolev/evil-goggles")
  11186. (synopsis "Displays visual hints when editing with evil")
  11187. (description "Creates a visual pulse to indicate the region that is
  11188. being deleted, changed, yanked, or pasted when using evil commands")
  11189. (license license:gpl3+))))
  11190. (define-public emacs-goto-chg
  11191. (let ((commit "2af612153bc9f5bed135d25abe62f46ddaa9027f")
  11192. (version "1.7.3")
  11193. (revision "2"))
  11194. (package
  11195. (name "emacs-goto-chg")
  11196. (version (git-version version revision commit))
  11197. (source
  11198. (origin
  11199. (method git-fetch)
  11200. (uri (git-reference
  11201. (url "https://github.com/emacs-evil/goto-chg")
  11202. (commit commit)))
  11203. (file-name (git-file-name name version))
  11204. (sha256
  11205. (base32
  11206. "1awmvihqgw6kspx192bcp9xp56xqbma90wlhxfxmidx3bvxghwpv"))))
  11207. (build-system emacs-build-system)
  11208. (home-page "https://github.com/emacs-evil/goto-chg")
  11209. (synopsis "Go to the last change in the Emacs buffer")
  11210. (description
  11211. "This package provides @code{M-x goto-last-change} command that goes to
  11212. the point of the most recent edit in the current Emacs buffer. When repeated,
  11213. go to the second most recent edit, etc. Negative argument, @kbd{C-u -}, is
  11214. used for reverse direction.")
  11215. (license license:gpl2+))))
  11216. (define-public emacs-janpath-evil-numbers
  11217. (let ((commit "d988041c1fe6e941dc8d591390750b237f71f524")
  11218. (version "0.5")
  11219. (revision "1"))
  11220. (package
  11221. (name "emacs-janpath-evil-numbers")
  11222. (version (git-version version revision commit))
  11223. (source
  11224. (origin
  11225. (method git-fetch)
  11226. (uri (git-reference
  11227. (url "https://github.com/janpath/evil-numbers")
  11228. (commit commit)))
  11229. (file-name (git-file-name name version))
  11230. (sha256
  11231. (base32
  11232. "16zixhxxcb83m82f2cfiardfn99j3w41v6vh1qk6j9pplrlfw70v"))))
  11233. (build-system emacs-build-system)
  11234. (propagated-inputs `(("emacs-evil" ,emacs-evil)))
  11235. (home-page "https://github.com/janpath/evil-numbers")
  11236. (synopsis "Increment and decrement numeric literals")
  11237. (description
  11238. "This package provides functionality to search for a number up to the
  11239. end of a line and increment or decrement it.")
  11240. (license license:gpl3+))))
  11241. (define-public emacs-evil-owl
  11242. (let ((commit "24c5f43df375194386344e69bc720ea3986c9510")
  11243. (revision "3"))
  11244. (package
  11245. (name "emacs-evil-owl")
  11246. (version (git-version "0.0.1" revision commit))
  11247. (source
  11248. (origin
  11249. (method git-fetch)
  11250. (uri (git-reference
  11251. (url "https://github.com/mamapanda/evil-owl")
  11252. (commit commit)))
  11253. (file-name (git-file-name name version))
  11254. (sha256
  11255. (base32
  11256. "0bqzch14whlmrcasakah3psrzswvkzd7mmi8hx5s64kfp29wbdhi"))))
  11257. (build-system emacs-build-system)
  11258. (propagated-inputs
  11259. `(("emacs-evil" ,emacs-evil)))
  11260. (arguments
  11261. `(#:tests? #t
  11262. #:test-command '("make" "test")))
  11263. (home-page "https://github.com/mamapanda/evil-owl")
  11264. (synopsis "Preview candidates when using Evil registers and marks")
  11265. (description
  11266. "This package supplements Evil's register- and mark-based commands with
  11267. a popup window for previewing candidates.")
  11268. (license license:gpl3+))))
  11269. (define-public emacs-evil-paredit
  11270. (let ((commit "e058fbdcf9dbf7ad6cc77f0172d7517ef233d55f"))
  11271. (package
  11272. (name "emacs-evil-paredit")
  11273. (version "0.0.2") ; says 0.0.2 in evil-paredit.el
  11274. (source
  11275. (origin
  11276. (method git-fetch)
  11277. (uri (git-reference
  11278. (url "https://github.com/roman/evil-paredit")
  11279. (commit commit)))
  11280. (file-name (git-file-name name version))
  11281. (sha256
  11282. (base32 "0b08y4spapl4g2292j3l4cr84gjlvm3rpma3gqld4yb1sxd7v78p"))))
  11283. (build-system emacs-build-system)
  11284. (propagated-inputs
  11285. `(("emacs-evil" ,emacs-evil)
  11286. ("emacs-paredit" ,emacs-paredit)))
  11287. (home-page "https://github.com/roman/evil-paredit")
  11288. (synopsis "Evil extension to integrate nicely with Paredit")
  11289. (description
  11290. "This package helps you to not screw up your Paredit setup when using
  11291. Evil mode. Whenever you try to use a modifier command like @kbd{d}, @kbd{c},
  11292. @kbd{y} to modify the Paredit buffer, it will stop you to do so in the case
  11293. you break the parity of parenthesis.")
  11294. (license license:expat))))
  11295. (define-public emacs-evil-args
  11296. (let ((commit "758ad5ae54ad34202064fec192c88151c08cb387")
  11297. (revision "1"))
  11298. (package
  11299. (name "emacs-evil-args")
  11300. (version (git-version "1.0" revision commit))
  11301. (source
  11302. (origin
  11303. (method git-fetch)
  11304. (uri (git-reference
  11305. (url "https://github.com/wcsmith/evil-args")
  11306. (commit commit)))
  11307. (file-name (git-file-name name version))
  11308. (sha256
  11309. (base32
  11310. "0k35glgsirc3cph8v5hhjrqfh4ndwh8a28qbr03y3jl8s453xcj7"))))
  11311. (build-system emacs-build-system)
  11312. (propagated-inputs `(("emacs-evil" ,emacs-evil)))
  11313. (home-page "https://github.com/wcsmith/evil-args")
  11314. (synopsis "Motions and text objects for delimited arguments in Evil")
  11315. (description
  11316. "This package provides motions and text objects for delimited
  11317. arguments, such as arguments separated by commas and semicolons.")
  11318. (license license:expat))))
  11319. (define-public emacs-evil-escape
  11320. (package
  11321. (name "emacs-evil-escape")
  11322. (version "3.14")
  11323. (source
  11324. (origin
  11325. (method git-fetch)
  11326. (uri
  11327. (git-reference
  11328. (url "https://github.com/syl20bnr/evil-escape")
  11329. (commit (string-append "v" version))))
  11330. (file-name (git-file-name name version))
  11331. (sha256
  11332. (base32 "0s8lmmm25qabicwaj9jybpbd8mkc62yl7jnhk1lpablydjkv3w2i"))))
  11333. (propagated-inputs
  11334. `(("emacs-evil" ,emacs-evil)))
  11335. (build-system emacs-build-system)
  11336. (home-page "https://github.com/syl20bnr/evil-escape")
  11337. (synopsis "Escape from insert state and everything else in Emacs")
  11338. (description
  11339. "Evil escape provides a customizable key sequence to escape from insert
  11340. state and everything else in Emacs.")
  11341. (license license:gpl3+)))
  11342. (define-public emacs-evil-exchange
  11343. (let ((commit "47691537815150715e64e6f6ec79be7746c96120")
  11344. (version "0.41")
  11345. (revision "1"))
  11346. (package
  11347. (name "emacs-evil-exchange")
  11348. (version (git-version version revision commit))
  11349. (source
  11350. (origin
  11351. (method git-fetch)
  11352. (uri (git-reference
  11353. (url "https://github.com/Dewdrops/evil-exchange")
  11354. (commit commit)))
  11355. (file-name (git-file-name name version))
  11356. (sha256
  11357. (base32
  11358. "0bjpn4yqig17ddym6wqq5fm1b294q74hzcbj9a6gs97fqiwf88xa"))))
  11359. (build-system emacs-build-system)
  11360. (propagated-inputs `(("emacs-evil" ,emacs-evil)))
  11361. (native-inputs `(("emacs-ert-runner" ,emacs-ert-runner)))
  11362. (arguments
  11363. `(#:phases
  11364. (modify-phases %standard-phases
  11365. (add-before 'check 'fix-makefile
  11366. (lambda _
  11367. (substitute* "Makefile"
  11368. (("cask exec ") ""))
  11369. #t)))
  11370. #:tests? #t
  11371. #:test-command '("make" "test")))
  11372. (home-page "https://github.com/Dewdrops/evil-exchange")
  11373. (synopsis "Exchange text easily within Evil")
  11374. (description
  11375. "This package, a port of @code{vim-exchange}, provides an Evil operator
  11376. for exchanging text.")
  11377. (license license:gpl3+))))
  11378. (define-public emacs-evil-replace-with-register
  11379. (let ((commit "91cc7bf21a94703c441cc9212214075b226b7f67")
  11380. (version "0.1")
  11381. (revision "1"))
  11382. (package
  11383. (name "emacs-evil-replace-with-register")
  11384. (version (git-version version revision commit))
  11385. (source
  11386. (origin
  11387. (method git-fetch)
  11388. (uri (git-reference
  11389. (url "https://github.com/Dewdrops/evil-ReplaceWithRegister")
  11390. (commit commit)))
  11391. (file-name (git-file-name name version))
  11392. (sha256
  11393. (base32
  11394. "14rpn76qrf287s3y2agmddcxi27r226i53ixjvd694ss039g0r11"))))
  11395. (build-system emacs-build-system)
  11396. (propagated-inputs `(("emacs-evil" ,emacs-evil)))
  11397. (home-page "https://github.com/Dewdrops/evil-ReplaceWithRegister")
  11398. (synopsis "Quickly replace text with the contents of a register")
  11399. (description
  11400. "This package provides an Evil operator for replacing text with the
  11401. contents of a register.")
  11402. (license license:gpl3+))))
  11403. (define-public emacs-evil-indent-plus
  11404. (let ((commit "0c7501e6efed661242c3a20e0a6c79a6455c2c40")
  11405. (version "1.0.0")
  11406. (revision "1"))
  11407. (package
  11408. (name "emacs-evil-indent-plus")
  11409. (version (git-version version revision commit))
  11410. (source
  11411. (origin
  11412. (method git-fetch)
  11413. (uri (git-reference
  11414. (url "https://github.com/TheBB/evil-indent-plus")
  11415. (commit commit)))
  11416. (file-name (git-file-name name version))
  11417. (sha256
  11418. (base32
  11419. "1g6r1ydscwjvmhh1zg4q3nap4avk8lb9msdqrh7dff6pla0r2qs6"))))
  11420. (build-system emacs-build-system)
  11421. (propagated-inputs `(("emacs-evil" ,emacs-evil)))
  11422. (home-page "https://github.com/TheBB/evil-indent-plus")
  11423. (synopsis "Text objects based on indentation")
  11424. (description
  11425. "This package adds new text objects for @code{evil-mode} based on
  11426. blocks having the same or higher indentation, including or excluding
  11427. surrounding lines.")
  11428. (license license:gpl2+))))
  11429. (define-public emacs-evil-text-object-python
  11430. (let ((commit "9a064fe6475429145cbcc3b270fcc963b67adb15")
  11431. (version "1.0.1")
  11432. (revision "1"))
  11433. (package
  11434. (name "emacs-evil-text-object-python")
  11435. (version (git-version version revision commit))
  11436. (source
  11437. (origin
  11438. (method git-fetch)
  11439. (uri (git-reference
  11440. (url "https://github.com/wbolster/evil-text-object-python")
  11441. (commit commit)))
  11442. (file-name (git-file-name name version))
  11443. (sha256
  11444. (base32
  11445. "074zpm6mmr1wfl6d5xdf8jk1fs4ccpbzf4ahhkwga9g71xiplszv"))))
  11446. (build-system emacs-build-system)
  11447. (propagated-inputs `(("emacs-evil" ,emacs-evil)))
  11448. (home-page "https://github.com/wbolster/evil-text-object-python")
  11449. (synopsis "Text objects for Python")
  11450. (description
  11451. "This package provides @code{evil-mode} text objects for Python.")
  11452. (license license:gpl3+))))
  11453. (define-public emacs-evil-lion
  11454. (let ((commit "6b03593f5dd6e7c9ca02207f9a73615cf94c93ab")
  11455. (revision "1"))
  11456. (package
  11457. (name "emacs-evil-lion")
  11458. (version (git-version "0.0.2" revision commit))
  11459. (source
  11460. (origin
  11461. (method git-fetch)
  11462. (uri (git-reference
  11463. (url "https://github.com/edkolev/evil-lion")
  11464. (commit commit)))
  11465. (file-name (git-file-name name version))
  11466. (sha256
  11467. (base32
  11468. "1a162hynp0jcsn50c1w5a02mrw9w3q05c7lkqzqd25px3d0p772q"))))
  11469. (build-system emacs-build-system)
  11470. (propagated-inputs `(("emacs-evil" ,emacs-evil)))
  11471. (arguments
  11472. `(#:tests? #t
  11473. #:test-command '("make" "test")))
  11474. (home-page "https://github.com/edkolev/evil-lion")
  11475. (synopsis "Align operator for @code{evil-mode}")
  11476. (description
  11477. "This package, a port of @code{vim-lion}, provides an operator for
  11478. aligning text objects based on separators.")
  11479. (license license:gpl3+))))
  11480. (define-public emacs-evil-expat
  11481. (let ((commit "f4fcd0aa3edc359adb5c986b5dd9188d220d84e2")
  11482. (revision "1"))
  11483. (package
  11484. (name "emacs-evil-expat")
  11485. (version (git-version "0.0.1" revision commit))
  11486. (source
  11487. (origin
  11488. (method git-fetch)
  11489. (uri (git-reference
  11490. (url "https://github.com/edkolev/evil-expat")
  11491. (commit commit)))
  11492. (file-name (git-file-name name version))
  11493. (sha256
  11494. (base32
  11495. "0872ix682hkdz0k8pn6sb54rqkx00rz5fxpd5j2snx406yagpaxz"))))
  11496. (build-system emacs-build-system)
  11497. (propagated-inputs `(("emacs-evil" ,emacs-evil)))
  11498. (arguments
  11499. `(#:tests? #t
  11500. #:test-command '("make" "test")))
  11501. (home-page "https://github.com/edkolev/evil-expat")
  11502. (synopsis "Extra @code{ex} commands for @code{evil-mode}")
  11503. (description
  11504. "This package provides additional commands for the @code{ex} command
  11505. line, including functions for version control with Git and for copying and
  11506. pasting into and from @code{tmux} paste buffers.")
  11507. (license license:gpl3+))))
  11508. (define-public emacs-evil-nerd-commenter
  11509. (package
  11510. (name "emacs-evil-nerd-commenter")
  11511. (version "3.5.5")
  11512. (source
  11513. (origin
  11514. (method git-fetch)
  11515. (uri (git-reference
  11516. (url "https://github.com/redguardtoo/evil-nerd-commenter")
  11517. (commit version)))
  11518. (file-name (git-file-name name version))
  11519. (sha256
  11520. (base32
  11521. "1qrlg4cxlsd4cf1z8j2662pfb9p6pnqpsyb74flja9cqv6g5ylp8"))))
  11522. (build-system emacs-build-system)
  11523. (propagated-inputs `(("emacs-evil" ,emacs-evil)))
  11524. (home-page "https://github.com/redguardtoo/evil-nerd-commenter")
  11525. (synopsis "Comment and uncomment lines efficiently")
  11526. (description
  11527. "This package provides text objects and operators for comments within
  11528. @code{evil-mode}.")
  11529. (license license:gpl3+)))
  11530. (define-public emacs-evil-visual-replace
  11531. (package
  11532. (name "emacs-evil-visual-replace")
  11533. (version "0.0.5")
  11534. (source
  11535. (origin
  11536. (method git-fetch)
  11537. (uri (git-reference
  11538. (url "https://github.com/troyp/evil-visual-replace")
  11539. (commit version)))
  11540. (file-name (git-file-name name version))
  11541. (sha256
  11542. (base32
  11543. "1gfyrq7xfzmzh3x8k5f08n027dlbwi0pkkxf9c39fkxp4jngibsz"))))
  11544. (build-system emacs-build-system)
  11545. (propagated-inputs `(("emacs-evil" ,emacs-evil)))
  11546. (home-page "https://github.com/troyp/evil-visual-replace")
  11547. (synopsis "Replacement commands for @code{evil-mode} visual blocks")
  11548. (description
  11549. "This package provides versions of @code{query-replace} and
  11550. @code{replace-regexp} that work for @code{evil-mode} visual blocks.")
  11551. (license license:gpl2+)))
  11552. (define-public emacs-evil-visualstar
  11553. (let ((commit "06c053d8f7381f91c53311b1234872ca96ced752")
  11554. (version "0.2.0")
  11555. (revision "1"))
  11556. (package
  11557. (name "emacs-evil-visualstar")
  11558. (version (git-version version revision commit))
  11559. (source
  11560. (origin
  11561. (method git-fetch)
  11562. (uri (git-reference
  11563. (url "https://github.com/bling/evil-visualstar")
  11564. (commit commit)))
  11565. (file-name (git-file-name name version))
  11566. (sha256
  11567. (base32
  11568. "0mkbzw12fav945icibc2293m5haxqr3hzkyli2cf4ssk6yvn0x4c"))))
  11569. (build-system emacs-build-system)
  11570. (propagated-inputs `(("emacs-evil" ,emacs-evil)))
  11571. (home-page "https://github.com/bling/evil-visualstar")
  11572. (synopsis "Instantly search using the visual selection")
  11573. (description
  11574. "This package provides @code{evil-mode} functions for using selected text
  11575. to search.")
  11576. (license license:gpl3+))))
  11577. (define-public emacs-monky
  11578. (package
  11579. (name "emacs-monky")
  11580. (version "0.1")
  11581. (source (origin
  11582. (method git-fetch)
  11583. (uri (git-reference
  11584. (url "https://github.com/ananthakumaran/monky")
  11585. (commit version)))
  11586. (file-name (git-file-name name version))
  11587. (sha256
  11588. (base32
  11589. "1fgn7al4zwz2k5wb5dy3byqg9lsrjk9fra341mxh5ma2pfwxjgps"))))
  11590. (build-system emacs-build-system)
  11591. (home-page "https://ananthakumaran.in/monky/index.html")
  11592. (arguments
  11593. `(#:tests? #t
  11594. #:test-command '("emacs" "--batch"
  11595. "-l" "test/monky-unit-test.el"
  11596. "-f" "ert-run-tests-batch-and-exit")))
  11597. (synopsis "Interactive interface for the Mercurial version control system")
  11598. (description
  11599. "Monky provides an Emacs interface for Mercurial (Hg). Using Monky, you
  11600. can selectively commit files, view the diffs, and other things.")
  11601. (license license:gpl3+)))
  11602. (define-public emacs-monroe
  11603. (package
  11604. (name "emacs-monroe")
  11605. (version "0.3.1")
  11606. (source
  11607. (origin
  11608. (method git-fetch)
  11609. (uri (git-reference
  11610. (url "https://github.com/sanel/monroe")
  11611. (commit version)))
  11612. (file-name (git-file-name name version))
  11613. (sha256
  11614. (base32 "101lfrykdbv37spkbw7zihhx26bc1lhjyxbanrcp9880bxj04jiy"))))
  11615. (build-system emacs-build-system)
  11616. (home-page "https://github.com/sanel/monroe")
  11617. (synopsis "Clojure nREPL client for Emacs")
  11618. (description
  11619. "Monroe is a nREPL client for Emacs, focused on simplicity and easy
  11620. distribution, primarily targeting Clojure users")
  11621. (license license:gpl3+)))
  11622. (define-public emacs-orgalist
  11623. (package
  11624. (name "emacs-orgalist")
  11625. (version "1.13")
  11626. (source
  11627. (origin
  11628. (method url-fetch)
  11629. (uri (string-append "https://elpa.gnu.org/packages/"
  11630. "orgalist-" version ".el"))
  11631. (sha256
  11632. (base32 "1wkxc5kcy1g4lx6pd78pa8znncjyl9zyhsvz7wpp56qmhq4hlav3"))))
  11633. (build-system emacs-build-system)
  11634. (home-page "https://elpa.gnu.org/packages/orgalist.html")
  11635. (synopsis "Manage Org-like lists in non-Org buffers")
  11636. (description "Orgalist writes and manages Org mode's plain lists in
  11637. non-Org buffers. More specifically, it supports the syntax of Org mode for
  11638. numbered, unnumbered, description items, checkboxes, and counter cookies.
  11639. The library also implements radio lists, i.e., lists written in Org syntax
  11640. later translated into the host format, e.g., LaTeX or HTML.")
  11641. (license license:gpl3+)))
  11642. (define-public emacs-writegood-mode
  11643. (package
  11644. (name "emacs-writegood-mode")
  11645. (version "2.0.4")
  11646. (home-page "https://github.com/bnbeckwith/writegood-mode")
  11647. (source (origin
  11648. (method git-fetch)
  11649. (uri (git-reference
  11650. (url home-page)
  11651. (commit (string-append "v" version))))
  11652. (sha256
  11653. (base32
  11654. "1nwngnddlkcvix7qx39fadab7hqzg8snb0k63kwpr8v57lyrm48z"))
  11655. (file-name (string-append name "-checkout"))))
  11656. (build-system emacs-build-system)
  11657. (synopsis "Polish up poor writing on the fly")
  11658. (description
  11659. "This minor mode tries to find and highlight problems with your writing
  11660. in English as you type. It primarily detects \"weasel words\" and abuse of
  11661. passive voice.")
  11662. (license license:gpl3+)))
  11663. (define-public emacs-neotree
  11664. (package
  11665. (name "emacs-neotree")
  11666. (version "0.5.2")
  11667. (home-page "https://github.com/jaypei/emacs-neotree")
  11668. (source (origin
  11669. (method git-fetch)
  11670. (uri (git-reference
  11671. (url home-page)
  11672. (commit version)))
  11673. (sha256
  11674. (base32
  11675. "0hx72fq10772bbyqrj7mhhp02k26cccjxdadiqm1ykainhfmn1x0"))
  11676. (file-name (git-file-name name version))))
  11677. (build-system emacs-build-system)
  11678. (synopsis "Folder tree view for Emacs")
  11679. (description "This Emacs package provides a folder tree view.")
  11680. (license license:gpl3+)))
  11681. (define-public emacs-org
  11682. (package
  11683. (name "emacs-org")
  11684. ;; emacs-org-contrib inherits from this package. Please update it as
  11685. ;; well.
  11686. (version "9.4.6")
  11687. (source
  11688. (origin
  11689. (method url-fetch)
  11690. (uri (string-append "https://elpa.gnu.org/packages/org-" version ".tar"))
  11691. (sha256
  11692. (base32 "1k49ymsi77366as2wi4kzv2f1xnbwpb47iw7iw07yxwlhmm7vskq"))))
  11693. (build-system emacs-build-system)
  11694. (arguments
  11695. `(#:phases
  11696. (modify-phases %standard-phases
  11697. (add-after 'install 'install-documentation
  11698. (lambda* (#:key outputs #:allow-other-keys)
  11699. (let* ((share (string-append (assoc-ref outputs "out") "/share"))
  11700. (info-dir (string-append share "/info"))
  11701. (doc-dir (string-append share "/doc/" ,name "-" ,version)))
  11702. (install-file "org.info" info-dir)
  11703. (install-file "orgguide.info" info-dir)
  11704. ;; XXX: "orgcard.pdf" is not built in Org 9.4.6.
  11705. ;; (install-file "orgcard.pdf" doc-dir)
  11706. ))))))
  11707. (home-page "https://orgmode.org/")
  11708. (synopsis "Outline-based notes management and organizer")
  11709. (description "Org is an Emacs mode for keeping notes, maintaining TODO
  11710. lists, and project planning with a fast and effective lightweight markup
  11711. language. It also is an authoring system with unique support for literate
  11712. programming and reproducible research.")
  11713. (license license:gpl3+)))
  11714. (define-public emacs-org-contrib
  11715. (package
  11716. (inherit emacs-org)
  11717. (name "emacs-org-contrib")
  11718. (version "20210519")
  11719. (source
  11720. (origin
  11721. (method url-fetch)
  11722. (uri (string-append "https://orgmode.org/elpa/"
  11723. "org-plus-contrib-" version ".tar"))
  11724. (sha256
  11725. (base32 "0g765fsc7ssn779xnhjzrxy1sz5b019h7dk1q26yk2w6i540ybfl"))
  11726. ;; ob-sclang.el is packaged separately to avoid the dependency on
  11727. ;; SuperCollider and qtwebengine.
  11728. (modules '((guix build utils)))
  11729. (snippet '(begin (delete-file "ob-sclang.el") #t))))
  11730. (arguments
  11731. `(#:modules ((guix build emacs-build-system)
  11732. (guix build utils)
  11733. (guix build emacs-utils)
  11734. (ice-9 ftw)
  11735. (srfi srfi-1))
  11736. #:phases
  11737. (modify-phases %standard-phases
  11738. (add-after 'install 'delete-org-files
  11739. (lambda* (#:key inputs outputs #:allow-other-keys)
  11740. (let* ((out (assoc-ref outputs "out"))
  11741. (org (assoc-ref inputs "org"))
  11742. (contrib-files
  11743. (map basename (find-files out)))
  11744. (org+contrib-files
  11745. (map basename (find-files org)))
  11746. (duplicates (lset-intersection string=?
  11747. contrib-files
  11748. org+contrib-files)))
  11749. (with-directory-excursion (elpa-directory out)
  11750. (for-each delete-file duplicates))
  11751. #t))))))
  11752. (propagated-inputs
  11753. `(("arduino-mode" ,emacs-arduino-mode)
  11754. ("cider" ,emacs-cider)
  11755. ("org" ,emacs-org)))
  11756. (synopsis "Contributed packages to Org mode")
  11757. (description "Org is an Emacs mode for keeping notes, maintaining TODO
  11758. lists, and project planning with a fast and effective plain-text system.
  11759. This package is equivalent to org-plus-contrib, but only includes additional
  11760. files that you would find in @file{contrib/} from the git repository.")))
  11761. (define-public emacs-org-pretty-table
  11762. ;; There is no release yet.
  11763. (let ((commit "1331c600b83d95b28730b1bfcb48369ac1cf12ef")
  11764. (revision "0"))
  11765. (package
  11766. (name "emacs-org-pretty-table")
  11767. (version (git-version "0.0.1" revision commit))
  11768. (source
  11769. (origin
  11770. (method git-fetch)
  11771. (uri (git-reference
  11772. (url "https://github.com/Fuco1/org-pretty-table")
  11773. (commit commit)))
  11774. (file-name (git-file-name name version))
  11775. (sha256
  11776. (base32 "0yvqxh66y400n2n5ykmb1zrzd80bakffpwn6nmf37728x4cj8krh"))))
  11777. (build-system emacs-build-system)
  11778. (home-page "https://github.com/Fuco1/org-pretty-table")
  11779. (synopsis "Make tables in Org mode and OrgTbl mode prettier")
  11780. (description
  11781. "This package displays tables in Org mode and OrgTbl mode using Unicode
  11782. characters.")
  11783. (license license:gpl3+))))
  11784. (define-public emacs-ob-sclang
  11785. (package
  11786. (inherit emacs-org-contrib)
  11787. (name "emacs-ob-sclang")
  11788. (source
  11789. (origin (inherit (package-source emacs-org-contrib))
  11790. (modules '((guix build utils)))
  11791. (snippet
  11792. '(begin
  11793. (for-each (lambda (file)
  11794. (unless (equal? file "./ob-sclang.el")
  11795. (delete-file file)))
  11796. (find-files "." "\\.el"))
  11797. #t))))
  11798. (propagated-inputs
  11799. `(("org" ,emacs-org)
  11800. ("scel" ,emacs-scel)))
  11801. (synopsis "Org Babel support for SuperCollider")
  11802. (description "This package adds support for evaluating @code{sclang}
  11803. Org mode source blocks. It is extracted from the @code{emacs-org-contrib}
  11804. package.")))
  11805. (define-public emacs-org-edna
  11806. (package
  11807. (name "emacs-org-edna")
  11808. (version "1.1.2")
  11809. (source (origin
  11810. (method bzr-fetch)
  11811. (uri (bzr-reference
  11812. (url "bzr://bzr.savannah.nongnu.org/org-edna-el")
  11813. (revision version)))
  11814. (file-name (string-append name "-" version "-checkout"))
  11815. (sha256
  11816. (base32
  11817. "01dblddgx0yid5hrgl4swbr4grhv057kfbdy122wihzqpsrgq86n"))))
  11818. (build-system emacs-build-system)
  11819. (home-page "https://savannah.nongnu.org/projects/org-edna-el/")
  11820. (synopsis "Manage Org task dependencies")
  11821. (description "This package provides an extensible means of specifying
  11822. conditions which must be fulfilled before a task can be completed and actions
  11823. to take once it is. Org Edna runs when either the BLOCKER or TRIGGER
  11824. properties are set on a heading, and when it is changing from a TODO state to
  11825. a DONE state.")
  11826. (license license:gpl3+)))
  11827. (define-public emacs-flx
  11828. (package
  11829. (name "emacs-flx")
  11830. (version "0.6.1")
  11831. (source
  11832. (origin
  11833. (method git-fetch)
  11834. (uri (git-reference
  11835. (url "https://github.com/lewang/flx")
  11836. (commit (string-append "v" version))))
  11837. (sha256
  11838. (base32
  11839. "0sjybrcnb2sl33swy3q664vqrparajcl0m455gciiih2j87hwadc"))
  11840. (file-name (git-file-name name version))))
  11841. (build-system emacs-build-system)
  11842. (home-page "https://github.com/lewang/flx")
  11843. (synopsis "Fuzzy matching for Emacs")
  11844. (description
  11845. "Flx provides fuzzy matching for emacs a la sublime text.
  11846. The sorting algorithm is a balance between word beginnings (abbreviation)
  11847. and contiguous matches (substring). The longer the substring match,
  11848. the higher it scores. This maps well to how we think about matching.
  11849. Flx has support for ido (interactively do things) through flx-ido.")
  11850. (license license:gpl3+)))
  11851. (define-public emacs-cyberpunk-theme
  11852. (package
  11853. (name "emacs-cyberpunk-theme")
  11854. (version "1.22")
  11855. (source
  11856. (origin
  11857. (method git-fetch)
  11858. (uri (git-reference
  11859. (url "https://github.com/n3mo/cyberpunk-theme.el/")
  11860. (commit version)))
  11861. (sha256
  11862. (base32
  11863. "06nff38pcy5rgz13svkajsg0jjk73qy4a8m7p9f76yxcywxlgxlc"))
  11864. (file-name (git-file-name name version))))
  11865. (build-system emacs-build-system)
  11866. (home-page "https://github.com/n3mo/cyberpunk-theme.el")
  11867. (synopsis "Cyberpunk theme for Emacs built-in color theme support")
  11868. (description
  11869. "Cyberpunk color theme for the Emacs 24+ built-in color theme support
  11870. known loosely as deftheme. Many mode-specific customizations are included.")
  11871. (license license:gpl3+)))
  11872. (define-public emacs-dart-mode
  11873. (package
  11874. (name "emacs-dart-mode")
  11875. (version "1.0.7")
  11876. (source
  11877. (origin
  11878. (method git-fetch)
  11879. (uri (git-reference
  11880. (url "https://github.com/bradyt/dart-mode")
  11881. (commit version)))
  11882. (file-name (git-file-name name version))
  11883. (sha256
  11884. (base32 "1vql8m4nj0brmv58b6lkbhykik8n6j4i7d3nylcls78y7ihc2cz8"))))
  11885. (build-system emacs-build-system)
  11886. (propagated-inputs
  11887. `(("emacs-dash" ,emacs-dash)
  11888. ("emacs-flycheck" ,emacs-flycheck)
  11889. ("emacs-s" ,emacs-s)))
  11890. (home-page "https://github.com/bradyt/dart-mode")
  11891. (synopsis "Emacs mode for the Dart programming language")
  11892. (description
  11893. "Dart mode is an Emacs major mode for editing Dart files. It provides
  11894. basic syntax highlighting and indentation.")
  11895. (license license:gpl3+)))
  11896. (define-public emacs-danneskjold-theme
  11897. (let* ((commit "e4d1f2c76245fe9d0d07133a841e789d139df28d")
  11898. (revision "2"))
  11899. (package
  11900. (name "emacs-danneskjold-theme")
  11901. (version (git-version "0.0.0" revision commit))
  11902. (source
  11903. (origin
  11904. (method git-fetch)
  11905. (uri (git-reference
  11906. (url "https://github.com/rails-to-cosmos/danneskjold-theme")
  11907. (commit commit)))
  11908. (file-name (git-file-name name version))
  11909. (sha256
  11910. (base32 "0s6rbsb0y8i8m5b9xm4gw1p1cxsxdqnqxqqb638pygz9f76mbir1"))))
  11911. (build-system emacs-build-system)
  11912. (arguments
  11913. `(#:phases
  11914. (modify-phases %standard-phases
  11915. (add-after 'unpack 'delete-screenshots
  11916. (lambda _
  11917. (delete-file-recursively "screenshots"))))))
  11918. (home-page "https://github.com/rails-to-cosmos/danneskjold-theme")
  11919. (synopsis "High-contrast Emacs theme")
  11920. (description
  11921. "@code{danneskjold-theme} is a high-contrast theme for Emacs.")
  11922. (license license:gpl3+))))
  11923. (define-public emacs-dream-theme
  11924. (let* ((commit "107a11d74365046f28a1802a2bdb5e69e4a7488b")
  11925. (revision "1"))
  11926. (package
  11927. (name "emacs-dream-theme")
  11928. (version (string-append "0.0.0-" revision "." (string-take commit 7)))
  11929. (source
  11930. (origin
  11931. (method git-fetch)
  11932. (uri (git-reference
  11933. (url "https://github.com/djcb/dream-theme")
  11934. (commit commit)))
  11935. (file-name (git-file-name name version))
  11936. (sha256
  11937. (base32
  11938. "0za18nfkq4xqm35k6006vsixcbmvmxqgma4iw5sw37h8vmcsdylk"))))
  11939. (build-system emacs-build-system)
  11940. (home-page "https://github.com/djcb/dream-theme")
  11941. (synopsis "High-contrast Emacs theme")
  11942. (description
  11943. "@code{dream-theme} is a dark, clean theme for Emacs. It is inspired
  11944. by zenburn, sinburn and similar themes, but slowly diverging from them.")
  11945. (license license:gpl3+))))
  11946. (define-public emacs-dracula-theme
  11947. (package
  11948. (name "emacs-dracula-theme")
  11949. (version "1.7.0")
  11950. (source
  11951. (origin
  11952. (method git-fetch)
  11953. (uri (git-reference
  11954. (url "https://github.com/dracula/emacs")
  11955. (commit (string-append "v" version))))
  11956. (file-name (git-file-name name version))
  11957. (sha256
  11958. (base32 "15y2djc5jljlvls1x9kp50m1kp0dcksmyixafsyimj66xpq9ngh0"))))
  11959. (build-system emacs-build-system)
  11960. (home-page "https://draculatheme.com/")
  11961. (synopsis "Dark theme for Emacs")
  11962. (description
  11963. "Dracula is a dark color theme for many editors, shells and more. This
  11964. package provides the Emacs theme.")
  11965. (license license:expat)))
  11966. (define-public emacs-auto-complete
  11967. (package
  11968. (name "emacs-auto-complete")
  11969. (version "1.5.1")
  11970. (source
  11971. (origin
  11972. (method git-fetch)
  11973. (uri (git-reference
  11974. (url "https://github.com/auto-complete/auto-complete")
  11975. (commit (string-append "v" version))))
  11976. (sha256
  11977. (base32
  11978. "04i9b11iksg6acn885wl3qgi5xpsm3yszlqmd2x21yhprndlz7gb"))
  11979. (file-name (git-file-name name version))))
  11980. (build-system emacs-build-system)
  11981. (propagated-inputs
  11982. `(("emacs-popup" ,emacs-popup)))
  11983. (home-page "https://github.com/auto-complete/auto-complete")
  11984. (synopsis "Intelligent auto-completion extension for Emacs")
  11985. (description
  11986. "Auto-Complete is an intelligent auto-completion extension for Emacs.
  11987. It extends the standard Emacs completion interface and provides an environment
  11988. that allows users to concentrate more on their own work. Its features are:
  11989. a visual interface, reduce overhead of completion by using statistic method,
  11990. extensibility.")
  11991. (license license:gpl3+)))
  11992. (define-public emacs-autocrypt
  11993. (let ((commit "5b55f8d37545e9c441788627c17e350d7edf4055")
  11994. (revision "0"))
  11995. (package
  11996. (name "emacs-autocrypt")
  11997. (version (git-version "0.4.0" revision commit))
  11998. (source (origin
  11999. (method git-fetch)
  12000. (uri (git-reference
  12001. (url "https://git.sr.ht/~pkal/autocrypt")
  12002. (commit commit)))
  12003. (file-name (git-file-name name version))
  12004. (sha256
  12005. (base32
  12006. "0b06xnjkgwjpxl96mdi674pmvdaiwncifi1a30wxhl1dwr7kr084"))))
  12007. (build-system emacs-build-system)
  12008. (home-page "https://git.sr.ht/~pkal/autocrypt")
  12009. (synopsis "Autocrypt implementation for Emacs")
  12010. (description "@code{emacs-autocrypt} is an implementation of
  12011. Autocrypt (@url{https://autocrypt.org/}) for various Emacs MUAs. Autocrypt is
  12012. a cryptographic protocol for email clients aiming to simplify key exchange and
  12013. encryption.
  12014. Run @code{M-x autocrypt-create-account} to initialize an autocrypt key, and
  12015. add @code{autocrypt-mode} to your MUA's hooks (@code{gnus-mode-hook},
  12016. @code{message-mode-hook}, ...) to activate its usage.")
  12017. (license license:cc0))))
  12018. (define-public emacs-nginx-mode
  12019. (package
  12020. (name "emacs-nginx-mode")
  12021. (version "1.1.9")
  12022. (source
  12023. (origin
  12024. (method git-fetch)
  12025. (uri (git-reference
  12026. (url "https://github.com/ajc/nginx-mode")
  12027. (commit (string-append "v" version))))
  12028. (file-name (git-file-name name version))
  12029. (sha256
  12030. (base32 "17dh5pr3gh6adrbqx588gimxbb2fr7iv2qrxv6r48w2727l344xs"))))
  12031. (build-system emacs-build-system)
  12032. (home-page "https://github.com/ajc/nginx-mode")
  12033. (synopsis "Emacs major mode for editing nginx config files")
  12034. (description "This package provides an Emacs major mode for
  12035. editing nginx config files.")
  12036. (license license:gpl2+)))
  12037. (define-public emacs-stream
  12038. (package
  12039. (name "emacs-stream")
  12040. (version "2.2.5")
  12041. (source
  12042. (origin
  12043. (method url-fetch)
  12044. (uri (string-append "https://elpa.gnu.org/packages/"
  12045. "stream-" version ".tar"))
  12046. (file-name (git-file-name name version))
  12047. (sha256
  12048. (base32 "00c3n4gyxzv7vczqms0d62kl8zsmjfyxa92mwxn2snyx857a9jfw"))))
  12049. (build-system emacs-build-system)
  12050. (home-page "http://elpa.gnu.org/packages/stream.html")
  12051. (synopsis "Implementation of streams for Emacs")
  12052. (description "This library provides an implementation of streams for Emacs.
  12053. Streams are implemented as delayed evaluation of cons cells.")
  12054. (license license:gpl3+)))
  12055. (define-public emacs-cl-print
  12056. (let ((commit "1a70c553dfb04352afb5b8696fe0cef8acc8f991")
  12057. (revision "1"))
  12058. (package
  12059. (name "emacs-cl-print")
  12060. (version (git-version "1.0" revision commit))
  12061. (source
  12062. (origin
  12063. (method git-fetch)
  12064. (uri (git-reference
  12065. (url "https://github.com/emacsmirror/cl-print")
  12066. (commit commit)))
  12067. (file-name (git-file-name name version))
  12068. (sha256
  12069. (base32 "164zbnsi5mssvcpy0158fm7fw5cmd1r5nkpn29fmd2b2scy3gm79"))))
  12070. (build-system emacs-build-system)
  12071. (home-page "https://github.com/emacsmirror/cl-print")
  12072. (synopsis "CL-style generic printing")
  12073. (description "This package provides a generic function,
  12074. @code{cl-print-object}, to which the programmer can add any method they
  12075. please.")
  12076. (license license:gpl3+))))
  12077. (define-public emacs-el-search
  12078. (let ((commit "07bed84dd8ae9e4c6c648834224b1d33fdbd51e0")
  12079. (revision "2"))
  12080. (package
  12081. (name "emacs-el-search")
  12082. (version (git-version "1.12.6.1" revision commit))
  12083. (source
  12084. (origin
  12085. (method git-fetch)
  12086. (uri (git-reference
  12087. (url "https://github.com/emacsmirror/el-search")
  12088. (commit commit)))
  12089. (file-name (git-file-name name version))
  12090. (sha256
  12091. (base32 "10w1ldgijdhfsrazp0y3bm76jv5wvdn94k1yp0pmc2m1896b58ak"))))
  12092. (build-system emacs-build-system)
  12093. (inputs
  12094. `(("emacs-stream" ,emacs-stream)
  12095. ("emacs-cl-print" ,emacs-cl-print)))
  12096. (home-page "https://github.com/emacsmirror/el-search")
  12097. (synopsis "Expression based interactive search for emacs-lisp-mode")
  12098. (description "This package provides expression based interactive search
  12099. procedures for emacs-lisp-mode.")
  12100. (license license:gpl3+))))
  12101. (define-public emacs-ht
  12102. (package
  12103. (name "emacs-ht")
  12104. (version "2.3")
  12105. (source
  12106. (origin
  12107. (method git-fetch)
  12108. (uri (git-reference
  12109. (url "https://github.com/Wilfred/ht.el")
  12110. (commit version)))
  12111. (file-name (git-file-name name version))
  12112. (sha256
  12113. (base32 "0can9v336lgnq0q2ha3js0565jzp3dlwwqxhcbx5swk5kp148f07"))))
  12114. (build-system emacs-build-system)
  12115. (propagated-inputs `(("emacs-dash" ,emacs-dash)))
  12116. (native-inputs
  12117. `(("emacs-ert-runner" ,emacs-ert-runner)))
  12118. (arguments
  12119. `(#:tests? #t
  12120. #:test-command '("ert-runner")))
  12121. (home-page "https://github.com/Wilfred/ht.el")
  12122. (synopsis "Hash table library for Emacs")
  12123. (description
  12124. "This package simplifies the use of hash tables in elisp. It also
  12125. provides functions to convert hash tables from and to alists and plists.")
  12126. (license license:gpl3+)))
  12127. (define-public emacs-log4e
  12128. (package
  12129. (name "emacs-log4e")
  12130. (version "0.3.3")
  12131. (source
  12132. (origin
  12133. (method git-fetch)
  12134. (uri (git-reference
  12135. (url "https://github.com/aki2o/log4e")
  12136. (commit (string-append "v" version))))
  12137. (file-name (git-file-name name version))
  12138. (sha256
  12139. (base32 "0dbnks76v05allzkhx9zmyqpn6sk5376n8k2rbpnaw6gmz1ib2fv"))))
  12140. (build-system emacs-build-system)
  12141. (arguments
  12142. `(#:phases
  12143. (modify-phases %standard-phases
  12144. (add-after 'unpack 'remove-tests
  12145. ;; Guile builder complains about null characters in some
  12146. ;; strings of test files. Remove "test" directory (it is not
  12147. ;; needed anyway).
  12148. (lambda _
  12149. (delete-file-recursively "test"))))))
  12150. (home-page "https://github.com/aki2o/log4e")
  12151. (synopsis "Logging framework for elisp")
  12152. (description
  12153. "This package provides a logging framework for elisp. It allows
  12154. you to deal with multiple log levels.")
  12155. (license license:gpl3+)))
  12156. (define-public emacs-gn-mode
  12157. (package
  12158. (name "emacs-gn-mode")
  12159. (version "0.4.1")
  12160. (source
  12161. (origin
  12162. (method git-fetch)
  12163. (uri (git-reference
  12164. (url "https://github.com/lashtear/gn-mode")
  12165. (commit version)))
  12166. (file-name (git-file-name name version))
  12167. (sha256
  12168. (base32 "0dz5kgzbgsssr38z2kg6m915cvfys42ag1k42bsra3la2pixywfx"))))
  12169. (build-system emacs-build-system)
  12170. (home-page "https://github.com/lashtear/gn-mode")
  12171. (synopsis "Emacs major mode for editing GN (ninja generator) config files")
  12172. (description
  12173. "GN mode is a major mode for editing @acronym{GN,Ninja Generator} config
  12174. files in Emacs. Files of this type (e.g., @file{BUILD.gn} or @file{*.gni})
  12175. are common in Chromium-derived projects.")
  12176. (license license:bsd-3)))
  12177. (define-public emacs-gntp
  12178. (package
  12179. (name "emacs-gntp")
  12180. (version "0.1")
  12181. (source
  12182. (origin
  12183. (method git-fetch)
  12184. (uri (git-reference
  12185. (url "https://github.com/tekai/gntp.el")
  12186. (commit (string-append "v" version))))
  12187. (file-name (git-file-name name version))
  12188. (sha256
  12189. (base32 "1nvyjjjydrimpxy4cpg90si7sr8lmldbhlcm2mx8npklp9pn5y3a"))))
  12190. (build-system emacs-build-system)
  12191. (home-page "https://github.com/tekai/gntp.el")
  12192. (synopsis "Growl Notification Protocol for Emacs")
  12193. (description
  12194. "This package implements the Growl Notification Protocol GNTP
  12195. described at @uref{http://www.growlforwindows.com/gfw/help/gntp.aspx}.
  12196. It is incomplete as it only lets you send but not receive
  12197. notifications.")
  12198. (license license:bsd-3)))
  12199. (define-public emacs-alert
  12200. (package
  12201. (name "emacs-alert")
  12202. (version "1.3")
  12203. (source
  12204. (origin
  12205. (method git-fetch)
  12206. (uri (git-reference
  12207. (url "https://github.com/jwiegley/alert")
  12208. (commit (string-append "v" version))))
  12209. (file-name (git-file-name name version))
  12210. (sha256
  12211. (base32 "0lc0p5cl4hfrzw1z2ghb11k1lvljn5m08jw5fmgwgxv667kwh49r"))))
  12212. (build-system emacs-build-system)
  12213. (propagated-inputs
  12214. `(("emacs-gntp" ,emacs-gntp)
  12215. ("emacs-log4e" ,emacs-log4e)))
  12216. (home-page "https://github.com/jwiegley/alert")
  12217. (synopsis "Growl-style notification system for Emacs")
  12218. (description
  12219. "Alert is a Growl-workalike for Emacs which uses a common notification
  12220. interface and multiple, selectable \"styles\", whose use is fully
  12221. customizable by the user.")
  12222. (license license:gpl2+)))
  12223. (define-public emacs-zones
  12224. (package
  12225. (name "emacs-zones")
  12226. (version "2019.7.13")
  12227. (source
  12228. (origin
  12229. (method url-fetch)
  12230. (uri (string-append "https://elpa.gnu.org/packages/"
  12231. "zones-" version ".el"))
  12232. (sha256
  12233. (base32 "0qp1ba2pkqx9d35g7z8hf8qs2k455krf2a92l4rka3ipsbnmq5k1"))))
  12234. (build-system emacs-build-system)
  12235. (home-page "https://www.emacswiki.org/emacs/Zones")
  12236. (synopsis "Define and act on multiple zones of buffer text")
  12237. (description
  12238. "Library @file{zones.el} lets you easily define and subsequently act on
  12239. multiple zones of buffer text. You can think of this as enlarging the notion
  12240. of region. In effect, it can remove the requirement of target text being
  12241. a contiguous sequence of characters. A set of buffer zones is, in effect,
  12242. a (typically) noncontiguous set of text.")
  12243. (license license:gpl3+)))
  12244. (define-public emacs-mu4e-alert
  12245. (package
  12246. (name "emacs-mu4e-alert")
  12247. (version "1.0")
  12248. (source
  12249. (origin
  12250. (method git-fetch)
  12251. (uri (git-reference
  12252. (url "https://github.com/iqbalansari/mu4e-alert")
  12253. (commit (string-append "v" version))))
  12254. (file-name (git-file-name name version))
  12255. (sha256
  12256. (base32 "1nvsfbfsma59ilf7c3vjngnmx3aapwvvvaafdy5szm5r6lkicqvg"))))
  12257. (build-system emacs-build-system)
  12258. (propagated-inputs
  12259. `(("emacs-alert" ,emacs-alert)
  12260. ("emacs-s" ,emacs-s)
  12261. ("emacs-ht" ,emacs-ht)
  12262. ("mu" ,mu)))
  12263. (home-page "https://github.com/iqbalansari/mu4e-alert")
  12264. (synopsis "Desktop notification for mu4e")
  12265. (description
  12266. "This package provides desktop notifications for mu4e.
  12267. Additionally it can display the number of unread emails in the
  12268. mode-line.")
  12269. (license license:gpl3+)))
  12270. (define-public emacs-mu4e-jump-to-list
  12271. (let ((commit "358bba003543b49ffa266e503e54aebd0ebe614b")
  12272. (revision "1"))
  12273. (package
  12274. (name "emacs-mu4e-jump-to-list")
  12275. (version (git-version "1.0" revision commit))
  12276. (source
  12277. (origin
  12278. (method git-fetch)
  12279. (uri (git-reference
  12280. (url "https://gitlab.com/wavexx/mu4e-jump-to-list.el.git")
  12281. (commit commit)))
  12282. (file-name (git-file-name name version))
  12283. (sha256
  12284. (base32
  12285. "00y9nap61q1z2cdql4k9g7fgi2gdgd9iy5s5lzrd9a4agbx6r7sv"))))
  12286. (build-system emacs-build-system)
  12287. (propagated-inputs
  12288. `(("mu" ,mu)))
  12289. (home-page "https://gitlab.com/wavexx/mu4e-jump-to-list.el")
  12290. (synopsis "Select and view mailing lists in mu4e")
  12291. (description
  12292. "@code{mu4e-jump-to-list} allows you to select and view mailing lists
  12293. automatically using existing List-ID headers in your mu database. Just press
  12294. \"l\" in the headers view and any mailing list you've subscribed to will be
  12295. automatically discovered and presented in recency order.")
  12296. (license license:gpl3+))))
  12297. (define-public emacs-mu4e-patch
  12298. (let ((commit "522da46c1653b1cacc79cde91d6534da7ae9517d")
  12299. (revision "1"))
  12300. (package
  12301. (name "emacs-mu4e-patch")
  12302. (version (git-version "0.1.0" revision commit))
  12303. (source (origin
  12304. (method git-fetch)
  12305. (uri (git-reference
  12306. (url "https://github.com/seanfarley/mu4e-patch")
  12307. (commit commit)))
  12308. (file-name (git-file-name name version))
  12309. (sha256
  12310. (base32
  12311. "10lzf3b70pk6rzdrgx0ww0gc94v0ydh9zj1gbsa20xw27ds7hmfn"))))
  12312. (build-system emacs-build-system)
  12313. (propagated-inputs
  12314. `(("mu" ,mu)))
  12315. (home-page "https://github.com/seanfarley/mu4e-patch")
  12316. (synopsis "Colorize patch-like emails in mu4e")
  12317. (description
  12318. "Extension for mu4e to colorize patch-like emails with diff-mode.
  12319. This is based on Frank Terbeck's @code{gnus-article-treat-patch.el} but has
  12320. been adapted to work with mu4e.")
  12321. (license license:gpl3+))))
  12322. (define-public emacs-pretty-mode
  12323. (package
  12324. (name "emacs-pretty-mode")
  12325. (version "2.0.3")
  12326. (source
  12327. (origin
  12328. (method git-fetch)
  12329. (uri (git-reference
  12330. (url "https://github.com/akatov/pretty-mode/")
  12331. (commit version)))
  12332. (file-name (git-file-name name version))
  12333. (sha256
  12334. (base32
  12335. "013fig9i4fyx16krp2vfv953p3rwdzr38zs6i50af4pqz4vrcfvh"))))
  12336. (build-system emacs-build-system)
  12337. (home-page "https://github.com/akatov/pretty-mode")
  12338. (synopsis "Redisplay parts of the buffer as Unicode symbols")
  12339. (description
  12340. "Emacs minor mode for redisplaying parts of the buffer as pretty symbols.")
  12341. (license license:gpl3+)))
  12342. (define-public emacs-yasnippet
  12343. (package
  12344. (name "emacs-yasnippet")
  12345. (version "0.14.0")
  12346. (source
  12347. (origin
  12348. (method git-fetch)
  12349. (uri (git-reference
  12350. (url "https://github.com/joaotavora/yasnippet")
  12351. (commit version)))
  12352. (file-name (git-file-name name version))
  12353. (sha256
  12354. (base32 "0via9dzw8m5lzymg1h78xkwjssh39zr3g6ccyamlf1rjzjsyxknv"))))
  12355. (build-system emacs-build-system)
  12356. (arguments
  12357. `(#:tests? #t
  12358. #:test-command '("emacs" "--batch"
  12359. "-l" "yasnippet-tests.el"
  12360. "-f" "ert-run-tests-batch-and-exit")
  12361. #:phases
  12362. (modify-phases %standard-phases
  12363. ;; Set HOME, otherwise test-rebindings fails.
  12364. (add-before 'check 'set-home
  12365. (lambda _
  12366. (setenv "HOME" (getcwd))
  12367. #t)))))
  12368. (home-page "https://github.com/joaotavora/yasnippet")
  12369. (synopsis "Yet another snippet extension for Emacs")
  12370. (description "YASnippet is a template system for Emacs. It allows you to
  12371. type an abbreviation and automatically expand it into function templates.")
  12372. (license license:gpl3+)))
  12373. (define-public emacs-yasnippet-snippets
  12374. (package
  12375. (name "emacs-yasnippet-snippets")
  12376. (version "1.0")
  12377. (source
  12378. (origin
  12379. (method git-fetch)
  12380. (uri (git-reference
  12381. (url "https://github.com/AndreaCrotti/yasnippet-snippets")
  12382. (commit version)))
  12383. (file-name (git-file-name name version))
  12384. (sha256
  12385. (base32 "0m78jxhjyf4212ig2ncxr6bhhd6yx4c3nc8x4ylamzq21x4fl21r"))))
  12386. (build-system emacs-build-system)
  12387. (arguments
  12388. `(#:include (cons* "^snippets\\/" %default-include)))
  12389. (propagated-inputs
  12390. `(("emacs-yasnippet" ,emacs-yasnippet)))
  12391. (home-page "https://github.com/AndreaCrotti/yasnippet-snippets")
  12392. (synopsis "Collection of YASnippet snippets for many languages")
  12393. (description "This package provides an extensive collection of YASnippet
  12394. snippets. When this package is installed, the extra snippets it provides are
  12395. automatically made available to YASnippet.")
  12396. (license license:gpl3+)))
  12397. (define-public emacs-doom-snippets
  12398. ;; Use the latest commit, as there are no tagged releases. Version is
  12399. ;; extracted from main file.
  12400. (let ((release "1.1.0")
  12401. (revision "0")
  12402. (commit "bc613f448eed1bd363e61c41691a61e9fd139534"))
  12403. (package
  12404. (name "emacs-doom-snippets")
  12405. (version (git-version release revision commit))
  12406. (source
  12407. (origin
  12408. (method git-fetch)
  12409. (uri (git-reference
  12410. (url "https://github.com/hlissner/doom-snippets")
  12411. (commit commit)))
  12412. (file-name (git-file-name name version))
  12413. (sha256
  12414. (base32 "0n4b2pr0gpn8vb2n1rckdq4jk9sj995a62yxk6z2ygw5ad7pkj8f"))))
  12415. (build-system emacs-build-system)
  12416. (arguments
  12417. `(#:include (cons* "^.*\\/" %default-include)))
  12418. (propagated-inputs
  12419. `(("emacs-yasnippet" ,emacs-yasnippet)))
  12420. (home-page "https://github.com/hlissner/doom-snippets")
  12421. (synopsis "Doom Emacs' snippet library")
  12422. (description
  12423. "This package provides Yasnippets snippets for Doom Emacs. It also
  12424. exposes a small API to assist in writing your own snippets.")
  12425. (license license:expat))))
  12426. (define-public emacs-helm-c-yasnippet
  12427. (let ((commit "65ca732b510bfc31636708aebcfe4d2d845b59b0")
  12428. (revision "1"))
  12429. (package
  12430. (name "emacs-helm-c-yasnippet")
  12431. (version (string-append "0.6.7" "-" revision "."
  12432. (string-take commit 7)))
  12433. (source (origin
  12434. (method git-fetch)
  12435. (uri (git-reference
  12436. (url "https://github.com/emacs-jp/helm-c-yasnippet")
  12437. (commit commit)))
  12438. (file-name (git-file-name name version))
  12439. (sha256
  12440. (base32
  12441. "1cbafjqlzxbg19xfdqsinsh7afq58gkf44rsg1qxfgm8g6zhr7f8"))))
  12442. (build-system emacs-build-system)
  12443. (propagated-inputs
  12444. `(("emacs-helm" ,emacs-helm)
  12445. ("emacs-yasnippet" ,emacs-yasnippet)))
  12446. (home-page "https://github.com/emacs-jp/helm-c-yasnippet")
  12447. (synopsis "Helm integration for Yasnippet")
  12448. (description "This Emacs library provides Helm interface for
  12449. Yasnippet.")
  12450. (license license:gpl2+))))
  12451. (define-public emacs-helm-system-packages
  12452. (package
  12453. (name "emacs-helm-system-packages")
  12454. (version "1.10.2")
  12455. (source (origin
  12456. (method git-fetch)
  12457. (uri (git-reference
  12458. (url "https://github.com/emacs-helm/helm-system-packages")
  12459. (commit (string-append "v" version))))
  12460. (file-name (git-file-name name version))
  12461. (sha256
  12462. (base32
  12463. "13a8jpj4wwm0yjv8hnsizgjf8wi3r2ap87lyvw7g4c7snp2dydwa"))))
  12464. (build-system emacs-build-system)
  12465. (inputs
  12466. `(("recutils" ,recutils)))
  12467. (propagated-inputs
  12468. `(("emacs-helm" ,emacs-helm)))
  12469. (arguments
  12470. `(#:phases
  12471. (modify-phases %standard-phases
  12472. (add-after 'unpack 'configure
  12473. (lambda* (#:key inputs outputs #:allow-other-keys)
  12474. (let ((recutils (assoc-ref inputs "recutils")))
  12475. ;; Specify the absolute file names of the various
  12476. ;; programs so that everything works out-of-the-box.
  12477. (substitute* "helm-system-packages-guix.el"
  12478. (("recsel") (string-append recutils "/bin/recsel")))))))))
  12479. (home-page "https://github.com/emacs-helm/helm-system-packages")
  12480. (synopsis "Helm System Packages is an interface to your package manager")
  12481. (description "List all available packages in Helm (with installed
  12482. packages displayed in their own respective face). Fuzzy-search, mark and
  12483. execute the desired action over any selections of packages: Install,
  12484. uninstall, display packages details (in Org Mode) or insert details at point,
  12485. find files owned by packages... And much more, including performing all the
  12486. above over the network.")
  12487. (license license:gpl3+)))
  12488. (define-public emacs-helm-org-rifle
  12489. (package
  12490. (name "emacs-helm-org-rifle")
  12491. (version "1.7.1")
  12492. (source
  12493. (origin
  12494. (method git-fetch)
  12495. (uri (git-reference
  12496. (url "https://github.com/alphapapa/helm-org-rifle")
  12497. (commit version)))
  12498. (file-name (git-file-name name version))
  12499. (sha256
  12500. (base32
  12501. "0pm6va26kadjvbai4qsnjc2bk379w2nk6h3b5f0c2yv3q5na0p49"))))
  12502. (build-system emacs-build-system)
  12503. (propagated-inputs
  12504. `(("emacs-dash" ,emacs-dash)
  12505. ("emacs-f" ,emacs-f)
  12506. ("emacs-helm" ,emacs-helm)
  12507. ("emacs-org" ,emacs-org)
  12508. ("emacs-s" ,emacs-s)))
  12509. (home-page "https://github.com/alphapapa/helm-org-rifle")
  12510. (synopsis "Rifle through Org files")
  12511. (description "This package searches both headings and contents of entries
  12512. in Org buffers and displays matching entries.")
  12513. (license license:gpl3+)))
  12514. (define-public emacs-dired-git-info
  12515. ;; Upstream has no proper release. The base version is extracted from the
  12516. ;; "Version" keyword in the main file.
  12517. (let ((commit "91d57e3a4c5104c66a3abc18e281ee55e8979176")
  12518. (revision "0"))
  12519. (package
  12520. (name "emacs-dired-git-info")
  12521. (version (git-version "0.3.1" revision commit))
  12522. (source
  12523. (origin
  12524. (method git-fetch)
  12525. (uri
  12526. (git-reference
  12527. (url "https://github.com/clemera/dired-git-info")
  12528. (commit commit)))
  12529. (file-name (git-file-name name version))
  12530. (sha256
  12531. (base32 "1dr4iv95s4barxxj56znqkl9z0lg5jw731jmjr01s6vn8ar69gik"))))
  12532. (build-system emacs-build-system)
  12533. (home-page "https://github.com/clemera/dired-git-info/")
  12534. (synopsis "Show git info in Emacs Dired")
  12535. (description "This Emacs package provides a minor mode which shows git
  12536. information inside the Dired buffer.")
  12537. (license license:gpl3+))))
  12538. (define-public emacs-dired-toggle-sudo
  12539. (let ((commit "13bbe52c54893f5aa3e56228450ffdd0c9e1d169")
  12540. (revision "0"))
  12541. (package
  12542. (name "emacs-dired-toggle-sudo")
  12543. (version (git-version "1.0" revision commit))
  12544. (source
  12545. (origin
  12546. (method git-fetch)
  12547. (uri (git-reference
  12548. (url "https://github.com/renard/dired-toggle-sudo")
  12549. (commit commit)))
  12550. (file-name (git-file-name name version))
  12551. (sha256
  12552. (base32
  12553. "1fw1pb1z6krqd1pfxxhr6rrfr9ckkcb0zsjzbjk0i2i1q5cg6car"))))
  12554. (build-system emacs-build-system)
  12555. (home-page "https://github.com/renard/dired-toggle-sudo")
  12556. (synopsis "Browse directory with @code{sudo} privileges")
  12557. (description "This package allows for the use of @code{dired} with
  12558. @code{sudo} privileges.")
  12559. (license license:wtfpl2))))
  12560. (define-public emacs-diredfl
  12561. (package
  12562. (name "emacs-diredfl")
  12563. (version "0.4")
  12564. (source
  12565. (origin
  12566. (method git-fetch)
  12567. (uri
  12568. (git-reference
  12569. (url "https://github.com/purcell/diredfl")
  12570. (commit version)))
  12571. (file-name (git-file-name name version))
  12572. (sha256
  12573. (base32 "1zb2lz7rp58zqvpniqcsmqabi7nqg2d8bfd0hgmq68bn2hd25b5z"))))
  12574. (build-system emacs-build-system)
  12575. (home-page "https://github.com/purcell/diredfl/")
  12576. (synopsis "Extra Emacs font lock rules for a more colourful Dired")
  12577. (description "This library enables additional font locking in Dired mode.
  12578. This is adapted from the extra font lock rules provided by Drew Adams' Dired+
  12579. package.")
  12580. (license license:gpl3+)))
  12581. (define-public emacs-memoize
  12582. (package
  12583. (name "emacs-memoize")
  12584. (version "1.1")
  12585. (source
  12586. (origin
  12587. (method git-fetch)
  12588. (uri (git-reference
  12589. (url "https://github.com/skeeto/emacs-memoize")
  12590. (commit version)))
  12591. (file-name (git-file-name name version))
  12592. (sha256
  12593. (base32 "04qgnlg4x6va7x364dhj1wbjmz8p5iq2vk36mn9198k2vxmijwzk"))))
  12594. (build-system emacs-build-system)
  12595. (arguments
  12596. `(#:tests? #t
  12597. #:test-command '("emacs" "--batch"
  12598. "-l" "memoize-test.el"
  12599. "-f" "ert-run-tests-batch-and-exit")))
  12600. (home-page "https://github.com/skeeto/emacs-memoize")
  12601. (synopsis "Emacs lisp memoization library")
  12602. (description "@code{emacs-memoize} is an Emacs library for
  12603. memoizing functions.")
  12604. (license license:unlicense)))
  12605. (define-public emacs-linum-relative
  12606. (package
  12607. (name "emacs-linum-relative")
  12608. (version "0.6")
  12609. (source
  12610. (origin
  12611. (method git-fetch)
  12612. (uri (git-reference
  12613. (url "https://github.com/coldnew/linum-relative")
  12614. (commit version)))
  12615. (file-name (git-file-name name version))
  12616. (sha256
  12617. (base32 "0b3n1gk2w1p72x0zfdz9l70winq2fnjpjrgq0awxx730xk7ypp5n"))))
  12618. (build-system emacs-build-system)
  12619. (home-page "https://github.com/coldnew/linum-relative")
  12620. (synopsis "Relative line numbering for Emacs")
  12621. (description "@code{emacs-linum-relative} displays the relative line
  12622. number on the left margin in Emacs.")
  12623. (license license:gpl2+)))
  12624. (define-public emacs-idle-highlight
  12625. (package
  12626. (name "emacs-idle-highlight")
  12627. (version "1.1.3")
  12628. (source
  12629. (origin
  12630. (method git-fetch)
  12631. (uri (git-reference
  12632. (url "https://github.com/nonsequitur/idle-highlight-mode")
  12633. (commit version)))
  12634. (file-name (git-file-name name version))
  12635. (sha256
  12636. (base32 "0x4w1ksrw7dicl84zpf4d4scg672dyan9g95jkn6zvri0lr8xciv"))))
  12637. (build-system emacs-build-system)
  12638. (home-page "https://www.emacswiki.org/emacs/IdleHighlight")
  12639. (synopsis "Highlights all occurrences of the word the point is on")
  12640. (description
  12641. "This Emacs package provides @code{idle-highlight-mode} that sets
  12642. an idle timer to highlight all occurrences in the buffer of the word under
  12643. the point.")
  12644. (license license:gpl3+)))
  12645. (define-public emacs-ox-twbs
  12646. (package
  12647. (name "emacs-ox-twbs")
  12648. (version "1.1.4")
  12649. (source
  12650. (origin
  12651. (method git-fetch)
  12652. (uri (git-reference
  12653. (url "https://github.com/marsmining/ox-twbs")
  12654. (commit (string-append "v" version))))
  12655. (file-name (git-file-name name version))
  12656. (sha256
  12657. (base32 "0nffy7ivs8fw0dj3s66hbsby0riz5wrv7xzm8g9mrfvhki938pqa"))))
  12658. (build-system emacs-build-system)
  12659. (home-page "https://github.com/marsmining/ox-twbs")
  12660. (synopsis "Export org-mode docs as HTML compatible with Twitter Bootstrap")
  12661. (description
  12662. "This Emacs package outputs your org-mode docs with a simple, clean and
  12663. modern look. It implements a new HTML back-end for exporting org-mode docs as
  12664. HTML compatible with Twitter Bootstrap. By default, HTML is exported with
  12665. jQuery and Bootstrap resources included via osscdn.")
  12666. (license license:gpl3+)))
  12667. (define-public emacs-highlight-sexp
  12668. (package
  12669. (name "emacs-highlight-sexp")
  12670. (version "1.0")
  12671. (source
  12672. (origin
  12673. (method git-fetch)
  12674. (uri (git-reference
  12675. (url "https://github.com/daimrod/highlight-sexp")
  12676. (commit (string-append "v" version))))
  12677. (file-name (git-file-name name version))
  12678. (sha256
  12679. (base32 "12cyk2q5g6p4ac2hykw1cag7dp1prjjnck5f7nalwwaklmy62y79"))))
  12680. (build-system emacs-build-system)
  12681. (home-page "https://github.com/daimrod/highlight-sexp")
  12682. (synopsis "Minor mode that highlights the s-exp at the current position")
  12683. (description
  12684. "This Emacs package highlights the s-exp at the current position.")
  12685. (license license:gpl3+)))
  12686. (define-public emacs-highlight-stages
  12687. (let ((commit "29cbc5b78261916da042ddb107420083da49b271")
  12688. (revision "1"))
  12689. (package
  12690. (name "emacs-highlight-stages")
  12691. (version (string-append "1.1.0" "-" revision "." (string-take commit 7)))
  12692. (source
  12693. (origin
  12694. (method git-fetch)
  12695. (uri (git-reference
  12696. (url "https://github.com/zk-phi/highlight-stages")
  12697. (commit commit)))
  12698. (file-name (git-file-name name version))
  12699. (sha256
  12700. (base32
  12701. "0r6nbcrr0dqpgm8dir8ahzjy7rw4nrac48byamzrq96r7ajlxlv0"))
  12702. (patches
  12703. (search-patches "emacs-highlight-stages-add-gexp.patch"))))
  12704. (build-system emacs-build-system)
  12705. (home-page "https://github.com/wigust/highlight-stages")
  12706. (synopsis "Minor mode that highlights (quasi-quoted) expressions")
  12707. (description "@code{highlight-stages} provides an Emacs minor mode that
  12708. highlights quasi-quoted expressions.")
  12709. (license license:gpl3+))))
  12710. (define-public emacspeak
  12711. (package
  12712. (name "emacspeak")
  12713. (version "53.0")
  12714. (source
  12715. (origin
  12716. (method url-fetch)
  12717. (uri (string-append
  12718. "https://github.com/tvraman/emacspeak/releases/download/"
  12719. version "/emacspeak-" version ".tar.bz2"))
  12720. (sha256
  12721. (base32 "0lasj4ggsh93ingf46n16wxfx5zzxvr1igikbmdqlz3i99j331gs"))))
  12722. (build-system gnu-build-system)
  12723. (arguments
  12724. '(#:make-flags (list (string-append "prefix="
  12725. (assoc-ref %outputs "out")))
  12726. #:phases
  12727. (modify-phases %standard-phases
  12728. (replace 'configure
  12729. (lambda* (#:key inputs outputs #:allow-other-keys)
  12730. (setenv "SHELL" (which "sh"))
  12731. ;; Ensure the tclespeak.so binary is found in the correct location
  12732. ;; by adding the path to the Tclx library to the Tcl $auto_path
  12733. ;; variable.
  12734. (with-fluids ((%default-port-encoding "ISO-8859-1"))
  12735. (substitute* "servers/espeak"
  12736. (("package require Tclx")
  12737. (string-append "set auto_path [linsert $auto_path 0 "
  12738. (assoc-ref inputs "tclx")
  12739. "/lib]\n"
  12740. "package require Tclx"))))
  12741. ;; Configure Emacspeak according to etc/install.org.
  12742. (invoke "make" "config")))
  12743. (add-after 'build 'build-espeak
  12744. (lambda _
  12745. (invoke "make" "espeak")))
  12746. (replace 'install
  12747. (lambda* (#:key inputs outputs #:allow-other-keys)
  12748. (let* ((out (assoc-ref outputs "out"))
  12749. (bin (string-append out "/bin"))
  12750. (lisp (string-append out "/share/emacs/site-lisp/emacspeak"))
  12751. (info (string-append out "/share/info"))
  12752. (emacs (search-input-file inputs "/bin/emacs")))
  12753. ;; According to etc/install.org, the Emacspeak directory should
  12754. ;; be copied to its installation destination.
  12755. (for-each
  12756. (lambda (file)
  12757. (copy-recursively file (string-append lisp "/" file)))
  12758. '("etc" "info" "js" "lisp" "media" "servers" "sounds"
  12759. "stumpwm" "xsl"))
  12760. ;; Make sure emacspeak is loaded from the correct directory.
  12761. (substitute* "run"
  12762. (("\\./lisp/emacspeak-setup.el")
  12763. (string-append lisp "/lisp/emacspeak-setup.el")))
  12764. ;; Install the convenient startup script.
  12765. (mkdir-p bin)
  12766. (copy-file "run" (string-append bin "/emacspeak")))
  12767. #t)))
  12768. #:tests? #f)) ; no check target
  12769. (inputs
  12770. `(("emacs" ,emacs)
  12771. ("espeak" ,espeak-ng)
  12772. ("perl" ,perl)
  12773. ("tcl" ,tcl)
  12774. ("tclx" ,tclx)))
  12775. (home-page "http://emacspeak.sourceforge.net")
  12776. (synopsis "Audio desktop interface for Emacs")
  12777. (description
  12778. "Emacspeak is a speech interface that allows visually impaired users to
  12779. interact independently and efficiently with the computer. Audio
  12780. formatting---a technique pioneered by AsTeR---and full support for W3C's Aural
  12781. CSS (ACSS) allows Emacspeak to produce rich aural presentations of electronic
  12782. information. By seamlessly blending all aspects of the Internet such as
  12783. Web-surfing and messaging, Emacspeak speech-enables local and remote
  12784. information via a consistent and well-integrated user interface.")
  12785. (license license:gpl2+)))
  12786. (define-public emacs-adaptive-wrap
  12787. (package
  12788. (name "emacs-adaptive-wrap")
  12789. (version "0.8")
  12790. (source
  12791. (origin
  12792. (method url-fetch)
  12793. (uri (string-append "https://elpa.gnu.org/packages/"
  12794. "adaptive-wrap-" version ".tar"))
  12795. (sha256
  12796. (base32 "1gs1pqzywvvw4prj63vpj8abh8h14pjky11xfl23pgpk9l3ldrb0"))))
  12797. (build-system emacs-build-system)
  12798. (home-page "https://elpa.gnu.org/packages/adaptive-wrap.html")
  12799. (synopsis "Smart line-wrapping with wrap-prefix")
  12800. (description
  12801. "This Emacs package provides the @code{adaptive-wrap-prefix-mode}
  12802. minor mode which sets the wrap-prefix property on the fly so that
  12803. single-long-line paragraphs get word-wrapped in a way similar to what
  12804. you'd get with @kbd{M-q} using @code{adaptive-fill-mode}, but without
  12805. actually changing the buffer's text.")
  12806. (license license:gpl3+)))
  12807. (define-public emacs-diff-hl
  12808. (package
  12809. (name "emacs-diff-hl")
  12810. (version "1.8.8")
  12811. (source
  12812. (origin
  12813. (method git-fetch)
  12814. (uri (git-reference
  12815. (url "https://github.com/dgutov/diff-hl")
  12816. (commit version)))
  12817. (file-name (git-file-name name version))
  12818. (sha256
  12819. (base32 "075klzf66z1rvhpxv4j694pdkmi7f4fpw6c8q4ncz0h4y5wdbl8w"))))
  12820. (build-system emacs-build-system)
  12821. (home-page "https://github.com/dgutov/diff-hl")
  12822. (synopsis
  12823. "Highlight uncommitted changes using VC")
  12824. (description
  12825. "@code{diff-hl-mode} highlights uncommitted changes on the side of the
  12826. window (using the fringe, by default), allows you to jump between
  12827. the hunks and revert them selectively.")
  12828. (license license:gpl3+)))
  12829. (define-public emacs-diminish
  12830. (package
  12831. (name "emacs-diminish")
  12832. (version "0.45")
  12833. (source
  12834. (origin
  12835. (method git-fetch)
  12836. (uri (git-reference
  12837. (url "https://github.com/myrjola/diminish.el")
  12838. (commit (string-append "v" version))))
  12839. (file-name (git-file-name name version))
  12840. (sha256
  12841. (base32 "0qpgfgp8hrzz4vdifxq8h25n0a0jlzgf7aa1fpy6r0080v5rqbb6"))))
  12842. (build-system emacs-build-system)
  12843. (home-page "https://github.com/myrjola/diminish.el")
  12844. (synopsis "Diminish minor modes with no modeline display")
  12845. (description "@code{emacs-diminish} implements hiding or
  12846. abbreviation of the mode line displays (lighters) of minor modes.")
  12847. (license license:gpl2+)))
  12848. (define-public emacs-use-package
  12849. (package
  12850. (name "emacs-use-package")
  12851. (version "2.4.1")
  12852. (source (origin
  12853. (method git-fetch)
  12854. (uri (git-reference
  12855. (url "https://github.com/jwiegley/use-package")
  12856. (commit version)))
  12857. (file-name (git-file-name name version))
  12858. (sha256
  12859. (base32
  12860. "088kl3bml0rs5bkfymgzr15ram9qvy66h1kaisrbkynh0yxvf8g9"))))
  12861. (build-system emacs-build-system)
  12862. (native-inputs
  12863. `(("texinfo" ,texinfo)))
  12864. (propagated-inputs
  12865. `(("emacs-diminish" ,emacs-diminish)))
  12866. (arguments
  12867. `(#:tests? #t
  12868. #:test-command '("emacs" "--batch"
  12869. "-l" "use-package-tests.el"
  12870. "-f" "ert-run-tests-batch-and-exit")
  12871. #:phases
  12872. (modify-phases %standard-phases
  12873. (add-before 'install 'install-manual
  12874. (lambda* (#:key outputs #:allow-other-keys)
  12875. (let* ((out (assoc-ref outputs "out"))
  12876. (info-dir (string-append out "/share/info")))
  12877. (mkdir-p info-dir)
  12878. (install-file "use-package.info" info-dir)
  12879. #t)))
  12880. (add-before 'install-manual 'build-manual
  12881. (lambda _
  12882. (invoke "makeinfo" "use-package.texi")
  12883. #t)))))
  12884. (home-page "https://github.com/jwiegley/use-package")
  12885. (synopsis "Declaration for simplifying your .emacs")
  12886. (description "The use-package macro allows you to isolate package
  12887. configuration in your @file{.emacs} file in a way that is both
  12888. performance-oriented and tidy.")
  12889. (license license:gpl2+)))
  12890. (define-public emacs-leaf
  12891. (package
  12892. (name "emacs-leaf")
  12893. (version "4.5.2")
  12894. (source
  12895. (origin
  12896. (method url-fetch)
  12897. (uri (string-append "https://elpa.gnu.org/packages/"
  12898. "leaf-" version ".tar"))
  12899. (sha256
  12900. (base32 "0i90shhhkpdcwmfi8zv0008qgmg4g3cqd2yvpycfv9n2axvhag54"))))
  12901. (build-system emacs-build-system)
  12902. (home-page "https://github.com/conao3/leaf.el")
  12903. (synopsis "Simplify your init.el configuration, extended use-package")
  12904. (description
  12905. "This package provides macros that allows you to declaratively configure
  12906. settings typical of an Elisp package with various keywords. The syntax is
  12907. similar, but not identical to use-package -- overall, leaf aims at a cleaner
  12908. and more predictable implementation.")
  12909. (license license:agpl3+)))
  12910. (define-public emacs-strace-mode
  12911. (let* ((commit "6a69b4b06db6797af56f33eda5cb28af94e59f11")
  12912. (revision "1"))
  12913. (package
  12914. (name "emacs-strace-mode")
  12915. (version (string-append "0.0.2-" revision "." (string-take commit 7)))
  12916. (source (origin
  12917. (method git-fetch)
  12918. (uri (git-reference
  12919. (url "https://github.com/pkmoore/strace-mode")
  12920. (commit commit)))
  12921. (file-name (git-file-name name version))
  12922. (sha256
  12923. (base32
  12924. "1lbk2kzdznf2bkfazizfbimaxxzfzv00lrz1ran9dc2zqbc0bj9f"))))
  12925. (build-system emacs-build-system)
  12926. (home-page "https://github.com/pkmoore/strace-mode")
  12927. (synopsis "Emacs major mode to highlight strace outputs")
  12928. (description "@code{emacs-strace-mode} provides an Emacs major mode
  12929. highlighting strace outputs.")
  12930. (license license:gpl3+))))
  12931. (define-public emacs-default-encrypt
  12932. (package
  12933. (name "emacs-default-encrypt")
  12934. (version "4.4")
  12935. (source
  12936. (origin
  12937. (method url-fetch)
  12938. (uri (string-append
  12939. "https://informationelle-selbstbestimmung-im-internet.de"
  12940. "/emacs/jl-encrypt" version "/jl-encrypt.el"))
  12941. (file-name (string-append "jl-encrypt-" version ".el"))
  12942. (sha256
  12943. (base32
  12944. "0w9ggz075j1zwg7d0rv9k8238g600p7czfnnsnawswi7yps2xk78"))))
  12945. (build-system emacs-build-system)
  12946. (home-page
  12947. "https://informationelle-selbstbestimmung-im-internet.de/Emacs.html")
  12948. (synopsis "Automatically encrypt or sign Gnus messages in Emacs")
  12949. (description
  12950. "DefaultEncrypt is designed to be used with Gnus in Emacs. It
  12951. automatically encrypts messages that you send (e.g., email) when public keys
  12952. for all recipients are available, and it protects you from accidentally
  12953. sending un-encrypted messages. It can also be configured to automatically
  12954. sign messages that you send. For details and instructions on how to use
  12955. DefaultEncrypt, please refer to the home page or read the comments in the
  12956. source file, @file{jl-encrypt.el}.")
  12957. (license license:gpl3+)))
  12958. (define-public emacs-extend-smime
  12959. (package
  12960. (name "emacs-extend-smime")
  12961. (version "3.3")
  12962. (source
  12963. (origin
  12964. (method url-fetch)
  12965. (uri (string-append
  12966. "https://informationelle-selbstbestimmung-im-internet.de"
  12967. "/emacs/jl-smime" version "/jl-smime.el"))
  12968. (file-name (string-append "jl-smime-" version ".el"))
  12969. (sha256
  12970. (base32
  12971. "1iv8s2wjmv3v5qfwlcy9hvvrmxxvp3f8m1krlr789q7bbh35jynh"))))
  12972. (build-system emacs-build-system)
  12973. (home-page
  12974. "https://informationelle-selbstbestimmung-im-internet.de/Emacs.html")
  12975. (synopsis "Improved S/MIME support for Gnus in Emacs")
  12976. (propagated-inputs
  12977. `(("emacs-default-encrypt" ,emacs-default-encrypt)))
  12978. (description
  12979. ;; TRANSLATORS: ExtendSMIME, DefaultEncrypt, and emacs-default-encrypt
  12980. ;; should not be translated. The name "emacs-default-encrypt" refers to
  12981. ;; the Guix package that provides DefaultEncrypt.
  12982. "ExtendSMIME is designed to be used with Gnus in Emacs. It enhances
  12983. DefaultEncrypt (emacs-default-encrypt) to support S/MIME (Secure/Multipurpose
  12984. Internet Mail Extensions) via LDAP (Lightweight Directory Access Protocol).
  12985. Before a message (e.g., email) is sent, ExtendSMIME searches for missing
  12986. certificates via LDAP and imports them into @code{gpgsm}. When certificates
  12987. for all recipients are available, DefaultEncrypt automatically encrypts the
  12988. message. For details and instructions on how to use ExtendSMIME, please refer
  12989. to the home page or read the comments in the source file,
  12990. @file{jl-smime.el}.")
  12991. (license license:gpl3+)))
  12992. (define-public emacs-htmlize
  12993. (package
  12994. (name "emacs-htmlize")
  12995. (version "1.56")
  12996. (source
  12997. (origin
  12998. (method git-fetch)
  12999. (uri (git-reference
  13000. (url "https://github.com/hniksic/emacs-htmlize")
  13001. (commit (string-append "release/" version))))
  13002. (file-name (git-file-name name version))
  13003. (sha256
  13004. (base32 "14m8si49br62lgx7asdyp9jysq0v6midrfk32sxy521ydqmqr3c1"))))
  13005. (build-system emacs-build-system)
  13006. (home-page "https://github.com/hniksic/emacs-htmlize")
  13007. (synopsis "Convert buffer text and decorations to HTML")
  13008. (description "@code{emacs-htmlize} converts the buffer text and
  13009. the associated decorations to HTML. Output to CSS, inline CSS and
  13010. fonts is supported.")
  13011. (license license:gpl2+)))
  13012. (define-public emacs-xmlgen
  13013. (package
  13014. (name "emacs-xmlgen")
  13015. (version "0.5")
  13016. (source
  13017. (origin
  13018. (method git-fetch)
  13019. (uri (git-reference
  13020. (url "https://github.com/philjackson/xmlgen")
  13021. (commit version)))
  13022. (file-name (git-file-name name version))
  13023. (sha256
  13024. (base32 "096i29v0badx0a6339h9ckdz78zj59gbjdp7vj7vhkq9d830392s"))))
  13025. (build-system emacs-build-system)
  13026. (arguments
  13027. `(#:tests? #t
  13028. #:test-command '("emacs" "--batch"
  13029. "-l" "xmlgen-test.el"
  13030. "-f" "ert-run-tests-batch-and-exit")))
  13031. (home-page "https://github.com/philjackson/xmlgen")
  13032. (synopsis "S-expression to XML domain specific language (DSL) in
  13033. Emacs Lisp")
  13034. (description "@code{emacs-xmlgen} provides S-expression to XML
  13035. conversion for Emacs Lisp.")
  13036. (license license:gpl2+)))
  13037. (define-public emacs-cdlatex
  13038. (package
  13039. (name "emacs-cdlatex")
  13040. (version "4.7")
  13041. (source
  13042. (origin
  13043. (method git-fetch)
  13044. (uri (git-reference
  13045. (url "https://github.com/cdominik/cdlatex")
  13046. (commit version)))
  13047. (file-name (git-file-name name version))
  13048. (sha256
  13049. (base32 "1jj9vmhc4s3ych08bjm1c2xwi81z1p20rj7bvxrgvb5aga2ghi9d"))))
  13050. (build-system emacs-build-system)
  13051. (propagated-inputs
  13052. `(("emacs-auctex" ,emacs-auctex)))
  13053. (home-page "https://github.com/cdominik/cdlatex")
  13054. (synopsis "Fast Emacs input methods for LaTeX environments and
  13055. math")
  13056. (description "CDLaTeX is an Emacs minor mode supporting fast
  13057. insertion of environment templates and math in LaTeX. Similar
  13058. commands are also offered as part of the AUCTeX package, but it is not
  13059. the same - CDLaTeX focuses on speediness for inserting LaTeX
  13060. constructs.")
  13061. (license license:gpl3+)))
  13062. (define-public emacs-cnfonts
  13063. (package
  13064. (name "emacs-cnfonts")
  13065. (version "0.9.1")
  13066. (source
  13067. (origin
  13068. (method git-fetch)
  13069. (uri (git-reference
  13070. (url "https://github.com/tumashu/cnfonts")
  13071. (commit (string-append "v" version))))
  13072. (file-name (git-file-name name version))
  13073. (sha256
  13074. (base32 "11d44lf0m0kbzq1mvyqkl4aprys0xqaarp08nij57xnynin1rynx"))))
  13075. (build-system emacs-build-system)
  13076. (home-page "https://github.com/tumashu/cnfonts")
  13077. (synopsis "Emacs Chinese fonts setup tool")
  13078. (description "cnfonts is a Chinese fonts setup tool, allowing for easy
  13079. configuration of Chinese fonts.")
  13080. (license license:gpl2+)))
  13081. (define-public emacs-boon
  13082. (package
  13083. (name "emacs-boon")
  13084. (version "1.2")
  13085. (source
  13086. (origin
  13087. (method git-fetch)
  13088. (uri (git-reference
  13089. (url "https://github.com/jyp/boon")
  13090. (commit version)))
  13091. (file-name (git-file-name name version))
  13092. (sha256
  13093. (base32 "18il2licf8pgfcrpx2bk55gpf8f537kb9cxqz83jldkhiyry74il"))))
  13094. (build-system emacs-build-system)
  13095. (propagated-inputs
  13096. `(("emacs-dash" ,emacs-dash)
  13097. ("emacs-expand-region" ,emacs-expand-region)
  13098. ("emacs-multiple-cursors" ,emacs-multiple-cursors)
  13099. ("emacs-powerline" ,emacs-powerline)
  13100. ("emacs-spaceline" ,emacs-spaceline)))
  13101. (home-page "https://github.com/jyp/boon")
  13102. (synopsis "Ergonomic command mode for Emacs")
  13103. (description "Boon is a complete package for modal editing with a focus on
  13104. ergonomics and modularity. Spacial allocation of keys comes first, mnemonics
  13105. second. Most common operations are mapped to the home row, common editing
  13106. commands are bound to keys reachable with the left hand and movement keys are
  13107. reached with the right hand.")
  13108. (license license:gpl3+)))
  13109. (define-public emacs-csharp-mode
  13110. (package
  13111. (name "emacs-csharp-mode")
  13112. (version "0.12.0")
  13113. (source
  13114. (origin
  13115. (method git-fetch)
  13116. (uri (git-reference
  13117. (url "https://github.com/josteink/csharp-mode")
  13118. (commit version)))
  13119. (file-name (git-file-name name version))
  13120. (sha256
  13121. (base32 "1x40xm9d5sbxbnyxl12ppkzlgxzyn0bjg2vmc139jpkazmmw7r7k"))))
  13122. (build-system emacs-build-system)
  13123. (home-page "https://github.com/josteink/csharp-mode")
  13124. (synopsis "Major mode for C# code")
  13125. (description
  13126. "This is a C# editing mode for Emacs, based on CC mode. It handles
  13127. syntax coloring, indentation, insertion of matched pairs of curly braces and
  13128. documentation generation. In addition, it provides menu-based navigation
  13129. using Imenu, and Compilation mode support for MSBuild, devenv and xbuild.")
  13130. ;; XXX: Project switched to GPL3+ after 0.10.0 release.
  13131. (license license:gpl2+)))
  13132. (define-public emacs-php-mode
  13133. (package
  13134. (name "emacs-php-mode")
  13135. (version "1.24.0")
  13136. (source
  13137. (origin
  13138. (method git-fetch)
  13139. (uri (git-reference
  13140. (url "https://github.com/ejmr/php-mode")
  13141. (commit (string-append "v" version))))
  13142. (file-name (git-file-name name version))
  13143. (sha256
  13144. (base32 "0bs9q62bd7885c39v7x1qz3w1fhpmpdgm72xwsk2yygw0ii425nn"))))
  13145. (build-system emacs-build-system)
  13146. (arguments
  13147. `(#:phases
  13148. (modify-phases %standard-phases
  13149. (add-after 'unpack 'enter-source-directory
  13150. (lambda _
  13151. (chdir "lisp"))))))
  13152. (propagated-inputs `(("emacs-projectile" ,emacs-projectile)))
  13153. (home-page "https://github.com/ejmr/php-mode")
  13154. (synopsis "Major mode for editing PHP code")
  13155. (description
  13156. "PHP mode is a major mode for editing PHP source code. It's an extension
  13157. of C mode; thus it inherits all C mode's navigation functionality. But it
  13158. colors according to the PHP grammar and indents according to the PEAR coding
  13159. guidelines. It also includes a couple handy IDE-type features such as
  13160. documentation search and a source and class browser.")
  13161. (license license:gpl3+)))
  13162. (define-public emacs-pos-tip
  13163. (package
  13164. (name "emacs-pos-tip")
  13165. (version "0.4.6")
  13166. (source
  13167. (origin
  13168. (method git-fetch)
  13169. (uri (git-reference
  13170. (url "https://github.com/pitkali/pos-tip")
  13171. (commit version)))
  13172. (file-name (git-file-name name version))
  13173. (sha256
  13174. (base32 "0w8bnspnk871qndp18hs0wk4x9x31xr9rwbvf5dc8mcbnj29ch33"))))
  13175. (build-system emacs-build-system)
  13176. ;; The following functions and variables needed by emacs-pos-tip are
  13177. ;; not included in emacs-minimal:
  13178. ;; x-display-pixel-width, x-display-pixel-height, x-show-tip
  13179. (arguments `(#:emacs ,emacs))
  13180. (home-page "https://github.com/pitkali/pos-tip")
  13181. (synopsis "Show tooltip at point")
  13182. (description "The standard library tooltip.el provides a function for
  13183. displaying a tooltip at the mouse position. However, locating a tooltip at an
  13184. arbitrary buffer position in a window is not easy. Pos-tip provides such a
  13185. function to be used by other frontend programs.")
  13186. (license license:gpl2+)))
  13187. (define-public emacs-pyim-basedict
  13188. ;; XXX: The commit below points to the un-tagged 0.5.0 release.
  13189. (let ((commit "7495c974ada99f9fed96d8e85d8b97dabce9532c"))
  13190. (package
  13191. (name "emacs-pyim-basedict")
  13192. (version "0.5.0")
  13193. (source
  13194. (origin
  13195. (method git-fetch)
  13196. (uri (git-reference
  13197. (url "https://github.com/tumashu/pyim-basedict")
  13198. (commit commit)))
  13199. (file-name (git-file-name name version))
  13200. (sha256
  13201. (base32 "02asrh0adgjc5nn1ps7dq5zr38hkscnzc04sdpyjzvnmfcqsw7qb"))))
  13202. (build-system emacs-build-system)
  13203. (home-page "https://github.com/tumashu/pyim-basedict")
  13204. (synopsis "Input method dictionary of pyim")
  13205. (description "Pyim-basedict is the default pinyin input method dictionary,
  13206. containing words from the Rime project.")
  13207. (license license:gpl2+))))
  13208. (define-public emacs-pyim
  13209. (package
  13210. (name "emacs-pyim")
  13211. (version "3.9.4")
  13212. (source
  13213. (origin
  13214. (method url-fetch)
  13215. (uri (string-append "https://elpa.gnu.org/packages/pyim-" version ".tar"))
  13216. (sha256
  13217. (base32 "0ggnl2jidcklyhqd5av5kk1f855gsq29wq2nhvp1yjzn35hz6xij"))))
  13218. (build-system emacs-build-system)
  13219. (propagated-inputs
  13220. `(("emacs-async" ,emacs-async)
  13221. ("emacs-pyim-basedict" ,emacs-pyim-basedict)
  13222. ("emacs-popup" ,emacs-popup)
  13223. ("emacs-posframe" ,emacs-posframe)
  13224. ("emacs-xr" ,emacs-xr)))
  13225. (home-page "https://github.com/tumashu/pyim")
  13226. (synopsis "Chinese input method")
  13227. (description
  13228. "This package provides a Chinese input method which supports quanpin,
  13229. shuangpin, wubi and cangjie.")
  13230. (license license:gpl2+)))
  13231. (define-public emacs-pinyinlib
  13232. (package
  13233. (name "emacs-pinyinlib")
  13234. (version "0.1.1")
  13235. (source
  13236. (origin
  13237. (method git-fetch)
  13238. (uri (git-reference
  13239. (url "https://github.com/cute-jumper/pinyinlib.el")
  13240. (commit version)))
  13241. (file-name (git-file-name name version))
  13242. (sha256
  13243. (base32
  13244. "1nwj4c3y0kdlkf3jqd2dnibaiazrq6qcj533xk2qw4wmx072yij0"))))
  13245. (build-system emacs-build-system)
  13246. (home-page "https://github.com/cute-jumper/pinyinlib.el")
  13247. (synopsis "Convert first letter of Pinyin to Chinese characters")
  13248. (description
  13249. "This Emacs library provides functionality for converting the first
  13250. letter of Pinyin to Simplified/Traditional Chinese characters.")
  13251. (license license:gpl3+)))
  13252. (define-public emacs-reverse-im
  13253. (package
  13254. (name "emacs-reverse-im")
  13255. (version "0.0.7")
  13256. (source
  13257. (origin
  13258. (method git-fetch)
  13259. (uri (git-reference
  13260. (url "https://github.com/a13/reverse-im.el")
  13261. (commit (string-append "v" version))))
  13262. (file-name (git-file-name name version))
  13263. (sha256
  13264. (base32 "05k2zp2hldzq5h6nl8gx79dd8lvfn507ad4x3naichdqgn2013nn"))))
  13265. (build-system emacs-build-system)
  13266. (home-page "https://github.com/a13/reverse-im.el")
  13267. (synopsis "Reverse mapping for non-default system layouts")
  13268. (description
  13269. "Reverse IM provides a minor mode that toggles translations for all input
  13270. methods from a given list.")
  13271. (license license:gpl3+)))
  13272. (define-public emacs-posframe
  13273. (package
  13274. (name "emacs-posframe")
  13275. (version "1.0.4")
  13276. (source
  13277. (origin
  13278. (method url-fetch)
  13279. (uri (string-append "https://elpa.gnu.org/packages/"
  13280. "posframe-" version ".tar"))
  13281. (sha256
  13282. (base32 "0i2pw90gw9zb22gj8yyvcp3b2k1bxxhbjj0idvr5iz1vd9023bc6"))))
  13283. (build-system emacs-build-system)
  13284. ;; emacs-minimal does not include the function font-info.
  13285. (arguments
  13286. `(#:emacs ,emacs))
  13287. (home-page "https://github.com/tumashu/posframe")
  13288. (synopsis "Pop a posframe (a child frame) at point")
  13289. (description
  13290. "Posframe can pop a posframe at point. A posframe is a child frame
  13291. displayed within its root window's buffer. Posframe is fast and works well
  13292. with CJK languages.")
  13293. (license license:gpl3+)))
  13294. (define-public emacs-el2org
  13295. (package
  13296. (name "emacs-el2org")
  13297. (version "0.6.0")
  13298. (source
  13299. (origin
  13300. (method git-fetch)
  13301. (uri (git-reference
  13302. (url "https://github.com/tumashu/el2org")
  13303. (commit (string-append "v" version))))
  13304. (file-name (git-file-name name version))
  13305. (sha256
  13306. (base32 "0mzddqny6wpg1fv99xrvlv7rxmaifvmy5bvj4in4pldhm4cx4q1b"))))
  13307. (build-system emacs-build-system)
  13308. (home-page "https://github.com/tumashu/el2org")
  13309. (synopsis "Convert Emacs-lisp file to org file")
  13310. (description "El2org is a simple tool, which can convert Emacs-lisp file
  13311. to org file, you can use this tool to write orgify commentary.")
  13312. (license license:gpl2+)))
  13313. (define-public emacs-muse
  13314. (package
  13315. (name "emacs-muse")
  13316. (version "3.20.2")
  13317. (source
  13318. (origin
  13319. (method url-fetch)
  13320. (uri (string-append "https://elpa.gnu.org/packages/"
  13321. "muse-" version ".tar"))
  13322. (sha256
  13323. (base32 "0g2ff6x45x2k5dnkp31sk3bjj92jyhhnar7l5hzn8vp22l0rv8wn"))))
  13324. (build-system emacs-build-system)
  13325. (home-page "https://www.gnu.org/software/emacs-muse")
  13326. (synopsis "Authoring and publishing environment for Emacs")
  13327. (description
  13328. "Emacs Muse (also known as Muse) is an authoring and publishing
  13329. environment for Emacs. It simplifies the process of writing documents and
  13330. publishing them to various output formats such as HTML, LaTeX, or PDF.")
  13331. (license license:gpl3+)))
  13332. (define-public emacs-mustache
  13333. (package
  13334. (name "emacs-mustache")
  13335. (version "0.23")
  13336. (source
  13337. (origin
  13338. (method git-fetch)
  13339. (uri (git-reference
  13340. (url "https://github.com/Wilfred/mustache.el")
  13341. (commit version)))
  13342. (file-name (git-file-name name version))
  13343. (sha256
  13344. (base32 "1n2ymd92qpvsby6ms0l3kjhdzzc47rri2aiscc6bs07hm4mjpr9q"))))
  13345. (build-system emacs-build-system)
  13346. (propagated-inputs
  13347. `(("emacs-dash" ,emacs-dash)
  13348. ("emacs-ht" ,emacs-ht)
  13349. ("emacs-s" ,emacs-s)))
  13350. (home-page "https://github.com/Wilfred/mustache.el")
  13351. (synopsis "Mustache templating library for Emacs")
  13352. (description "Mustache templating library for Emacs, mustache is
  13353. a simple web template system, which is described as a logic-less system
  13354. because it lacks any explicit control flow statements, both looping and
  13355. conditional evaluation can be achieved using section tags processing lists
  13356. and lambdas.")
  13357. (license license:gpl3+)))
  13358. (define-public emacs-org2web
  13359. (package
  13360. (name "emacs-org2web")
  13361. (version "0.9.1")
  13362. (source
  13363. (origin
  13364. (method git-fetch)
  13365. (uri (git-reference
  13366. (url "https://github.com/tumashu/org2web")
  13367. (commit (string-append "v" version))))
  13368. (file-name (git-file-name name version))
  13369. (sha256
  13370. (base32 "0wsvfn409a2ivbich8b8zqza78sprirg4bl7igx536ydqclmi0n7"))))
  13371. (build-system emacs-build-system)
  13372. (propagated-inputs
  13373. `(("emacs-dash" ,emacs-dash)
  13374. ("emacs-el2org" ,emacs-el2org)
  13375. ("emacs-ht" ,emacs-ht)
  13376. ("emacs-mustache" ,emacs-mustache)
  13377. ("emacs-simple-httpd" ,emacs-simple-httpd)))
  13378. (home-page "https://github.com/tumashu/org2web")
  13379. (synopsis "Static site generator based on org-mode ")
  13380. (description "Org2web is a static site generator based on org-mode,
  13381. which code derived from Kelvin H's org-page.")
  13382. (license license:gpl2+)))
  13383. (define-public emacs-xelb
  13384. (package
  13385. (name "emacs-xelb")
  13386. (version "0.18")
  13387. (source (origin
  13388. (method url-fetch)
  13389. (uri (string-append "https://elpa.gnu.org/packages/xelb-"
  13390. version ".tar"))
  13391. (sha256
  13392. (base32
  13393. "1fp5mzl63sh0h3ws4l5p4qgvi7ny8a3fj6k4dhqa98xgw2bx03v7"))))
  13394. (build-system emacs-build-system)
  13395. ;; The following functions and variables needed by emacs-xelb are
  13396. ;; not included in emacs-minimal:
  13397. ;; x-display-screens, x-keysym-table, x-alt-keysym, x-meta-keysym
  13398. ;; x-hyper-keysym, x-super-keysym, libxml-parse-xml-region
  13399. ;; x-display-pixel-width, x-display-pixel-height
  13400. (arguments
  13401. `(#:emacs ,emacs
  13402. #:phases
  13403. (modify-phases %standard-phases
  13404. (add-after 'unpack 'regenerate-el-files
  13405. (lambda* (#:key inputs #:allow-other-keys)
  13406. (invoke "make"
  13407. (string-append "PROTO_PATH="
  13408. (assoc-ref inputs "xcb-proto")
  13409. "/share/xcb")
  13410. (string-append "EMACS_BIN="
  13411. (assoc-ref inputs "emacs")
  13412. "/bin/emacs -Q")))))))
  13413. (native-inputs `(("xcb-proto" ,xcb-proto)))
  13414. (home-page "https://github.com/ch11ng/xelb")
  13415. (synopsis "X protocol Emacs Lisp binding")
  13416. (description "@code{emacs-xelb} is a pure Emacs Lisp implementation of the
  13417. X11 protocol based on the XML description files from the XCB project. It
  13418. features an object-oriented API and permits a certain degree of concurrency.
  13419. It should enable you to implement low-level X11 applications.")
  13420. (license license:gpl3+)))
  13421. (define-public emacs-exwm
  13422. (package
  13423. (name "emacs-exwm")
  13424. (version "0.24")
  13425. (synopsis "Emacs X window manager")
  13426. (source
  13427. (origin
  13428. (method url-fetch)
  13429. (uri (string-append "https://elpa.gnu.org/packages/"
  13430. "exwm-" version ".tar"))
  13431. (sha256
  13432. (base32 "0lj1a3cmbpf4h6x8k6x8cdm1qb51ca6filydnvi5zcda8zpl060s"))
  13433. (patches
  13434. ;; Patch fixing fullscreen view. Applied upstream as
  13435. ;; edb930005b0ba83051ca8a59b493e9a3c8ef580a. It can be removed in
  13436. ;; next release.
  13437. (search-patches "emacs-exwm-fix-fullscreen-states.patch"))))
  13438. (build-system emacs-build-system)
  13439. (propagated-inputs
  13440. `(("emacs-xelb" ,emacs-xelb)))
  13441. (inputs
  13442. `(("xhost" ,xhost)
  13443. ("dbus" ,dbus)))
  13444. ;; The following functions and variables needed by emacs-exwm are
  13445. ;; not included in emacs-minimal:
  13446. ;; scroll-bar-mode, fringe-mode
  13447. ;; x-display-pixel-width, x-display-pixel-height
  13448. (arguments
  13449. `(#:emacs ,emacs
  13450. #:phases
  13451. (modify-phases %standard-phases
  13452. (add-after 'build 'install-xsession
  13453. (lambda* (#:key inputs outputs #:allow-other-keys)
  13454. (let* ((out (assoc-ref outputs "out"))
  13455. (xsessions (string-append out "/share/xsessions"))
  13456. (bin (string-append out "/bin"))
  13457. (exwm-executable (string-append bin "/exwm")))
  13458. ;; Add a .desktop file to xsessions
  13459. (mkdir-p xsessions)
  13460. (mkdir-p bin)
  13461. (make-desktop-entry-file
  13462. (string-append xsessions "/exwm.desktop")
  13463. #:name ,name
  13464. #:comment ,synopsis
  13465. #:exec exwm-executable
  13466. #:try-exec exwm-executable)
  13467. ;; Add a shell wrapper to bin
  13468. (with-output-to-file exwm-executable
  13469. (lambda _
  13470. (format #t "#!~a ~@
  13471. ~a +SI:localuser:$USER ~@
  13472. exec ~a --exit-with-session ~a \"$@\" --eval '~s' ~%"
  13473. (search-input-file inputs "/bin/sh")
  13474. (search-input-file inputs "/bin/xhost")
  13475. (search-input-file inputs "/bin/dbus-launch")
  13476. (search-input-file inputs "/bin/emacs")
  13477. '(cond
  13478. ((file-exists-p "~/.exwm")
  13479. (load-file "~/.exwm"))
  13480. ((not (featurep 'exwm))
  13481. (require 'exwm)
  13482. (require 'exwm-config)
  13483. (exwm-config-default)
  13484. (message (concat "exwm configuration not found. "
  13485. "Falling back to default configuration...")))))))
  13486. (chmod exwm-executable #o555)
  13487. #t))))))
  13488. (home-page "https://github.com/ch11ng/exwm")
  13489. (description
  13490. "EXWM is a full-featured tiling X window manager for Emacs built on top
  13491. of XELB.")
  13492. (license license:gpl3+)))
  13493. (define-public emacs-xelb-no-x-toolkit
  13494. (package
  13495. (inherit emacs-xelb)
  13496. (name "emacs-xelb-no-x-toolkit")
  13497. (arguments
  13498. (substitute-keyword-arguments (package-arguments emacs-xelb)
  13499. ((#:emacs emacs) `,emacs-no-x-toolkit)))))
  13500. (define-public emacs-exwm-no-x-toolkit
  13501. (package
  13502. (inherit emacs-exwm)
  13503. (name "emacs-exwm-no-x-toolkit")
  13504. (synopsis "Emacs X window manager (without an X toolkit)")
  13505. (propagated-inputs
  13506. `(("emacs-xelb-no-x-toolkit" ,emacs-xelb-no-x-toolkit)))
  13507. (arguments
  13508. (substitute-keyword-arguments (package-arguments emacs-exwm)
  13509. ((#:emacs emacs) `,emacs-no-x-toolkit)))))
  13510. (define-public emacs-switch-window
  13511. (package
  13512. (name "emacs-switch-window")
  13513. (version "1.6.2")
  13514. (source
  13515. (origin
  13516. (method git-fetch)
  13517. (uri (git-reference
  13518. (url "https://github.com/dimitri/switch-window")
  13519. (commit (string-append "v" version))))
  13520. (file-name (git-file-name name version))
  13521. (sha256
  13522. (base32
  13523. "0rci96asgamr6qp6nkyr5vwrnslswjxcjd96yccy4aivh0g66yfg"))))
  13524. (build-system emacs-build-system)
  13525. (home-page "https://github.com/dimitri/switch-window")
  13526. (synopsis "Emacs window switch tool")
  13527. (description "Switch-window is an emacs window switch tool, which
  13528. offer a visual way to choose a window to switch to, delete, split or
  13529. other operations.")
  13530. (license license:wtfpl2)))
  13531. (define-public emacs-exwm-x
  13532. (package
  13533. (name "emacs-exwm-x")
  13534. (version "2.0.2")
  13535. (synopsis "Derivative window manager based on EXWM")
  13536. (source
  13537. (origin
  13538. (method git-fetch)
  13539. (uri (git-reference
  13540. (url "https://github.com/tumashu/exwm-x")
  13541. (commit (string-append "v" version))))
  13542. (file-name (git-file-name name version))
  13543. (sha256
  13544. (base32
  13545. "0h248mma7kky30jr9bbhmp95wchl2cx5p6kh0gxmzpbc247dn2cc"))))
  13546. (build-system emacs-build-system)
  13547. (propagated-inputs
  13548. `(("emacs-counsel" ,emacs-counsel)
  13549. ("emacs-exwm" ,emacs-exwm)
  13550. ("emacs-switch-window" ,emacs-switch-window)
  13551. ("emacs-use-package" ,emacs-use-package)))
  13552. (inputs
  13553. `(("xhost" ,xhost)
  13554. ("dbus" ,dbus)))
  13555. ;; Need emacs instead of emacs-minimal,
  13556. ;; for emacs's bin path will be inserted into bin/exwm-x file.
  13557. (arguments
  13558. `(#:emacs ,emacs
  13559. #:phases
  13560. (modify-phases %standard-phases
  13561. (add-after 'build 'install-xsession
  13562. (lambda* (#:key inputs outputs #:allow-other-keys)
  13563. (let* ((out (assoc-ref outputs "out"))
  13564. (xsessions (string-append out "/share/xsessions"))
  13565. (bin (string-append out "/bin"))
  13566. (exwm-executable (string-append bin "/exwm-x")))
  13567. ;; Add a .desktop file to xsessions
  13568. (mkdir-p xsessions)
  13569. (mkdir-p bin)
  13570. (with-output-to-file
  13571. (string-append xsessions "/exwm-x.desktop")
  13572. (lambda _
  13573. (format #t "[Desktop Entry]~@
  13574. Name=~a~@
  13575. Comment=~a~@
  13576. Exec=~a~@
  13577. TryExec=~@*~a~@
  13578. Type=Application~%" ,name ,synopsis exwm-executable)))
  13579. ;; Add a shell wrapper to bin
  13580. (with-output-to-file exwm-executable
  13581. (lambda _
  13582. (format #t "#!~a ~@
  13583. ~a +SI:localuser:$USER ~@
  13584. exec ~a --exit-with-session ~a \"$@\" --eval '~s' ~%"
  13585. (search-input-file inputs "/bin/sh")
  13586. (search-input-file inputs "/bin/xhost")
  13587. (search-input-file inputs "/bin/dbus-launch")
  13588. (search-input-file inputs "/bin/emacs")
  13589. '(require 'exwmx-loader))))
  13590. (chmod exwm-executable #o555)
  13591. #t))))))
  13592. (home-page "https://github.com/tumashu/exwm-x")
  13593. (description "EXWM-X is a derivative window manager based on EXWM, with focus
  13594. on mouse-control.")
  13595. (license license:gpl3+)))
  13596. (define-public emacs-gnugo
  13597. (package
  13598. (name "emacs-gnugo")
  13599. (version "3.1.1")
  13600. (source
  13601. (origin
  13602. (method url-fetch)
  13603. (uri (string-append "https://elpa.gnu.org/packages/gnugo-"
  13604. version ".tar"))
  13605. (sha256
  13606. (base32
  13607. "035rgiz42q042h41l4cvf0hr8igy2vyn3s1hsl2pgh2dq2jjylv6"))))
  13608. (build-system emacs-build-system)
  13609. (arguments
  13610. `(#:phases (modify-phases %standard-phases
  13611. (add-after 'unpack 'configure-default-gnugo-xpms-variable
  13612. (lambda _
  13613. (substitute* "gnugo.el"
  13614. (("defvar gnugo-xpms nil")
  13615. "defvar gnugo-xpms #'gnugo-imgen-create-xpms"))
  13616. #t)))))
  13617. (propagated-inputs
  13618. `(("emacs-ascii-art-to-unicode" ,emacs-ascii-art-to-unicode)
  13619. ("emacs-xpm" ,emacs-xpm)))
  13620. (home-page "https://elpa.gnu.org/packages/gnugo.html")
  13621. (synopsis "Emacs major mode for playing GNU Go")
  13622. (description "This package provides an Emacs based interface for GNU Go.
  13623. It has a graphical mode where the board and stones are drawn using XPM images
  13624. and supports the use of a mouse.")
  13625. (license license:gpl3+)))
  13626. (define-public emacs-gnuplot
  13627. (package
  13628. (name "emacs-gnuplot")
  13629. (version "0.8.0")
  13630. (source
  13631. (origin
  13632. (method git-fetch)
  13633. (uri (git-reference
  13634. (url "https://github.com/emacsorphanage/gnuplot-mode")
  13635. (commit version)))
  13636. (file-name (git-file-name name version))
  13637. (sha256
  13638. (base32 "09y177sq24gs7wwjihw59g0m4n1rv2ws9890ynxjxawv823r0fxm"))))
  13639. (build-system emacs-build-system)
  13640. (home-page "https://github.com/emacsorphanage/gnuplot-mode")
  13641. (synopsis "Emacs major mode for interacting with Gnuplot")
  13642. (description
  13643. "Emacs Gnuplot is an Emacs major mode for interacting with Gnuplot.")
  13644. (license license:gpl2+)))
  13645. (define-public emacs-transpose-frame
  13646. (package
  13647. (name "emacs-transpose-frame")
  13648. (version "0.2.0")
  13649. (source
  13650. (origin
  13651. (method git-fetch)
  13652. (uri (git-reference
  13653. (url "https://github.com/emacsorphanage/transpose-frame")
  13654. (commit (string-append "v" version))))
  13655. (file-name (git-file-name name version))
  13656. (sha256
  13657. (base32 "01j4ci0c52r2c31hc9r4p7nsb6s8blmvg50g9n5v5h3afjl1c35v"))))
  13658. (build-system emacs-build-system)
  13659. (home-page "https://www.emacswiki.org/emacs/TransposeFrame")
  13660. (synopsis "Transpose window arrangement in current frame")
  13661. (description "@code{emacs-transpose-frame} provides some interactive
  13662. functions which allows users to transpose windows arrangement in currently
  13663. selected frame.")
  13664. (license license:bsd-2)))
  13665. (define-public emacs-key-chord
  13666. (package
  13667. (name "emacs-key-chord")
  13668. (version "0.6")
  13669. (source
  13670. (origin
  13671. (method url-fetch)
  13672. (uri "https://www.emacswiki.org/emacs/download/key-chord.el")
  13673. (file-name (string-append "key-chord-" version ".el"))
  13674. (sha256
  13675. (base32
  13676. "03m44pqggfrd53nh9dvpdjgm0rvca34qxmd30hr33hzprzjambxg"))))
  13677. (build-system emacs-build-system)
  13678. (home-page "https://www.emacswiki.org/emacs/key-chord.el")
  13679. (synopsis "Map pairs of simultaneously pressed keys to Emacs commands")
  13680. (description "@code{emacs-key-chord} provides @code{key-chord-mode}, a
  13681. mode for binding key chords to commands. A key chord is defined as two keys
  13682. pressed simultaneously or a single key quickly pressed twice.")
  13683. (license license:gpl2+)))
  13684. (define-public emacs-evil-surround
  13685. (package
  13686. (name "emacs-evil-surround")
  13687. (version "1.1.1")
  13688. (source
  13689. (origin
  13690. (method git-fetch)
  13691. (uri (git-reference
  13692. (url "https://github.com/emacs-evil/evil-surround")
  13693. (commit version)))
  13694. (file-name (git-file-name name version))
  13695. (sha256
  13696. (base32 "1gfgmr4909m36gknprcam6q4rkcqfbi6w43ky7x6jnlmgb6mxggg"))))
  13697. (build-system emacs-build-system)
  13698. (propagated-inputs
  13699. `(("emacs-evil" ,emacs-evil)))
  13700. (arguments
  13701. `(#:tests? #t
  13702. #:test-command '("make" "test")))
  13703. (home-page "https://github.com/emacs-evil/evil-surround")
  13704. (synopsis "Easily modify surrounding parentheses and quotes")
  13705. (description "@code{emacs-evil-surround} allows easy deletion, change and
  13706. addition of surrounding pairs, such as parentheses and quotes, in evil mode.")
  13707. (license license:gpl3+)))
  13708. (define-public emacs-evil-commentary
  13709. (package
  13710. (name "emacs-evil-commentary")
  13711. (version "2.2.0")
  13712. (source
  13713. (origin
  13714. (method git-fetch)
  13715. (uri (git-reference
  13716. (url "https://github.com/linktohack/evil-commentary")
  13717. (commit (string-append "v" version))))
  13718. (file-name (git-file-name name version))
  13719. (sha256
  13720. (base32 "1l8zi9wlg1f7ffm8gh92qwk3q7h6cdl8b8zkd9hcda53mq6klpjr"))))
  13721. (build-system emacs-build-system)
  13722. (propagated-inputs
  13723. `(("emacs-evil" ,emacs-evil)))
  13724. (home-page "https://github.com/linktohack/evil-commentary")
  13725. (synopsis "Comment out code in evil mode")
  13726. (description "@code{emacs-evil-commentary} adds keybindings to easily
  13727. comment out lines of code in evil mode. It provides @code{gcc} to comment out
  13728. lines, and @code{gc} to comment out the target of a motion.")
  13729. (license license:gpl3+)))
  13730. ;; Tests for emacs-ansi have a circular dependency with ert-runner, and
  13731. ;; therefore cannot be run
  13732. (define-public emacs-ansi
  13733. (let ((commit "a41d5cc719297515d85bb5256980cd1204a71b88")
  13734. (revision "1"))
  13735. (package
  13736. (name "emacs-ansi")
  13737. (version (git-version "0.4.1" revision commit))
  13738. (source
  13739. (origin
  13740. (method git-fetch)
  13741. (uri (git-reference
  13742. (url "https://github.com/rejeep/ansi.el")
  13743. (commit commit)))
  13744. (file-name (git-file-name name version))
  13745. (sha256
  13746. (base32 "051v8dmji90chwbsyqsqry7h35mksal2j6rgw1kpmjsni86d79y1"))))
  13747. (build-system emacs-build-system)
  13748. (propagated-inputs
  13749. `(("emacs-dash" ,emacs-dash)
  13750. ("emacs-s" ,emacs-s)))
  13751. (home-page "https://github.com/rejeep/ansi.el")
  13752. (synopsis "Convert strings to ANSI")
  13753. (description "@code{emacs-ansi} defines functions that turns simple
  13754. strings to ANSI strings. Turning a string into an ANSI string can be to add
  13755. color to a text, add color in the background of a text or adding a style, such
  13756. as bold, underscore or italic.")
  13757. (license license:gpl3+))))
  13758. ;; Tests for emacs-commander have a circular dependency with ert-runner, and
  13759. ;; therefore cannot be run
  13760. (define-public emacs-commander
  13761. (package
  13762. (name "emacs-commander")
  13763. (version "0.7.0")
  13764. (source
  13765. (origin
  13766. (method git-fetch)
  13767. (uri (git-reference
  13768. (url "https://github.com/rejeep/commander.el")
  13769. (commit (string-append "v" version))))
  13770. (file-name (git-file-name name version))
  13771. (sha256
  13772. (base32 "1j6hhyzww7wfwk6bllbb5mk4hw4qs8hsgfbfdifsam9c6i4spm45"))))
  13773. (build-system emacs-build-system)
  13774. (propagated-inputs
  13775. `(("emacs-dash" ,emacs-dash)
  13776. ("emacs-f" ,emacs-f)
  13777. ("emacs-s" ,emacs-s)))
  13778. (home-page "https://github.com/rejeep/commander.el")
  13779. (synopsis "Emacs command line parser")
  13780. (description "@code{emacs-commander} provides command line parsing for
  13781. Emacs.")
  13782. (license license:gpl3+)))
  13783. (define-public emacs-eglot
  13784. (package
  13785. (name "emacs-eglot")
  13786. (version "1.7")
  13787. (source
  13788. (origin
  13789. (method url-fetch)
  13790. (uri (string-append "https://elpa.gnu.org/packages/"
  13791. "eglot-" version ".tar"))
  13792. (sha256
  13793. (base32 "1zvs144hxq2mmq1h0ynx9hy7yyccb46f3pjg9mgq8v9cw5y678vk"))))
  13794. (build-system emacs-build-system)
  13795. (propagated-inputs
  13796. `(("emacs-eldoc" ,emacs-eldoc)
  13797. ("emacs-jsonrpc" ,emacs-jsonrpc)
  13798. ("emacs-project" ,emacs-project)))
  13799. (home-page "https://github.com/joaotavora/eglot")
  13800. (synopsis "Client for Language Server Protocol (LSP) servers")
  13801. (description
  13802. "Emacs Polyglot, or Eglot, is an Emacs @acronym{Language Server Protocol,
  13803. LSP} client that stays out of the way. It guesses the LSP program to start
  13804. for the current file, using the major mode as a hint. It prompts you to enter
  13805. one if it fails.")
  13806. (license license:gpl3+)))
  13807. (define-public emacs-eldoc
  13808. (package
  13809. (name "emacs-eldoc")
  13810. (version "1.11.0")
  13811. (source
  13812. (origin
  13813. (method url-fetch)
  13814. (uri (string-append
  13815. "https://elpa.gnu.org/packages/eldoc-" version ".el"))
  13816. (sha256
  13817. (base32 "1py9l1vl7s90y5kfpglhy11jswam2gcrqap09h6wb5ldnyb8cgq2"))))
  13818. (build-system emacs-build-system)
  13819. (home-page "http://elpa.gnu.org/packages/eldoc.html")
  13820. (synopsis "Show function arglist or variable docstring in echo area")
  13821. (description
  13822. "This program was inspired by the behavior of the ``mouse documentation
  13823. window'' on many Lisp Machine systems; as you type a function's symbol name as
  13824. part of a sexp, it will print the argument list for that function. Behavior
  13825. is not identical; for example, you need not actually type the function name,
  13826. you need only move point around in a sexp that calls it. Also, if point is
  13827. over a documented variable, it will print the one-line documentation for that
  13828. variable instead, to remind you of that variable's meaning.")
  13829. (license license:gpl3+)))
  13830. ;; Tests for ert-runner have a circular dependency with ecukes, and therefore
  13831. ;; cannot be run
  13832. (define-public emacs-ert-runner
  13833. (package
  13834. (name "emacs-ert-runner")
  13835. (version "0.8.0")
  13836. (source
  13837. (origin
  13838. (method git-fetch)
  13839. (uri (git-reference
  13840. (url "https://github.com/rejeep/ert-runner.el")
  13841. (commit (string-append "v" version))))
  13842. (file-name (git-file-name name version))
  13843. (sha256
  13844. (base32
  13845. "08gygn9fjank5gpi4v6ynrkn0jbknxbwsn7md4p9ndygdbmnkf98"))))
  13846. (build-system emacs-build-system)
  13847. (inputs
  13848. `(("emacs-ansi" ,emacs-ansi)
  13849. ("emacs-commander" ,emacs-commander)
  13850. ("emacs-dash" ,emacs-dash)
  13851. ("emacs-f" ,emacs-f)
  13852. ("emacs-s" ,emacs-s)
  13853. ("emacs-shut-up" ,emacs-shut-up)))
  13854. (arguments
  13855. `(#:phases
  13856. (modify-phases %standard-phases
  13857. (add-after 'install 'install-executable
  13858. (lambda* (#:key inputs outputs #:allow-other-keys)
  13859. (let ((out (assoc-ref outputs "out"))
  13860. (source-directory (string-append
  13861. (getenv "TMPDIR") "/source")))
  13862. (substitute* "bin/ert-runner"
  13863. (("ERT_RUNNER=\"\\$\\(dirname \\$\\(dirname \\$0\\)\\)")
  13864. (string-append "ERT_RUNNER=\"" (elpa-directory out))))
  13865. (install-file "bin/ert-runner" (string-append out "/bin"))
  13866. (wrap-program (string-append out "/bin/ert-runner")
  13867. (list "EMACSLOADPATH" ":" 'prefix
  13868. ;; Do not capture the transient source directory in
  13869. ;; the wrapper.
  13870. (delete source-directory
  13871. (string-split (getenv "EMACSLOADPATH") #\:))))
  13872. #t))))
  13873. #:include (cons* "^reporters/.*\\.el$" %default-include)))
  13874. (home-page "https://github.com/rejeep/ert-runner.el")
  13875. (synopsis "Opinionated Ert testing workflow")
  13876. (description "@code{ert-runner} is a tool for Emacs projects tested
  13877. using ERT. It assumes a certain test structure setup and can therefore make
  13878. running tests easier.")
  13879. (license license:gpl3+)))
  13880. (define-public emacs-xtest
  13881. (package
  13882. (name "emacs-xtest")
  13883. (version "1.1.0")
  13884. (source (origin
  13885. (method git-fetch)
  13886. (uri (git-reference
  13887. (url "https://github.com/promethial/xtest")
  13888. (commit (string-append "v" version))))
  13889. (file-name (git-file-name name version))
  13890. (sha256
  13891. (base32
  13892. "1wqx6hlqcmqiljydih5fx89dw06g8w728pyn4iqsap8jwgjngb09"))))
  13893. (arguments
  13894. `(#:exclude '()))
  13895. (build-system emacs-build-system)
  13896. (home-page "https://github.com/promethial/xtest/")
  13897. (synopsis "Simple testing with Emacs")
  13898. (description "This package provides a simple testing library for Emacs.")
  13899. (license license:gpl3+)))
  13900. (define-public emacs-disable-mouse
  13901. (package
  13902. (name "emacs-disable-mouse")
  13903. (version "0.3")
  13904. (source
  13905. (origin
  13906. (method git-fetch)
  13907. (uri (git-reference
  13908. (url "https://github.com/purcell/disable-mouse")
  13909. (commit version)))
  13910. (file-name (git-file-name name version))
  13911. (sha256
  13912. (base32 "0l6mai68ns3qw3rlvjvzsnqwdy7bxqiy0vdwflq0l1plxb1vazyc"))))
  13913. (build-system emacs-build-system)
  13914. (home-page "https://github.com/purcell/disable-mouse")
  13915. (synopsis "Disable mouse commands globally")
  13916. (description
  13917. "Provides @code{disable-mouse-mode} and @code{global-disable-mouse-mode},
  13918. pair of minor modes which suppress all mouse events by intercepting them and
  13919. running a customisable handler command (@code{ignore} by default). ")
  13920. (license license:gpl3+)))
  13921. (define-public emacs-json-reformat
  13922. (package
  13923. (name "emacs-json-reformat")
  13924. (version "0.0.6")
  13925. (source
  13926. (origin
  13927. (method git-fetch)
  13928. (uri (git-reference
  13929. (url "https://github.com/gongo/json-reformat")
  13930. (commit version)))
  13931. (file-name (git-file-name name version))
  13932. (sha256
  13933. (base32 "0qp4n2k6s69jj4gwwimkpadjv245y54wk3bxb1x96f034gkp81vs"))
  13934. (patches (search-patches "emacs-json-reformat-fix-tests.patch"))))
  13935. (build-system emacs-build-system)
  13936. (propagated-inputs
  13937. `(("emacs-undercover" ,emacs-undercover)))
  13938. (native-inputs
  13939. `(("emacs-dash" ,emacs-dash)
  13940. ("emacs-shut-up" ,emacs-shut-up)
  13941. ("ert-runner" ,emacs-ert-runner)))
  13942. (arguments
  13943. `(#:tests? #t
  13944. #:test-command '("ert-runner")
  13945. #:phases
  13946. (modify-phases %standard-phases
  13947. (add-before 'check 'make-tests-writable
  13948. (lambda _
  13949. (for-each make-file-writable (find-files "test"))
  13950. #t))
  13951. (add-before 'check 'delete-json-objects-order-test
  13952. (lambda _
  13953. (emacs-batch-edit-file "test/json-reformat-test.el"
  13954. `(progn (progn (goto-char (point-min))
  13955. (re-search-forward
  13956. "ert-deftest json-reformat-test:json-reformat-region")
  13957. (beginning-of-line)
  13958. (kill-sexp))
  13959. (basic-save-buffer)))
  13960. #t)))))
  13961. (home-page "https://github.com/gongo/json-reformat")
  13962. (synopsis "Reformatting tool for JSON")
  13963. (description "@code{json-reformat} provides a reformatting tool for
  13964. @url{http://json.org/, JSON}.")
  13965. (license license:gpl3+)))
  13966. (define-public emacs-json-snatcher
  13967. (package
  13968. (name "emacs-json-snatcher")
  13969. (version "1.0.0")
  13970. (source
  13971. (origin
  13972. (method git-fetch)
  13973. (uri (git-reference
  13974. (url "https://github.com/Sterlingg/json-snatcher")
  13975. (commit version)))
  13976. (file-name (git-file-name name version))
  13977. (sha256
  13978. (base32 "05zsgnk7grgw9jzwl80h5sxfpifxlr37b4mkbvx7mjq4z14xc2jw"))))
  13979. (build-system emacs-build-system)
  13980. (home-page "https://github.com/sterlingg/json-snatcher")
  13981. (synopsis "Grabs the path to JSON values in a JSON file")
  13982. (description "@code{emacs-json-snatcher} grabs the path to JSON values in
  13983. a @url{http://json.org/, JSON} file.")
  13984. (license license:gpl3+)))
  13985. (define-public emacs-json-mode
  13986. (package
  13987. (name "emacs-json-mode")
  13988. (version "1.7.0")
  13989. (source
  13990. (origin
  13991. (method git-fetch)
  13992. (uri (git-reference
  13993. (url "https://github.com/joshwnj/json-mode")
  13994. (commit (string-append "v" version))))
  13995. (file-name (git-file-name name version))
  13996. (sha256
  13997. (base32 "0i79lqzdg59vkqwjd3q092xxn9vhxspb1vn4pkis0vfvn46g01jy"))))
  13998. (build-system emacs-build-system)
  13999. (propagated-inputs
  14000. `(("emacs-json-reformat" ,emacs-json-reformat)
  14001. ("emacs-json-snatcher" ,emacs-json-snatcher)))
  14002. (home-page "https://github.com/joshwnj/json-mode")
  14003. (synopsis "Major mode for editing JSON files")
  14004. (description "@code{json-mode} extends the builtin js-mode syntax
  14005. highlighting.")
  14006. (license license:gpl3+)))
  14007. (define-public emacs-jsonrpc
  14008. (package
  14009. (name "emacs-jsonrpc")
  14010. (version "1.0.14")
  14011. (source
  14012. (origin
  14013. (method url-fetch)
  14014. (uri (string-append "https://elpa.gnu.org/packages/"
  14015. "jsonrpc-" version ".el"))
  14016. (sha256
  14017. (base32 "069l0sqkambam4ikj9id36kdw1jdjna8v586d51m64hiz96rmvm6"))))
  14018. (build-system emacs-build-system)
  14019. (home-page "http://elpa.gnu.org/packages/jsonrpc.html")
  14020. (synopsis "JSON-RPC library")
  14021. (description
  14022. "This library implements the JSONRPC 2.0 specification as
  14023. described in @url{http://www.jsonrpc.org/}. As the name suggests,
  14024. JSONRPC is a generic Remote Procedure Call protocol designed around
  14025. JSON objects.")
  14026. (license license:gpl3+)))
  14027. (define-public emacs-jsonnet-mode
  14028. (package
  14029. (name "emacs-jsonnet-mode")
  14030. (version "0.1.3")
  14031. (source
  14032. (origin
  14033. (method git-fetch)
  14034. (uri (git-reference
  14035. (url "https://github.com/tminor/jsonnet-mode")
  14036. (commit (string-append "v" version))))
  14037. (file-name (git-file-name name version))
  14038. (sha256
  14039. (base32
  14040. "14nxfa91yg2243v4d5kvynp2645x3811ispmhmpgil3x9qbl9jg9"))))
  14041. (build-system emacs-build-system)
  14042. (propagated-inputs
  14043. `(("emacs-dash" ,emacs-dash)))
  14044. (home-page "https://github.com/tminor/jsonnet-mode")
  14045. (synopsis "Major mode for editing jsonnet files")
  14046. (description "This package provides syntax highlighting, indenting,
  14047. formatting, and utility methods for jsonnet files.")
  14048. (license license:gpl3+)))
  14049. (define-public emacs-restclient
  14050. (let ((commit "ac8aad6c6b9e9d918062fa3c89c22c2f4ec48bc3")
  14051. (version "0")
  14052. (revision "3")) ;Guix package revision,
  14053. ;upstream doesn't have official releases
  14054. (package
  14055. (name "emacs-restclient")
  14056. (version (git-version version revision commit))
  14057. (source (origin
  14058. (method git-fetch)
  14059. (uri (git-reference
  14060. (url "https://github.com/pashky/restclient.el")
  14061. (commit commit)))
  14062. (sha256
  14063. (base32
  14064. "1a2c7xzy7rsan1zcdskia6m7n6j29xacfkqjlfdhzk6rr1bpzkwk"))
  14065. (file-name (git-file-name name version))))
  14066. (build-system emacs-build-system)
  14067. (propagated-inputs
  14068. `(("emacs-helm" ,emacs-helm)
  14069. ("emacs-jq-mode" ,emacs-jq-mode)))
  14070. (home-page "https://github.com/pashky/restclient.el")
  14071. (synopsis "Explore and test HTTP REST webservices")
  14072. (description
  14073. "This tool allows for testing and exploration of HTTP REST Web services
  14074. from within Emacs. Restclient runs queries from a plan-text query sheet,
  14075. displays results pretty-printed in XML or JSON with @code{restclient-mode}")
  14076. (license license:public-domain))))
  14077. (define-public emacs-jq-mode
  14078. (package
  14079. (name "emacs-jq-mode")
  14080. (version "0.5.0")
  14081. (source
  14082. (origin
  14083. (method git-fetch)
  14084. (uri (git-reference
  14085. (url "https://github.com/ljos/jq-mode")
  14086. (commit (string-append "v" version))))
  14087. (file-name (git-file-name name version))
  14088. (sha256
  14089. (base32 "0xk0if5i9cz4w06lx8v1vdm112pn1ybqgfw048sx15yyvfzgril1"))))
  14090. (build-system emacs-build-system)
  14091. (home-page "https://github.com/ljos/jq-mode")
  14092. (synopsis "Major mode for editing jq queries")
  14093. (description
  14094. "Jq mode is an Emacs major mode for editing jq-scripts.")
  14095. (license license:gpl3+)))
  14096. (define-public emacs-whitespace-cleanup-mode
  14097. (let ((commit "72427144b054b0238a86e1348c45d986b8830d9d")
  14098. (revision "1"))
  14099. (package
  14100. (name "emacs-whitespace-cleanup-mode")
  14101. (version (git-version "0.10" revision commit))
  14102. (source (origin
  14103. (method git-fetch)
  14104. (uri (git-reference
  14105. (url "https://github.com/purcell/whitespace-cleanup-mode")
  14106. (commit commit)))
  14107. (sha256
  14108. (base32
  14109. "1zlk534jbwrsabcg3kqlzk4h4hwya60lh6q2n1v4yn4rpf5ghsag"))
  14110. (file-name (git-file-name name version))))
  14111. (build-system emacs-build-system)
  14112. (home-page "https://github.com/purcell/whitespace-cleanup-mode")
  14113. (synopsis "Intelligently call @code{whitespace-cleanup} on save")
  14114. (description
  14115. "This package provides a minor mode that calls
  14116. @code{whitespace-cleanup} before saving the current buffer only if the
  14117. whitespace in the buffer was initially clean.")
  14118. (license license:gpl3+))))
  14119. (define-public emacs-eimp
  14120. (let ((version "1.4.0")
  14121. (commit "2e7536fe6d8f7faf1bad7a8ae37faba0162c3b4f")
  14122. (revision "1"))
  14123. (package
  14124. (name "emacs-eimp")
  14125. (version (git-version version revision commit))
  14126. (source
  14127. (origin
  14128. (method git-fetch)
  14129. (uri (git-reference
  14130. (url "https://github.com/nicferrier/eimp")
  14131. (commit commit)))
  14132. (file-name (git-file-name name version))
  14133. (sha256
  14134. (base32
  14135. "154d57yafxbcf39r89n5j43c86rp2fki3lw3gwy7ww2g6qkclcra"))))
  14136. (build-system emacs-build-system)
  14137. (arguments
  14138. `(#:phases
  14139. (modify-phases %standard-phases
  14140. (add-after 'unpack 'configure
  14141. (lambda* (#:key inputs #:allow-other-keys)
  14142. (let ((imagemagick (assoc-ref inputs "imagemagick")))
  14143. ;; eimp.el is read-only in git.
  14144. (chmod "eimp.el" #o644)
  14145. (emacs-substitute-variables "eimp.el"
  14146. ("eimp-mogrify-program"
  14147. (string-append imagemagick "/bin/mogrify"))))
  14148. #t)))))
  14149. (inputs
  14150. `(("imagemagick" ,imagemagick)))
  14151. (home-page "https://github.com/nicferrier/eimp")
  14152. (synopsis "Interactive image manipulation utility for Emacs")
  14153. (description "@code{emacs-eimp} allows interactive image manipulation
  14154. from within Emacs. It uses the code@{mogrify} utility from ImageMagick to do
  14155. the actual transformations.")
  14156. (license license:gpl2+))))
  14157. (define-public emacs-dired-hacks
  14158. (let ((commit "d1a2bda6aa8f890cb367297ed93aee6d3b5ba388")
  14159. (revision "3"))
  14160. (package
  14161. (name "emacs-dired-hacks")
  14162. (version (git-version "0.0.1" revision commit))
  14163. (source (origin
  14164. (method git-fetch)
  14165. (uri (git-reference
  14166. (url "https://github.com/Fuco1/dired-hacks")
  14167. (commit commit)))
  14168. (file-name (git-file-name name version))
  14169. (sha256
  14170. (base32
  14171. "12m81a9kjhs4cyq3lym0vp5nx6z3sfnypyzrnia76x6rjvixjf6y"))))
  14172. (build-system emacs-build-system)
  14173. (propagated-inputs
  14174. `(("emacs-dash" ,emacs-dash)
  14175. ("emacs-eimp" ,emacs-eimp)
  14176. ("emacs-f" ,emacs-f)
  14177. ("emacs-s" ,emacs-s)))
  14178. (home-page "https://github.com/Fuco1/dired-hacks")
  14179. (synopsis
  14180. "Collection of useful dired additions")
  14181. (description
  14182. "This package provides the following collection of Emacs dired mode
  14183. additions:
  14184. @itemize
  14185. @item dired-avfs
  14186. @item dired-columns
  14187. @item dired-filter
  14188. @item dired-hacks-utils
  14189. @item dired-images
  14190. @item dired-list
  14191. @item dired-narrow
  14192. @item dired-open
  14193. @item dired-rainbow
  14194. @item dired-ranger
  14195. @item dired-subtree
  14196. @item dired-tagsistant
  14197. @end itemize\n")
  14198. (license license:gpl3+))))
  14199. (define-public emacs-dired-sidebar
  14200. (package
  14201. (name "emacs-dired-sidebar")
  14202. (home-page "https://github.com/jojojames/dired-sidebar")
  14203. (version "0.2.0")
  14204. (source
  14205. (origin
  14206. (method git-fetch)
  14207. (uri (git-reference
  14208. (url home-page)
  14209. (commit version)))
  14210. (file-name (git-file-name name version))
  14211. (sha256
  14212. (base32 "090dqaqyjmkzrz4szjpk1iip0bdvb0frp4l79393f8ki8w7c16c1"))))
  14213. (build-system emacs-build-system)
  14214. (propagated-inputs
  14215. `(("emacs-dired-subtree" ,emacs-dired-hacks)))
  14216. (synopsis "Sidebar for Emacs using Dired")
  14217. (description
  14218. "This package provides a sidebar for Emacs similar to @code{NeoTree}
  14219. or @code{treemacs}, but leveraging @code{Dired} to do the job of display.")
  14220. (license license:gpl3+)))
  14221. (define-public emacs-which-key
  14222. (package
  14223. (name "emacs-which-key")
  14224. (version "3.5.3")
  14225. (source
  14226. (origin
  14227. (method git-fetch)
  14228. (uri (git-reference
  14229. (url "https://github.com/justbur/emacs-which-key")
  14230. (commit (string-append "v" version))))
  14231. (file-name (git-file-name name version))
  14232. (sha256
  14233. (base32 "144i3hkgm36wnfmqk5vq390snziy3zhwifbh6q6dzs99ic77d5g6"))))
  14234. (build-system emacs-build-system)
  14235. (arguments
  14236. `(#:tests? #t
  14237. #:test-command '("emacs" "--batch"
  14238. "-l" "which-key-tests.el"
  14239. "-f" "ert-run-tests-batch-and-exit")))
  14240. (home-page "https://github.com/justbur/emacs-which-key")
  14241. (synopsis "Display available key bindings in popup")
  14242. (description
  14243. "@code{emacs-which-key} is a minor mode for Emacs that displays the key
  14244. bindings following your currently entered incomplete command (a prefix) in a
  14245. popup. For example, after enabling the minor mode if you enter C-x and wait
  14246. for the default of 1 second, the minibuffer will expand with all of the
  14247. available key bindings that follow C-x (or as many as space allows given your
  14248. settings).")
  14249. (license license:gpl3+)))
  14250. (define-public emacs-hercules
  14251. (package
  14252. (name "emacs-hercules")
  14253. (version "0.3.1")
  14254. (source
  14255. (origin
  14256. (method git-fetch)
  14257. (uri (git-reference
  14258. (url "https://gitlab.com/jjzmajic/hercules.el")
  14259. (commit (string-append "v" version))))
  14260. (file-name (git-file-name name version))
  14261. (sha256
  14262. (base32 "1rp37rhkj8jm07dwr74vc68dhrbvyvrxjdavpb0h073ps9vl9dsc"))))
  14263. (build-system emacs-build-system)
  14264. (propagated-inputs
  14265. `(("emacs-which-key" ,emacs-which-key)))
  14266. (home-page "https://gitlab.com/jjzmajic/hercules.el")
  14267. (synopsis "Call a chain of related commands without repeated prefix keys")
  14268. (description
  14269. "This package provides sticky-key-like functionality to obviate the need
  14270. for repeated prefix-key sequences, and can reuse existing keymaps. The list
  14271. of commands is displayed in a handy popup.")
  14272. (license license:gpl3+)))
  14273. (define-public emacs-ws-butler
  14274. (package
  14275. (name "emacs-ws-butler")
  14276. (version "0.6")
  14277. (source (origin
  14278. (method git-fetch)
  14279. (uri (git-reference
  14280. (url "https://github.com/lewang/ws-butler")
  14281. (commit "323b651dd70ee40a25accc940b8f80c3a3185205")))
  14282. (file-name (git-file-name name version))
  14283. (sha256
  14284. (base32
  14285. "1a4b0lsmwq84qfx51c5xy4fryhb1ysld4fhgw2vr37izf53379sb"))))
  14286. (build-system emacs-build-system)
  14287. (native-inputs
  14288. `(("ert-runner" ,emacs-ert-runner)))
  14289. (arguments
  14290. `(#:tests? #t
  14291. #:test-command '("ert-runner" "tests")))
  14292. (home-page "https://github.com/lewang/ws-butler")
  14293. (synopsis "Trim spaces from end of lines")
  14294. (description
  14295. "This Emacs package automatically and unobtrusively trims whitespace
  14296. characters from end of lines.")
  14297. (license license:gpl3+)))
  14298. (define-public emacs-openwith
  14299. ;; There is no release tag. Version is extracted from main file.
  14300. (let ((version "20120531")
  14301. (revision "0")
  14302. (commit "5fe01dee520d24c839ad5ee18822667457d9f352"))
  14303. (package
  14304. (name "emacs-openwith")
  14305. (version (git-version version revision commit))
  14306. (source
  14307. (origin
  14308. (method git-fetch)
  14309. (uri (git-reference
  14310. (url "https://github.com/garberw/openwith")
  14311. (commit commit)))
  14312. (file-name (git-file-name name version))
  14313. (sha256
  14314. (base32 "1scbawhlzmj5nhix779rlqf462g37q84vpq205qhg4qyscvfx6bi"))))
  14315. (build-system emacs-build-system)
  14316. (home-page "https://github.com/garberw/openwith")
  14317. (synopsis "Open external applications for files with Emacs")
  14318. (description
  14319. "This package enables you to associate file name patterns with external
  14320. applications that are automatically invoked when you use commands like
  14321. @code{find-file}. For example, you can have it open @code{png} files with
  14322. @code{feh} and @code{mp4} files with @code{mpv}. This is especially useful
  14323. when browsing files with Dired.")
  14324. (license license:gpl2+))))
  14325. (define-public emacs-org-edit-latex
  14326. (package
  14327. (name "emacs-org-edit-latex")
  14328. (version "0.8.3")
  14329. (source
  14330. (origin
  14331. (method git-fetch)
  14332. (uri (git-reference
  14333. (url "https://github.com/et2010/org-edit-latex")
  14334. (commit (string-append "v" version))))
  14335. (file-name (git-file-name name version))
  14336. (sha256
  14337. (base32 "1w0lyz71dq8x28ira4hig1b70bqn1dr53w3k5dgch9szcf6xa86y"))))
  14338. (build-system emacs-build-system)
  14339. (propagated-inputs
  14340. `(("emacs-auctex" ,emacs-auctex)
  14341. ("emacs-org" ,emacs-org)))
  14342. (home-page "https://github.com/et2010/org-edit-latex")
  14343. (synopsis "Edit a LaTeX fragment just like editing a source block")
  14344. (description
  14345. "Org Edit LaTeX is an extension for Org mode. It lets you edit a LaTeX
  14346. fragment in a dedicated buffer just like editing a source block.")
  14347. (license license:gpl3+)))
  14348. (define-public emacs-emamux
  14349. (package
  14350. (name "emacs-emamux")
  14351. (version "0.14")
  14352. (source
  14353. (origin
  14354. (method git-fetch)
  14355. (uri (git-reference
  14356. (url "https://github.com/syohex/emacs-emamux")
  14357. (commit version)))
  14358. (file-name (git-file-name name version))
  14359. (sha256
  14360. (base32 "19y69qw79miim9cz5ji54gwspjkcp9g2c1xr5s7jj2fiabnxax6b"))))
  14361. (build-system emacs-build-system)
  14362. (home-page "https://github.com/syohex/emacs-emamux")
  14363. (synopsis "Manipulate Tmux from Emacs")
  14364. (description
  14365. "@code{emacs-emamux} lets Emacs interact with the @code{tmux} terminal
  14366. multiplexer.")
  14367. (license license:gpl3+)))
  14368. (define-public emacs-rpm-spec-mode
  14369. (package
  14370. (name "emacs-rpm-spec-mode")
  14371. (version "0.16")
  14372. (source
  14373. (origin
  14374. (method url-fetch)
  14375. ;; URI has the Fedora release number instead of the version
  14376. ;; number. This will have to updated manually every new release.
  14377. (uri (string-append
  14378. "https://src.fedoraproject.org/cgit/rpms"
  14379. "/emacs-rpm-spec-mode.git/snapshot"
  14380. "/emacs-rpm-spec-mode-f26.tar.gz"))
  14381. (sha256
  14382. (base32
  14383. "17dz80lhjrc89fj17pysl8slahzrqdkxgcjdk55zls6jizkr6kz3"))))
  14384. (build-system emacs-build-system)
  14385. (home-page "http://pkgs.fedoraproject.org/cgit/rpms/emacs-rpm-spec-mode.git")
  14386. (synopsis "Emacs major mode for editing RPM spec files")
  14387. (description "@code{emacs-rpm-spec-mode} provides an Emacs major mode for
  14388. editing RPM spec files.")
  14389. (license license:gpl2+)))
  14390. (define-public emacs-lcr
  14391. (package
  14392. (name "emacs-lcr")
  14393. (version "1.1")
  14394. (source
  14395. (origin
  14396. (method git-fetch)
  14397. (uri (git-reference
  14398. (url "https://github.com/jyp/lcr")
  14399. (commit version)))
  14400. (file-name (git-file-name name version))
  14401. (sha256
  14402. (base32 "0mc55icihxqpf8b05990q1lc2nj2792wcgyr73xsiqx0963sjaj8"))))
  14403. (build-system emacs-build-system)
  14404. (propagated-inputs
  14405. `(("emacs-dash" ,emacs-dash)))
  14406. (home-page "https://github.com/jyp/lcr")
  14407. (synopsis "Lightweight coroutines in Emacs Lisp")
  14408. (description "This package provides macros that can translate code into
  14409. equivalent continuation-passing code, as well as miscellaneous utility
  14410. functions written in continuation-passing style.")
  14411. (license license:gpl3+)))
  14412. (define-public emacs-attrap
  14413. (package
  14414. (name "emacs-attrap")
  14415. (version "1.1")
  14416. (source
  14417. (origin
  14418. (method git-fetch)
  14419. (uri (git-reference
  14420. (url "https://github.com/jyp/attrap")
  14421. (commit version)))
  14422. (sha256
  14423. (base32 "0wqc7bqx9rvk8r7fd3x84h8p01v97s6w2jf29nnjb59xakwp22i7"))
  14424. (file-name (git-file-name name version))))
  14425. (build-system emacs-build-system)
  14426. (propagated-inputs
  14427. `(("emacs-dash" ,emacs-dash)
  14428. ("emacs-f" ,emacs-f)
  14429. ("emacs-flycheck" ,emacs-flycheck)
  14430. ("emacs-s" ,emacs-s)))
  14431. (home-page "https://github.com/jyp/attrap")
  14432. (synopsis "Fix coding error at point")
  14433. (description "This package provides a command to fix the Flycheck error
  14434. at point.")
  14435. (license license:gpl3+)))
  14436. (define-public emacs-git-messenger
  14437. (package
  14438. (name "emacs-git-messenger")
  14439. (version "0.18")
  14440. (source
  14441. (origin
  14442. (method git-fetch)
  14443. (uri (git-reference
  14444. (url "https://github.com/syohex/emacs-git-messenger")
  14445. (commit version)))
  14446. (file-name (git-file-name name version))
  14447. (sha256
  14448. (base32 "04fnby2nblk8l70gv09asxkmnn53fh1pdfs77ix44npp99fyw8ix"))))
  14449. (build-system emacs-build-system)
  14450. (propagated-inputs
  14451. `(("emacs-popup" ,emacs-popup)))
  14452. (arguments
  14453. `(#:tests? #t
  14454. #:test-command '("emacs" "--batch" "-l" "test/test.el"
  14455. "-f" "ert-run-tests-batch-and-exit")))
  14456. (home-page "https://github.com/syohex/emacs-git-messenger")
  14457. (synopsis "Popup commit message at current line")
  14458. (description "@code{emacs-git-messenger} provides
  14459. @code{git-messenger:popup-message}, a function that when called, will popup
  14460. the last git commit message for the current line. This uses git-blame
  14461. internally.")
  14462. (license license:gpl3+)))
  14463. (define-public emacs-gitpatch
  14464. (package
  14465. (name "emacs-gitpatch")
  14466. (version "0.5.1")
  14467. (source
  14468. (origin
  14469. (method git-fetch)
  14470. (uri (git-reference
  14471. (url "https://github.com/tumashu/gitpatch")
  14472. (commit (string-append "v" version))))
  14473. (file-name (git-file-name name version))
  14474. (sha256
  14475. (base32 "1drf4fvmak7brf16axkh4nfz8pg44i7pjhfjz3dbkycbpp8y5vig"))))
  14476. (build-system emacs-build-system)
  14477. (home-page "https://github.com/tumashu/gitpatch")
  14478. (synopsis "Mail git patch from Emacs")
  14479. (description "@code{emacs-gitpatch} lets users easily send git patches,
  14480. created by @code{git format-patch}, from @code{magit}, @code{dired} and
  14481. @code{ibuffer} buffers.")
  14482. (license license:gpl3+)))
  14483. (define-public emacs-erc-hl-nicks
  14484. (package
  14485. (name "emacs-erc-hl-nicks")
  14486. (version "1.3.4")
  14487. (source
  14488. (origin
  14489. (method git-fetch)
  14490. (uri (git-reference
  14491. (url "https://github.com/leathekd/erc-hl-nicks")
  14492. (commit version)))
  14493. (file-name (git-file-name name version))
  14494. (sha256
  14495. (base32 "0k57scxa8rm859fqsm8srhps7rlq06jzazhjbwnadzrh8i5fyvra"))))
  14496. (build-system emacs-build-system)
  14497. (synopsis "Nickname highlighting for Emacs ERC")
  14498. (description "@code{erc-hl-nicks} highlights nicknames in ERC, an IRC
  14499. client for Emacs. The main features are:
  14500. @itemize
  14501. @item Auto-colorizes nicknames without having to specify colors
  14502. @item Ignores certain characters that IRC clients add to nicknames to avoid
  14503. duplicates (nickname, nickname’, nickname\", etc.)
  14504. @item Attempts to produce colors with a sufficient amount of contrast between
  14505. the nick color and the background color
  14506. @end itemize\n")
  14507. (home-page "https://github.com/leathekd/erc-hl-nicks")
  14508. (license license:gpl3+)))
  14509. (define-public emacs-engine-mode
  14510. (package
  14511. (name "emacs-engine-mode")
  14512. (version "2.1.1")
  14513. (source
  14514. (origin
  14515. (method git-fetch)
  14516. (uri (git-reference
  14517. (url "https://github.com/hrs/engine-mode")
  14518. (commit (string-append "v" version))))
  14519. (file-name (git-file-name name version))
  14520. (sha256
  14521. (base32 "1xka8i4cdvp5r2v2mkli1zz17x1sdsnmszbhqav2rf94v656d91i"))))
  14522. (build-system emacs-build-system)
  14523. (synopsis "Minor mode for defining and querying search engines")
  14524. (description "@code{engine-mode} is a global minor mode for Emacs. It
  14525. enables you to easily define search engines, bind them to keybindings, and
  14526. query them from the comfort of your editor.")
  14527. (home-page "https://github.com/hrs/engine-mode")
  14528. (license license:gpl3+)))
  14529. (define-public emacs-inheritenv
  14530. (package
  14531. (name "emacs-inheritenv")
  14532. (version "0.1")
  14533. (source
  14534. (origin
  14535. (method git-fetch)
  14536. (uri (git-reference
  14537. (url "https://github.com/purcell/inheritenv")
  14538. (commit version)))
  14539. (file-name (git-file-name name version))
  14540. (sha256
  14541. (base32 "0ygzf70vfb7qwpsllcq5i3brprsnx3sxy2zng02mzwrr5jkx4ypc"))))
  14542. (build-system emacs-build-system)
  14543. (home-page "https://github.com/purcell/inheritenv/releases")
  14544. (synopsis "Emacs temp buffers inherit buffer-local environment variables")
  14545. (description
  14546. "Inheritenv provides tools to execute processes inheriting the calling
  14547. buffer's environment.")
  14548. (license license:gpl3+)))
  14549. (define-public emacs-envrc
  14550. (package
  14551. (name "emacs-envrc")
  14552. (version "0.4")
  14553. (source
  14554. (origin
  14555. (method git-fetch)
  14556. (uri (git-reference
  14557. (url "https://github.com/purcell/envrc")
  14558. (commit version)))
  14559. (file-name (git-file-name name version))
  14560. (sha256
  14561. (base32
  14562. "0nqqx4qlw75lmbn0v927sg3xyjkk86ihw1q3rdbbn59va41grds4"))))
  14563. (build-system emacs-build-system)
  14564. (propagated-inputs
  14565. `(("emacs-inheritenv" ,emacs-inheritenv)))
  14566. (home-page "https://github.com/purcell/envrc")
  14567. (synopsis "Support for Direnv which operates buffer-locally")
  14568. (description
  14569. "This is library which uses Direnv to set environment variables on
  14570. a per-buffer basis. This means that when you work across multiple projects
  14571. which have @file{.envrc} files, all processes launched from the buffers ``in''
  14572. those projects will be executed with the environment variables specified in
  14573. those files. This allows different versions of linters and other tools to be
  14574. used in each project if desired.")
  14575. (license license:gpl3+)))
  14576. (define-public emacs-prop-menu
  14577. (package
  14578. (name "emacs-prop-menu")
  14579. (version "0.1.2")
  14580. (source
  14581. (origin
  14582. (method git-fetch)
  14583. (uri (git-reference
  14584. (url "https://github.com/david-christiansen/prop-menu-el")
  14585. (commit version)))
  14586. (file-name (git-file-name name version))
  14587. (sha256
  14588. (base32
  14589. "18ap2liz5r5a8ja2zz9182fnfm47jnsbyblpq859zks356k37iwc"))))
  14590. (build-system emacs-build-system)
  14591. (home-page
  14592. "https://github.com/david-christiansen/prop-menu-el")
  14593. (synopsis
  14594. "Create and display a context menu based on text and overlay properties")
  14595. (description
  14596. "This is a library for computing context menus based on text
  14597. properties and overlays. The intended use is to have tools that
  14598. annotate source code and others that use these annotations, without
  14599. requiring a direct coupling between them, but maintaining
  14600. discoverability.
  14601. Major modes that wish to use this library should first define an
  14602. appropriate value for @code{prop-menu-item-functions}. Then, they should
  14603. bind @code{prop-menu-by-completing-read} to an appropriate
  14604. key. Optionally, a mouse pop-up can be added by binding
  14605. @code{prop-menu-show-menu} to a mouse event.")
  14606. (license license:gpl3+)))
  14607. (define-public emacs-idris-mode
  14608. (let ((commit "b77eadd8ac2048d5c882b4464bd9673e45dd6a59")
  14609. (revision "0"))
  14610. (package
  14611. (name "emacs-idris-mode")
  14612. (version (git-version "1.0" revision commit))
  14613. (source
  14614. (origin
  14615. (method git-fetch)
  14616. (uri (git-reference
  14617. (url "https://github.com/idris-hackers/idris-mode")
  14618. (commit commit)))
  14619. (file-name (git-file-name name commit))
  14620. (sha256
  14621. (base32
  14622. "1v8av6jza1j00ln75zjwaca0vmmv0fhhhi94p84rlfzgzykyb9g1"))))
  14623. (build-system emacs-build-system)
  14624. (propagated-inputs
  14625. `(("emacs-prop-menu" ,emacs-prop-menu)))
  14626. (home-page
  14627. "https://github.com/idris-hackers/idris-mode")
  14628. (synopsis "Major mode for editing Idris code")
  14629. (description
  14630. "This is an Emacs mode for editing Idris code. It is compatible with
  14631. the latest versions of Idris 1.")
  14632. (license license:gpl3+))))
  14633. (define-public emacs-browse-at-remote
  14634. (package
  14635. (name "emacs-browse-at-remote")
  14636. (version "0.14.0")
  14637. (source
  14638. (origin
  14639. (method git-fetch)
  14640. (uri (git-reference
  14641. (url "https://github.com/rmuslimov/browse-at-remote")
  14642. (commit version)))
  14643. (file-name (git-file-name name version))
  14644. (sha256
  14645. (base32 "0bx4ns0jb0sqrjk1nsspvl3mhz3n12925azf7brlwb1vcgnji09v"))))
  14646. (build-system emacs-build-system)
  14647. (propagated-inputs
  14648. `(("emacs-f" ,emacs-f)
  14649. ("emacs-s" ,emacs-s)))
  14650. (native-inputs
  14651. `(("ert-runner" ,emacs-ert-runner)))
  14652. (arguments
  14653. `(#:tests? #t
  14654. #:test-command '("ert-runner")))
  14655. (home-page "https://github.com/rmuslimov/browse-at-remote")
  14656. (synopsis "Open github/gitlab/bitbucket/stash page from Emacs")
  14657. (description
  14658. "This Emacs package allows you to open a target page on
  14659. github/gitlab (or bitbucket) by calling @code{browse-at-remote} command.
  14660. It supports dired buffers and opens them in tree mode at destination.")
  14661. (license license:gpl3+)))
  14662. (define-public emacs-tiny
  14663. (let ((commit "fd8a6b0b0c564d8242259e20e557ee6041f40908")
  14664. (revision "1"))
  14665. (package
  14666. (name "emacs-tiny")
  14667. (version (git-version "0.2.1" revision commit))
  14668. (source
  14669. (origin
  14670. (method git-fetch)
  14671. (uri (git-reference
  14672. (url "https://github.com/abo-abo/tiny")
  14673. (commit commit)))
  14674. (file-name (git-file-name name version))
  14675. (sha256
  14676. (base32
  14677. "1498j392ap2mk4zmsm2id16pfgvj78r428da9vw7hdrzzibai2cx"))))
  14678. (build-system emacs-build-system)
  14679. (arguments
  14680. `(#:tests? #t
  14681. #:test-command '("make" "test")))
  14682. (home-page "https://github.com/abo-abo/tiny")
  14683. (synopsis "Quickly generate linear ranges in Emacs")
  14684. (description
  14685. "The main command of the @code{tiny} extension for Emacs is @code{tiny-expand}.
  14686. It is meant to quickly generate linear ranges, e.g. 5, 6, 7, 8. Some elisp
  14687. proficiency is an advantage, since you can transform your numeric range with
  14688. an elisp expression.")
  14689. (license license:gpl3+))))
  14690. (define-public emacs-emojify
  14691. (package
  14692. (name "emacs-emojify")
  14693. (version "1.2")
  14694. (source
  14695. (origin
  14696. (method git-fetch)
  14697. (uri (git-reference
  14698. (url "https://github.com/iqbalansari/emacs-emojify")
  14699. (commit (string-append "v" version))))
  14700. (file-name (git-file-name name version))
  14701. (sha256
  14702. (base32
  14703. "1fqnj5x7ivjkm5y927dqqnm85q5hzczlb0hrfpjalrhasa6ijsrm"))))
  14704. (build-system emacs-build-system)
  14705. (arguments
  14706. `(#:include (cons "^data/" %default-include)))
  14707. (propagated-inputs
  14708. `(("emacs-ht" ,emacs-ht)))
  14709. (home-page "https://github.com/iqbalansari/emacs-emojify")
  14710. (synopsis "Display emojis in Emacs")
  14711. (description "This package displays emojis in Emacs similar to how Github,
  14712. Slack, and other websites do. It can display plain ASCII like @code{:)} as
  14713. well as Github-style emojis like @code{:smile:}. It provides a minor mode
  14714. @code{emojify-mode} to enable the display of emojis in a buffer.")
  14715. (license license:gpl3+)))
  14716. (define-public emacs-make-it-so
  14717. (let ((commit "b73dfb640588123c9eece230ad72b37604f5c126")
  14718. (revision "2"))
  14719. (package
  14720. (name "emacs-make-it-so")
  14721. (version (git-version "0.1.0" revision commit))
  14722. (source
  14723. (origin
  14724. (method git-fetch)
  14725. (uri (git-reference
  14726. (url "https://github.com/abo-abo/make-it-so")
  14727. (commit commit)))
  14728. (file-name (git-file-name name version))
  14729. (sha256
  14730. (base32
  14731. "0p6xhyinzzkrwzbpxqfm8hlii0ikvmmylya240bwsa77w0g1k6xq"))))
  14732. (build-system emacs-build-system)
  14733. (arguments
  14734. `(#:include (cons "^recipes/" %default-include)))
  14735. (propagated-inputs
  14736. `(("emacs-ivy" ,emacs-ivy)))
  14737. (home-page "https://github.com/abo-abo/make-it-so")
  14738. (synopsis "Transform files with Makefile recipes")
  14739. (description "This package provides an interface for selecting from
  14740. different conversion recipes, often including tools like @code{ffmpeg} or
  14741. @code{convert}. The conversion command need only be written once, and
  14742. subsequent invocations can be readily customized. Several recipes are
  14743. included by default, and more can be readily added.")
  14744. (license license:gpl3+))))
  14745. (define-public emacs-unidecode
  14746. (let ((commit "5502ada9287b4012eabb879f12f5b0a9df52c5b7")
  14747. (revision "1"))
  14748. (package
  14749. (name "emacs-unidecode")
  14750. (version (git-version "0.2" revision commit))
  14751. (source
  14752. (origin
  14753. (method git-fetch)
  14754. (uri (git-reference
  14755. (url "https://github.com/sindikat/unidecode")
  14756. (commit commit)))
  14757. (file-name (git-file-name name version))
  14758. (sha256
  14759. (base32
  14760. "03x3nakbhmakwm977mwrf8jifvjnfwzpjv6wrwpizbqjnkgfchmn"))))
  14761. (build-system emacs-build-system)
  14762. (arguments
  14763. `(#:include (cons* "^tools/" "^data/" %default-include)
  14764. #:tests? #t
  14765. #:test-command '("emacs" "--batch"
  14766. "-l" "unidecode-test.el"
  14767. "-f" "ert-run-tests-batch-and-exit")
  14768. #:phases
  14769. (modify-phases %standard-phases
  14770. (add-before 'check 'make-tests-writable
  14771. (lambda _
  14772. (make-file-writable "unidecode-test.el")
  14773. #t))
  14774. (add-before 'check 'add-require
  14775. (lambda _
  14776. (emacs-batch-edit-file "unidecode-test.el"
  14777. `(progn (progn (goto-char (point-min))
  14778. (re-search-forward
  14779. "ert-deftest")
  14780. (forward-line -1)
  14781. (insert "(require 'unidecode)"))
  14782. (basic-save-buffer)))
  14783. #t)))))
  14784. (home-page "https://github.com/sindikat/unidecode")
  14785. (synopsis "Transliterate Unicode text to ASCII")
  14786. (description "This package provides functions for converting Unicode to ASCII.")
  14787. (license license:gpl2+))))
  14788. (define-public emacs-pubmed
  14789. (package
  14790. (name "emacs-pubmed")
  14791. (version "0.5")
  14792. (source
  14793. (origin
  14794. (method git-fetch)
  14795. (uri (git-reference
  14796. (url "https://gitlab.com/fvdbeek/emacs-pubmed.git")
  14797. (commit (string-append "v" version))))
  14798. (file-name (git-file-name name version))
  14799. (sha256
  14800. (base32
  14801. "17d2v7q6sfafk8j1ish053xsmihi4f1hbk53fkkmhwan6sw9c4sc"))))
  14802. (build-system emacs-build-system)
  14803. (propagated-inputs
  14804. `(("emacs-deferred" ,emacs-deferred)
  14805. ("emacs-esxml" ,emacs-esxml)
  14806. ("emacs-s" ,emacs-s)
  14807. ("emacs-unidecode" ,emacs-unidecode)))
  14808. (home-page "https://gitlab.com/fvdbeek/emacs-pubmed")
  14809. (synopsis "Interface to PubMed")
  14810. (description "This package provides an Emacs interface to the PubMed
  14811. database of references on life sciences.")
  14812. (license license:gpl3+)))
  14813. (define-public emacs-websocket
  14814. (package
  14815. (name "emacs-websocket")
  14816. (version "1.13.1")
  14817. (source
  14818. (origin
  14819. (method url-fetch)
  14820. (uri (string-append "https://elpa.gnu.org/packages/"
  14821. "websocket-" version ".tar"))
  14822. (sha256
  14823. (base32 "1x664zswas0fpml7zaj59zy97avrm49zb80zd69rlkqzz1m45psc"))))
  14824. (build-system emacs-build-system)
  14825. (home-page "https://elpa.gnu.org/packages/websocket.html")
  14826. (synopsis "Emacs WebSocket client and server")
  14827. (description
  14828. "This is an Elisp library for WebSocket clients to talk to WebSocket
  14829. servers, and for WebSocket servers to accept connections from WebSocket
  14830. clients. This library is designed to be used by other library writers, to
  14831. write applications that use WebSockets, and is not useful by itself.")
  14832. (license license:gpl3+)))
  14833. (define-public emacs-oauth2
  14834. (package
  14835. (name "emacs-oauth2")
  14836. (version "0.16")
  14837. (source
  14838. (origin
  14839. (method url-fetch)
  14840. (uri (string-append "https://elpa.gnu.org/packages/"
  14841. "oauth2-" version ".tar"))
  14842. (sha256
  14843. (base32 "1rzly2nwjywrfgcmp8zidbmjl2ahyd8l8507lb1mxm4xqryvf316"))))
  14844. (build-system emacs-build-system)
  14845. (home-page "https://elpa.gnu.org/packages/oauth2.html")
  14846. (synopsis "OAuth 2.0 authorization protocol implementation")
  14847. (description
  14848. "This package provides an Elisp implementation of the OAuth 2.0 draft.
  14849. The main entry point is @code{oauth2-auth-and-store} which will return a token
  14850. structure. This token structure can be then used with
  14851. @code{oauth2-url-retrieve-synchronously} or @code{oauth2-url-retrieve} to
  14852. retrieve any data that need OAuth authentication to be accessed. If the token
  14853. needs to be refreshed, the code handles it automatically and stores the new
  14854. value of the access token.")
  14855. (license license:gpl3+)))
  14856. (define-public emacs-auth-source-xoauth2
  14857. (package
  14858. (name "emacs-auth-source-xoauth2")
  14859. (version "1.0")
  14860. (source
  14861. (origin
  14862. (method git-fetch)
  14863. (uri (git-reference
  14864. (url "https://github.com/ccrusius/auth-source-xoauth2")
  14865. (commit (string-append "v" version))))
  14866. (file-name (git-file-name name version))
  14867. (sha256
  14868. (base32 "0nl859csl8xcd6ybpjj15ph8l8fxwkwf45kbylss68alkyf1rl3v"))))
  14869. (build-system emacs-build-system)
  14870. (home-page "https://github.com/ccrusius/auth-source-xoauth2")
  14871. (synopsis "XOAuth2 authentication capabilities for Emacs auth-source")
  14872. (description
  14873. "This package adds XOAuth2 authentication capabilities to Emacs
  14874. auth-source. This integration requires some preliminary work on the users’
  14875. part, which includes creating tokens.")
  14876. (license license:asl2.0)))
  14877. (define-public emacs-circe
  14878. ;; The latest stable release is two years old, and some important fixes have
  14879. ;; landed since then.
  14880. (let ((commit "d6f1fa18646f6ed2a1c0f06a4888130bd694ff19")
  14881. (revision "0"))
  14882. (package
  14883. (name "emacs-circe")
  14884. (version (git-version "2.11" revision commit))
  14885. (source
  14886. (origin
  14887. (method git-fetch)
  14888. (uri (git-reference
  14889. (url "https://github.com/jorgenschaefer/circe")
  14890. (commit commit)))
  14891. (file-name (git-file-name name version))
  14892. (sha256
  14893. (base32 "1l6v02aa072jvhq4b9dpkprqs14py0d4jm3xvihm05lvrbf9v6c6"))))
  14894. (build-system emacs-build-system)
  14895. (arguments
  14896. `(#:tests? #t
  14897. #:test-command '("buttercup" "-L" ".")
  14898. #:emacs ,emacs ;requires gnutls
  14899. #:phases
  14900. (modify-phases %standard-phases
  14901. ;; The HOME environment variable should be set to an existing
  14902. ;; directory for the tests to succeed.
  14903. (add-before 'check 'set-home
  14904. (lambda _
  14905. (setenv "HOME" "/tmp")))
  14906. (add-before 'check 'remove-failing-tests
  14907. (lambda _
  14908. (make-file-writable "tests/test-circe.el")
  14909. (emacs-batch-edit-file "tests/test-circe.el"
  14910. `(progn
  14911. (dolist (test
  14912. '("should have circe-server-buffer set in the mode hook"
  14913. "should complete nicks with colon at the beginning of the input"
  14914. "should complete nicks without colon later in the input"))
  14915. (goto-char (point-min))
  14916. (search-forward (format "(it %S" test))
  14917. (beginning-of-line)
  14918. (kill-sexp))
  14919. (basic-save-buffer))))))))
  14920. (native-inputs
  14921. `(("emacs-buttercup" ,emacs-buttercup)))
  14922. ;; In order to securely connect to an IRC server using TLS, Circe requires
  14923. ;; the GnuTLS binary.
  14924. (propagated-inputs
  14925. `(("gnutls" ,gnutls)))
  14926. (home-page "https://github.com/jorgenschaefer/circe")
  14927. (synopsis "Client for IRC in Emacs")
  14928. (description "Circe is a Client for IRC in Emacs. It integrates well with
  14929. the rest of the editor, using standard Emacs key bindings and indicating
  14930. activity in channels in the status bar so it stays out of your way unless you
  14931. want to use it.")
  14932. (license license:gpl3+))))
  14933. (define-public emacs-tracking
  14934. (package
  14935. (inherit emacs-circe)
  14936. (name "emacs-tracking")
  14937. (arguments
  14938. ;; "tracking.el" is a library extracted from Circe package. It requires
  14939. ;; "shorten.el".
  14940. `(#:include '("^shorten.el$" "^tracking.el$")
  14941. ,@(package-arguments emacs-circe)))
  14942. (home-page "https://github.com/jorgenschaefer/circe/wiki/Tracking")
  14943. (synopsis "Buffer tracking library")
  14944. (description "@code{tracking.el} provides a way for different modes to
  14945. notify the user that a buffer needs attention. The user then can cycle
  14946. through them using @key{C-c C-SPC}.")
  14947. (license license:gpl3+)))
  14948. (define-public emacs-slack
  14949. (let ((commit "1f6a40faec0d8d9c9de51c444508d05a3e995ccd")
  14950. (revision "9"))
  14951. (package
  14952. (name "emacs-slack")
  14953. (version (git-version "0.0.2" revision commit))
  14954. (source (origin
  14955. (method git-fetch)
  14956. (uri (git-reference
  14957. (url "https://github.com/yuya373/emacs-slack")
  14958. (commit commit)))
  14959. (file-name (git-file-name name commit))
  14960. (sha256
  14961. (base32
  14962. "19lan9nd8qfw2ws7mx814vrin04c892yn5c8g3nad7lpnzszgr1r"))))
  14963. (build-system emacs-build-system)
  14964. (arguments
  14965. `(#:phases
  14966. (modify-phases %standard-phases
  14967. ;; HOME needs to exist for source compilation.
  14968. (add-before 'build 'set-HOME
  14969. (lambda _ (setenv "HOME" "/tmp") #t)))))
  14970. (propagated-inputs
  14971. `(("emacs-alert" ,emacs-alert)
  14972. ("emacs-emojify" ,emacs-emojify)
  14973. ("emacs-helm" ,emacs-helm)
  14974. ("emacs-request" ,emacs-request)
  14975. ("emacs-websocket" ,emacs-websocket)
  14976. ("emacs-oauth2" ,emacs-oauth2)
  14977. ("emacs-circe" ,emacs-circe)))
  14978. (home-page "https://github.com/yuya373/emacs-slack")
  14979. (synopsis "Slack client for Emacs")
  14980. (description "This package provides an Emacs client for the Slack
  14981. messaging service.")
  14982. (license license:gpl3+))))
  14983. (define-public emacs-helm-slack
  14984. (let ((commit "465f6220f3f5bee4d95492991fca1290c89534eb")
  14985. (revision "1"))
  14986. (package
  14987. (name "emacs-helm-slack")
  14988. (version (git-version "0" revision commit))
  14989. (source (origin
  14990. (method git-fetch)
  14991. (uri (git-reference
  14992. (url "https://github.com/yuya373/helm-slack")
  14993. (commit commit)))
  14994. (file-name (git-file-name name commit))
  14995. (sha256
  14996. (base32
  14997. "0p1s1kl8v68qjprqkf034cz911qzbqxbscqgpn0c3mbm3yfx81f7"))))
  14998. (build-system emacs-build-system)
  14999. (arguments
  15000. `(#:phases
  15001. (modify-phases %standard-phases
  15002. ;; HOME needs to exist for source compilation.
  15003. (add-before 'build 'set-HOME
  15004. (lambda _ (setenv "HOME" "/tmp") #t)))))
  15005. (propagated-inputs `(("emacs-slack" ,emacs-slack)))
  15006. (home-page "https://github.com/yuya373/helm-slack")
  15007. (synopsis "Helm extension for emacs-slack")
  15008. (description "This package provides an helm extension for emacs-slack
  15009. Slack client.")
  15010. (license license:gpl3+))))
  15011. (define-public emacs-bash-completion
  15012. (package
  15013. (name "emacs-bash-completion")
  15014. (version "3.1.0")
  15015. (source
  15016. (origin
  15017. (method git-fetch)
  15018. (uri (git-reference
  15019. (url "https://github.com/szermatt/emacs-bash-completion")
  15020. (commit (string-append "v" version))))
  15021. (file-name (git-file-name name version))
  15022. (sha256
  15023. (base32 "11j2k3irixp47r2iglxdmjphahqhgnxg98n2xwagwzyq99lsamj4"))))
  15024. (inputs `(("bash" ,bash)))
  15025. (build-system emacs-build-system)
  15026. (arguments
  15027. `(#:phases
  15028. (modify-phases %standard-phases
  15029. (add-after 'unpack 'make-git-checkout-writable
  15030. (λ _
  15031. (for-each make-file-writable (find-files "."))
  15032. #t))
  15033. (add-before 'install 'configure
  15034. (lambda* (#:key inputs #:allow-other-keys)
  15035. (let ((bash (assoc-ref inputs "bash")))
  15036. (emacs-substitute-variables "bash-completion.el"
  15037. ("bash-completion-prog" (string-append bash "/bin/bash"))))
  15038. #t)))))
  15039. (home-page "https://github.com/szermatt/emacs-bash-completion")
  15040. (synopsis "Bash completion for the shell buffer")
  15041. (description
  15042. "@code{bash-completion} defines dynamic completion hooks for shell-mode
  15043. and shell-command prompts that are based on Bash completion.")
  15044. (license license:gpl2+)))
  15045. (define-public emacs-easy-kill
  15046. (package
  15047. (name "emacs-easy-kill")
  15048. (version "0.9.4")
  15049. (source (origin
  15050. (method url-fetch)
  15051. (uri (string-append "https://elpa.gnu.org/packages/easy-kill-"
  15052. version ".tar"))
  15053. (sha256
  15054. (base32
  15055. "1pqqv4dhfm00wqch4wy3n2illsvxlz9r6r64925cvq3i7wq4la1x"))))
  15056. (build-system emacs-build-system)
  15057. (home-page "https://github.com/leoliu/easy-kill")
  15058. (synopsis "Kill and mark things easily in Emacs")
  15059. (description
  15060. "This package provides commands @code{easy-kill} and @code{easy-mark} to
  15061. let users kill or mark things easily.")
  15062. (license license:gpl3+)))
  15063. (define-public emacs-csv-mode
  15064. (package
  15065. (name "emacs-csv-mode")
  15066. (version "1.16")
  15067. (source
  15068. (origin
  15069. (method url-fetch)
  15070. (uri (string-append "https://elpa.gnu.org/packages/"
  15071. "csv-mode-" version ".tar"))
  15072. (sha256
  15073. (base32 "1i43b2p31xhrf97xbdi35y550ysp69fasa5gcrhg6iyxw176807p"))))
  15074. (build-system emacs-build-system)
  15075. (home-page "https://elpa.gnu.org/packages/csv-mode.html")
  15076. (synopsis "Major mode for editing comma/char separated values")
  15077. (description
  15078. "This Emacs package implements CSV mode, a major mode for editing records
  15079. in a generalized CSV (character-separated values) format.")
  15080. (license license:gpl3+)))
  15081. (define-public emacs-transmission
  15082. (package
  15083. (name "emacs-transmission")
  15084. (version "0.12.2")
  15085. (source
  15086. (origin
  15087. (method git-fetch)
  15088. (uri (git-reference
  15089. (url "https://github.com/holomorph/transmission")
  15090. (commit version)))
  15091. (file-name (git-file-name name version))
  15092. (sha256
  15093. (base32 "16bn8y2sd7kzihp8bxh4vyay16y91q3yc0gcd0bzywcx3hijqlfc"))))
  15094. (build-system emacs-build-system)
  15095. (home-page "https://github.com/holomorph/transmission")
  15096. (synopsis "Emacs interface to a Transmission session")
  15097. (description "This package provides an Emacs interface to interact with a
  15098. running session of the Transmission Bittorrent client.
  15099. Features:
  15100. @itemize
  15101. @item List, add, start/stop, verify, remove torrents.
  15102. @item Set speed limits, ratio limits, bandwidth priorities, trackers.
  15103. @item Navigate to the corresponding file list, torrent info, peer info
  15104. contexts.
  15105. @item Toggle downloading and set priorities for individual files.
  15106. @end itemize\n")
  15107. (license license:gpl3+)))
  15108. (define-public emacs-polymode
  15109. (package
  15110. (name "emacs-polymode")
  15111. (version "0.2.2")
  15112. (source
  15113. (origin
  15114. (method git-fetch)
  15115. (uri (git-reference
  15116. (url "https://github.com/polymode/polymode")
  15117. (commit (string-append "v" version))))
  15118. (file-name (git-file-name name version))
  15119. (sha256
  15120. (base32 "18ssl2h861dm2jkd3df6wkfr48p8zk337dbvpq5522kia7fq1lbn"))))
  15121. (build-system emacs-build-system)
  15122. (home-page "https://github.com/polymode/polymode")
  15123. (synopsis "Framework for multiple Emacs modes based on indirect buffers")
  15124. (description
  15125. "Polymode is an Emacs package that offers generic support for multiple
  15126. major modes inside a single Emacs buffer. It is lightweight, object oriented
  15127. and highly extensible. Creating a new polymode typically takes only a few
  15128. lines of code. Polymode also provides extensible facilities for external
  15129. literate programming tools for exporting, weaving and tangling.")
  15130. (license license:gpl3+)))
  15131. (define-public emacs-polymode-ansible
  15132. (package
  15133. (name "emacs-polymode-ansible")
  15134. (version "0.3.0")
  15135. (source
  15136. (origin
  15137. (method git-fetch)
  15138. (uri (git-reference
  15139. (url "https://gitlab.com/mavit/poly-ansible")
  15140. (commit version)))
  15141. (file-name (git-file-name name version))
  15142. (sha256
  15143. (base32 "0f0yq6gmkp194nxk90ipprglf1xkmxrgz1rkgrhfslvxq4q2l81h"))))
  15144. (build-system emacs-build-system)
  15145. (propagated-inputs
  15146. `(("emacs-ansible-doc" ,emacs-ansible-doc)
  15147. ("emacs-jinja2-mode" ,emacs-jinja2-mode)
  15148. ("emacs-polymode" ,emacs-polymode)
  15149. ("emacs-yaml-mode" ,emacs-yaml-mode)))
  15150. (properties '((upstream-name . "poly-ansible")))
  15151. (home-page "https://gitlab.com/mavit/poly-ansible/")
  15152. (synopsis "Polymode for Ansible - Jinja2 in YAML")
  15153. (description
  15154. "Edit YAML files for Ansible containing embedded Jinja2 templating.")
  15155. (license license:gpl3+)))
  15156. (define-public emacs-polymode-markdown
  15157. (package
  15158. (name "emacs-polymode-markdown")
  15159. (version "0.2.2")
  15160. (home-page "https://github.com/polymode/poly-markdown")
  15161. (source
  15162. (origin
  15163. (method git-fetch)
  15164. (uri (git-reference
  15165. (url home-page)
  15166. (commit (string-append "v" version))))
  15167. (file-name (git-file-name name version))
  15168. (sha256
  15169. (base32 "1q4qq0ql08hxkdrd2aal03560k612my7bvnfpfij3g432hn0p7v6"))))
  15170. (build-system emacs-build-system)
  15171. (propagated-inputs
  15172. `(("emacs-markdown-mode" ,emacs-markdown-mode)
  15173. ("emacs-polymode" ,emacs-polymode)))
  15174. (properties '((upstream-name . "poly-markdown")))
  15175. (synopsis "Polymode for Markdown mode")
  15176. (description
  15177. "This package allows editing source code blocks embedded in Markdown
  15178. files using the major mode corresponding to each block.")
  15179. (license license:gpl3+)))
  15180. (define-public emacs-poly-noweb
  15181. (package
  15182. (name "emacs-poly-noweb")
  15183. (version "0.2.2")
  15184. (source
  15185. (origin
  15186. (method git-fetch)
  15187. (uri (git-reference
  15188. (url "https://github.com/polymode/poly-noweb")
  15189. (commit (string-append "v" version))))
  15190. (file-name (git-file-name name version))
  15191. (sha256
  15192. (base32 "1jl5h4nf10xd2gdlsxi6h2n3z5zh26ffcixn68xfp5q4zl34zk8p"))))
  15193. (build-system emacs-build-system)
  15194. (propagated-inputs
  15195. `(("emacs-polymode" ,emacs-polymode)))
  15196. (home-page "https://github.com/polymode/poly-noweb")
  15197. (synopsis "Polymode for noweb")
  15198. (description
  15199. "This package provides @code{poly-noweb-mode}, a polymode for noweb
  15200. files.")
  15201. (license license:gpl3+)))
  15202. (define-public emacs-powershell
  15203. ;; Tagged branch 0.1 is outdated (2015).
  15204. (let ((revision "0")
  15205. (commit "d1b3f95669343399f199f291ef76c09a0ede5e60"))
  15206. (package
  15207. (name "emacs-powershell")
  15208. (build-system emacs-build-system)
  15209. (version (git-version "0.3" revision commit))
  15210. (source
  15211. (origin
  15212. (method git-fetch)
  15213. (uri (git-reference
  15214. (url "https://github.com/jschaf/powershell.el")
  15215. (commit commit)))
  15216. (file-name (git-file-name name version))
  15217. (sha256
  15218. (base32 "1cxhzaaig88zhylyycvb3849r85j1ijqklnh9zbqsfl2zhpb0g5c"))))
  15219. (home-page "https://github.com/jschaf/powershell.el")
  15220. (synopsis "Emacs mode for editing PowerShell scripts")
  15221. (description
  15222. "Powershell is an Emacs major mode for editing and running
  15223. Microsoft PowerShell files.")
  15224. (license license:gpl3+))))
  15225. (define-public emacs-polymode-org
  15226. (package
  15227. (name "emacs-polymode-org")
  15228. (version "0.2.2")
  15229. (source
  15230. (origin
  15231. (method git-fetch)
  15232. (uri (git-reference
  15233. (url "https://github.com/polymode/poly-org")
  15234. (commit (string-append "v" version))))
  15235. (file-name (git-file-name name version))
  15236. (sha256
  15237. (base32 "1srnwcsn2bh8gqzxixkhffk7gbnk66kd4dgvxbnps5nxqc6v0qhc"))))
  15238. (build-system emacs-build-system)
  15239. (propagated-inputs
  15240. `(("emacs-polymode" ,emacs-polymode)))
  15241. (properties '((upstream-name . "poly-org")))
  15242. (home-page "https://github.com/polymode/poly-org")
  15243. (synopsis "Polymode definitions for Org mode buffers")
  15244. (description
  15245. "This package provides definitions for Polymode to support Org buffers.
  15246. It edits source blocks in an Org buffer using the native modes of the blocks'
  15247. languages while remaining inside the primary Org buffer.")
  15248. (license license:gpl3+)))
  15249. (define-public eless
  15250. (package
  15251. (name "eless")
  15252. (version "0.6")
  15253. (source
  15254. (origin
  15255. (method git-fetch)
  15256. (uri (git-reference
  15257. (url "https://github.com/kaushalmodi/eless")
  15258. (commit (string-append "v" version))))
  15259. (file-name (git-file-name name version))
  15260. (sha256
  15261. (base32 "1xif339wsc79hsab3l1nnwvy20jg7s1r4akfj4qqi6qxizfhmb52"))))
  15262. (build-system copy-build-system)
  15263. (inputs
  15264. `(("bash" ,bash)
  15265. ("emacs" ,emacs)))
  15266. (arguments
  15267. `(#:install-plan
  15268. '(("eless" "bin/")
  15269. ("docs/eless.info" "share/info/")
  15270. ("eless.org" ,(string-append "share/doc/eless-" version "/")))))
  15271. (home-page "https://github.com/kaushalmodi/eless")
  15272. (synopsis "Use Emacs as a paginator")
  15273. (description "@code{eless} provides a combination of Bash script
  15274. and a minimal Emacs view-mode.
  15275. Features:
  15276. @itemize
  15277. @item Independent of a user’s Emacs config.
  15278. @item Customizable via the @code{(locate-user-emacs-file \"elesscfg\")} config.
  15279. @item Not require an Emacs server to be already running.
  15280. @item Syntax highlighting.
  15281. @item Org-mode file rendering.
  15282. @item @code{man} page viewer.
  15283. @item Info viewer.
  15284. @item Dired, wdired, (batch edit symbolic links).
  15285. @item Colored diffs, git diff, git log, ls with auto ANSI detection.
  15286. @item Filter log files lines matching a regexp.
  15287. @item Auto-revert log files similar to @code{tail -f}.
  15288. @item Quickly change frame and font sizes.
  15289. @end itemize\n")
  15290. (license license:expat)))
  15291. (define-public emacs-evil-matchit
  15292. (package
  15293. (name "emacs-evil-matchit")
  15294. (version "2.4.0")
  15295. (source
  15296. (origin
  15297. (method git-fetch)
  15298. (uri (git-reference
  15299. (url "https://github.com/redguardtoo/evil-matchit")
  15300. (commit version)))
  15301. (file-name (git-file-name name version))
  15302. (sha256
  15303. (base32 "1ls58wdjhs4q18bj3izflj0bb5fwafyr520y1j9kj29clqn73kxh"))))
  15304. (build-system emacs-build-system)
  15305. (propagated-inputs
  15306. `(("emacs-evil" ,emacs-evil)))
  15307. (home-page "https://github.com/redguardtoo/evil-matchit")
  15308. (synopsis "Vim matchit ported into Emacs")
  15309. (description
  15310. "@code{evil-matchit} is a minor mode for jumping between matching tags in
  15311. evil mode using @kbd{%}. It is a port of @code{matchit} for Vim.")
  15312. (license license:gpl3+)))
  15313. (define-public emacs-evil-smartparens
  15314. (package
  15315. (name "emacs-evil-smartparens")
  15316. (version "0.4.0")
  15317. (source
  15318. (origin
  15319. (method git-fetch)
  15320. (uri (git-reference
  15321. (url "https://github.com/expez/evil-smartparens")
  15322. (commit version)))
  15323. (file-name (git-file-name name version))
  15324. (sha256
  15325. (base32 "1di4qz5fbrlwbg16c2j0m7y8zqfxw027qd7zqmc3rwk9znbhg7wl"))))
  15326. (build-system emacs-build-system)
  15327. (propagated-inputs
  15328. `(("emacs-evil" ,emacs-evil)
  15329. ("emacs-smartparens" ,emacs-smartparens)))
  15330. (home-page "https://github.com/expez/evil-smartparens")
  15331. (synopsis "Emacs Evil integration for Smartparens")
  15332. (description "@code{emacs-evil-smartparens} is an Emacs minor mode which
  15333. makes Evil play nice with Smartparens. Evil is an Emacs minor mode that
  15334. emulates Vim features and provides Vim-like key bindings.")
  15335. (license license:gpl3+)))
  15336. (define-public emacs-evil-quickscope
  15337. (package
  15338. (name "emacs-evil-quickscope")
  15339. (version "0.1.4")
  15340. (source
  15341. (origin
  15342. (method git-fetch)
  15343. (uri (git-reference
  15344. (url "https://github.com/blorbx/evil-quickscope")
  15345. (commit (string-append "v" version))))
  15346. (file-name (git-file-name name version))
  15347. (sha256
  15348. (base32 "1ja9ggj70wf0nmma4xnc1zdzg2crq9h1cv3cj7cgwjmllflgkfq7"))))
  15349. (build-system emacs-build-system)
  15350. (propagated-inputs
  15351. `(("emacs-evil" ,emacs-evil)))
  15352. (arguments
  15353. `(#:tests? #t
  15354. #:test-command '("emacs" "--batch"
  15355. "-l" "evil-quickscope-tests.el"
  15356. "-f" "ert-run-tests-batch-and-exit")))
  15357. (home-page "https://github.com/blorbx/evil-quickscope")
  15358. (synopsis "Target highlighting for emacs evil-mode f,F,t and T commands")
  15359. (description "@code{emacs-evil-quickscope} highlights targets for Evil
  15360. mode’s f,F,t,T keys, allowing for quick navigation within a line. It is a
  15361. port of quick-scope for Vim. Evil is an Emacs minor mode that emulates Vim
  15362. features and provides Vim-like key bindings.")
  15363. (license license:gpl3+)))
  15364. (define-public emacs-bongo
  15365. (package
  15366. (name "emacs-bongo")
  15367. (version "1.1")
  15368. (source
  15369. (origin
  15370. (method git-fetch)
  15371. (uri (git-reference
  15372. (url "https://github.com/dbrock/bongo")
  15373. (commit version)))
  15374. (file-name (git-file-name name version))
  15375. (sha256
  15376. (base32 "1nszph9mn98flyhn1jq3y6mdh6jymjkvj5ng36ql016dj92apvhv"))))
  15377. (build-system emacs-build-system)
  15378. (home-page "https://github.com/dbrock/bongo")
  15379. (synopsis "Media player for Emacs")
  15380. (description
  15381. "This package provides a flexible media player for Emacs. @code{Bongo}
  15382. supports multiple backends such as @code{vlc}, @code{mpg123},
  15383. @code{ogg123}, @code{speexdec}, @code{timidity}, @code{mikmod} and
  15384. @code{afplay}.")
  15385. (license license:gpl2+)))
  15386. (define-public emacs-groovy-modes
  15387. (package
  15388. (name "emacs-groovy-modes")
  15389. (version "2.1")
  15390. (source (origin
  15391. (method git-fetch)
  15392. (uri (git-reference
  15393. (url "https://github.com/Groovy-Emacs-Modes\
  15394. /groovy-emacs-modes")
  15395. (commit version)))
  15396. (file-name (git-file-name name version))
  15397. (sha256
  15398. (base32
  15399. "1jpfyqnqd8nj0g8xbiw4ar2qzxx3pvhwibr6hdzhyy9mmc4yzdgk"))))
  15400. (build-system emacs-build-system)
  15401. (arguments
  15402. `(#:tests? #t
  15403. #:test-command '("ert-runner")))
  15404. (native-inputs
  15405. `(("emacs-ert-runner" ,emacs-ert-runner)
  15406. ("emacs-undercover" ,emacs-undercover)
  15407. ("emacs-shut-up" ,emacs-shut-up)
  15408. ("emacs-f" ,emacs-f)))
  15409. (propagated-inputs
  15410. `(("emacs-dash" ,emacs-dash)
  15411. ("emacs-s" ,emacs-s)))
  15412. (home-page "https://github.com/Groovy-Emacs-Modes/groovy-emacs-modes")
  15413. (synopsis "Groovy related modes for Emacs")
  15414. (description "This package provides @code{groovy-mode} for syntax
  15415. highlighting in Groovy source files, REPL integration with run-groovy and
  15416. Grails project navigation with the grails mode.")
  15417. (license license:gpl3+)))
  15418. (define-public emacs-jenkinsfile-mode
  15419. (let ((commit "65bf3925852c35c6bd499978f08f83c1193f4347")
  15420. (revision "1"))
  15421. (package
  15422. (name "emacs-jenkinsfile-mode")
  15423. (version (git-version "0.0.1" revision commit))
  15424. (source (origin
  15425. (method git-fetch)
  15426. (uri (git-reference
  15427. (url "https://github.com/john2x/jenkinsfile-mode")
  15428. (commit commit)))
  15429. (file-name (git-file-name name version))
  15430. (sha256
  15431. (base32
  15432. "0w38g88yykslg71xr99ff4vx1ffgy90b7xqvvdflr189gwk3avx1"))))
  15433. (propagated-inputs
  15434. `(("emacs-groovy-modes" ,emacs-groovy-modes)))
  15435. (build-system emacs-build-system)
  15436. (home-page "https://github.com/john2x/jenkinsfile-mode/")
  15437. (synopsis "Emacs major-mode for editing Jenkinsfile")
  15438. (description "This package provides a @code{jenkinsfile-mode} derived
  15439. from @code{groovy-mode} for editing Jenkins declarative pipeline files.")
  15440. (license license:gpl3+))))
  15441. (define-public emacs-kotlin-mode
  15442. (let ((commit "0e4bafb31d1fc2a0a420a521c2723d5526646c0b")
  15443. (revision "1"))
  15444. (package
  15445. (name "emacs-kotlin-mode")
  15446. (version (git-version "0.0.1" revision commit))
  15447. (source
  15448. (origin
  15449. (method git-fetch)
  15450. (uri (git-reference
  15451. (url "https://github.com/Emacs-Kotlin-Mode-Maintainers/kotlin-mode")
  15452. (commit commit)))
  15453. (file-name (git-file-name name version))
  15454. (sha256
  15455. (base32 "09inpgwmnnqaakyn4r4xs8kax8b89dw94kvl521x6d43h9zl5i70"))))
  15456. (build-system emacs-build-system)
  15457. (arguments
  15458. `(#:tests? #t
  15459. #:test-command '("ert-runner" "-L" "." "-L" "test")))
  15460. (native-inputs `(("emacs-ert-runner" ,emacs-ert-runner)))
  15461. (home-page "https://github.com/Emacs-Kotlin-Mode-Maintainers/kotlin-mode")
  15462. (synopsis "Major major-mode for editing Kotlin files")
  15463. (description
  15464. "This package provides a @code{kotlin-mode} for editing Kotlin files.")
  15465. (license license:gpl3+))))
  15466. (define-public emacs-org-tree-slide
  15467. (let ((commit "036a36eec1cf712d3db155572aed325daa372eb5")
  15468. (revision "2"))
  15469. (package
  15470. (name "emacs-org-tree-slide")
  15471. (version (git-version "2.8.4" revision commit))
  15472. (source (origin
  15473. (method git-fetch)
  15474. (uri (git-reference
  15475. (url "https://github.com/takaxp/org-tree-slide")
  15476. (commit commit)))
  15477. (sha256
  15478. (base32
  15479. "1r8ncx25xmxicgciyv5przp68y8qgy40fm10ba55awvql4xcm0yk"))
  15480. (file-name (git-file-name name version))))
  15481. (build-system emacs-build-system)
  15482. (home-page "https://github.com/takaxp/org-tree-slide")
  15483. (synopsis "Presentation tool for org-mode")
  15484. (description
  15485. "Org-tree-slide provides a slideshow mode to view org-mode files. Use
  15486. @code{org-tree-slide-mode} to enter the slideshow mode, and then @kbd{C->} and
  15487. @kbd{C-<} to jump to the next and previous slide.")
  15488. (license license:gpl3+))))
  15489. (define-public emacs-scratch-el
  15490. (package
  15491. (name "emacs-scratch-el")
  15492. (version "1.3")
  15493. (source
  15494. (origin
  15495. (method git-fetch)
  15496. (uri (git-reference
  15497. (url "https://github.com/ieure/scratch-el")
  15498. (commit (string-append "v" version))))
  15499. (file-name (git-file-name name version))
  15500. (sha256
  15501. (base32 "0yiwq2gc4gdgfhaagpawhb7yrzc4fsnyb10w5d0q4whv64cj8555"))))
  15502. (build-system emacs-build-system)
  15503. (native-inputs
  15504. `(("texinfo" ,texinfo)))
  15505. (arguments
  15506. '(#:phases
  15507. (modify-phases %standard-phases
  15508. (add-after 'install 'install-doc
  15509. (lambda* (#:key outputs #:allow-other-keys)
  15510. (unless (invoke "makeinfo" "scratch.texi")
  15511. (error "makeinfo failed"))
  15512. (install-file "scratch.info"
  15513. (string-append (assoc-ref outputs "out")
  15514. "/share/info"))
  15515. #t)))))
  15516. (home-page "https://github.com/ieure/scratch-el/")
  15517. (synopsis "Create scratch buffers with the same mode as current buffer")
  15518. (description "Scratch is an extension to Emacs that enables one to create
  15519. scratch buffers that are in the same mode as the current buffer. This is
  15520. notably useful when working on code in some language; you may grab code into a
  15521. scratch buffer, and, by virtue of this extension, do so using the Emacs
  15522. formatting rules for that language.")
  15523. (license license:bsd-2)))
  15524. (define-public emacs-kv
  15525. (package
  15526. (name "emacs-kv")
  15527. (version "0.0.19")
  15528. (source
  15529. (origin
  15530. (method git-fetch)
  15531. (uri (git-reference
  15532. (url "https://github.com/nicferrier/emacs-kv")
  15533. (commit "721148475bce38a70e0b678ba8aa923652e8900e")))
  15534. (file-name (git-file-name name version))
  15535. (sha256
  15536. (base32
  15537. "0r0lz2s6gvy04fwnafai668jsf4546h4k6zd6isx5wpk0n33pj5m"))))
  15538. (build-system emacs-build-system)
  15539. (arguments
  15540. `(#:tests? #t
  15541. #:test-command '("emacs" "--batch" "-l" "kv-tests.el"
  15542. "-f" "ert-run-tests-batch-and-exit")))
  15543. (home-page "https://github.com/nicferrier/emacs-kv")
  15544. (synopsis "Key/Value data structures library for Emacs Lisp")
  15545. (description "@code{emacs-kv} is a collection of tools for dealing with
  15546. key/value data structures such as plists, alists and hash-tables in Emacs
  15547. Lisp.")
  15548. (license license:gpl3+)))
  15549. (define-public emacs-esxml
  15550. (package
  15551. (name "emacs-esxml")
  15552. (version "0.3.7")
  15553. (source (origin
  15554. (method git-fetch)
  15555. (uri (git-reference
  15556. (url "https://github.com/tali713/esxml")
  15557. (commit version)))
  15558. (file-name (git-file-name name version))
  15559. (sha256
  15560. (base32
  15561. "1xzxmgsg0j72sf1vjh9gjswz3c29js0kqhm7r3jrqrh3a5agdnml"))))
  15562. (build-system emacs-build-system)
  15563. (arguments
  15564. `(#:emacs ,emacs ;need libxml
  15565. ;; XXX: Only the two following files are meant to be packaged.
  15566. ;; Byte-compiling the others Elisp files leads to build errors anyway.
  15567. #:include (list "esxml.el" "esxml-query.el")))
  15568. (propagated-inputs
  15569. `(("emacs-kv" ,emacs-kv)))
  15570. (home-page "https://github.com/tali713/esxml/")
  15571. (synopsis "SXML for EmacsLisp")
  15572. (description "This is XML/XHTML done with S-Expressions in EmacsLisp.
  15573. Simply, this is the easiest way to write HTML or XML in Lisp. This library
  15574. uses the native form of XML representation as used by many libraries already
  15575. included within Emacs. See @code{esxml-to-xml} for a concise description of
  15576. the format.")
  15577. (license license:gpl3+)))
  15578. (define-public emacs-nov-el
  15579. (package
  15580. (name "emacs-nov-el")
  15581. (version "0.3.4")
  15582. (source
  15583. (origin
  15584. (method git-fetch)
  15585. (uri (git-reference
  15586. (url "https://depp.brause.cc/nov.el.git")
  15587. (commit version)))
  15588. (file-name (git-file-name name version))
  15589. (sha256
  15590. (base32
  15591. "0va9xjrq30cv5kb59a4rq5mcm83ggnv774r8spmskff3hj8012wf"))))
  15592. (build-system emacs-build-system)
  15593. (arguments
  15594. `(#:emacs ,emacs ;need libxml
  15595. #:phases
  15596. (modify-phases %standard-phases
  15597. (add-after 'unpack 'embed-path-to-unzip
  15598. (lambda _
  15599. (substitute* "nov.el"
  15600. (("\\(executable-find \"unzip\"\\)")
  15601. (string-append "\"" (which "unzip") "\"")))
  15602. #t)))))
  15603. (propagated-inputs
  15604. `(("emacs-dash" ,emacs-dash)
  15605. ("emacs-esxml" ,emacs-esxml)))
  15606. (inputs
  15607. `(("unzip" ,unzip)))
  15608. (home-page "https://depp.brause.cc/nov.el/")
  15609. (synopsis "Major mode for reading EPUBs in Emacs")
  15610. (description "@code{nov.el} provides a major mode for reading EPUB
  15611. documents.
  15612. Features:
  15613. @itemize
  15614. @item Basic navigation (jump to TOC, previous/next chapter)
  15615. @item Remembering and restoring the last read position
  15616. @item Jump to next chapter when scrolling beyond end
  15617. @item Renders EPUB2 (@code{.ncx}) and EPUB3 (@code{<nav>}) TOCs
  15618. @item Hyperlinks to internal and external targets
  15619. @item Supports textual and image documents
  15620. @item View source of document files
  15621. @item Metadata display
  15622. @item Image rescaling
  15623. @end itemize
  15624. ")
  15625. (license license:gpl3+)))
  15626. (define-public epipe
  15627. (package
  15628. (name "epipe")
  15629. (version "0.1.0")
  15630. (source
  15631. (origin
  15632. (method git-fetch)
  15633. (uri (git-reference
  15634. (url "https://github.com/cute-jumper/epipe")
  15635. (commit version)))
  15636. (file-name (git-file-name name version))
  15637. (sha256
  15638. (base32 "0lkisi1s7sn12nx8zh58qmsxwnk1rjwryj18wcbr148xqz3swg57"))))
  15639. (build-system trivial-build-system)
  15640. (inputs
  15641. `(("bash" ,bash)
  15642. ("perl" ,perl)))
  15643. (arguments
  15644. `(#:modules
  15645. ((guix build utils))
  15646. #:builder
  15647. (begin
  15648. (use-modules (guix build utils))
  15649. ;; Extract source.
  15650. (copy-recursively (assoc-ref %build-inputs "source") "source")
  15651. (chdir "source")
  15652. ;; Patch shebangs.
  15653. (substitute* "epipe"
  15654. (("/usr/bin/env bash")
  15655. (string-append (assoc-ref %build-inputs "bash") "/bin/bash")))
  15656. (patch-shebang "epipe.pl"
  15657. (list (string-append (assoc-ref %build-inputs "perl")
  15658. "/bin")))
  15659. ;; Install.
  15660. (for-each (lambda (file)
  15661. (install-file file (string-append %output "/bin")))
  15662. '("epipe" "epipe.pl"))
  15663. #t)))
  15664. (home-page "https://github.com/cute-jumper/epipe")
  15665. (synopsis "Pipe to the @code{emacsclient}")
  15666. (description "@code{epipe} provides an utility to use your editor in
  15667. the pipeline, featuring the support for running @code{emacsclient}.")
  15668. (license license:gpl3+)))
  15669. (define-public emacs-jupyter
  15670. (package
  15671. (name "emacs-jupyter")
  15672. (version "0.8.2")
  15673. (source
  15674. (origin
  15675. (method git-fetch)
  15676. (uri (git-reference
  15677. (url "https://github.com/nnicandro/emacs-jupyter")
  15678. (commit (string-append "v" version))))
  15679. (file-name (git-file-name name version))
  15680. (sha256
  15681. (base32 "1sr007wsl2y6wqpzkmv3inbpwhvgdcb2nmqzgfg7w1awapi2r13p"))))
  15682. (build-system emacs-build-system)
  15683. (propagated-inputs
  15684. `(("emacs-company" ,emacs-company) ;optional
  15685. ("emacs-markdown-mode" ,emacs-markdown-mode) ;optional
  15686. ("emacs-simple-httpd" ,emacs-simple-httpd)
  15687. ("emacs-websocket" ,emacs-websocket)
  15688. ("emacs-zmq" ,emacs-zmq)))
  15689. (home-page "https://github.com/nnicandro/emacs-jupyter")
  15690. (synopsis "Emacs interface to communicate with Jupyter kernels")
  15691. (description "This package provides an Emacs interface to communicate with
  15692. Jupyter kernels. It provides REPL and @code{org-mode} source code block
  15693. frontends to Jupyter kernels and kernel interactions integrated with Emacs'
  15694. built-in features.")
  15695. (license license:gpl3+)))
  15696. (define-public emacs-hcl-mode
  15697. (package
  15698. (name "emacs-hcl-mode")
  15699. (version "0.03")
  15700. (source
  15701. (origin
  15702. (method git-fetch)
  15703. (uri (git-reference
  15704. (url "https://github.com/syohex/emacs-hcl-mode")
  15705. (commit version)))
  15706. (file-name (git-file-name name version))
  15707. (sha256
  15708. (base32 "0jqrgq15jz6pvx38pnwkizzfiih0d3nxqphyrc92nqpcyimg8b6g"))))
  15709. (build-system emacs-build-system)
  15710. (home-page "https://github.com/syohex/emacs-hcl-mode")
  15711. (synopsis "Major mode for the Hashicorp Configuration Language")
  15712. (description
  15713. "@code{emacs-hcl-mode} provides an Emacs major mode for working with
  15714. @acronym{HCL, Hashicorp Configuration Language}. It provides syntax
  15715. highlighting and indentation support.")
  15716. (license license:gpl3+)))
  15717. (define-public emacs-terraform-mode
  15718. (package
  15719. (name "emacs-terraform-mode")
  15720. (version "0.06")
  15721. (source
  15722. (origin
  15723. (method git-fetch)
  15724. (uri (git-reference
  15725. (url "https://github.com/syohex/emacs-terraform-mode")
  15726. (commit version)))
  15727. (file-name (git-file-name name version))
  15728. (sha256
  15729. (base32 "05hn8kskx9lcgn7bzgam99c629zlryir2pickwrqndacjrqpdykx"))))
  15730. (build-system emacs-build-system)
  15731. (propagated-inputs
  15732. `(("emacs-hcl-mode" ,emacs-hcl-mode)))
  15733. (home-page "https://github.com/syohex/emacs-terraform-mode")
  15734. (synopsis "Major mode for Terraform")
  15735. (description
  15736. "@code{emacs-terraform-mode} provides a major mode for working with
  15737. @uref{https://www.terraform.io/, Terraform} configuration files. Most of the
  15738. functionality is inherited from @code{hcl-mode}.")
  15739. (license license:gpl3+)))
  15740. (define-public emacs-exec-path-from-shell
  15741. (package
  15742. (name "emacs-exec-path-from-shell")
  15743. (version "1.12")
  15744. (source
  15745. (origin
  15746. (method git-fetch)
  15747. (uri (git-reference
  15748. (url "https://github.com/purcell/exec-path-from-shell")
  15749. (commit version)))
  15750. (file-name (git-file-name name version))
  15751. (sha256
  15752. (base32
  15753. "1ga8bpxngd3ph2hdiik92c612ki71qxw818i6rgx6f6a5r0sbf3p"))))
  15754. (build-system emacs-build-system)
  15755. (home-page "https://github.com/purcell/exec-path-from-shell")
  15756. (synopsis "Get environment variables such as @env{PATH} from the shell")
  15757. (description
  15758. "This library allows the user to set Emacs @code{exec-path} and @env{PATH}
  15759. from the shell's @env{PATH}, so that @code{shell-command}, @code{compile} and
  15760. the like work as expected on systems on which Emacs is not guaranteed to
  15761. inherit a login shell's environment variables. It also allows other
  15762. environment variables to be retrieved from the shell, so that Emacs will see
  15763. the same values you get in a terminal.")
  15764. (license license:gpl3+)))
  15765. (define-public emacs-frog-menu
  15766. (package
  15767. (name "emacs-frog-menu")
  15768. (version "0.2.11")
  15769. (source
  15770. (origin
  15771. (method url-fetch)
  15772. (uri (string-append "https://elpa.gnu.org/packages/"
  15773. "frog-menu-" version ".el"))
  15774. (sha256
  15775. (base32 "06iw11z61fd0g4w3562k3smcmzaq3nivvvc6gzm8y8k5pcrqzdff"))))
  15776. (build-system emacs-build-system)
  15777. (propagated-inputs
  15778. `(("emacs-avy" ,emacs-avy)
  15779. ("emacs-posframe" ,emacs-posframe)))
  15780. (home-page "https://github.com/clemera/frog-menu")
  15781. (synopsis "Quickly pick items from ad hoc menus")
  15782. (description
  15783. "This package provides a popup offering a preview of a list of candidates
  15784. on which user-defined dispatch actions can act.")
  15785. (license license:gpl3+)))
  15786. (define-public emacs-frog-jump-buffer
  15787. (let ((commit "2d7b342785ae27d45f5d252272df6eb773c78e20")
  15788. (revision "1"))
  15789. (package
  15790. (name "emacs-frog-jump-buffer")
  15791. (version (git-version "0.1.4" revision commit))
  15792. (source
  15793. (origin
  15794. (method git-fetch)
  15795. (uri (git-reference
  15796. (url "https://github.com/waymondo/frog-jump-buffer")
  15797. (commit commit)))
  15798. (file-name (git-file-name name version))
  15799. (sha256
  15800. (base32
  15801. "1z00by8hiss1r2lwmzrl8pnz6jykia2849dqqm4l3z5rf6lwvc0f"))))
  15802. (build-system emacs-build-system)
  15803. (propagated-inputs
  15804. `(("emacs-dash" ,emacs-dash)
  15805. ("emacs-frog-menu" ,emacs-frog-menu)
  15806. ("emacs-avy" ,emacs-avy)))
  15807. (home-page "https://github.com/waymondo/frog-jump-buffer")
  15808. (synopsis "Jump to any Emacs buffer with minimal keystrokes")
  15809. (description
  15810. "This package provides a preview window of buffers that can be switched
  15811. to with quicklink-style selections.")
  15812. (license license:gpl3+))))
  15813. (define-public emacs-deft
  15814. (package
  15815. (name "emacs-deft")
  15816. (version "0.8")
  15817. (source
  15818. (origin
  15819. (method git-fetch)
  15820. (uri (git-reference
  15821. (url "https://github.com/jrblevin/deft")
  15822. (commit (string-append "v" version))))
  15823. (file-name (git-file-name name version))
  15824. (sha256
  15825. (base32
  15826. "0z7cilgiz6krvl5h2z72hkch43qxmypb0k6p5vxn5lx1p6v0mrf2"))))
  15827. (build-system emacs-build-system)
  15828. (home-page "https://jblevins.org/projects/deft/")
  15829. (synopsis "Quickly browse, filter, and edit plain text notes")
  15830. (description
  15831. "Deft is an Emacs mode for quickly browsing, filtering, and editing
  15832. directories of plain text notes, inspired by Notational Velocity.")
  15833. (license license:bsd-3)))
  15834. (define-public emacs-anzu
  15835. (package
  15836. (name "emacs-anzu")
  15837. (version "0.64")
  15838. (source
  15839. (origin
  15840. (method git-fetch)
  15841. (uri (git-reference
  15842. (url "https://github.com/syohex/emacs-anzu")
  15843. (commit version)))
  15844. (file-name (git-file-name name version))
  15845. (sha256
  15846. (base32 "1jfn5nm6r68wa0gn2k2zy6sdq6c8shw8x04ylzzm5cw7zm60jw0n"))))
  15847. (build-system emacs-build-system)
  15848. (home-page "https://github.com/syohex/emacs-anzu")
  15849. (synopsis "Show number of matches in mode-line while searching")
  15850. (description
  15851. "Anzu provides a minor mode which displays \"current match/total
  15852. matches\" in the mode line in various search modes. This is an Emacs port of
  15853. Anzu.zim.")
  15854. (license license:gpl3+)))
  15855. (define-public emacs-ascii-art-to-unicode
  15856. (package
  15857. (name "emacs-ascii-art-to-unicode")
  15858. (version "1.13")
  15859. (source
  15860. (origin
  15861. (method url-fetch)
  15862. (uri (string-append "https://elpa.gnu.org/packages/ascii-art-to-unicode-"
  15863. version ".el"))
  15864. (sha256
  15865. (base32 "1c0jva3amhl9c5xc5yzdpi58c8m1djym4ccj31z6wmakq7npy07p"))))
  15866. (build-system emacs-build-system)
  15867. (home-page "https://elpa.gnu.org/packages/ascii-art-to-unicode.html")
  15868. (synopsis "ASCII to Unicode art converter for Emacs")
  15869. (description "This Emacs package provides the commands @command{aa2u} and
  15870. @command{aa2u-rectangle}. Both of these commands can be used to convert
  15871. simple ASCII art line drawings to Unicode; the former works on the active
  15872. region of the buffer, while the latter works on rectangular selections.")
  15873. (license license:gpl3+)))
  15874. (define-public emacs-emmet-mode
  15875. (let ((commit "1acb821e0142136344ccf40c1e5fb664d7db2e70")
  15876. (revision "1"))
  15877. (package
  15878. (name "emacs-emmet-mode")
  15879. (version (git-version "1.0.8" revision commit))
  15880. (source (origin
  15881. (method git-fetch)
  15882. (uri (git-reference
  15883. (url "https://github.com/smihica/emmet-mode")
  15884. (commit commit)))
  15885. (file-name (git-file-name name version))
  15886. (sha256
  15887. (base32
  15888. "1p25h191bm0h5b3w5apg7wks51k7pb7h4dlww4jbl9ri4d33fzcl"))))
  15889. (build-system emacs-build-system)
  15890. (home-page "https://github.com/smihica/emmet-mode")
  15891. (synopsis "Unofficial Emmet's support for Emacs")
  15892. (description
  15893. "Unfold CSS-selector-like expressions to markup. It is intended to be
  15894. used with SGML-like languages: XML, HTML, XHTML, XSL, etc.")
  15895. (license license:gpl3+))))
  15896. (define-public emacs-ergoemacs-mode
  15897. (let ((commit "3ce23bba3cb50562693860f87f3528c471d603ba")
  15898. (revision "1"))
  15899. (package
  15900. (name "emacs-ergoemacs-mode")
  15901. (version (git-version "5.16.10.12" revision commit))
  15902. (source
  15903. (origin
  15904. (method git-fetch)
  15905. (uri (git-reference
  15906. (url "https://github.com/ergoemacs/ergoemacs-mode")
  15907. (commit commit)))
  15908. (file-name (git-file-name name version))
  15909. (sha256
  15910. (base32
  15911. "1s3b9bridl78hh1mxmdk9nqlmqhibbaxk0a1cixmsf23s06w8w6l"))))
  15912. (build-system emacs-build-system)
  15913. (propagated-inputs
  15914. `(("emacs-undo-tree" ,emacs-undo-tree)))
  15915. (home-page "https://ergoemacs.github.io/")
  15916. (synopsis "Emacs mode based on common modern interface and ergonomics")
  15917. (description
  15918. "This package provides an efficient Emacs keybinding set based on
  15919. statistics of command frequency, and supports common shortcuts for open,
  15920. close, copy, cut, paste, undo, redo.")
  15921. (license license:gpl3+))))
  15922. (define-public emacs-password-store
  15923. (let ((commit "918992c19231b33b3d4a3288a7288a620e608cb4")
  15924. (revision "1"))
  15925. (package
  15926. (name "emacs-password-store")
  15927. ;; The emacs package version does not match the password-store version,
  15928. ;; even though it is part of the same repository. When updating, look
  15929. ;; at the version declared in password-store.el.
  15930. (version (git-version "2.1.4" revision commit))
  15931. (source (origin
  15932. (method git-fetch)
  15933. (uri (git-reference
  15934. (url "git://git.zx2c4.com/password-store")
  15935. (commit commit)))
  15936. (sha256
  15937. (base32
  15938. "0ni62f4pq96g0i0q66bch1dl9k4zqwhg7xaf746k3gbbqxcdh3vi"))
  15939. (file-name (git-file-name name version))))
  15940. (build-system emacs-build-system)
  15941. (arguments
  15942. `(#:phases
  15943. (modify-phases %standard-phases
  15944. (add-after 'unpack 'extract-el-file
  15945. (lambda _
  15946. (copy-file "contrib/emacs/password-store.el" "password-store.el")
  15947. (delete-file-recursively "contrib")
  15948. (delete-file-recursively "man")
  15949. (delete-file-recursively "src")
  15950. (delete-file-recursively "tests"))))))
  15951. (propagated-inputs
  15952. `(("emacs-auth-source-pass" ,emacs-auth-source-pass)
  15953. ("emacs-s" ,emacs-s)
  15954. ("emacs-with-editor" ,emacs-with-editor)
  15955. ("password-store" ,password-store)))
  15956. (home-page "https://git.zx2c4.com/password-store/tree/contrib/emacs")
  15957. (synopsis "Password store (pass) support for Emacs")
  15958. (description
  15959. "This package provides functions for working with pass (\"the
  15960. standard Unix password manager\").")
  15961. (license license:gpl2+))))
  15962. (define-public emacs-password-store-otp
  15963. (package
  15964. (name "emacs-password-store-otp")
  15965. (version "0.1.5")
  15966. (source
  15967. (origin
  15968. (method git-fetch)
  15969. (uri (git-reference
  15970. (url "https://github.com/volrath/password-store-otp.el")
  15971. (commit version)))
  15972. (sha256
  15973. (base32 "0gb48blvnn6ci2wl45z81p41ny7vbgl610hqy6b2hyr2171qjd60"))
  15974. (file-name (git-file-name name version))))
  15975. (build-system emacs-build-system)
  15976. (propagated-inputs
  15977. `(("emacs-password-store" ,emacs-password-store)
  15978. ("emacs-s" ,emacs-s)))
  15979. (home-page "https://github.com/volrath/password-store-otp.el")
  15980. (synopsis
  15981. "Interact with the @code{pass-otp} extension for @code{pass} from Emacs")
  15982. (description "This package provides Emacs functions to interact with the
  15983. @code{pass-otp} extension for @code{pass}. It includes functions to import
  15984. OTP URIs from screenshots of QR codes, and to export them back to QR codes if
  15985. needed.")
  15986. (license license:gpl3+)))
  15987. (define-public emacs-auth-source-pass
  15988. (let ((commit "847a1f54ed48856b4dfaaa184583ef2c84173edf")
  15989. (revision "2"))
  15990. (package
  15991. (name "emacs-auth-source-pass")
  15992. (version (git-version "5.0.0" revision commit))
  15993. (source
  15994. (origin
  15995. (method git-fetch)
  15996. (uri (git-reference
  15997. (url "https://github.com/DamienCassou/auth-password-store")
  15998. (commit commit)))
  15999. (file-name (git-file-name name version))
  16000. (sha256
  16001. (base32 "0g48z5w6n3c54zqfpx65dfyl9jqbl15idvbb1hhw2pd9f9r8fykk"))))
  16002. (build-system emacs-build-system)
  16003. (arguments
  16004. `(#:tests? #t
  16005. #:test-command '("emacs" "--batch"
  16006. "-L" "."
  16007. "-l" "test/auth-source-pass-tests.el"
  16008. "-f" "ert-run-tests-batch-and-exit")))
  16009. (home-page "https://github.com/DamienCassou/auth-password-store")
  16010. (synopsis "Integrate @code{auth-source} with @code{password-store}")
  16011. (description "This package helps Emacs integrate with the Unix
  16012. @code{password-store} application.")
  16013. (license license:gpl3+))))
  16014. (define-public emacs-pass
  16015. (package
  16016. (name "emacs-pass")
  16017. (version "2.0")
  16018. (source
  16019. (origin
  16020. (method git-fetch)
  16021. (uri (git-reference
  16022. (url "https://github.com/NicolasPetton/pass")
  16023. (commit version)))
  16024. (file-name (git-file-name name version))
  16025. (sha256
  16026. (base32 "0jc8j421mlflspg24jvrqc2n3y5n3cpk3hjy560il8g36xi1049p"))))
  16027. (build-system emacs-build-system)
  16028. (propagated-inputs
  16029. `(("emacs-password-store" ,emacs-password-store)
  16030. ("emacs-f" ,emacs-f)))
  16031. (home-page "https://github.com/NicolasPetton/pass")
  16032. (synopsis "Major mode for @file{password-store.el}")
  16033. (description "This is a major mode for managing password-store (pass)
  16034. keychains. The keychain entries are displayed in a directory-like structure
  16035. and can be consulted and modified.")
  16036. (license license:gpl3+)))
  16037. (define-public emacs-psc-ide
  16038. ;; There is no proper release. The base version is extracted from the
  16039. ;; "Version" keyword in the main file.
  16040. (let ((commit "7fc2b841be25f5bc5e1eb7d0634436181c38b3fe")
  16041. (revision "1"))
  16042. (package
  16043. (name "emacs-psc-ide")
  16044. (version (git-version "0.1.0" revision commit))
  16045. (source
  16046. (origin
  16047. (method git-fetch)
  16048. (uri
  16049. (git-reference
  16050. (url "https://github.com/purescript-emacs/psc-ide-emacs")
  16051. (commit commit)))
  16052. (file-name (git-file-name name version))
  16053. (sha256
  16054. (base32 "0r0fymyai30jimm34z1cmav4wgij8ci6s1d9y7qigygfbbfrdsmj"))))
  16055. (build-system emacs-build-system)
  16056. (propagated-inputs
  16057. `(("emacs-company" ,emacs-company)
  16058. ("emacs-dash" ,emacs-dash)
  16059. ("emacs-flycheck" ,emacs-flycheck)
  16060. ("emacs-let-alist" ,emacs-let-alist)
  16061. ("emacs-s" ,emacs-s)))
  16062. (home-page "https://github.com/purescript-emacs/psc-ide-emacs")
  16063. (synopsis "Emacs integration for PureScript's psc-ide tool")
  16064. (description
  16065. "This package provices Emacs integration for @code{psc-ide}, an IDE
  16066. protocol for PureScript programming language. It features:
  16067. @itemize
  16068. @item Completions
  16069. @item Type at point
  16070. @item Go to definition
  16071. @item Automatic imports
  16072. @item Case split
  16073. @item Build system integration, and
  16074. @item Flycheck support
  16075. @end itemize")
  16076. (license license:gpl3+))))
  16077. (define-public emacs-evil-anzu
  16078. (package
  16079. (name "emacs-evil-anzu")
  16080. (version "0.03")
  16081. (source
  16082. (origin
  16083. (method git-fetch)
  16084. (uri (git-reference
  16085. (url "https://github.com/syohex/emacs-evil-anzu")
  16086. (commit version)))
  16087. (file-name (git-file-name name version))
  16088. (sha256
  16089. (base32 "0lw7fg4gqwj30r0l6k2ni36sxqkf65zf0d0z3rxnpwbxlf8dlkrr"))))
  16090. (build-system emacs-build-system)
  16091. (propagated-inputs
  16092. `(("emacs-evil" ,emacs-evil)
  16093. ("emacs-anzu" ,emacs-anzu)))
  16094. (home-page "https://github.com/syohex/emacs-evil-anzu")
  16095. (synopsis "Anzu for evil-mode")
  16096. (description "@code{anzu} provides a minor mode that displays the current
  16097. match and total match information in the mode-line in various search modes.")
  16098. (license license:gpl3+)))
  16099. (define-public emacs-pg
  16100. (let ((commit "4f6516ec3946d95dcef49abb6703cc89ecb5183d"))
  16101. (package
  16102. (name "emacs-pg")
  16103. (version (git-version "0.1" "1" commit))
  16104. (source (origin
  16105. (method git-fetch)
  16106. (uri (git-reference (url "https://github.com/cbbrowne/pg.el")
  16107. (commit commit)))
  16108. (file-name (git-file-name name version))
  16109. (sha256
  16110. (base32
  16111. "1zh7v4nnpzvbi8yj1ynlqlawk5bmlxi6s80b5f2y7hkdqb5q26k0"))))
  16112. (build-system emacs-build-system)
  16113. (home-page "https://github.com/cbbrowne/pg.el")
  16114. (synopsis "Emacs Lisp interface for PostgreSQL")
  16115. (description
  16116. "This package provides an Emacs Lisp interface for PostgreSQL.")
  16117. (license license:gpl3+))))
  16118. (define-public emacs-finalize
  16119. (package
  16120. (name "emacs-finalize")
  16121. (version "2.0.0")
  16122. (source
  16123. (origin
  16124. (method git-fetch)
  16125. (uri (git-reference
  16126. (url "https://github.com/skeeto/elisp-finalize")
  16127. (commit version)))
  16128. (file-name (git-file-name name version))
  16129. (sha256
  16130. (base32 "1gvlm4i62af5jscwz0jccc8ra0grprxpg2rlq91d5nn8dn5lpy79"))))
  16131. (build-system emacs-build-system)
  16132. (home-page "https://github.com/skeeto/elisp-finalize")
  16133. (synopsis "Finalizers for Emacs Lisp")
  16134. (description
  16135. "This package runs a callback (a finalizer)
  16136. after its registered lisp object has been garbage collected. This allows
  16137. extra resources, such as buffers and processes, to be cleaned up after the
  16138. object has been freed.")
  16139. (license license:unlicense)))
  16140. (define-public emacs-emacsql
  16141. (package
  16142. (name "emacs-emacsql")
  16143. (version "3.0.0")
  16144. (source (origin
  16145. (method git-fetch)
  16146. (uri (git-reference
  16147. (url "https://github.com/skeeto/emacsql")
  16148. (commit (string-append version))))
  16149. (file-name (git-file-name name version))
  16150. (sha256
  16151. (base32
  16152. "1c84gxr1majqj4b59wgdy3lzm3ap66w9qsrnkx8hdbk9895ak81g"))))
  16153. (build-system emacs-build-system)
  16154. (arguments
  16155. `(#:modules ((guix build emacs-build-system)
  16156. (guix build utils)
  16157. (guix build emacs-utils)
  16158. (srfi srfi-26))
  16159. #:phases
  16160. (modify-phases %standard-phases
  16161. (add-before 'install 'patch-elisp-shell-shebangs
  16162. (lambda _
  16163. (substitute* (find-files "." "\\.el")
  16164. (("/bin/sh") (which "sh")))
  16165. #t))
  16166. (add-after 'patch-elisp-shell-shebangs 'setenv-shell
  16167. (lambda _
  16168. (setenv "SHELL" "sh")))
  16169. (add-after 'setenv-shell 'build-emacsql-sqlite
  16170. (lambda _
  16171. (invoke "make" "binary" (string-append "CC=" ,(cc-for-target)))))
  16172. (add-after 'build-emacsql-sqlite 'install-emacsql-sqlite
  16173. ;; This build phase installs emacs-emacsql binary.
  16174. (lambda* (#:key outputs #:allow-other-keys)
  16175. (install-file "sqlite/emacsql-sqlite"
  16176. (string-append (assoc-ref outputs "out")
  16177. "/bin"))
  16178. #t))
  16179. (add-after 'install-emacsql-sqlite 'patch-emacsql-sqlite.el
  16180. ;; This build phase removes interactive prompts
  16181. ;; and makes sure Emacs look for binaries in the right places.
  16182. (lambda* (#:key outputs #:allow-other-keys)
  16183. (let ((file "emacsql-sqlite.el"))
  16184. (chmod file #o644)
  16185. (emacs-substitute-sexps file
  16186. ;; Make sure Emacs looks for ‘GCC’ binary in the right place.
  16187. ("(executable-find" (which "gcc"))
  16188. ;; Make sure Emacs looks for ‘emacsql-sqlite’ binary
  16189. ;; in the right place.
  16190. ("(defvar emacsql-sqlite-executable"
  16191. (string-append (assoc-ref outputs "out")
  16192. "/bin/emacsql-sqlite")))))))))
  16193. (inputs
  16194. `(("emacs-minimal" ,emacs-minimal)
  16195. ("mariadb" ,mariadb "lib")
  16196. ("mariadb-dev" ,mariadb "dev")
  16197. ("postgresql" ,postgresql)))
  16198. (propagated-inputs
  16199. `(("emacs-finalize" ,emacs-finalize)
  16200. ("emacs-pg" ,emacs-pg)))
  16201. (home-page "https://github.com/skeeto/emacsql")
  16202. (synopsis "Emacs high-level SQL database front-end")
  16203. (description "Any readable Lisp value can be stored as a value in EmacSQL,
  16204. including numbers, strings, symbols, lists, vectors, and closures. EmacSQL
  16205. has no concept of @code{TEXT} values; it's all just Lisp objects. The Lisp
  16206. object @code{nil} corresponds 1:1 with @code{NULL} in the database.")
  16207. (license license:gpl3+)))
  16208. (define-public emacs-emacsql-sqlite3
  16209. (package
  16210. (name "emacs-emacsql-sqlite3")
  16211. (version "1.0.2")
  16212. (source (origin
  16213. (method git-fetch)
  16214. (uri (git-reference
  16215. (url "https://github.com/cireu/emacsql-sqlite3")
  16216. (commit version)))
  16217. (file-name (git-file-name name version))
  16218. (sha256
  16219. (base32
  16220. "1jzvvsvi8jm2ws3y49nmpmwd3zlvf8j83rl2vwizd1aplwwdnmd6"))))
  16221. (build-system emacs-build-system)
  16222. (native-inputs
  16223. `(("ert-runner" ,emacs-ert-runner)))
  16224. (inputs
  16225. `(("sqlite" ,sqlite)))
  16226. (propagated-inputs
  16227. `(("emacs-emacsql" ,emacs-emacsql)))
  16228. (arguments
  16229. `(#:tests? #t
  16230. #:test-command '("emacs" "-Q" "--batch" "-L" "."
  16231. "--load" "emacsql-sqlite3-test.el"
  16232. "-f" "ert-run-tests-batch-and-exit")
  16233. #:phases
  16234. (modify-phases %standard-phases
  16235. (add-after 'unpack 'embed-path-to-sqlite3
  16236. (lambda _
  16237. (substitute* "emacsql-sqlite3.el"
  16238. (("\\(executable-find \"sqlite3\"\\)")
  16239. (string-append "\"" (which "sqlite3") "\"")))
  16240. #t)))))
  16241. (home-page "https://github.com/cireu/emacsql-sqlite3")
  16242. (synopsis "EmacSQL backend for SQLite")
  16243. (description "This is yet another EmacSQL backend for SQLite which uses
  16244. official @command{sqlite3} executable to access SQL database.")
  16245. (license license:gpl3+)))
  16246. (define-public emacs-closql
  16247. (package
  16248. (name "emacs-closql")
  16249. (version "1.0.6")
  16250. (source
  16251. (origin
  16252. (method git-fetch)
  16253. (uri (git-reference
  16254. (url "https://github.com/emacscollective/closql")
  16255. (commit (string-append "v" version))))
  16256. (file-name (git-file-name name version))
  16257. (sha256
  16258. (base32
  16259. "1ghqxnn39i032ibm5sbnv67r2dd2hgfnfpqbmb8wzg9wc6smnacq"))))
  16260. (build-system emacs-build-system)
  16261. (propagated-inputs
  16262. `(("emacs-emacsql" ,emacs-emacsql)))
  16263. (home-page "https://github.com/emacscollective/closql")
  16264. (synopsis "Store EIEIO objects using EmacSQL")
  16265. (description
  16266. "This package stores uniform EIEIO objects in an EmacSQL
  16267. database. SQLite is used as backend. This library imposes some restrictions
  16268. on what kind of objects can be stored; it isn't intended to store arbitrary
  16269. objects. All objects have to share a common superclass and subclasses cannot
  16270. add any additional instance slots.")
  16271. (license license:gpl3)))
  16272. (define-public emacs-epkg
  16273. (package
  16274. (name "emacs-epkg")
  16275. (version "3.3.1")
  16276. (source
  16277. (origin
  16278. (method git-fetch)
  16279. (uri (git-reference
  16280. (url "https://github.com/emacscollective/epkg")
  16281. (commit (string-append "v" version))))
  16282. (file-name (git-file-name name version))
  16283. (sha256
  16284. (base32
  16285. "0z9sz9ydfjzhawh4qip41h3vid1lslaf0h14hkjz9kx8fkrzib8a"))))
  16286. (build-system emacs-build-system)
  16287. (propagated-inputs
  16288. `(("emacs-closql" ,emacs-closql)
  16289. ("emacs-dash" ,emacs-dash)))
  16290. (home-page "https://emacsmirror.net")
  16291. (synopsis "Browse the Emacsmirror package database")
  16292. (description "This package provides access to a local copy of the
  16293. Emacsmirror package database. It provides low-level functions for querying
  16294. the database and a @file{package.el} user interface for browsing the database.
  16295. Epkg itself is not a package manager.
  16296. Getting a local copy:
  16297. @example
  16298. git clone https://github.com/emacsmirror/epkgs.git ~/.emacs.d/epkgs
  16299. cd ~/.emacs.d/epkgs
  16300. git submodule init
  16301. git config --global url.https://github.com/.insteadOf git@@github.com:
  16302. git submodule update
  16303. @end example
  16304. Some submodule may be missing. In this case Git will prompt for a GitHub user
  16305. name and password. To skip it press a @key{Return} key.
  16306. You could get a Epkg package list by invoking @code{epkg-list-packages} in
  16307. Emacs.")
  16308. (license license:gpl3+)))
  16309. (define-public emacs-elisp-slime-nav
  16310. (package
  16311. (name "emacs-elisp-slime-nav")
  16312. (version "0.10")
  16313. (source
  16314. (origin
  16315. (method git-fetch)
  16316. (uri (git-reference
  16317. (url "https://github.com/purcell/elisp-slime-nav")
  16318. (commit version)))
  16319. (file-name (git-file-name name version))
  16320. (sha256
  16321. (base32 "08k4zlawjkb0ldn4lgrhih8nzln398x7dwzpipqfyrmp0xziywma"))))
  16322. (build-system emacs-build-system)
  16323. (home-page "https://github.com/purcell/elisp-slime-nav")
  16324. (synopsis "Make @code{M-.} and @code{M-,} work for elisp like they do in SLIME")
  16325. (description
  16326. "This package provides SLIME's convenient @code{M-.}and @code{M-,} navigation
  16327. in @code{emacs-lisp-mode}, together with an elisp equivalent of
  16328. @code{slime-describe-symbol}.")
  16329. (license license:gpl3+)))
  16330. (define-public emacs-dedicated
  16331. (package
  16332. (name "emacs-dedicated")
  16333. (version "1.0.0")
  16334. (source
  16335. (origin
  16336. (method git-fetch)
  16337. (uri (git-reference
  16338. (url "https://github.com/emacsorphanage/dedicated")
  16339. (commit version)))
  16340. (file-name (git-file-name name version))
  16341. (sha256
  16342. (base32 "0pba9s0h37sxyqh733vi6k5raa4cs7aradipf3826inw36jcw414"))))
  16343. (build-system emacs-build-system)
  16344. (home-page "https://github.com/emacsorphanage/dedicated")
  16345. (synopsis "Emacs minor mode for toggling a windows's \"dedicated\" flag")
  16346. (description
  16347. "This simple Emacs minor mode allows you to toggle a window's
  16348. \"dedicated\" flag. When a window is \"dedicated\", Emacs will not select
  16349. files into that window. This can be quite handy since many commands will use
  16350. another window to show results (compilation mode, starting info, and so on).
  16351. A dedicated window won't be used for such a purpose. For details, please read
  16352. the source file.")
  16353. (license license:gpl2+)))
  16354. (define-public emacs-nnreddit
  16355. (let ((commit "9843f99d01fd8f1eea2fc685965a7c7f4eeb187a")
  16356. (revision "1"))
  16357. (package
  16358. (name "emacs-nnreddit")
  16359. (version (string-append "0.0.1-" revision "."
  16360. (string-take commit 7)))
  16361. (source (origin
  16362. (method git-fetch)
  16363. (uri (git-reference
  16364. (url "https://github.com/paul-issartel/nnreddit")
  16365. (commit commit)))
  16366. (file-name (git-file-name name version))
  16367. (sha256
  16368. (base32
  16369. "0j4h3bnga640250jdq8bwyja49r41ssrsjd6lba4gzzllqk02nbn"))))
  16370. (build-system emacs-build-system)
  16371. (home-page "https://github.com/paul-issartel/nnreddit")
  16372. (synopsis "Reddit backend for the Gnus newsreader")
  16373. (description "@url{https://www.reddit.com} backend for the Gnus
  16374. newsreader.")
  16375. (license license:gpl3+))))
  16376. (define-public emacs-makey
  16377. (package
  16378. (name "emacs-makey")
  16379. (version "0.3")
  16380. (source
  16381. (origin
  16382. (method git-fetch)
  16383. (uri (git-reference
  16384. (url "https://github.com/mickeynp/makey")
  16385. (commit version)))
  16386. (file-name (git-file-name name version))
  16387. (sha256
  16388. (base32 "1rr7vpm3xxzcaam3m8xni3ajy8ycyljix07n2jzczayri9sd8csy"))))
  16389. (build-system emacs-build-system)
  16390. (home-page "https://github.com/mickeynp/makey")
  16391. (synopsis "Emacs interactive command-line mode")
  16392. (description
  16393. "This package provides an Emacs interactive command-line mode.")
  16394. (license license:gpl3+)))
  16395. (define-public emacs-outorg
  16396. (let ((commit "78b0695121fb974bc4e971eb4ef7f8afd6d89d64"))
  16397. (package
  16398. (name "emacs-outorg")
  16399. (version (git-version "2.0" "1" commit))
  16400. (source
  16401. (origin
  16402. (method git-fetch)
  16403. (uri (git-reference
  16404. (url "https://github.com/alphapapa/outorg")
  16405. (commit commit)))
  16406. (file-name (git-file-name name version))
  16407. (sha256
  16408. (base32
  16409. "03aclh4m3f7rb821gr9pwvnqkkl91px3qxdcarpf3ypa1x4fxvlj"))))
  16410. (build-system emacs-build-system)
  16411. (home-page "https://github.com/alphapapa/outorg")
  16412. (synopsis "Org-style comment editing")
  16413. (description "Outorg is for editing comment-sections of source-code
  16414. files in temporary Org-mode buffers. It turns conventional
  16415. literate-programming upside-down in that the default mode is the
  16416. programming-mode, and special action has to be taken to switch to the
  16417. text-mode (i.e. Org-mode).")
  16418. (license license:gpl3+))))
  16419. (define-public emacs-outshine
  16420. (package
  16421. (name "emacs-outshine")
  16422. (version "3.0.1")
  16423. (source (origin
  16424. (method git-fetch)
  16425. (uri (git-reference
  16426. (url "https://github.com/alphapapa/outshine")
  16427. (commit (string-append "v" version))))
  16428. (file-name (git-file-name name version))
  16429. (sha256
  16430. (base32
  16431. "1lh9f5dgdbwfyzxk6nsg1xwdjs8gc6p9mbyyhp6f8fnk3h0y88cg"))))
  16432. (build-system emacs-build-system)
  16433. (propagated-inputs
  16434. `(("emacs-outorg" ,emacs-outorg)))
  16435. (home-page "https://github.com/alphapapa/outshine")
  16436. (synopsis "Emacs outline with outshine")
  16437. (description "Outshine attempts to bring the look and feel of
  16438. @code{org-mode} to an Emacs outside of the Org major-mode. It is an extension
  16439. of @code{outline-minor-mode} (@code{org-mode} itself derives from
  16440. outline-mode), so there is no such thing like an outshine mode, only
  16441. @code{outline-minor-mode} with outshine extensions loaded.")
  16442. (license license:gpl3+)))
  16443. (define-public emacs-frecency
  16444. (let ((commit "31ef9ff4af1a4fed3dcc24ea74037feea8795c87")
  16445. (version "0.1-pre")
  16446. (revision "1"))
  16447. (package
  16448. (name "emacs-frecency")
  16449. (version (git-version version revision commit))
  16450. (source (origin
  16451. (method git-fetch)
  16452. (uri (git-reference
  16453. (url "https://github.com/alphapapa/frecency.el")
  16454. (commit commit)))
  16455. (sha256
  16456. (base32
  16457. "051aihjdg3x22svaxhwylpi8i6s2x9j8syvsj1jgilgjjdy15l6j"))
  16458. (file-name (git-file-name name version))))
  16459. (build-system emacs-build-system)
  16460. (propagated-inputs
  16461. `(("emacs-a" ,emacs-a)
  16462. ("emacs-dash" ,emacs-dash)))
  16463. (home-page "https://github.com/alphapapa/frecency.el")
  16464. (synopsis "Sort items by frequency and recency of access")
  16465. (description "This package provides a way of sorting items via
  16466. a heuristic based on frequency and recency.")
  16467. (license license:gpl3+))))
  16468. (define-public emacs-org-recent-headings
  16469. (package
  16470. (name "emacs-org-recent-headings")
  16471. (version "0.1")
  16472. (source (origin
  16473. (method git-fetch)
  16474. (uri (git-reference
  16475. (url "https://github.com/alphapapa/org-recent-headings")
  16476. (commit version)))
  16477. (file-name (git-file-name name version))
  16478. (sha256
  16479. (base32
  16480. "0gsrzmg3mssh9s28yjm9m866fnhm1pcligssz1q6brga6dm6f2yy"))))
  16481. (build-system emacs-build-system)
  16482. (propagated-inputs
  16483. `(("emacs-org" ,emacs-org)
  16484. ("emacs-dash" ,emacs-dash)
  16485. ("emacs-frecency" ,emacs-frecency)))
  16486. (home-page "https://github.com/alphapapa/org-recent-headings")
  16487. (synopsis "Navigate to recently used Org headings and lists")
  16488. (description "This package maintains a list of recently used Org headings,
  16489. as well as functions for navigating between these headings.")
  16490. (license license:gpl3+)))
  16491. (define-public emacs-org-super-agenda
  16492. (package
  16493. (name "emacs-org-super-agenda")
  16494. (version "1.2")
  16495. (source (origin
  16496. (method git-fetch)
  16497. (uri (git-reference
  16498. (url "https://github.com/alphapapa/org-super-agenda")
  16499. (commit version)))
  16500. (file-name (git-file-name name version))
  16501. (sha256
  16502. (base32
  16503. "10l9h2n09cql4ih7nc0ma3ghdsq9l5v9xlj1lg7kq67icdwjlsvy"))))
  16504. (build-system emacs-build-system)
  16505. (arguments
  16506. `(#:tests? #t
  16507. #:test-command '("test/run" "--debug")
  16508. #:phases
  16509. (modify-phases %standard-phases
  16510. (add-after 'unpack 'prepare-for-tests.el
  16511. (lambda _
  16512. (make-file-writable "test/test.el")
  16513. (emacs-substitute-variables "test/test.el"
  16514. ("org-super-agenda-test-results-file"
  16515. (string-append (getcwd) "/test/results.el")))
  16516. ;; The following tests fail (see:
  16517. ;; https://github.com/alphapapa/org-super-agenda/issues/183).
  16518. (substitute* "test/test.el"
  16519. ((".*org-super-agenda-test--:auto-(map|tags).*" all)
  16520. (string-append all " (skip-unless nil)\n")))
  16521. #t)))))
  16522. (native-inputs
  16523. `(("emacs-f" ,emacs-f)
  16524. ("getopt" ,util-linux)))
  16525. (propagated-inputs
  16526. `(("emacs-org" ,emacs-org)
  16527. ("emacs-dash" ,emacs-dash)
  16528. ("emacs-ts" ,emacs-ts)
  16529. ("emacs-ht" ,emacs-ht)
  16530. ("emacs-s" ,emacs-s)))
  16531. (home-page "https://github.com/alphapapa/org-super-agenda")
  16532. (synopsis "Supercharged Org agenda")
  16533. (description "This package allows items in the Org agenda to be grouped
  16534. into sections while preserving the structure imposed by any timestamps.")
  16535. (license license:gpl3+)))
  16536. (define-public emacs-elegant-agenda-mode
  16537. (let ((commit "c72f42e0f551c3dd81e68262f07a96c0ec90a589")
  16538. (revision "1"))
  16539. (package
  16540. (name "emacs-elegant-agenda-mode")
  16541. (version (git-version "0.1.0" revision commit))
  16542. (source
  16543. (origin
  16544. (method git-fetch)
  16545. (uri (git-reference
  16546. (url "https://github.com/justinbarclay/elegant-agenda-mode")
  16547. (commit commit)))
  16548. (file-name (git-file-name name version))
  16549. (sha256
  16550. (base32
  16551. "0f8qk3vd41ffbkfqw5nks3bld0qpjrlnk9sb46wcbsyfnrs2v082"))))
  16552. (build-system emacs-build-system)
  16553. (home-page "https://github.com/justinbarclay/elegant-agenda-mode")
  16554. (synopsis "Elegant theme for your org-agenda")
  16555. (description
  16556. "The elegant-agenda-mode package uses fonts and typography to give your
  16557. org-agenda some breathing room and elegance. This package was inspired by the
  16558. work Nicolas Rougier.")
  16559. (license license:gpl3+))))
  16560. (define-public emacs-org-make-toc
  16561. (package
  16562. (name "emacs-org-make-toc")
  16563. (version "0.5")
  16564. (source (origin
  16565. (method git-fetch)
  16566. (uri (git-reference
  16567. (url "https://github.com/alphapapa/org-make-toc")
  16568. (commit version)))
  16569. (file-name (git-file-name name version))
  16570. (sha256
  16571. (base32
  16572. "180ji6nnj6qj0rs1rdp1zlcrfsqf7ikb44ym8icbp5d6al2s4hnr"))))
  16573. (build-system emacs-build-system)
  16574. (propagated-inputs
  16575. `(("emacs-org" ,emacs-org)
  16576. ("emacs-dash" ,emacs-dash)
  16577. ("emacs-s" ,emacs-s)))
  16578. (home-page "https://github.com/alphapapa/org-make-toc")
  16579. (synopsis "Maintain a table of contents for an Org file")
  16580. (description "This package facilitates the creation and maintenance of
  16581. tables of contents.")
  16582. (license license:gpl3+)))
  16583. (define-public emacs-ts
  16584. (package
  16585. (name "emacs-ts")
  16586. (version "0.2.2")
  16587. (source
  16588. (origin
  16589. (method git-fetch)
  16590. (uri (git-reference
  16591. (url "https://github.com/alphapapa/ts.el")
  16592. (commit version)))
  16593. (sha256
  16594. (base32 "0l35gz1hpada2kzascbyqgawa5d3sdyg67gzvak84p9zx62jppn8"))
  16595. (file-name (git-file-name name version))))
  16596. (build-system emacs-build-system)
  16597. (propagated-inputs
  16598. `(("emacs-s" ,emacs-s)
  16599. ("emacs-dash" ,emacs-dash)))
  16600. (arguments
  16601. ;; XXX: Three tests are failing because of a timezone-related issue
  16602. ;; with how they're written. On my machine, all the failing test
  16603. ;; results are 18000 seconds (5 hours) off.
  16604. ;; The ts-parse-org function accepts a string without any timezone
  16605. ;; info, not assumed to be in Unix time, and converts it to a so-called
  16606. ;; ts struct. The ts-unix function (accessor) accepts a ts struct,
  16607. ;; then seems to assume the struct's corresponding time is in terms of
  16608. ;; the user's current time zone, before returning a Unix time in
  16609. ;; seconds.
  16610. ;; The failing tests all have similar problems, but nothing else about
  16611. ;; the library seems particularly off.
  16612. `(#:tests? #t
  16613. #:test-command '("emacs" "--batch"
  16614. "-l" "test/test.el"
  16615. "-f" "ert-run-tests-batch-and-exit")
  16616. #:phases
  16617. (modify-phases %standard-phases
  16618. (add-before 'check 'make-tests-writable
  16619. (lambda _
  16620. (make-file-writable "test/test.el")
  16621. #t))
  16622. (add-before 'check 'delete-failing-tests
  16623. (lambda _
  16624. (emacs-batch-edit-file "test/test.el"
  16625. `(progn (progn
  16626. (goto-char (point-min))
  16627. (dolist (test-regexp
  16628. '("ert-deftest ts-format"
  16629. "ert-deftest ts-parse-org\\_>"
  16630. "ert-deftest ts-parse-org-element"
  16631. "ert-deftest ts-update"))
  16632. (re-search-forward test-regexp)
  16633. (beginning-of-line)
  16634. (kill-sexp)))
  16635. (basic-save-buffer)))
  16636. #t)))))
  16637. (home-page "https://github.com/alphapapa/ts.el")
  16638. (synopsis "Timestamp and date/time library")
  16639. (description "This package facilitates manipulating dates, times, and
  16640. timestamps by providing a @code{ts} struct.")
  16641. (license license:gpl3+)))
  16642. (define-public emacs-peg
  16643. (package
  16644. (name "emacs-peg")
  16645. (version "1.0")
  16646. (source
  16647. (origin
  16648. (method url-fetch)
  16649. (uri (string-append "https://elpa.gnu.org/packages/peg-" version ".tar"))
  16650. (sha256
  16651. (base32 "0skr5dz9k34r409hisnj37n1b7n62l3md0glnfx578xkbmxlpcxl"))))
  16652. (build-system emacs-build-system)
  16653. (home-page "https://elpa.gnu.org/packages/peg.html")
  16654. (synopsis "Parsing Expression Grammars in Elisp")
  16655. (description "This package provides a macro that parses the current buffer
  16656. according to a parsing expression grammar.")
  16657. (license license:gpl3+)))
  16658. (define-public emacs-eldev
  16659. (package
  16660. (name "emacs-eldev")
  16661. (version "0.9.1")
  16662. (source (origin
  16663. (method git-fetch)
  16664. (uri (git-reference
  16665. (url "https://github.com/doublep/eldev")
  16666. (commit version)))
  16667. (file-name (git-file-name name version))
  16668. (sha256
  16669. (base32
  16670. "1jfj4f5w20qd12k6ygv0jazn2x9pxjrmqmlmibppc4ybrhhgmg0s"))))
  16671. (build-system emacs-build-system)
  16672. (arguments
  16673. `(#:tests? #t
  16674. #:test-command '("./bin/eldev" "-p" "-dtTC" "test")
  16675. #:phases
  16676. (modify-phases %standard-phases
  16677. (add-after 'unpack 'prepare-for-tests
  16678. (lambda _
  16679. (setenv "ELDEV_LOCAL" (getcwd))
  16680. (make-file-writable
  16681. "test/project-i/project-i-autoloads.el")
  16682. #t))
  16683. (add-after 'unpack 'skip-failing-tests
  16684. ;; FIXME: 10 tests are failing. Skip them for now.
  16685. (lambda _
  16686. (substitute* '("test/init.el" "test/targets.el")
  16687. (("(targets-project-e-[34]|init-[1-8]).*" line)
  16688. (string-append line "(skip-unless nil)\n")))))
  16689. (add-after 'install 'install-eldev-executable
  16690. ;; This constructs the eldev executable from templates and
  16691. ;; installs it in the specified directory.
  16692. (lambda* (#:key outputs #:allow-other-keys)
  16693. (let* ((out (assoc-ref outputs "out"))
  16694. (bin (string-append out "/bin"))
  16695. (site-lisp (string-append out "/share/emacs/site-lisp")))
  16696. (mkdir-p bin)
  16697. (setenv "HOME" (getcwd))
  16698. (invoke "./install.sh" bin)
  16699. (substitute* (string-append bin "/eldev")
  16700. ;; Point ELDEV_LOCAL to the installation directory so that
  16701. ;; eldev doesn't try to bootstrap itself from MELPA when
  16702. ;; invoked.
  16703. (("export ELDEV_EMACS.*" all)
  16704. (string-append "export ELDEV_LOCAL=" site-lisp "\n" all)))
  16705. #t))))))
  16706. (native-inputs
  16707. `(("texinfo" ,texinfo))) ;for tests
  16708. (home-page "https://github.com/doublep/eldev/")
  16709. (synopsis "Emacs-based build tool for Elisp")
  16710. (description "Eldev (Elisp Development Tool) is an Emacs-based build tool,
  16711. targeted solely at Elisp projects. It is an alternative to Cask. Unlike
  16712. Cask, Eldev itself is fully written in Elisp and its configuration files are
  16713. also Elisp programs. For those familiar with the Java world, Cask can be seen
  16714. as a parallel to Maven — it uses project description, while Eldev is sort of a
  16715. parallel to Gradle — its configuration is a program on its own.")
  16716. (license license:gpl3+)))
  16717. (define-public emacs-with-simulated-input
  16718. (package
  16719. (name "emacs-with-simulated-input")
  16720. (version "3.0")
  16721. (source
  16722. (origin
  16723. (method git-fetch)
  16724. (uri (git-reference
  16725. (url "https://github.com/DarwinAwardWinner/with-simulated-input")
  16726. (commit (string-append "v" version))))
  16727. (file-name (git-file-name name version))
  16728. (sha256
  16729. (base32
  16730. "0n8h84whsh0aph8xhn9plprix9f6bysgvarz2anz7kwns19js6s4"))))
  16731. (build-system emacs-build-system)
  16732. (arguments
  16733. ;; The test suite fails with error: "Spies can only be created in
  16734. ;; ‘before-each’".
  16735. `(#:tests? #f
  16736. #:test-command '("buttercup" "-L" ".")))
  16737. (native-inputs
  16738. `(("emacs-buttercup" ,emacs-buttercup)
  16739. ("emacs-undercover" ,emacs-undercover)))
  16740. (propagated-inputs
  16741. `(("emacs-s" ,emacs-s)))
  16742. (home-page "https://github.com/DarwinAwardWinner/with-simulated-input")
  16743. (synopsis "Non-interactive testing Emacs library")
  16744. (description "This package provides an Emacs Lisp macro,
  16745. @code{with-simulated-input}, which evaluates one or more forms while
  16746. simulating a sequence of input events for those forms to read. The result is
  16747. the same as if a user had evaluated the forms and then manually typed in the
  16748. same input. This macro is useful for non-interactive testing of normally
  16749. interactive commands and functions, such as @code{completing-read}.")
  16750. (license license:gpl3+)))
  16751. (define-public emacs-org-ql
  16752. (package
  16753. (name "emacs-org-ql")
  16754. (version "0.5.2")
  16755. (source (origin
  16756. (method git-fetch)
  16757. (uri (git-reference
  16758. (url "https://github.com/alphapapa/org-ql")
  16759. (commit version)))
  16760. (sha256
  16761. (base32
  16762. "0b3xxnbhnrz0263fnrrdbs3gif4pjkfws4mxkfqqpg0fc8azp2rx"))
  16763. (file-name (git-file-name name version))))
  16764. (build-system emacs-build-system)
  16765. (propagated-inputs
  16766. `(("emacs-s" ,emacs-s)
  16767. ("emacs-f" ,emacs-f)
  16768. ("emacs-ov" ,emacs-ov)
  16769. ("emacs-peg" ,emacs-peg)
  16770. ("emacs-org-super-agenda" ,emacs-org-super-agenda)
  16771. ("emacs-ts" ,emacs-ts)
  16772. ("emacs-org" ,emacs-org)
  16773. ("emacs-helm" ,emacs-helm)
  16774. ("emacs-helm-org" ,emacs-helm-org)
  16775. ("emacs-dash" ,emacs-dash)
  16776. ("emacs-transient" ,emacs-transient)))
  16777. (native-inputs
  16778. `(("emacs-buttercup" ,emacs-buttercup)
  16779. ("emacs-with-simulated-input" ,emacs-with-simulated-input)))
  16780. (arguments
  16781. `(#:tests? #t
  16782. #:test-command '("buttercup" "-L" ".")
  16783. #:phases
  16784. (modify-phases %standard-phases
  16785. (add-after 'unpack 'disable-failing-tests
  16786. (lambda _
  16787. (substitute* "tests/test-org-ql.el"
  16788. ;; This test fails on Emacs 27.1 (see:
  16789. ;; https://github.com/alphapapa/org-super-agenda/issues/183).
  16790. (("it \"Can search buffer containing the link\"" all)
  16791. (string-append "x" all))))))))
  16792. (home-page "https://github.com/alphapapa/org-ql/")
  16793. (synopsis "Query language for Org buffers")
  16794. (description "This package provides a Lispy query language for Org
  16795. files, allowing for actions to be performed based on search criteria.")
  16796. (license license:gpl3+)))
  16797. (define-public emacs-org-auto-expand
  16798. (let ((commit "4938d5f6460e2f8f051ba9ac000b291bfa43ef62")
  16799. (revision "1"))
  16800. (package
  16801. (name "emacs-org-auto-expand")
  16802. (version (git-version "0.1" revision commit))
  16803. (source (origin
  16804. (method git-fetch)
  16805. (uri (git-reference
  16806. (url "https://github.com/alphapapa/org-auto-expand")
  16807. (commit commit)))
  16808. (file-name (git-file-name name version))
  16809. (sha256
  16810. (base32
  16811. "1my0c6xmkh37lwi6l472lz9d86lf20h6xcllzlxm1lxa24rhva6v"))))
  16812. (build-system emacs-build-system)
  16813. (propagated-inputs
  16814. `(("emacs-org" ,emacs-org)
  16815. ("emacs-dash" ,emacs-dash)))
  16816. (home-page "https://github.com/alphapapa/org-auto-expand")
  16817. (synopsis "Automatically expand certain Org headings")
  16818. (description "This package allows a customizable set of headings in Org
  16819. files to be expanded upon opening them.")
  16820. (license license:gpl3+))))
  16821. (define-public emacs-parsebib
  16822. (package
  16823. (name "emacs-parsebib")
  16824. (version "3.0.1")
  16825. (source
  16826. (origin
  16827. (method git-fetch)
  16828. (uri (git-reference
  16829. (url "https://github.com/joostkremers/parsebib")
  16830. (commit version)))
  16831. (file-name (git-file-name name version))
  16832. (sha256
  16833. (base32 "1hd6izpb4irinjmfy7zxy8fqnr1fm4iw2sipvl9261nm68dzha6z"))))
  16834. (build-system emacs-build-system)
  16835. (home-page "https://github.com/joostkremers/parsebib")
  16836. (synopsis "Library for parsing @file{.bib} files")
  16837. (description
  16838. "This package provides an Emacs library for parsing @file{.bib} files.")
  16839. (license license:gpl3+)))
  16840. (define-public emacs-ebib
  16841. (package
  16842. (name "emacs-ebib")
  16843. (version "2.32.2")
  16844. (source
  16845. (origin
  16846. (method git-fetch)
  16847. (uri (git-reference
  16848. (url "https://github.com/joostkremers/ebib")
  16849. (commit version)))
  16850. (file-name (git-file-name name version))
  16851. (sha256
  16852. (base32 "04kw0akp35r2ibrcav4kaf34d1xs8pckjiygv7h1nqpv6dmrgfq7"))))
  16853. (build-system emacs-build-system)
  16854. (propagated-inputs
  16855. `(("emacs-biblio" ,emacs-biblio)
  16856. ("emacs-parsebib" ,emacs-parsebib)))
  16857. (home-page "https://joostkremers.github.io/ebib/")
  16858. (synopsis "BibTeX database manager for Emacs")
  16859. (description
  16860. "Ebib is a BibTeX database manager that runs in GNU Emacs.
  16861. With Ebib you can create, sort and manage your @file{.bib} database files, all
  16862. within Emacs. It supports searching, multi-line field values and
  16863. @samp{@@String} and @samp{@@Preamble} definitions. Ebib integrates
  16864. with (La)TeX mode, Org mode and other Emacs editing modes.")
  16865. ;; The Ebib source files are released under a BSD license with
  16866. ;; the exception of org-ebib.el, which is released under the GNU
  16867. ;; GPL.
  16868. (license (list license:bsd-3
  16869. license:gpl3+))))
  16870. (define-public emacs-biblio
  16871. (package
  16872. (name "emacs-biblio")
  16873. (version "0.2")
  16874. (source
  16875. (origin
  16876. (method git-fetch)
  16877. (uri (git-reference
  16878. (url "https://github.com/cpitclaudel/biblio.el")
  16879. (commit version)))
  16880. (file-name (git-file-name name version))
  16881. (sha256
  16882. (base32 "1gxjind6r235az59dr8liv03d8994mqb8a7m28j3c12q7p70aziz"))))
  16883. (build-system emacs-build-system)
  16884. (propagated-inputs
  16885. `(("emacs-dash" ,emacs-dash)
  16886. ("emacs-let-alist" ,emacs-let-alist)))
  16887. (home-page "https://github.com/cpitclaudel/biblio.el")
  16888. (synopsis "Browse and import bibliographic references")
  16889. (description "This package provides an extensible Emacs package for
  16890. browsing and fetching references.
  16891. @file{biblio.el} makes it easy to browse and gather bibliographic references
  16892. and publications from various sources, by keywords or by DOI. References are
  16893. automatically fetched from well-curated sources, and formatted as BibTeX.")
  16894. (license license:gpl3+)))
  16895. (define-public emacs-helm-bibtex
  16896. (let ((commit "d4471232be26793fbf56c0ac3690b5f537c378b9")
  16897. (revision "2"))
  16898. (package
  16899. (name "emacs-helm-bibtex")
  16900. (version (string-append "2.0.0" "-" revision "."
  16901. (string-take commit 7)))
  16902. (source
  16903. (origin
  16904. (method git-fetch)
  16905. (uri (git-reference
  16906. (url "https://github.com/tmalsburg/helm-bibtex")
  16907. (commit commit)))
  16908. (file-name (git-file-name name version))
  16909. (sha256
  16910. (base32
  16911. "1bkzhic6qckb267025il1r3xcpz99kisphxiafni1pxvf9jafr0j"))))
  16912. (build-system emacs-build-system)
  16913. (propagated-inputs
  16914. `(("emacs-helm" ,emacs-helm)
  16915. ("emacs-parsebib" ,emacs-parsebib)
  16916. ("emacs-s" ,emacs-s)
  16917. ("emacs-dash" ,emacs-dash)
  16918. ("emacs-f" ,emacs-f)
  16919. ("emacs-biblio" ,emacs-biblio)
  16920. ("emacs-ivy" ,emacs-ivy)))
  16921. (home-page "https://github.com/tmalsburg/helm-bibtex")
  16922. (synopsis "Bibliography manager based on Helm")
  16923. (description "This package provides bibliography manager for Emacs,
  16924. based on Helm and the bibtex-completion backend.
  16925. Key features:
  16926. @itemize
  16927. @item Quick access to your bibliography from within Emacs
  16928. @item Powerful search capabilities
  16929. @item Provides instant search results as you type
  16930. @item Tightly integrated with LaTeX authoring, emails, Org mode, etc.
  16931. @item Open the PDFs, URLs, or DOIs associated with an entry
  16932. @item Insert LaTeX cite commands, Ebib links, or Pandoc citations,
  16933. BibTeX entries, or plain text references at point, attach PDFs to emails
  16934. @item Support for note taking
  16935. @item Quick access to online bibliographic databases such as Pubmed,
  16936. arXiv, Google Scholar, Library of Congress, etc.
  16937. @item Imports BibTeX entries from CrossRef and other sources.
  16938. @end itemize\n")
  16939. (license license:gpl3+))))
  16940. (define-public emacs-ewmctrl
  16941. (package
  16942. (name "emacs-ewmctrl")
  16943. (version "1.0.0")
  16944. (source
  16945. (origin
  16946. (method git-fetch)
  16947. (uri (git-reference
  16948. (url "https://github.com/flexibeast/ewmctrl")
  16949. (commit (string-append "v" version))))
  16950. (file-name (git-file-name name version))
  16951. (sha256
  16952. (base32
  16953. "0ilwvx0qryv3v6xf0gxqwnfm6pf96gxap8h9g3f6z6lk9ff4n1wi"))))
  16954. (build-system emacs-build-system)
  16955. (arguments
  16956. '(#:phases
  16957. (modify-phases %standard-phases
  16958. (add-after 'unpack 'patch-ewmctrl
  16959. ;; This build phase makes sure ‘ewmctrl’ looks
  16960. ;; for ‘wmctrl’ in the right place.
  16961. (lambda _
  16962. (let ((file "ewmctrl.el"))
  16963. (chmod file #o644)
  16964. (emacs-substitute-sexps file
  16965. ("(defcustom ewmctrl-wmctrl-path" (which "wmctrl")))))))))
  16966. (inputs
  16967. `(("wmctrl" ,wmctrl)))
  16968. (home-page "https://github.com/flexibeast/ewmctrl")
  16969. (synopsis "Emacs interface to @code{wmctrl}")
  16970. (description "@code{ewmctrl} provides an Emacs interface to
  16971. @code{wmctrl} command-line window-management program.")
  16972. (license license:gpl3+)))
  16973. (define-public emacs-erc-image
  16974. (let ((commit "82fb3871f02e24b1e880770b9a3d187aab43d0f0")
  16975. (revision "3"))
  16976. (package
  16977. (name "emacs-erc-image")
  16978. (version (git-version "0" revision commit))
  16979. (source
  16980. (origin
  16981. (method git-fetch)
  16982. (uri (git-reference
  16983. (url "https://github.com/kidd/erc-image.el")
  16984. (commit commit)))
  16985. (file-name (git-file-name name version))
  16986. (sha256
  16987. (base32
  16988. "1q8mkf612fb4fjp8h4kbr107wn083iqfdgv8f80pcmil8y33dw9i"))))
  16989. (build-system emacs-build-system)
  16990. (arguments
  16991. `(#:phases (modify-phases %standard-phases
  16992. ;; The package autoloader fails to provide
  16993. ;; the image module when handled by Guix.
  16994. ;; Disable this phase, and let the package
  16995. ;; handle the `eval-after-load' procedure.
  16996. (delete 'make-autoloads))))
  16997. (home-page "https://github.com/kidd/erc-image.el")
  16998. (synopsis "Show inlined images (png/jpg/gif/svg) in ERC buffers")
  16999. (description "This plugin subscribes to hooks @code{erc-insert-modify-hook}
  17000. and @code{erc-send-modify-hook} to download and show images.")
  17001. (license license:gpl3+))))
  17002. (define-public emacs-helm-gtags
  17003. (package
  17004. (name "emacs-helm-gtags")
  17005. (version "1.5.7")
  17006. (source
  17007. (origin
  17008. (method git-fetch)
  17009. (uri (git-reference
  17010. (url "https://github.com/syohex/emacs-helm-gtags")
  17011. (commit version)))
  17012. (file-name (git-file-name name version))
  17013. (sha256
  17014. (base32 "1kc1jzk10nfd2v20g8dwnb6a944afrwdwnkzl06w4ba8k4yim7gi"))))
  17015. (build-system emacs-build-system)
  17016. (propagated-inputs
  17017. `(("emacs-helm" ,emacs-helm)))
  17018. (home-page "https://github.com/syohex/emacs-helm-gtags")
  17019. (synopsis "Emacs Helm interface to GNU Global")
  17020. (description
  17021. "@code{emacs-helm-gtags} provides a Emacs Helm interface to GNU Global.")
  17022. (license license:gpl3+)))
  17023. (define-public emacs-list-utils
  17024. (package
  17025. (name "emacs-list-utils")
  17026. (version "0.4.6")
  17027. (source
  17028. (origin
  17029. (method git-fetch)
  17030. (uri (git-reference
  17031. (url "https://github.com/rolandwalker/list-utils")
  17032. (commit (string-append "v" version))))
  17033. (file-name (git-file-name name version))
  17034. (sha256
  17035. (base32 "07hbz2md52ccy95gv4d5n6szrfmpfqf3w4kwqdg2cf54c7kgf7hw"))))
  17036. (build-system emacs-build-system)
  17037. (arguments
  17038. `(#:phases
  17039. (modify-phases %standard-phases
  17040. (add-after 'unpack 'patch-require-cl
  17041. (lambda _
  17042. (substitute* "list-utils.el"
  17043. (("\\(require 'cl\\)") "(require 'cl-lib)"))
  17044. #t)))))
  17045. (home-page "https://github.com/rolandwalker/list-utils")
  17046. (synopsis "List-manipulation utility functions")
  17047. (description "This package provides a list manipulation library for Emacs.")
  17048. (license license:gpl3+)))
  17049. (define-public emacs-parsec
  17050. (package
  17051. (name "emacs-parsec")
  17052. (version "0.1.4")
  17053. (source
  17054. (origin
  17055. (method git-fetch)
  17056. (uri (git-reference
  17057. (url "https://github.com/cute-jumper/parsec.el")
  17058. (commit version)))
  17059. (file-name (git-file-name name version))
  17060. (sha256
  17061. (base32 "1g1s8s45g3kkbi3h7w0pmadmzdswb64mkdvdpg2lihg341kx37gm"))))
  17062. (build-system emacs-build-system)
  17063. (home-page "https://github.com/cute-jumper/parsec.el")
  17064. (synopsis "Parser combinator library for Emacs Lisp")
  17065. (description
  17066. "Parsec is a parser combinator library for Emacs Lisp, similar to
  17067. Haskell's Parsec library. It contains most of the parser combinators in
  17068. Text.Parsec.Combinator, and more combinators can be added if necessary! Most
  17069. of the parser combinators have the same behavior as their Haskell
  17070. counterparts. Parsec also comes with a simple error handling mechanism so
  17071. that it can display an error message showing how the parser fails.")
  17072. (license license:gpl3+)))
  17073. (define-public emacs-move-text
  17074. (package
  17075. (name "emacs-move-text")
  17076. (version "2.0.8")
  17077. (source
  17078. (origin
  17079. (method git-fetch)
  17080. (uri (git-reference
  17081. (url "https://github.com/emacsfodder/move-text")
  17082. (commit version)))
  17083. (file-name (git-file-name name version))
  17084. (sha256
  17085. (base32 "06jxk5g23822gfmwrxhc34zand3dr8p2wjh1zs3j61ibz6n0nmz1"))))
  17086. (build-system emacs-build-system)
  17087. (home-page "https://github.com/emacsfodder/move-text")
  17088. (synopsis "Move current line or region with M-up or M-down")
  17089. (description "This package provide functions to move the current line
  17090. using @kbd{M-up} or @kbd{M-down} if a region is marked, it will move the
  17091. region instead.")
  17092. (license license:gpl3+)))
  17093. (define-public emacs-validate
  17094. (package
  17095. (name "emacs-validate")
  17096. (version "1.0.5")
  17097. (source (origin
  17098. (method git-fetch)
  17099. (uri (git-reference
  17100. (url "https://github.com/Malabarba/validate.el")
  17101. (commit version)))
  17102. (file-name (git-file-name name version))
  17103. (sha256
  17104. (base32
  17105. "1l12ibx6cw4mgicgjpw71fb4fr4sd0k54lvbpq7ngc29br3j6i4v"))))
  17106. (build-system emacs-build-system)
  17107. (home-page "https://github.com/Malabarba/validate.el")
  17108. (synopsis "Emacs library for scheme validation")
  17109. (description "This Emacs library provides two functions that perform
  17110. schema validation.")
  17111. (license license:gpl3+)))
  17112. (define-public emacs-rainbow-blocks
  17113. (let ((commit "dd435d7bb34ff6f162a5f315df308b90b7e9f842"))
  17114. (package
  17115. (name "emacs-rainbow-blocks")
  17116. (version (git-version "1.0.0" "1" commit))
  17117. (source (origin
  17118. (method git-fetch)
  17119. (uri (git-reference
  17120. (url "https://github.com/istib/rainbow-blocks")
  17121. (commit commit)))
  17122. (file-name (git-file-name name version))
  17123. (sha256
  17124. (base32
  17125. "06yfb3i7wzvqrhkb61zib9xvpb5i00s4frizkzff66im05k0n795"))))
  17126. (build-system emacs-build-system)
  17127. (home-page "https://github.com/istib/rainbow-blocks")
  17128. (synopsis "Highlight sexp blocks")
  17129. (description "Rainbow-blocks is an Emacs mode that highlights blocks
  17130. made of parentheses, brackets, and braces according to their depth. Each
  17131. successive level is highlighted in a different color. This makes it easy to
  17132. orient yourself in the code, and tell which statements are at a given level.")
  17133. (license license:gpl3+))))
  17134. (define-public emacs-hierarchy
  17135. (package
  17136. (name "emacs-hierarchy")
  17137. (version "0.7.0")
  17138. (source
  17139. (origin
  17140. (method git-fetch)
  17141. (uri (git-reference
  17142. (url "https://github.com/DamienCassou/hierarchy")
  17143. (commit (string-append "v" version))))
  17144. (file-name (git-file-name name version))
  17145. (sha256
  17146. (base32 "1kykbb1sil5cycfa5aj8dhsxc5yrx1641i2np5kwdjid6ahdlz5r"))))
  17147. (build-system emacs-build-system)
  17148. (native-inputs
  17149. `(("emacs-buttercup" ,emacs-buttercup)))
  17150. (arguments
  17151. `(#:tests? #t
  17152. #:test-command '("buttercup" "-L" ".")))
  17153. (home-page "https://github.com/DamienCassou/hierarchy")
  17154. (synopsis "Library to create and display hierarchy structures")
  17155. (description "This package provides an Emacs library to create, query,
  17156. navigate and display hierarchy structures.")
  17157. (license license:gpl3+)))
  17158. (define-public emacs-tree-mode
  17159. (let ((commit "b06078826d5875d74b0e7b7ac47b0d0917610534")
  17160. (revision "1"))
  17161. (package
  17162. (name "emacs-tree-mode")
  17163. (version (string-append "0.0.1" "-" revision "."
  17164. (string-take commit 7)))
  17165. (source
  17166. (origin
  17167. (method git-fetch)
  17168. (uri (git-reference
  17169. (url "https://github.com/emacsorphanage/tree-mode")
  17170. (commit commit)))
  17171. (file-name (git-file-name name version))
  17172. (sha256
  17173. (base32
  17174. "13bbdhdmqg4x9yghanhr8fsbsxbnypzxdxgicz31sjjm675kpnix"))))
  17175. (build-system emacs-build-system)
  17176. (home-page "https://github.com/emacsorphanage/tree-mode")
  17177. (synopsis "Emacs mode to manage tree widgets")
  17178. (description
  17179. "This package provides an Emacs library to manage tree widgets.")
  17180. (license license:gpl3+))))
  17181. (define-public emacs-md4rd
  17182. (package
  17183. (name "emacs-md4rd")
  17184. (version "0.3.1")
  17185. (source (origin
  17186. (method git-fetch)
  17187. (uri (git-reference
  17188. (url "https://github.com/ahungry/md4rd")
  17189. (commit version)))
  17190. (file-name (git-file-name name version))
  17191. (sha256
  17192. (base32
  17193. "1n6g6k4adzkkn1g7z4j27s35xy12c1fg2r08gv345ddr3wplq4ri"))))
  17194. (propagated-inputs
  17195. `(("emacs-hierarchy" ,emacs-hierarchy)
  17196. ("emacs-request" ,emacs-request)
  17197. ("emacs-dash" ,emacs-dash)
  17198. ("emacs-s" ,emacs-s)
  17199. ("emacs-tree-mode" ,emacs-tree-mode)))
  17200. (build-system emacs-build-system)
  17201. (home-page "https://github.com/ahungry/md4rd")
  17202. (synopsis "Emacs Mode for Reddit")
  17203. (description
  17204. "This package allows reading Reddit from within Emacs interactively.")
  17205. (license license:gpl3+)))
  17206. (define-public emacs-pulseaudio-control
  17207. (let ((commit "a931533140547510decdc368f39b2d2b97ca725f")
  17208. (revision "4"))
  17209. (package
  17210. (name "emacs-pulseaudio-control")
  17211. (version (git-version "0.0.1" revision commit))
  17212. (source
  17213. (origin
  17214. (method git-fetch)
  17215. (uri (git-reference
  17216. (url "https://github.com/flexibeast/pulseaudio-control")
  17217. (commit commit)))
  17218. (file-name (git-file-name name version))
  17219. (sha256
  17220. (base32
  17221. "1jvjn9jszjjapi167an49jxcvr88cvgjwykglhp4b8lwhbjfqw76"))))
  17222. (build-system emacs-build-system)
  17223. (arguments
  17224. '(#:phases (modify-phases %standard-phases
  17225. (add-after 'unpack 'patch-file-name
  17226. (lambda* (#:key inputs #:allow-other-keys)
  17227. (let ((pulseaudio (assoc-ref inputs "pulseaudio")))
  17228. (chmod "pulseaudio-control.el" #o600)
  17229. (emacs-substitute-variables "pulseaudio-control.el"
  17230. ("pulseaudio-control-pactl-path"
  17231. (string-append pulseaudio "/bin/pactl")))
  17232. #t))))))
  17233. (inputs `(("pulseaudio" ,pulseaudio)))
  17234. (home-page "https://github.com/flexibeast/pulseaudio-control")
  17235. (synopsis "Control @code{pulseaudio} from Emacs")
  17236. (description
  17237. "This package allows controlling @code{pulseaudio} from Emacs.")
  17238. (license license:gpl3+))))
  17239. (define-public emacs-datetime
  17240. (package
  17241. (name "emacs-datetime")
  17242. (version "0.7")
  17243. (source
  17244. (origin
  17245. (method git-fetch)
  17246. (uri (git-reference
  17247. (url "https://github.com/doublep/datetime")
  17248. (commit version)))
  17249. (file-name (git-file-name name version))
  17250. (sha256
  17251. (base32 "0g6qgp6zvrbiaq6yfzqs3bmnry43xspp3ra3hm17x80b6izdsn90"))))
  17252. (build-system emacs-build-system)
  17253. (arguments
  17254. `(#:include (cons "^[^/]*\\.extmap$" %default-include)))
  17255. (inputs
  17256. `(("emacs-extmap" ,emacs-extmap)))
  17257. (home-page "https://github.com/doublep/datetime/")
  17258. (synopsis "Library to work with dates in Emacs")
  17259. (description "Parsing, formatting, matching and recoding
  17260. timestamps and date-time format strings library for Emacs.")
  17261. (license license:gpl3+)))
  17262. (define-public emacs-org-mind-map
  17263. (let ((commit "9d6e262bedd94daf9de269f4d56de277275677cb")
  17264. (revision "1"))
  17265. (package
  17266. (name "emacs-org-mind-map")
  17267. (version (string-append "0.0.1" "-" revision "."
  17268. (string-take commit 7)))
  17269. (source
  17270. (origin
  17271. (method git-fetch)
  17272. (uri (git-reference
  17273. (url "https://github.com/theodorewiles/org-mind-map")
  17274. (commit commit)))
  17275. (file-name (git-file-name name version))
  17276. (sha256
  17277. (base32
  17278. "0jgkkgq7g64zckrmjib0hvz0qy3ynz5vz13qbmlpf096l3bb65wn"))))
  17279. (propagated-inputs
  17280. `(("emacs-dash" ,emacs-dash)))
  17281. (build-system emacs-build-system)
  17282. (home-page "https://github.com/theodorewiles/org-mind-map")
  17283. (synopsis "Create Graphviz directed graphs from Org files")
  17284. (description
  17285. "This package creates Graphviz directed graphs from Org files.")
  17286. (license license:gpl3+))))
  17287. (define-public emacs-npm-mode
  17288. (package
  17289. (name "emacs-npm-mode")
  17290. (version "0.6.0")
  17291. (source
  17292. (origin
  17293. (method git-fetch)
  17294. (uri (git-reference
  17295. (url "https://github.com/mojochao/npm-mode")
  17296. (commit version)))
  17297. (file-name (git-file-name name version))
  17298. (sha256
  17299. (base32 "1mh6nbffciw4yhv049kdhh796ysj1x21ndm3fwymhskb3dy0w1ss"))))
  17300. (build-system emacs-build-system)
  17301. (home-page "https://github.com/mojochao/npm-mode")
  17302. (synopsis "Minor mode for working with @code{npm} projects")
  17303. (description
  17304. "@code{npm-mode} provides a minor mode to work with @code{npm} projects.")
  17305. (license license:gpl3+)))
  17306. (define-public emacs-itail
  17307. (let ((commit "6e43c20da03be3b9c6ece93b7dc3495975ec1888")
  17308. (revision "1"))
  17309. (package
  17310. (name "emacs-itail")
  17311. (version (string-append "0.0.1" "-" revision "."
  17312. (string-take commit 7)))
  17313. (source
  17314. (origin
  17315. (method git-fetch)
  17316. (uri (git-reference
  17317. (url "https://github.com/re5et/itail")
  17318. (commit commit)))
  17319. (file-name (git-file-name name version))
  17320. (sha256
  17321. (base32
  17322. "044nzxh1hq41faxw3lix0wy78vfz304pjcaa5a11dqfz7q3gx5cv"))))
  17323. (build-system emacs-build-system)
  17324. (home-page "https://github.com/re5et/itail")
  17325. (synopsis "Interactive @code{tail} Emacs mode")
  17326. (description "@code{itail} provides interactive @code{tail} mode
  17327. that allows you to filter the tail with unix pipes and highlight the
  17328. contents of the tailed file. Works locally or on remote files using
  17329. tramp.")
  17330. (license license:gpl3+))))
  17331. (define-public emacs-loop
  17332. (package
  17333. (name "emacs-loop")
  17334. (version "1.3")
  17335. (source
  17336. (origin
  17337. (method git-fetch)
  17338. (uri (git-reference
  17339. (url "https://github.com/Wilfred/loop.el")
  17340. (commit version)))
  17341. (file-name (git-file-name name version))
  17342. (sha256
  17343. (base32 "1gs95xnmnn8aa4794k7h8mw1sz1nfdh9v0caqj6yvnsdnwy74n5x"))))
  17344. (build-system emacs-build-system)
  17345. (native-inputs
  17346. `(("emacs-ert-runner" ,emacs-ert-runner)
  17347. ("emacs-undercover" ,emacs-undercover)))
  17348. (arguments
  17349. `(#:tests? #t
  17350. #:test-command '("ert-runner")))
  17351. (home-page "https://github.com/Wilfred/loop.el")
  17352. (synopsis "Imperative loop structures for Emacs")
  17353. (description "Loop structures familiar to users of other languages. This
  17354. library adds a selection of popular loop structures as well as break and
  17355. continue.")
  17356. (license license:gpl3+)))
  17357. (define-public emacs-elisp-refs
  17358. (package
  17359. (name "emacs-elisp-refs")
  17360. (version "1.3")
  17361. (source
  17362. (origin
  17363. (method git-fetch)
  17364. (uri (git-reference
  17365. (url "https://github.com/Wilfred/elisp-refs")
  17366. (commit version)))
  17367. (file-name (git-file-name name version))
  17368. (sha256
  17369. (base32 "0w7k91xf69zc0zkjrw8h8sjdjf9xq9qs5zhvajhd718lzf93564b"))))
  17370. (build-system emacs-build-system)
  17371. (propagated-inputs
  17372. `(("emacs-dash" ,emacs-dash)
  17373. ("emacs-f" ,emacs-f)
  17374. ("emacs-list-utils" ,emacs-list-utils)
  17375. ("emacs-loop" ,emacs-loop)
  17376. ("emacs-s" ,emacs-s)
  17377. ("emacs-shut-up" ,emacs-shut-up)))
  17378. (native-inputs
  17379. `(("emacs-ert-runner" ,emacs-ert-runner)
  17380. ("emacs-undercover" ,emacs-undercover)))
  17381. (arguments
  17382. `(#:tests? #t
  17383. #:test-command '("ert-runner")
  17384. #:phases
  17385. (modify-phases %standard-phases
  17386. (add-before 'check 'disable-refs-next-match-test
  17387. ;; Hack to disable the failing test for emacs27
  17388. ;; https://github.com/Wilfred/elisp-refs/issues/29
  17389. (lambda _
  17390. (substitute* "test/unit-test.el"
  17391. (("ert-deftest elisp-refs-next-match")
  17392. "defun elisp-refs-next-match"))
  17393. #t)))))
  17394. (home-page "https://github.com/Wilfred/elisp-refs")
  17395. (synopsis "Find callers of elisp functions or macros")
  17396. (description "Find references to functions, macros or variables. Unlike a
  17397. dumb text search, @code{elisp-refs} actually parses the code, so it's never
  17398. confused by comments or @code{foo-bar} matching @code{foo}.")
  17399. (license license:gpl3+)))
  17400. (define-public emacs-crdt
  17401. (package
  17402. (name "emacs-crdt")
  17403. (version "0.1.4")
  17404. (source
  17405. (origin
  17406. (method git-fetch)
  17407. (uri (git-reference
  17408. (url "https://code.librehq.com/qhong/crdt.el")
  17409. (commit (string-append "v" version))))
  17410. (file-name (git-file-name name version))
  17411. (sha256
  17412. (base32 "0455n75nan7abwnp7zfvrdbqmvlvfp0sf1ififr57h3sqsx3llhk"))))
  17413. (build-system emacs-build-system)
  17414. (home-page "https://code.librehq.com/qhong/crdt.el")
  17415. (synopsis "Real-time collaborative editing environment")
  17416. (description
  17417. "@code{crdt.el} is a real-time collaborative editing environment for
  17418. Emacs using Conflict-free Replicated Data Types. With it, you can share
  17419. multiple buffer in one session, and see other users’ cursor and region. It
  17420. also synchronizes Org mode folding status. It should work with all of Org
  17421. mode.")
  17422. (license license:gpl3+)))
  17423. (define-public emacs-crux
  17424. (package
  17425. (name "emacs-crux")
  17426. (version "0.4.0")
  17427. (source
  17428. (origin
  17429. (method git-fetch)
  17430. (uri (git-reference
  17431. (url "https://github.com/bbatsov/crux")
  17432. (commit (string-append "v" version))))
  17433. (file-name (git-file-name name version))
  17434. (sha256
  17435. (base32
  17436. "1h28chpyq61k72qh749r5kqq1y70wx3xw9c3zyfzmy750wlw6nyj"))))
  17437. (build-system emacs-build-system)
  17438. (home-page "https://github.com/bbatsov/crux")
  17439. (synopsis "Collection of useful functions for Emacs")
  17440. (description
  17441. "@code{crux} provides a collection of useful functions for Emacs.")
  17442. (license license:gpl3+)))
  17443. (define-public emacs-edit-server
  17444. (package
  17445. (name "emacs-edit-server")
  17446. (version "1.16")
  17447. (source
  17448. (origin
  17449. (method git-fetch)
  17450. (uri (git-reference
  17451. (url "https://github.com/stsquad/emacs_chrome")
  17452. (commit (string-append "v" version))))
  17453. (file-name (git-file-name name version))
  17454. (sha256
  17455. (base32 "0m7gj224sqxjjw5sxky92fnrxg9jy4nf33kwf0aqxnfhqlgh545k"))))
  17456. (build-system emacs-build-system)
  17457. (arguments
  17458. `(#:phases
  17459. (modify-phases %standard-phases
  17460. (add-after 'unpack 'chdir-elisp
  17461. ;; Elisp directory is not in root of the source.
  17462. (lambda _
  17463. (chdir "servers"))))))
  17464. (propagated-inputs `(("emacs-ert-async" ,emacs-ert-async)))
  17465. (home-page "https://github.com/stsquad/emacs_chrome")
  17466. (synopsis "Server that responds to edit requests from Chromium")
  17467. (description
  17468. "This package provides an edit server to respond to requests from Emacs.")
  17469. (license license:gpl3+)))
  17470. (define-public emacs-m-buffer-el
  17471. (package
  17472. (name "emacs-m-buffer-el")
  17473. (version "0.15")
  17474. (source
  17475. (origin
  17476. (method git-fetch)
  17477. (uri (git-reference
  17478. (url "https://github.com/phillord/m-buffer-el")
  17479. (commit (string-append "v" version))))
  17480. (file-name (git-file-name name version))
  17481. (sha256
  17482. (base32
  17483. "1sx76i59razwccvn6x7rx5a124bfyjw9fcbxf4gj7nsg33qiq809"))))
  17484. (arguments
  17485. `(#:phases
  17486. (modify-phases %standard-phases
  17487. (add-before 'install 'check
  17488. (lambda* (#:key inputs #:allow-other-keys)
  17489. (invoke "emacs" "--batch" "-L" "."
  17490. "-l" "test/m-buffer-test.el"
  17491. "-l" "test/m-buffer-at-test.el"
  17492. "-f" "ert-run-tests-batch-and-exit"))))))
  17493. (build-system emacs-build-system)
  17494. (home-page "https://github.com/phillord/m-buffer-el")
  17495. (synopsis "List oriented buffer operations for Emacs")
  17496. (description "@code{m-buffer} provides a set of list-orientated functions
  17497. for operating over the contents of Emacs buffers.")
  17498. (license license:gpl3+)))
  17499. (define-public emacs-let-alist
  17500. (package
  17501. (name "emacs-let-alist")
  17502. (version "1.0.6")
  17503. (source
  17504. (origin
  17505. (method url-fetch)
  17506. (uri (string-append
  17507. "https://elpa.gnu.org/packages/let-alist-" version ".el"))
  17508. (sha256
  17509. (base32 "0szj7vnjzz4zci5fvz7xqgcpi4pzdyyf4qi2s8xar2hi7v3yaawr"))))
  17510. (build-system emacs-build-system)
  17511. (home-page "https://elpa.gnu.org/packages/let-alist.html")
  17512. (synopsis "Easily let-bind values of an assoc-list by their names")
  17513. (description "This package offers a single macro, @code{let-alist}. This
  17514. macro takes a first argument (whose value must be an alist) and a body.")
  17515. (license license:gpl3+)))
  17516. (define-public emacs-esup
  17517. (let ((commit "0de8af8233d9ce1b67f05a50f25c481c4f1118d8")
  17518. (revision "1"))
  17519. (package
  17520. (name "emacs-esup")
  17521. (version (git-version "0.7.1" revision commit))
  17522. (source
  17523. (origin
  17524. (method git-fetch)
  17525. (uri (git-reference
  17526. (url "https://github.com/jschaf/esup")
  17527. (commit commit)))
  17528. (file-name (git-file-name name version))
  17529. (sha256
  17530. (base32
  17531. "01khb3xyj0ylwib6ryzzvqmkh5wvzxiq2n3l0s3h9zv7wx849bzv"))))
  17532. (build-system emacs-build-system)
  17533. (native-inputs
  17534. `(("emacs-noflet" ,emacs-noflet)
  17535. ("emacs-undercover" ,emacs-undercover)
  17536. ("emacs-buttercup" ,emacs-buttercup)))
  17537. (propagated-inputs
  17538. `(("emacs-dash" ,emacs-dash)))
  17539. (arguments
  17540. `(#:tests? #t
  17541. #:test-command '("buttercup" "-L" ".")))
  17542. (home-page "https://github.com/jschaf/esup")
  17543. (synopsis "Emacs start up profiler")
  17544. (description "Benchmark Emacs Startup time without ever leaving
  17545. your Emacs.")
  17546. (license license:gpl2+))))
  17547. (define-public emacs-restart-emacs
  17548. (let ((commit "9aa90d3df9e08bc420e1c9845ee3ff568e911bd9")
  17549. (revision "1"))
  17550. (package
  17551. (name "emacs-restart-emacs")
  17552. (version (git-version "0.1.1" revision commit))
  17553. (source
  17554. (origin
  17555. (method git-fetch)
  17556. (uri (git-reference
  17557. (url "https://github.com/iqbalansari/restart-emacs")
  17558. (commit commit)))
  17559. (file-name (git-file-name name version))
  17560. (sha256
  17561. (base32 "02x1a85k7r95z8091zgjiaj9nf0zvx1jy4xvl3hr12qbnrx1wfav"))))
  17562. (build-system emacs-build-system)
  17563. (home-page "https://github.com/iqbalansari/restart-emacs")
  17564. (synopsis "Restart Emacs from within Emacs")
  17565. (description "This package provides a simple command to restart Emacs from
  17566. within Emacs.")
  17567. (license license:gpl3+))))
  17568. (define-public emacs-svg-tag-mode
  17569. (let ((commit "87489d28450559078aa15b4a435143a297508e48")
  17570. (revision "1"))
  17571. (package
  17572. (name "emacs-svg-tag-mode")
  17573. (version (git-version "0.1" revision commit))
  17574. (source
  17575. (origin
  17576. (method git-fetch)
  17577. (uri (git-reference
  17578. (url "https://github.com/rougier/svg-tag-mode")
  17579. (commit commit)))
  17580. (file-name (git-file-name name version))
  17581. (sha256
  17582. (base32 "0gyhmv60dx0zxx4bmhzsd7q5vfnkpfwlj6539bn272fwcr7zncp8"))))
  17583. (build-system emacs-build-system)
  17584. (home-page "https://github.com/rougier/svg-tag-mode")
  17585. (synopsis "Replace keywords with SVG tags")
  17586. (description "This package provides a minor mode that replaces keywords
  17587. or expressions with SVG rounded box labels that are fully customizable.")
  17588. (license license:gpl3+))))
  17589. (define-public emacs-svg-icon
  17590. (let ((commit "ebc2b8d0f6c680fd575a90e683cc7b832acd1eb7")
  17591. (revision "1"))
  17592. (package
  17593. (name "emacs-svg-icon")
  17594. (version (git-version "0.1" revision commit))
  17595. (source
  17596. (origin
  17597. (method git-fetch)
  17598. (uri (git-reference
  17599. (url "https://github.com/rougier/emacs-svg-icon")
  17600. (commit commit)))
  17601. (file-name (git-file-name name version))
  17602. (sha256
  17603. (base32 "1qzqfa8xyw1nkb89kbvw9qcgdwr8g017n8gf3yzwn816qhkfkjrj"))))
  17604. (build-system emacs-build-system)
  17605. (home-page "https://github.com/rougier/emacs-svg-icon")
  17606. (synopsis "Emacs library to create SVG icons on the fly")
  17607. (description "This library allows creating SVG icons by parsing remote
  17608. collections whose license are compatibles with Emacs. The default size of an
  17609. icon is exactly 2x1 characters such that it can be inserted inside a text
  17610. without disturbing alignment.")
  17611. (license (list license:gpl3+)))))
  17612. (define-public emacs-sourcemap
  17613. (package
  17614. (name "emacs-sourcemap")
  17615. (version "0.03")
  17616. (source
  17617. (origin
  17618. (method git-fetch)
  17619. (uri (git-reference
  17620. (url "https://github.com/syohex/emacs-sourcemap")
  17621. (commit version)))
  17622. (file-name (git-file-name name version))
  17623. (sha256
  17624. (base32 "115g2mfpbfywp8xnag4gsb50klfvplqfh928a5mabb5s8v4a3582"))))
  17625. (build-system emacs-build-system)
  17626. (home-page "https://github.com/syohex/emacs-sourcemap")
  17627. (synopsis "Sourcemap parser")
  17628. (description "Sourcemap parser")
  17629. (license license:gpl3+)))
  17630. (define-public emacs-macrostep
  17631. (let ((commit "424e3734a1ee526a1bd7b5c3cd1d3ef19d184267"))
  17632. (package
  17633. (name "emacs-macrostep")
  17634. (version (git-version "0.9" "1" commit))
  17635. (source (origin
  17636. (method git-fetch)
  17637. (uri (git-reference
  17638. (url "https://github.com/joddie/macrostep")
  17639. (commit commit)))
  17640. (file-name (git-file-name name version))
  17641. (sha256
  17642. (base32
  17643. "1fm40mxdn289cyzgw992223dgrjmwxn4q8svyyxfaxjrpb38jhjz"))))
  17644. (build-system emacs-build-system)
  17645. (arguments
  17646. '(#:phases
  17647. (modify-phases %standard-phases
  17648. (add-before 'check 'remove-test
  17649. ;; Fails because of requirement ‘/bin/sh’.
  17650. (lambda _
  17651. (let ((file "macrostep-test.el"))
  17652. (chmod file #o644)
  17653. (emacs-batch-edit-file file
  17654. `(progn (progn (goto-char (point-min))
  17655. (re-search-forward
  17656. "(ert-deftest macrostep-expand-c-macros")
  17657. (beginning-of-line)
  17658. (kill-sexp))
  17659. (basic-save-buffer))))))
  17660. (add-before 'install 'check
  17661. (lambda _
  17662. (invoke "emacs" "--batch" "-L" "."
  17663. "-l" "macrostep-test.el"
  17664. "-f" "ert-run-tests-batch-and-exit"))))))
  17665. (home-page "https://github.com/joddie/macrostep")
  17666. (synopsis "Interactive macro-expander for Emacs")
  17667. (description "@code{macrostep} is an Emacs minor mode for interactively
  17668. stepping through the expansion of macros in Emacs Lisp source code. It lets
  17669. you see exactly what happens at each step of the expansion process by
  17670. pretty-printing the expanded forms inline in the source buffer, which is
  17671. temporarily read-only while macro expansions are visible. You can expand and
  17672. collapse macro forms one step at a time, and evaluate or instrument the
  17673. expansions for debugging with Edebug as normal (but see “Bugs and known
  17674. limitations”, below). Single-stepping through the expansion is particularly
  17675. useful for debugging macros that expand into another macro form. These can be
  17676. difficult to debug with Emacs’ built-in macroexpand, which continues expansion
  17677. until the top-level form is no longer a macro call.")
  17678. (license license:gpl3+))))
  17679. (define-public emacs-parent-mode
  17680. (package
  17681. (name "emacs-parent-mode")
  17682. (version "2.3")
  17683. (source
  17684. (origin
  17685. (method git-fetch)
  17686. (uri (git-reference
  17687. (url "https://github.com/Fanael/parent-mode")
  17688. (commit version)))
  17689. (file-name (git-file-name name version))
  17690. (sha256
  17691. (base32 "0i5bc7lyyrx6swqlrp9l5x72yzwi53qn6ldrfs99gh08b3yvsnni"))))
  17692. (build-system emacs-build-system)
  17693. (home-page "https://github.com/Fanael/parent-mode")
  17694. (synopsis "Get major mode's parent modes")
  17695. (description "Get major mode's parent modes")
  17696. (license license:gpl3+)))
  17697. (define-public emacs-lacarte
  17698. (package
  17699. (name "emacs-lacarte")
  17700. (version "0.1")
  17701. (source (origin
  17702. (method url-fetch)
  17703. (uri "https://www.emacswiki.org/emacs/download/lacarte.el")
  17704. (sha256
  17705. (base32
  17706. "1sbmk37ljq5j7dsw5c37sbxvlfgdqswh7bi4dknyjzfxlq50f4am"))))
  17707. (build-system emacs-build-system)
  17708. (home-page "https://www.emacswiki.org/emacs/lacarte.el")
  17709. (synopsis "Execute menu items as commands, with completion")
  17710. (description "Execute menu items as commands, with completion.")
  17711. (license license:gpl3)))
  17712. (define-public emacs-isearch-prop
  17713. (let ((commit "4a2765f835dd115d472142da05215c4c748809f4")
  17714. (revision "2"))
  17715. (package
  17716. (name "emacs-isearch-prop")
  17717. (version (git-version "0" revision commit))
  17718. (source
  17719. (origin
  17720. (method git-fetch)
  17721. (uri (git-reference
  17722. (url "https://github.com/emacsmirror/isearch-prop")
  17723. (commit commit)))
  17724. (file-name (git-file-name name version))
  17725. (sha256
  17726. (base32
  17727. "06gdk5m84q6pxwng8rjxny1zkll8f3m2x6lw4xyib2dvg7iaslh3"))))
  17728. (build-system emacs-build-system)
  17729. (home-page "https://www.emacswiki.org/emacs/isearch-prop.el")
  17730. (synopsis "Extensions to @code{isearch.el}")
  17731. (description "The Emacs library @code{isearch-prop.el} lets you search within
  17732. contexts. You can limit incremental search to a set of zones of
  17733. buffer text, search contexts that in effect constitute a multi-region.
  17734. These zones can be defined in various ways, including some ways
  17735. provided specially by this library.")
  17736. (license license:gpl3+))))
  17737. (define-public emacs-company-lua
  17738. (let ((commit "29f6819de4d691e5fd0b62893a9f4fbc1c6fcb52")
  17739. (revision "2"))
  17740. (package
  17741. (name "emacs-company-lua")
  17742. (version (git-version "0.1" "2" commit))
  17743. (source
  17744. (origin
  17745. (method git-fetch)
  17746. (uri (git-reference
  17747. (url "https://github.com/ptrv/company-lua")
  17748. (commit commit)))
  17749. (file-name (git-file-name name version))
  17750. (sha256
  17751. (base32
  17752. "0ny2dcc7c585p7v3j6q0rpkbj1qmf2ismy8a5020jpr585xvz0hh"))))
  17753. (build-system emacs-build-system)
  17754. (propagated-inputs
  17755. `(("emacs-company" ,emacs-company)
  17756. ("emacs-s" ,emacs-s)
  17757. ("emacs-f" ,emacs-f)
  17758. ("emacs-lua-mode" ,emacs-lua-mode)))
  17759. (arguments
  17760. `(#:include (cons* "^lua\\/" %default-include)))
  17761. (home-page "https://github.com/ptrv/company-lua")
  17762. (synopsis "Company backend for Lua")
  17763. (description
  17764. "This package provides Company backend for Lua programming language.")
  17765. (license license:gpl3+))))
  17766. (define-public emacs-beginend
  17767. (package
  17768. (name "emacs-beginend")
  17769. (version "2.2.0")
  17770. (source
  17771. (origin
  17772. (method git-fetch)
  17773. (uri (git-reference
  17774. (url "https://github.com/DamienCassou/beginend")
  17775. (commit (string-append "v" version))))
  17776. (file-name (git-file-name name version))
  17777. (sha256
  17778. (base32 "1r9033zlx2q2dk3bjz004flxdiw79qiswq0zqdjnlzwassvk0f35"))))
  17779. ;; TODO: Run tests.
  17780. (build-system emacs-build-system)
  17781. (inputs
  17782. `(("emacs-undercover" ,emacs-undercover))) ; For tests.
  17783. (home-page "https://github.com/DamienCassou/beginend")
  17784. (synopsis "Redefine @code{M-<} and @code{M->} for Emacs modes")
  17785. (description "@code{beginend} redefines @code{M-<} and @code{M->}
  17786. keybindings for Emacs modes so that point moves to meaningful
  17787. locations. Redefined keys are still accessible by pressing the same
  17788. key again.")
  17789. (license license:gpl3+)))
  17790. (define-public emacs-mbsync
  17791. (let ((commit "b62491c0e0d89eb9c66261a16d7ac81231c9c453")
  17792. (revision "4"))
  17793. (package
  17794. (name "emacs-mbsync")
  17795. (version (git-version "0.1.2" revision commit))
  17796. (source
  17797. (origin
  17798. (method git-fetch)
  17799. (uri (git-reference
  17800. (url "https://github.com/dimitri/mbsync-el")
  17801. (commit commit)))
  17802. (file-name (git-file-name name version))
  17803. (sha256
  17804. (base32
  17805. "1zlih37mkqjn2czl12zn7lgxxljvrwhqqpbksj9c91zn0f0rm3mz"))))
  17806. (build-system emacs-build-system)
  17807. (home-page "https://github.com/dimitri/mbsync-el")
  17808. (synopsis "Interface to mbsync for Emacs")
  17809. (description "This package calls @code{mbsync} from
  17810. within Emacs.")
  17811. (license license:gpl3+))))
  17812. (define-public emacs-ibuffer-projectile
  17813. (package
  17814. (name "emacs-ibuffer-projectile")
  17815. (version "0.3")
  17816. (source
  17817. (origin
  17818. (method git-fetch)
  17819. (uri (git-reference
  17820. (url "https://github.com/purcell/ibuffer-projectile")
  17821. (commit version)))
  17822. (file-name (git-file-name name version))
  17823. (sha256
  17824. (base32
  17825. "18cqxnwzzbkcj9jcaw89b210432yzhrl1dwsv48p0jbhfnr17k41"))))
  17826. (build-system emacs-build-system)
  17827. (propagated-inputs
  17828. `(("emacs-projectile" ,emacs-projectile)))
  17829. (home-page "https://github.com/purcell/ibuffer-projectile")
  17830. (synopsis "Group ibuffer's list by projectile root")
  17831. (description "Adds functionality to Emacs @code{ibuffer} for
  17832. grouping buffers by their projectile root directory.")
  17833. (license license:gpl3+)))
  17834. (define-public emacs-ibuffer-vc
  17835. (package
  17836. (name "emacs-ibuffer-vc")
  17837. (version "0.11")
  17838. (source
  17839. (origin
  17840. (method git-fetch)
  17841. (uri (git-reference
  17842. (url "https://github.com/purcell/ibuffer-vc")
  17843. (commit version)))
  17844. (file-name (git-file-name name version))
  17845. (sha256
  17846. (base32 "1mgn7b786j4hwq1ks012hxxgvrfn5rz90adi2j190gmjz60rc5g5"))))
  17847. (build-system emacs-build-system)
  17848. (home-page "https://github.com/purcell/ibuffer-vc")
  17849. (synopsis "Group Ibuffer's list by revision control system indications")
  17850. (description
  17851. "Ibuffer-VC adds functionality to Ibuffer for grouping buffers by their
  17852. parent revision control system root directory, and for displaying, or sorting,
  17853. by the status of listed files.")
  17854. (license license:gpl3+)))
  17855. (define-public emacs-elm-mode
  17856. (package
  17857. (name "emacs-elm-mode")
  17858. (version "0.21.0")
  17859. (source
  17860. (origin
  17861. (method git-fetch)
  17862. (uri
  17863. (git-reference
  17864. (url "https://github.com/jcollard/elm-mode")
  17865. (commit (string-append "v" version))))
  17866. (file-name (git-file-name name version))
  17867. (sha256
  17868. (base32 "0iwk4fmw8hq3ry4ky1zc7lgl4cpbnrjyk74c2xzddfspi3ks41fd"))))
  17869. (propagated-inputs
  17870. `(("emacs-dash" ,emacs-dash)
  17871. ("emacs-f" ,emacs-f)
  17872. ("emacs-reformatter" ,emacs-reformatter)
  17873. ("emacs-s" ,emacs-s)))
  17874. (build-system emacs-build-system)
  17875. (home-page "https://github.com/jcollard/elm-mode")
  17876. (synopsis "Emacs major mode for editing Elm source code")
  17877. (description
  17878. "This package provides a major mode for editing Elm source code, and
  17879. working with common core and third-party Elm tools. Its features are:
  17880. @itemize
  17881. @item Syntax highlighting
  17882. @item Intelligent indentation
  17883. @item Integration with elm-make
  17884. @item Integration with elm-repl
  17885. @item Integration with elm-reactor
  17886. @item Integration with elm-package
  17887. @item Integration with elm-oracle
  17888. @item Integration with elm-format
  17889. @item Integration with elm-test
  17890. @end itemize")
  17891. (license license:gpl3+)))
  17892. (define-public emacs-helm-mode-manager
  17893. (package
  17894. (name "emacs-helm-mode-manager")
  17895. (version "1.0.0")
  17896. (source
  17897. (origin
  17898. (method git-fetch)
  17899. (uri (git-reference
  17900. (url "https://github.com/istib/helm-mode-manager")
  17901. (commit version)))
  17902. (file-name (git-file-name name version))
  17903. (sha256
  17904. (base32
  17905. "1srx5f0s9x7zan7ayqd6scxfhcvr3nkd4yzs96hphd87rb18apzk"))))
  17906. (build-system emacs-build-system)
  17907. (propagated-inputs
  17908. `(("emacs-helm" ,emacs-helm)))
  17909. (home-page "https://github.com/istib/helm-mode-manager/")
  17910. (synopsis "Switch and toggle Emacs major and minor modes using Helm")
  17911. (description "This package provides a Helm interface for toggling Emacs
  17912. major or minor mode.
  17913. @itemize
  17914. @item @code{helm-switch-major-mode} list of all major modes
  17915. @item @code{helm-enable-minor-mode} list of all inactive minor modes
  17916. @item @code{helm-disable-minor-mode} list of all ACTIVE minor modes
  17917. @end itemize\n
  17918. Hitting @code{RET} enables the mode, @code{C-z} shows the mode
  17919. documentation.")
  17920. (license license:gpl3+)))
  17921. (define-public emacs-hy-mode
  17922. (package
  17923. (name "emacs-hy-mode")
  17924. (version "1.0.4")
  17925. (source
  17926. (origin
  17927. (method git-fetch)
  17928. (uri (git-reference
  17929. (url "https://github.com/hylang/hy-mode")
  17930. (commit (string-append "v" version))))
  17931. (file-name (git-file-name name version))
  17932. (sha256
  17933. (base32 "0gihxlmfminadaqdr8d2zccd7wwygl3m0gfzxsk5izi7f8hl4w7f"))))
  17934. (build-system emacs-build-system)
  17935. (propagated-inputs
  17936. `(("emacs-dash" ,emacs-dash)
  17937. ("emacs-s" ,emacs-s)))
  17938. (home-page "https://github.com/hylang/hy-mode")
  17939. (synopsis "Major mode for Hylang")
  17940. (description "This package provides a major mode for Hylang.")
  17941. (license license:gpl3+)))
  17942. (define-public emacs-web-beautify
  17943. (package
  17944. (name "emacs-web-beautify")
  17945. (version "0.3.2")
  17946. (source
  17947. (origin
  17948. (method git-fetch)
  17949. (uri (git-reference
  17950. (url "https://github.com/yasuyk/web-beautify")
  17951. (commit version)))
  17952. (file-name (git-file-name name version))
  17953. (sha256
  17954. (base32 "0vms7zz3ym53wf1zdrkbf2ky2xjr1v134ngsd0jr8azyi8siw84d"))))
  17955. (build-system emacs-build-system)
  17956. (home-page "https://github.com/yasuyk/web-beautify")
  17957. (synopsis "Format HTML, CSS and JavaScript, JSON")
  17958. (description "This package provides an Emacs functions to format HTML,
  17959. CSS, JavaScript, JSON.")
  17960. (license license:gpl3+)))
  17961. (define-public emacs-helm-shell-history
  17962. (let ((commit "110d3c35c52fe4b89b29e79ea4c8626bce7266a1"))
  17963. (package
  17964. (name "emacs-helm-shell-history")
  17965. (version (git-version "0.1" "1" commit))
  17966. (source
  17967. (origin
  17968. (method git-fetch)
  17969. (uri (git-reference
  17970. (url "https://github.com/yuutayamada/helm-shell-history")
  17971. (commit commit)))
  17972. (file-name (git-file-name name version))
  17973. (sha256
  17974. (base32
  17975. "18fkjcz69g4dyaxhf9j8svr5x6dhsdnglddwisis8hdn504scpfj"))))
  17976. (build-system emacs-build-system)
  17977. (arguments
  17978. '(#:phases
  17979. (modify-phases %standard-phases
  17980. (add-before 'check 'patch-helm-shell-history-file
  17981. (lambda _
  17982. (let ((file "helm-shell-history.el"))
  17983. (chmod file #o644)
  17984. (emacs-substitute-sexps file
  17985. ("(defvar helm-shell-history-file"
  17986. `(expand-file-name "~/.bash_history"))))
  17987. #t)))))
  17988. (propagated-inputs
  17989. `(("emacs-helm" ,emacs-helm)))
  17990. (home-page "https://github.com/yuutayamada/helm-shell-history")
  17991. (synopsis "Find shell history with Emacs Helm")
  17992. (description "This package provides an Emacs Helm interface to search
  17993. throw a shell history.")
  17994. (license license:gpl3+))))
  17995. (define-public emacs-discover-my-major
  17996. (package
  17997. (name "emacs-discover-my-major")
  17998. (version "1.0")
  17999. (source
  18000. (origin
  18001. (method git-fetch)
  18002. (uri (git-reference
  18003. (url "https://framagit.org/steckerhalter/discover-my-major.git/")
  18004. (commit version)))
  18005. (file-name (git-file-name name version))
  18006. (sha256
  18007. (base32
  18008. "1wlqyl03hhnflbyay3qlvdzqzvv5rbybcjpfddggda7ias9h0pr4"))))
  18009. (build-system emacs-build-system)
  18010. (propagated-inputs
  18011. `(("emacs-makey" ,emacs-makey)))
  18012. (home-page "https://framagit.org/steckerhalter/discover-my-major/")
  18013. (synopsis "Discover key bindings for the current Emacs major mode")
  18014. (description "This package discovers key bindings and
  18015. their meaning for the current Emacs major-mode.")
  18016. (license license:gpl3+)))
  18017. (define-public emacs-org-ref
  18018. (package
  18019. (name "emacs-org-ref")
  18020. (version "2.0.0")
  18021. (source
  18022. (origin
  18023. (method git-fetch)
  18024. (uri (git-reference
  18025. (url "https://github.com/jkitchin/org-ref")
  18026. (commit (string-append "v" version))))
  18027. (file-name (git-file-name name version))
  18028. (sha256
  18029. (base32 "0xd1qp8dfy8n8b2n3rsdzm8vrfl7dii142kw330s8jp3pavww1f6"))))
  18030. (build-system emacs-build-system)
  18031. (propagated-inputs
  18032. `(("emacs-dash" ,emacs-dash)
  18033. ("emacs-f" ,emacs-f)
  18034. ("emacs-helm" ,emacs-helm)
  18035. ("emacs-helm-bibtex" ,emacs-helm-bibtex)
  18036. ("emacs-htmlize" ,emacs-htmlize)
  18037. ("emacs-hydra" ,emacs-hydra)
  18038. ("emacs-ivy" ,emacs-ivy)
  18039. ("emacs-key-chord" ,emacs-key-chord)
  18040. ("emacs-pdf-tools" ,emacs-pdf-tools)
  18041. ("emacs-s" ,emacs-s)))
  18042. (home-page "https://github.com/jkitchin/org-ref")
  18043. (synopsis "Citations, cross-references and bibliographies in Org mode")
  18044. (description
  18045. "Org Ref is an Emacs library that provides rich support for citations,
  18046. labels and cross-references in Org mode.
  18047. The basic idea of Org Ref is that it defines a convenient interface to insert
  18048. citations from a reference database (e.g., from BibTeX files), and a set of
  18049. functional Org links for citations, cross-references and labels that export
  18050. properly to LaTeX, and that provide clickable functionality to the user. Org
  18051. Ref interfaces with Helm BibTeX to facilitate citation entry, and it can also
  18052. use RefTeX.
  18053. It also provides a fairly large number of utilities for finding bad citations,
  18054. extracting BibTeX entries from citations in an Org file, and functions to
  18055. create and modify BibTeX entries from a variety of sources, most notably from
  18056. a DOI.
  18057. Org Ref is especially suitable for Org documents destined for LaTeX export and
  18058. scientific publication. Org Ref is also useful for research documents and
  18059. notes.")
  18060. (license license:gpl3+)))
  18061. (define-public emacs-org-reveal
  18062. (let ((commit "fe9148b670d144124d9697fcf5d0528f19025104"))
  18063. (package
  18064. (name "emacs-org-reveal")
  18065. (version (git-version "20210902" "1" commit))
  18066. (source (origin
  18067. (method git-fetch)
  18068. (uri (git-reference
  18069. (url "https://github.com/yjwen/org-reveal")
  18070. (commit commit)))
  18071. (file-name (git-file-name name version))
  18072. (sha256
  18073. (base32
  18074. "034gkbc03z9jzj7ad34mmqgmvj4f14ap7iixh3zx4wp2ipw5xb7c"))))
  18075. (build-system emacs-build-system)
  18076. (home-page "https://github.com/yjwen/org-reveal")
  18077. (synopsis "Org and Reveal.js powered HTML presentation tool")
  18078. (description "Org-Reveal is a @command{org-mode} extension that allows
  18079. to create beautiful presentations (slides) with 3D effects from simple but
  18080. powerful Org contents.")
  18081. (license license:gpl3+))))
  18082. (define-public emacs-org-re-reveal
  18083. (package
  18084. (name "emacs-org-re-reveal")
  18085. (version "3.10.0")
  18086. (source (origin
  18087. (method git-fetch)
  18088. (uri (git-reference
  18089. (url "https://gitlab.com/oer/org-re-reveal")
  18090. (commit version)))
  18091. (file-name (git-file-name name version))
  18092. (sha256
  18093. (base32
  18094. "1bc01ybs498x0b6l136czp2y6js8ngwc9jkrmahnqdkkvm65il5y"))))
  18095. (build-system emacs-build-system)
  18096. (propagated-inputs
  18097. `(("emacs-htmlize" ,emacs-htmlize)
  18098. ("emacs-org" ,emacs-org)))
  18099. (home-page "https://gitlab.com/oer/org-re-reveal")
  18100. (synopsis "Build HTML presentations with reveal.js from Org source files")
  18101. (description "This project started as fork of org-reveal. It provides an
  18102. export back-end for HTML presentations with reveal.js from Org mode source
  18103. files.")
  18104. (license license:gpl3+)))
  18105. (define-public emacs-add-hooks
  18106. (package
  18107. (name "emacs-add-hooks")
  18108. (version "3.1.1")
  18109. (source
  18110. (origin
  18111. (method git-fetch)
  18112. (uri (git-reference
  18113. (url "https://github.com/nickmccurdy/add-hooks")
  18114. (commit version)))
  18115. (file-name (git-file-name name version))
  18116. (sha256
  18117. (base32 "1jv9fpcsm572zg0j1mbpbfkqgdlqapy89xhhj19pswkhjns1y2wl"))))
  18118. (build-system emacs-build-system)
  18119. (home-page "https://github.com/nickmccurdy/add-hooks/")
  18120. (synopsis "Emacs function for setting multiple hooks")
  18121. (description "This package provides a @code{add-hooks} function tidies up
  18122. duplicate hook and function names further into a single declarative call.")
  18123. (license license:gpl3+)))
  18124. (define-public emacs-fancy-battery
  18125. (package
  18126. (name "emacs-fancy-battery")
  18127. (version "0.2")
  18128. (source
  18129. (origin
  18130. (method git-fetch)
  18131. (uri (git-reference
  18132. (url "https://github.com/emacsorphanage/fancy-battery")
  18133. (commit version)))
  18134. (file-name (git-file-name name version))
  18135. (sha256
  18136. (base32 "05lwcwf412m717yhwpjrswqkm8c3i7391rmiwv2k8xc1vk6dpp4g"))))
  18137. (build-system emacs-build-system)
  18138. (home-page "https://github.com/emacsorphanage/fancy-battery")
  18139. (synopsis "Display battery status in Emacs mode line")
  18140. (description "This package provides @code{fancy-battery-mode} which is
  18141. like the built-in @code{display-battery-mode}, but more fancy. It just the
  18142. remaining time, uses colours to indicate the status of the battery, and is
  18143. more customizable.")
  18144. (license license:gpl3)))
  18145. (define-public emacs-fancy-narrow
  18146. (package
  18147. (name "emacs-fancy-narrow")
  18148. (version "0.9.5")
  18149. (source
  18150. (origin
  18151. (method git-fetch)
  18152. (uri (git-reference
  18153. (url "https://github.com/Malabarba/fancy-narrow")
  18154. (commit version)))
  18155. (file-name (git-file-name name version))
  18156. (sha256
  18157. (base32 "0vcr1gnqawvc1yclqs23jvxm6bqix8kpflf1c7znb0wzxmz9kx7y"))))
  18158. (build-system emacs-build-system)
  18159. (home-page "https://github.com/Malabarba/fancy-narrow/releases")
  18160. (synopsis "Imitate @code{narrow-to-region} with more eye candy")
  18161. (description
  18162. "Unlike @code{narrow-to-region}, which completely hides text outside
  18163. the narrowed region, this package simply de-emphasizes the text, makes it
  18164. read-only, and makes it unreachable. This leads to a much more natural
  18165. feeling where the region stays static (instead of being brutally moved to a
  18166. blank slate) and is clearly highlighted with respect to the rest of the
  18167. buffer.")
  18168. (license license:gpl2+)))
  18169. (define-public emacs-hideshowvis
  18170. (let ((commit "614e856620445166a60c00a1c4653dbd59c871c9")
  18171. (revision "1"))
  18172. (package
  18173. (name "emacs-hideshowvis")
  18174. (version (git-version "0.7" revision commit))
  18175. (source (origin
  18176. (method git-fetch)
  18177. (uri (git-reference
  18178. (url "https://github.com/sheijk/hideshowvis")
  18179. (commit commit)))
  18180. (file-name (git-file-name name version))
  18181. (sha256
  18182. (base32
  18183. "0ykj5jwcm03p5h7sd52qndmzihyan09lqg6rzgmyabvw7p56y90m"))))
  18184. (build-system emacs-build-system)
  18185. (home-page "https://github.com/sheijk/hideshowvis")
  18186. (synopsis "Add icons in the Emacs fringe which @code{hideshow} can hide")
  18187. (description "Emacs package to add clickable icons in the fringe for
  18188. regions which @code{hideshow} can hide.")
  18189. (license license:gpl2+))))
  18190. (define-public emacs-know-your-http-well
  18191. (package
  18192. (name "emacs-know-your-http-well")
  18193. (version "0.5.0")
  18194. (source
  18195. (origin
  18196. (method git-fetch)
  18197. (uri (git-reference
  18198. (url "https://github.com/for-GET/know-your-http-well")
  18199. (commit (string-append "v" version))))
  18200. (file-name (git-file-name name version))
  18201. (sha256
  18202. (base32 "1lppggnii2r9fvlhh33gbdrwb50za8lnalavlq9s86ngndn4n94k"))))
  18203. (arguments
  18204. `(#:phases
  18205. (modify-phases %standard-phases
  18206. (add-after 'unpack 'install-json-files
  18207. (lambda* (#:key outputs #:allow-other-keys)
  18208. (for-each (lambda (directory)
  18209. (copy-recursively directory
  18210. (string-append
  18211. (assoc-ref outputs "out")
  18212. directory)))
  18213. '("js" "json"))))
  18214. (add-after 'unpack 'chdir-elisp
  18215. ;; Elisp directory is not in root of the source.
  18216. (lambda _
  18217. (chdir "emacs"))))))
  18218. (build-system emacs-build-system)
  18219. (home-page "https://github.com/for-GET/know-your-http-well")
  18220. (synopsis "Meaning of HTTP headers codes")
  18221. (description "Meaning of HTTP headers codes.")
  18222. (license license:gpl3+)))
  18223. (define-public emacs-navi-mode
  18224. (let ((commit "c1d38e8237f4e14af020a0b7d4f118ea198ab674"))
  18225. (package
  18226. (name "emacs-navi-mode")
  18227. (version (git-version "2.0" "1" commit))
  18228. (source
  18229. (origin
  18230. (method git-fetch)
  18231. (uri (git-reference
  18232. (url "https://github.com/alphapapa/navi")
  18233. (commit commit)))
  18234. (file-name (git-file-name name version))
  18235. (sha256
  18236. (base32
  18237. "0jj5spk14hgb7zb1cd2n8whcw4k1kd5zb6llwj96v178yaws7l8k"))))
  18238. (build-system emacs-build-system)
  18239. (propagated-inputs
  18240. `(("emacs-outshine" ,emacs-outshine)
  18241. ("emacs-outorg" ,emacs-outorg)))
  18242. (home-page "https://github.com/alphapapa/navi")
  18243. (synopsis "Emacs major-mode for easy buffer-navigation")
  18244. (description
  18245. "This package provides an Emacs major-mode for easy buffer-navigation")
  18246. (license license:gpl3+))))
  18247. (define-public emacs-download-region
  18248. (let ((commit "eb9e557529a73b4cfc8281c70dd0d95db333fffa")
  18249. (revision "1"))
  18250. (package
  18251. (name "emacs-download-region")
  18252. (version (string-append "0.0.1" "-" revision "."
  18253. (string-take commit 7)))
  18254. (source
  18255. (origin
  18256. (method git-fetch)
  18257. (uri (git-reference
  18258. (url "https://github.com/zk-phi/download-region")
  18259. (commit commit)))
  18260. (file-name (git-file-name name version))
  18261. (sha256
  18262. (base32
  18263. "0v52djg39b6k2snizd9x0qc009ws5y0ywqsfwhqgcbs5ymzh7dsc"))))
  18264. (build-system emacs-build-system)
  18265. (home-page "https://github.com/zk-phi/download-region")
  18266. (synopsis "In buffer download manager for Emacs")
  18267. (description "@code{download-region} provides in buffer
  18268. downloading manager for Emacs.")
  18269. (license license:gpl3+))))
  18270. (define-public emacs-helpful
  18271. (package
  18272. (name "emacs-helpful")
  18273. (version "0.18")
  18274. (source
  18275. (origin
  18276. (method git-fetch)
  18277. (uri (git-reference
  18278. (url "https://github.com/Wilfred/helpful")
  18279. (commit version)))
  18280. (file-name (git-file-name name version))
  18281. (sha256
  18282. (base32 "0gdjxykqkal2x765mi51m99i5ql23i1fy909wy4mzj5ajhjfgqcc"))))
  18283. (build-system emacs-build-system)
  18284. (propagated-inputs
  18285. `(("emacs-elisp-refs" ,emacs-elisp-refs)
  18286. ("emacs-dash" ,emacs-dash)
  18287. ("emacs-s" ,emacs-s)
  18288. ("emacs-f" ,emacs-f)
  18289. ("emacs-shut-up" ,emacs-shut-up)))
  18290. (native-inputs
  18291. `(("emacs-ert-runner" ,emacs-ert-runner)
  18292. ("emacs-undercover" ,emacs-undercover)))
  18293. (arguments
  18294. `(#:tests? #t
  18295. #:test-command '("ert-runner")))
  18296. (home-page "https://github.com/Wilfred/helpful")
  18297. (synopsis "More contextual information in Emacs help")
  18298. (description "@code{helpful} is an alternative to the built-in Emacs help
  18299. that provides much more contextual information.
  18300. @itemize
  18301. @item Show the source code for interactively defined functions (unlike the
  18302. built-in Help).
  18303. @item Fall back to the raw sexp if no source is available.
  18304. @item Show where a function is being called.
  18305. @item Docstrings will Highlight the summary (the first sentence), include
  18306. cross-references, hide superfluous puncuation.
  18307. @item Show you the properties that have been applied to the current
  18308. symbol. This provides visibility of features like edebug or byte-code
  18309. optimisation.
  18310. @item Provide a separate @code{helpful-command} function to view interactive
  18311. functions.
  18312. @item Display any keybindings that apply to interactive functions.
  18313. @item Trace, disassemble functions from inside Helpful. This is discoverable
  18314. and doesn't require memorisation of commands.
  18315. @end itemize\n")
  18316. (license license:gpl3+)))
  18317. (define-public emacs-logview
  18318. (package
  18319. (name "emacs-logview")
  18320. (version "0.14")
  18321. (source
  18322. (origin
  18323. (method git-fetch)
  18324. (uri (git-reference
  18325. (url "https://github.com/doublep/logview")
  18326. (commit version)))
  18327. (file-name (git-file-name name version))
  18328. (sha256
  18329. (base32 "1cchmr25z5zj7rgb2fyxkaq8kpw7i5yg1pvn42dvm09c2wrfbj46"))))
  18330. (propagated-inputs
  18331. `(("emacs-datetime" ,emacs-datetime)
  18332. ("emacs-extmap" ,emacs-extmap)))
  18333. (build-system emacs-build-system)
  18334. (home-page "https://github.com/doublep/logview/")
  18335. (synopsis "Emacs mode for viewing log files")
  18336. (description "@code{logview} provides an Emacs mode to view log files.")
  18337. (license license:gpl3+)))
  18338. (define-public emacs-suggest
  18339. (package
  18340. (name "emacs-suggest")
  18341. (version "0.7")
  18342. (home-page "https://github.com/Wilfred/suggest.el")
  18343. (source
  18344. (origin
  18345. (method git-fetch)
  18346. (uri (git-reference
  18347. (url home-page)
  18348. (commit version)))
  18349. (file-name (git-file-name name version))
  18350. (sha256
  18351. (base32
  18352. "01v8plska5d3g19sb1m4ph1i3ayprfzk8mi6mpabjy6zad397xjl"))))
  18353. (build-system emacs-build-system)
  18354. (propagated-inputs
  18355. `(("emacs-loop" ,emacs-loop)
  18356. ("emacs-dash" ,emacs-dash)
  18357. ("emacs-s" ,emacs-s)
  18358. ("emacs-f" ,emacs-f)
  18359. ("emacs-spinner" ,emacs-spinner)
  18360. ("emacs-shut-up" ,emacs-shut-up)))
  18361. (native-inputs
  18362. `(("emacs-ert-runner" ,emacs-ert-runner)
  18363. ("emacs-undercover" ,emacs-undercover)))
  18364. (arguments
  18365. `(#:tests? #t
  18366. #:test-command '("ert-runner")))
  18367. (synopsis "Suggest Elisp functions that give the output requested")
  18368. (description "Suggest.el will find functions that give the output
  18369. requested. It's a great way of exploring list, string and arithmetic
  18370. functions.")
  18371. (license license:gpl3+)))
  18372. (define-public emacs-benchmark-init
  18373. (package
  18374. (name "emacs-benchmark-init")
  18375. (version "1.0")
  18376. (source
  18377. (origin
  18378. (method git-fetch)
  18379. (uri (git-reference
  18380. (url "https://github.com/dholm/benchmark-init-el")
  18381. (commit version)))
  18382. (file-name (git-file-name name version))
  18383. (sha256
  18384. (base32 "1kyn1izm5sbqbp9whnhk9dn3yc7zy8bz5san5w3ivi3rpx15fh94"))))
  18385. (build-system emacs-build-system)
  18386. (home-page "https://github.com/dholm/benchmark-init-el")
  18387. (synopsis "Benchmark Emacs @code{require} and @code{load} calls")
  18388. (description "@code{benchmark-init} provides a way to keep track of where
  18389. time is being spent during Emacs startup in order to optimize startup time.")
  18390. (license license:gpl3+)))
  18391. (define-public emacs-magit-gerrit
  18392. (package
  18393. (name "emacs-magit-gerrit")
  18394. (version "0.4")
  18395. (source
  18396. (origin
  18397. (method git-fetch)
  18398. (uri (git-reference
  18399. (url "https://github.com/terranpro/magit-gerrit")
  18400. (commit (string-append "v" version))))
  18401. (file-name (git-file-name name version))
  18402. (sha256
  18403. (base32 "1q4kcr2ha2kir7pj0cshmgllgq51543syxkkk5jk3ksfiaba4crj"))))
  18404. (build-system emacs-build-system)
  18405. (propagated-inputs
  18406. `(("emacs-magit" ,emacs-magit)))
  18407. (home-page "https://github.com/terranpro/magit-gerrit")
  18408. (synopsis "Magit extension for Gerrit")
  18409. (description "This Magit extension provides integration with Gerrit,
  18410. which makes it possible to conduct Gerrit code reviews directly from within
  18411. Emacs.")
  18412. (license license:gpl3+)))
  18413. (define-public emacs-magit-org-todos-el
  18414. (package
  18415. (name "emacs-magit-org-todos-el")
  18416. (version "0.1.2")
  18417. (source
  18418. (origin
  18419. (method git-fetch)
  18420. (uri (git-reference
  18421. (url "https://github.com/danielma/magit-org-todos.el")
  18422. (commit version)))
  18423. (file-name (git-file-name name version))
  18424. (sha256
  18425. (base32
  18426. "07r5x256k1fjjxs1yfg41kc94nwvnjlk2vvknkra3j8v9p0j88m7"))))
  18427. (propagated-inputs
  18428. `(("magit" ,emacs-magit)))
  18429. (build-system emacs-build-system)
  18430. (home-page "https://github.com/danielma/magit-org-todos.el")
  18431. (synopsis "Get todo.org into Emacs Magit status")
  18432. (description "This package allows you to get @file{todo.org} into your
  18433. magit status.
  18434. If you have a @file{todo.org} file with @code{TODO} items in the root of your
  18435. repository, @code{magit-org-todos} will create a section in your Magit status
  18436. buffer with each of your todos.")
  18437. (license license:gpl3+)))
  18438. (define-public emacs-vcsh
  18439. (package
  18440. (name "emacs-vcsh")
  18441. (version "0.4.4")
  18442. (source
  18443. (origin
  18444. (method git-fetch)
  18445. (uri (git-reference
  18446. (url "https://gitlab.com/stepnem/vcsh-el.git")
  18447. (commit version)))
  18448. (file-name (git-file-name name version))
  18449. (sha256
  18450. (base32 "183pffdiqb7qqmjq31wxl3fpv8qswqgg99gb716rddiyk15ysri7"))))
  18451. (build-system emacs-build-system)
  18452. (home-page "https://gitlab.com/stepnem/vcsh-el")
  18453. (synopsis "Emacs VCSH integration")
  18454. (description
  18455. "This library provides basic ``enter'' functionality and a few
  18456. convenience commands to initialize a @acronym{VCSH, Version Control System for
  18457. $HOME} repository and add files to it. It can be used in conjunction with
  18458. Magit.")
  18459. (license license:public-domain)))
  18460. (define-public emacs-f3
  18461. (package
  18462. (name "emacs-f3")
  18463. (version "0.1")
  18464. (source
  18465. (origin
  18466. (method git-fetch)
  18467. (uri (git-reference
  18468. (url "https://github.com/cosmicexplorer/f3")
  18469. (commit version)))
  18470. (file-name (git-file-name name version))
  18471. (sha256
  18472. (base32 "1qg48zbjdjqimw4516ymrsilz41zkib9321q0caf9474s9xyp2bi"))))
  18473. (build-system emacs-build-system)
  18474. (propagated-inputs
  18475. `(("emacs-helm" ,emacs-helm)))
  18476. (home-page "https://github.com/cosmicexplorer/f3")
  18477. (synopsis "Fantastic File Finder for Emacs")
  18478. (description
  18479. "The Fantastic File Finder for Emacs. Find files fast, using helm.")
  18480. (license license:gpl3+)))
  18481. (define-public emacs-lice-el
  18482. (let ((commit "482e58ab83fff86ed754b00be27b62a219597e7c"))
  18483. (package
  18484. (name "emacs-lice-el")
  18485. (version (git-version "0.2" "2" commit))
  18486. (source (origin
  18487. (method git-fetch)
  18488. (uri (git-reference
  18489. (url "https://github.com/buzztaiki/lice-el")
  18490. (commit commit)))
  18491. (file-name (git-file-name name version))
  18492. (sha256
  18493. (base32
  18494. "0yxkjyhfk8kpr8yqz54gdx6xwkj4s8bnbz60162jh12crj0bs5n7"))))
  18495. (build-system emacs-build-system)
  18496. (arguments
  18497. `(#:phases
  18498. (modify-phases %standard-phases
  18499. (add-after 'unpack 'patch-template-directory
  18500. (lambda* (#:key outputs #:allow-other-keys)
  18501. (chmod "lice.el" #o666)
  18502. (emacs-substitute-variables "lice.el"
  18503. ("lice:system-template-directory"
  18504. (string-append (assoc-ref outputs "out")
  18505. "/share/emacs-lice-el/template")))
  18506. #t))
  18507. (add-after 'install 'install-templates
  18508. (lambda* (#:key outputs #:allow-other-keys)
  18509. (copy-recursively
  18510. "template"
  18511. (string-append (assoc-ref outputs "out")
  18512. "/share/emacs-lice-el/template"))
  18513. #t)))))
  18514. (home-page "https://github.com/buzztaiki/lice-el")
  18515. (synopsis "License and header template for Emacs")
  18516. (description "@code{lice.el} provides following features:
  18517. @itemize
  18518. @item License template management.
  18519. @item File header insertion.
  18520. @end itemize\n")
  18521. (license license:gpl3+))))
  18522. (define-public emacs-academic-phrases
  18523. (let ((commit "0823ed8c24b26c32f909b896a469833ec4d7b656"))
  18524. (package
  18525. (name "emacs-academic-phrases")
  18526. (version (git-version "0.1" "1" commit))
  18527. (source
  18528. (origin
  18529. (method git-fetch)
  18530. (uri (git-reference
  18531. (url "https://github.com/nashamri/academic-phrases")
  18532. (commit commit)))
  18533. (file-name (git-file-name name version))
  18534. (sha256
  18535. (base32
  18536. "0qfzsq8jh05w4zkr0cvq3i1hdn97bq344vcqjg46sib26x3wpz6r"))))
  18537. (build-system emacs-build-system)
  18538. (propagated-inputs
  18539. `(("emacs-dash" ,emacs-dash)
  18540. ("emacs-s" ,emacs-s)
  18541. ("emacs-ht" ,emacs-ht)))
  18542. (home-page "https://github.com/nashamri/academic-phrases")
  18543. (synopsis "Bypass that mental block when writing your papers")
  18544. (description
  18545. "When writing your academic paper, you might get stuck trying to find
  18546. the right phrase that captures your intention. This package tries to
  18547. alleviate that problem by presenting you with a list of phrases organized by
  18548. the topic or by the paper section that you are writing. This package has
  18549. around 600 phrases so far.
  18550. Using this package is easy, just call @code{academic-phrases} to get a list of
  18551. phrases organized by topic, or call @code{academic-phrases-by-section} to
  18552. browse the phrases by the paper section and fill-in the blanks if required.")
  18553. (license license:gpl3+))))
  18554. (define-public emacs-auto-yasnippet
  18555. (let ((commit "624b0d9711222073a2a3f2186e2605eb99fc83c9")
  18556. (revision "2"))
  18557. (package
  18558. (name "emacs-auto-yasnippet")
  18559. (version (git-version "0.3.0" revision commit))
  18560. (source (origin
  18561. (method git-fetch)
  18562. (uri (git-reference
  18563. (url "https://github.com/abo-abo/auto-yasnippet")
  18564. (commit commit)))
  18565. (file-name (git-file-name name version))
  18566. (sha256
  18567. (base32
  18568. "15g8wi067f345xhpi0c12w0h04p4f4lpccwmdjdfj8hzfl4gyxy9"))))
  18569. (build-system emacs-build-system)
  18570. (arguments
  18571. '(#:tests? #t
  18572. #:test-command '("make" "test")))
  18573. (propagated-inputs
  18574. `(("emacs-yasnippet" ,emacs-yasnippet)))
  18575. (home-page "https://github.com/abo-abo/auto-yasnippet/")
  18576. (synopsis "Quickly create disposable yasnippets")
  18577. (description "This package provides a hybrid of keyboard macros and
  18578. yasnippet. You create the snippet on the go, usually to be used just in the
  18579. one place. It's fast, because you're not leaving the current buffer, and all
  18580. you do is enter the code you'd enter anyway, just placing ~ where you'd like
  18581. yasnippet fields and mirrors to be.")
  18582. (license license:gpl3+))))
  18583. (define-public emacs-highlight-numbers
  18584. (package
  18585. (name "emacs-highlight-numbers")
  18586. (version "0.2.3")
  18587. (source
  18588. (origin
  18589. (method git-fetch)
  18590. (uri (git-reference
  18591. (url "https://github.com/Fanael/highlight-numbers")
  18592. (commit version)))
  18593. (file-name (git-file-name name version))
  18594. (sha256
  18595. (base32 "1r07mpyr7rhd7bkg778hx6vbhb4n9ixgzkpszhgks7ri6ia38pj8"))))
  18596. (build-system emacs-build-system)
  18597. (propagated-inputs
  18598. `(("emacs-parent-mode" ,emacs-parent-mode)))
  18599. (home-page "https://github.com/Fanael/highlight-numbers")
  18600. (synopsis "Highlight numbers in source code")
  18601. (description "@code{highlight-numbers-mode} provides a minor mode for
  18602. syntax highlighting of numeric literals in source code.
  18603. It s customizable: it's easy to add or redefine what exactly constitutes a
  18604. \"number\" in given major mode. See @code{highlight-numbers-modelist}.")
  18605. (license license:gpl3+)))
  18606. (define-public emacs-darkroom
  18607. (package
  18608. (name "emacs-darkroom")
  18609. (version "0.3")
  18610. (source
  18611. (origin
  18612. (method url-fetch)
  18613. (uri (string-append "https://elpa.gnu.org/packages/"
  18614. "darkroom-" version ".el"))
  18615. (sha256
  18616. (base32 "0l1xg5kqmjw22k78qnsln0ifx2dx74xxqj0qp8xxcpqvzzx0xh86"))))
  18617. (build-system emacs-build-system)
  18618. (home-page "https://elpa.gnu.org/packages/darkroom.html")
  18619. (synopsis "Remove visual distractions and focus on writing")
  18620. (description "@code{darkroom-mode} makes visual distractions disappear.
  18621. The mode-line is temporarily elided, text is enlarged and margins are adjusted
  18622. so that it's centered on the window.
  18623. @code{darkroom-tentative-mode} is similar, but it doesn't immediately turn-on
  18624. @code{darkroom-mode}, unless the current buffer lives in the sole window of
  18625. the Emacs frame (i.e. all other windows are deleted). Whenever the frame is
  18626. split to display more windows and more buffers, the buffer exits
  18627. @code{darkroom-mode}. Whenever they are deleted, the buffer re-enters
  18628. @code{darkroom-mode}.")
  18629. (license license:gpl3+)))
  18630. (define-public emacs-rsw-elisp
  18631. (package
  18632. (name "emacs-rsw-elisp")
  18633. (version "1.0.5")
  18634. (source (origin
  18635. (method git-fetch)
  18636. (uri (git-reference
  18637. (url "https://github.com/rswgnu/rsw-elisp")
  18638. (commit version)))
  18639. (file-name (git-file-name name version))
  18640. (sha256
  18641. (base32
  18642. "0dfq8myg0r91900bk1s70amsmm4mjk2qsg12v5pk7lla5d2vnyaf"))))
  18643. (build-system emacs-build-system)
  18644. (home-page "https://github.com/rswgnu/rsw-elisp")
  18645. (synopsis "Improved expressions that interactively evaluate Emacs Lisp")
  18646. (description "This package improves and replaces the GNU Emacs commands
  18647. that interactively evaluate Emacs Lisp expressions. The new commands replace
  18648. standard key bindings and are all prefixed with @code{rsw-elisp-}. They work
  18649. the same way as the old commands when called non-interactively; only the
  18650. interactive behavior should be different.")
  18651. (license license:gpl3+)))
  18652. (define-public emacs-default-text-scale
  18653. (package
  18654. (name "emacs-default-text-scale")
  18655. (version "0.2")
  18656. (source (origin
  18657. (method git-fetch)
  18658. (uri (git-reference
  18659. (url "https://github.com/purcell/default-text-scale")
  18660. (commit version)))
  18661. (file-name (git-file-name name version))
  18662. (sha256
  18663. (base32
  18664. "0h42jiwxrxjmk7ccwh3h25n7dy2rq61ncm5wx27jhkncc5jdm4h6"))))
  18665. (build-system emacs-build-system)
  18666. (home-page "https://github.com/purcell/default-text-scale")
  18667. (synopsis "Adjust the font size in all Emacs frames")
  18668. (description "This package provides commands for increasing or
  18669. decreasing the default font size in all GUI Emacs frames.")
  18670. (license license:gpl3+)))
  18671. (define-public emacs-mixed-pitch
  18672. (package
  18673. (name "emacs-mixed-pitch")
  18674. (version "1.1.1")
  18675. (source
  18676. (origin
  18677. (method git-fetch)
  18678. (uri (git-reference
  18679. (url "https://gitlab.com/jabranham/mixed-pitch.git")
  18680. (commit version)))
  18681. (file-name (git-file-name name version))
  18682. (sha256
  18683. (base32 "1dhljrh44dsnixd8hbb11k6dgap8r8n7jknhfy2afdzq889fih74"))))
  18684. (build-system emacs-build-system)
  18685. (home-page "https://gitlab.com/jabranham/mixed-pitch")
  18686. (synopsis "Mix variable- and fixed-pitch fonts in the same Emacs buffer")
  18687. (description
  18688. "@code{mixed-pitch-mode} is a minor mode that enables mixing
  18689. variable-pitch and fixed-pitch fonts in the same buffer. The list
  18690. @code{mixed-pitch-fixed-pitch-faces} defines the faces that are kept
  18691. fixed-pitch,everything else becomes variable-pitch.")
  18692. (license license:gpl3+)))
  18693. (define-public emacs-visual-regexp
  18694. (package
  18695. (name "emacs-visual-regexp")
  18696. (version "1.1.2")
  18697. (source
  18698. (origin
  18699. (method git-fetch)
  18700. (uri (git-reference
  18701. (url "https://github.com/benma/visual-regexp.el")
  18702. (commit (string-append "v" version))))
  18703. (file-name (git-file-name name version))
  18704. (sha256
  18705. (base32 "12p3rlhdphwmx1kxsjzcl2wj3i6qgpvw8iwhg1whs6yqgaxivixd"))))
  18706. (build-system emacs-build-system)
  18707. (home-page "https://github.com/benma/visual-regexp.el/")
  18708. (synopsis "Regexp command with interactive visual feedback")
  18709. (description "This package provides an Emacs regexp command with
  18710. interactive visual feedback.")
  18711. (license license:gpl3+)))
  18712. (define-public emacs-faceup
  18713. (let ((commit "6c92dad56a133e14e7b27831e1bcf9b3a71ff154")
  18714. (revision "1"))
  18715. (package
  18716. (name "emacs-faceup")
  18717. (version (string-append "0.0.1" "-" revision "."
  18718. (string-take commit 7)))
  18719. (source
  18720. (origin
  18721. (method git-fetch)
  18722. (uri (git-reference
  18723. (url "https://github.com/Lindydancer/faceup")
  18724. (commit commit)))
  18725. (file-name (git-file-name name version))
  18726. (sha256
  18727. (base32
  18728. "1yzmy7flrhrh0i10bdszx8idx6r8h6czm4vm4q0z6fp5fw94zwrx"))))
  18729. (build-system emacs-build-system)
  18730. (home-page "https://github.com/Lindydancer/faceup")
  18731. (synopsis "Markup language for faces and font-lock regression testing")
  18732. (description "Emacs is capable of highlighting buffers based on
  18733. language-specific @code{font-lock} rules. This package makes it possible to
  18734. perform regression test for packages that provide font-lock rules.")
  18735. (license license:gpl3+))))
  18736. (define-public emacs-racket-mode
  18737. (let ((commit "5eb31a284c8db5102bc71b1e2c6ce3a095ae085b")
  18738. (revision "6"))
  18739. (package
  18740. (name "emacs-racket-mode")
  18741. (version (git-version "0.0.2" revision commit))
  18742. (source
  18743. (origin
  18744. (method git-fetch)
  18745. (uri (git-reference
  18746. (url "https://github.com/greghendershott/racket-mode")
  18747. (commit commit)))
  18748. (file-name (git-file-name name version))
  18749. (sha256
  18750. (base32
  18751. "081h6rd0gv88m0wvnmghi242kl39x1sz34qr4cq9vz04iwvnmgrm"))))
  18752. (build-system emacs-build-system)
  18753. (arguments
  18754. `(#:include '("\\.el$" "\\.rkt$")))
  18755. (propagated-inputs
  18756. `(("emacs-faceup" ,emacs-faceup)
  18757. ("emacs-pos-tip" ,emacs-pos-tip)
  18758. ("emacs-s" ,emacs-s)))
  18759. (home-page "https://www.racket-mode.com/")
  18760. (synopsis "Major mode for the Racket language")
  18761. (description "@code{racket-mode} provides:
  18762. @itemize
  18763. @item Focus on Racket (not various Schemes).
  18764. @item Follow DrRacket concepts where applicable.
  18765. @item Thorough font-lock and indent.
  18766. @end itemize\n")
  18767. (license license:gpl3+))))
  18768. (define-public emacs-grep-context
  18769. (let ((commit "5a4e3efdf775755c1bbefcfe4b461c1166d81d7d")
  18770. (revision "1"))
  18771. (package
  18772. (name "emacs-grep-context")
  18773. (version (git-version "0.1.0" revision commit))
  18774. (source
  18775. (origin
  18776. (method git-fetch)
  18777. (uri (git-reference
  18778. (url "https://github.com/mkcms/grep-context")
  18779. (commit commit)))
  18780. (file-name (git-file-name name version))
  18781. (sha256
  18782. (base32
  18783. "00q7l4a3c0ay6g5ff9bfa2qgkiswsyh4s6pqnpg0zpzhvv5710f5"))))
  18784. (build-system emacs-build-system)
  18785. (propagated-inputs
  18786. `(("emacs-dash" ,emacs-dash)))
  18787. (home-page "https://github.com/mkcms/grep-context")
  18788. (synopsis "Increase context in compilation and grep buffers")
  18789. (description
  18790. "This package provides an Emacs package for more context in
  18791. compilation/grep buffers. Works with @code{wgrep}, @code{ack}, @code{ag},
  18792. @code{ivy}.")
  18793. (license license:gpl3+))))
  18794. (define-public emacs-helm-firefox
  18795. (package
  18796. (name "emacs-helm-firefox")
  18797. (version "1.3")
  18798. (source
  18799. (origin
  18800. (method git-fetch)
  18801. (uri (git-reference
  18802. (url "https://github.com/emacs-helm/helm-firefox")
  18803. (commit (string-append "v" version))))
  18804. (file-name (git-file-name name version))
  18805. (sha256
  18806. (base32
  18807. "08mjsi2f9s29fkk35cj1rrparjnkm836qmbfdwdz7y51f9varjbs"))))
  18808. (propagated-inputs
  18809. `(("emacs-helm" ,emacs-helm)))
  18810. (build-system emacs-build-system)
  18811. (home-page "https://github.com/emacs-helm/helm-firefox")
  18812. (synopsis "Display firefox bookmarks with Emacs Helm interface")
  18813. (description "Display firefox bookmarks with Emacs Helm interface")
  18814. (license license:gpl3+)))
  18815. (define-public emacs-interactive-align
  18816. (package
  18817. (name "emacs-interactive-align")
  18818. (version "0.4.2")
  18819. (source
  18820. (origin
  18821. (method git-fetch)
  18822. (uri (git-reference
  18823. (url "https://github.com/mkcms/interactive-align")
  18824. (commit (string-append "v" version))))
  18825. (file-name (git-file-name name version))
  18826. (sha256
  18827. (base32
  18828. "0bh03w91i622hbar5dcq631ndxx1y8kd3h655pgw1g0lqkv1mlnc"))))
  18829. (build-system emacs-build-system)
  18830. (home-page "https://github.com/mkcms/interactive-align/")
  18831. (synopsis "Interactive align-regexp command in Emacs")
  18832. (description "Interactive align-regexp command in Emacs")
  18833. (license license:gpl3+)))
  18834. (define-public emacs-shift-number
  18835. (package
  18836. (name "emacs-shift-number")
  18837. (version "0.1")
  18838. (source
  18839. (origin
  18840. (method git-fetch)
  18841. (uri (git-reference
  18842. (url "https://github.com/alezost/shift-number.el")
  18843. (commit (string-append "v" version))))
  18844. (file-name (git-file-name name version))
  18845. (sha256
  18846. (base32
  18847. "0zlwmzsxkv4mkggylxfx2fkrwgz7dz3zbg2gkn2rxcpy2k2gla64"))))
  18848. (build-system emacs-build-system)
  18849. (home-page "https://github.com/alezost/shift-number.el")
  18850. (synopsis "Increase or decrease the number at point")
  18851. (description "@code{emacs-shift-number} provides commands
  18852. @code{shift-number-up} to increase and @code{shift-number-down} to
  18853. decrease the number at point.")
  18854. (license license:gpl3+)))
  18855. (define-public emacs-highlight-defined
  18856. (package
  18857. (name "emacs-highlight-defined")
  18858. (version "0.1.6")
  18859. (source
  18860. (origin
  18861. (method git-fetch)
  18862. (uri (git-reference
  18863. (url "https://github.com/Fanael/highlight-defined")
  18864. (commit version)))
  18865. (file-name (git-file-name name version))
  18866. (sha256
  18867. (base32 "0a9nn1jnbgv93kz1iz5iay34d0p7lkpd8ic619ysk8qcksc0yn2i"))))
  18868. (build-system emacs-build-system)
  18869. (home-page "https://github.com/Fanael/highlight-defined")
  18870. (synopsis "Syntax highlighting of known Elisp symbols")
  18871. (description "Minor mode providing syntax highlighting of known Emacs Lisp
  18872. symbols. Currently the code distinguishes Lisp functions, built-in functions,
  18873. macros, faces and variables. To enable call @code{highlight-defined-mode}. ")
  18874. (license license:gpl3+)))
  18875. (define-public emacs-parinfer-mode
  18876. (package
  18877. (name "emacs-parinfer-mode")
  18878. (version "0.4.10")
  18879. (source
  18880. (origin
  18881. (method git-fetch)
  18882. (uri (git-reference
  18883. (url "https://github.com/DogLooksGood/parinfer-mode")
  18884. (commit (string-append "v" version))))
  18885. (file-name (git-file-name name version))
  18886. (sha256
  18887. (base32 "0v97ncb0w1slb0x8861l3yr1kqz6fgw1fwl1z9lz6hh8p2ih34sk"))))
  18888. (propagated-inputs
  18889. `(("emacs-dash" ,emacs-dash)
  18890. ("emacs-rainbow-delimiters" ,emacs-rainbow-delimiters)
  18891. ("emacs-company" ,emacs-company)))
  18892. (build-system emacs-build-system)
  18893. (home-page "https://github.com/DogLooksGood/parinfer-mode/")
  18894. (synopsis "Lisp structure editing mode")
  18895. (description "@code{parinfer-mode} is a proof-of-concept editor
  18896. mode for Lisp programming languages. It will infer some changes to
  18897. keep Parens and Indentation inline with one another.")
  18898. (license license:gpl3+)))
  18899. (define-public emacs-helm-eww
  18900. (package
  18901. (name "emacs-helm-eww")
  18902. (version "1.2")
  18903. (source (origin
  18904. (method git-fetch)
  18905. (uri (git-reference
  18906. (url "https://github.com/emacs-helm/helm-eww")
  18907. (commit version)))
  18908. (file-name (git-file-name name version))
  18909. (sha256
  18910. (base32
  18911. "0hpq1h0p69c9k6hkd2mjpprx213sc5475q7pr2zpmwrjdzgcv70z"))))
  18912. (propagated-inputs
  18913. `(("emacs-helm" ,emacs-helm)))
  18914. (build-system emacs-build-system)
  18915. (home-page "https://github.com/emacs-helm/helm-eww/")
  18916. (synopsis "Helm interface to EWW")
  18917. (description "This package provides a Helm interface for EWW buffers,
  18918. bookmarks and history.")
  18919. (license license:gpl3+)))
  18920. (define-public emacs-stumpwm-mode
  18921. (let ((commit "920f8fc1488f7953f205e1dda4c2ecbbbda56d6")
  18922. (revision "3"))
  18923. (package
  18924. (name "emacs-stumpwm-mode")
  18925. (version (git-version "0.0.1" revision commit))
  18926. (source (origin
  18927. (method git-fetch)
  18928. (uri (git-reference
  18929. (url "https://github.com/stumpwm/stumpwm-contrib")
  18930. (commit commit)))
  18931. (file-name (git-file-name name version))
  18932. (sha256
  18933. (base32
  18934. "0giac390bq95ag41xkxqp8jjrhfx1wpgglz7jg5rkm0wjhcwmyml"))))
  18935. (build-system emacs-build-system)
  18936. (arguments
  18937. `(#:phases
  18938. (modify-phases %standard-phases
  18939. (add-after 'unpack 'chdir-elisp
  18940. ;; Elisp directory is not in root of the source.
  18941. (lambda _
  18942. (chdir "util/swm-emacs"))))))
  18943. (home-page "https://github.com/stumpwm/stumpwm-contrib")
  18944. (synopsis "Emacs minor-mode for Stumpwm")
  18945. (description "Emacs minor-mode for Stumpwm")
  18946. (license license:gpl3+))))
  18947. (define-public emacs-irfc
  18948. (package
  18949. (name "emacs-irfc")
  18950. (version "20130824.507-1")
  18951. (source
  18952. (origin
  18953. (method url-fetch)
  18954. (uri "https://www.emacswiki.org/emacs/download/irfc.el")
  18955. (file-name (string-append "irfc-" version ".el"))
  18956. (sha256
  18957. (base32
  18958. "0rbfrza56kvspvgrwg0b5bj30d0qncqdsmfxn3y5caq4ifcj77hv"))))
  18959. (build-system emacs-build-system)
  18960. (home-page "https://www.emacswiki.org/emacs/download/irfc.el")
  18961. (synopsis "Interface for IETF RFC document")
  18962. (description
  18963. "This package provides an Emacs interface for IETF RFC document.")
  18964. (license license:gpl3+)))
  18965. (define-public emacs-ido-at-point
  18966. (package
  18967. (name "emacs-ido-at-point")
  18968. (version "1.0.0")
  18969. (source
  18970. (origin
  18971. (method git-fetch)
  18972. (uri (git-reference
  18973. (url "https://github.com/katspaugh/ido-at-point")
  18974. (commit (string-append "v" version))))
  18975. (file-name (git-file-name name version))
  18976. (sha256
  18977. (base32 "1bii7vj8pmmijcpvq3a1scky4ais7k6d7zympb3m9dmz355m9rpp"))))
  18978. (build-system emacs-build-system)
  18979. (synopsis "Ido-style completion at point")
  18980. (description
  18981. "This package is an alternative frontend for @code{completion-at-point}.
  18982. It replaces the standard completions buffer with Ido prompt.")
  18983. (home-page "https://github.com/katspaugh/ido-at-point")
  18984. (license license:gpl3+)))
  18985. (define-public emacs-ido-vertical-mode
  18986. (package
  18987. (name "emacs-ido-vertical-mode")
  18988. (version "0.1.6")
  18989. (source
  18990. (origin
  18991. (method git-fetch)
  18992. (uri (git-reference
  18993. (url "https://github.com/creichert/ido-vertical-mode.el")
  18994. (commit (string-append "v" version))))
  18995. (file-name (git-file-name name version))
  18996. (sha256
  18997. (base32 "1lv82q639xjnmvby56nwqn23ijh6f163bk675s33dkingm8csj8k"))))
  18998. (build-system emacs-build-system)
  18999. (home-page "https://github.com/creichert/ido-vertical-mode.el")
  19000. (synopsis "Makes ido-mode display vertically")
  19001. (description "Makes ido-mode display prospects vertically.")
  19002. (license license:gpl3+)))
  19003. (define-public emacs-wordgen
  19004. (package
  19005. (name "emacs-wordgen")
  19006. (version "0.1.4")
  19007. (source
  19008. (origin
  19009. (method git-fetch)
  19010. (uri (git-reference
  19011. (url "https://github.com/Fanael/wordgen.el")
  19012. (commit version)))
  19013. (file-name (git-file-name name version))
  19014. (sha256
  19015. (base32 "06vbc9ycz1nbjwjkg99y3lj6jwb6lnwnmkqf09yr00jjrrfhfash"))))
  19016. (build-system emacs-build-system)
  19017. (home-page "https://github.com/Fanael/wordgen.el")
  19018. (synopsis "Random word generator")
  19019. (description "This package provides functions to generate random words
  19020. using user-provided rules.")
  19021. (license license:gpl3+)))
  19022. (define-public emacs-on-screen
  19023. (package
  19024. (name "emacs-on-screen")
  19025. (version "1.3.3")
  19026. (source
  19027. (origin
  19028. (method url-fetch)
  19029. (uri (string-append
  19030. "https://elpa.gnu.org/packages/on-screen-" version ".el"))
  19031. (file-name (string-append name "-" version ".el"))
  19032. (sha256
  19033. (base32 "0ga4hw23ki583li2z2hr7l6hk1nc2kdg4afndg06cm9jn158wza7"))))
  19034. (build-system emacs-build-system)
  19035. (home-page "https://github.com/michael-heerdegen/on-screen.el")
  19036. (synopsis "Guide your eyes while scrolling")
  19037. (description
  19038. "Scrolling can be distracting because your eyes may lose
  19039. orientation. This library implements a minor mode that highlights
  19040. the previously visible buffer part after each scroll.")
  19041. (license license:gpl3+)))
  19042. (define-public emacs-highlight-escape-sequences
  19043. ;; No release upstream. Extract version from main file.
  19044. (let ((commit "08d846a7aa748209d65fecead2b6a766c3e5cb41")
  19045. (revision "0"))
  19046. (package
  19047. (name "emacs-highlight-escape-sequences")
  19048. (version (git-version "0.4" revision commit))
  19049. (source
  19050. (origin
  19051. (method git-fetch)
  19052. (uri (git-reference
  19053. (url "https://github.com/dgutov/highlight-escape-sequences")
  19054. (commit commit)))
  19055. (file-name (git-file-name name version))
  19056. (sha256
  19057. (base32 "05mc3w1f8ykf80914a1yddw6j8cmh0h57llm07xh89s53821v2is"))))
  19058. (build-system emacs-build-system)
  19059. (home-page "https://github.com/dgutov/highlight-escape-sequences")
  19060. (synopsis "Highlight escape sequences in Emacs")
  19061. (description "@code{highlight-escape-sequences} provides an
  19062. Emacs minor mode to escape sequences in code.")
  19063. (license license:gpl3+))))
  19064. (define-public emacs-dashboard
  19065. (package
  19066. (name "emacs-dashboard")
  19067. (version "1.7.0")
  19068. (source
  19069. (origin
  19070. (method git-fetch)
  19071. (uri (git-reference
  19072. (url "https://github.com/rakanalh/emacs-dashboard")
  19073. (commit version)))
  19074. (file-name (git-file-name name version))
  19075. (sha256
  19076. (base32 "1qv4cqjy2s2d2bysbq10vq1axpbd8qc3jn1s1r81lxqkcja8zasa"))))
  19077. (build-system emacs-build-system)
  19078. (propagated-inputs
  19079. `(("emacs-page-break-lines" ,emacs-page-break-lines)))
  19080. (arguments
  19081. '(#:include '("\\.el$" "\\.txt$" "\\.png$")
  19082. #:phases
  19083. (modify-phases %standard-phases
  19084. (add-after 'unpack 'patch-dashboard-widgets
  19085. ;; This phase fixes compilation error.
  19086. (lambda _
  19087. (chmod "dashboard-widgets.el" #o666)
  19088. (emacs-substitute-variables "dashboard-widgets.el"
  19089. ("dashboard-init-info"
  19090. '(format "Loaded in %s" (emacs-init-time))))
  19091. #t)))))
  19092. (home-page "https://github.com/rakanalh/emacs-dashboard")
  19093. (synopsis "Startup screen extracted from Spacemacs")
  19094. (description "This package provides an extensible Emacs dashboard, with
  19095. sections for bookmarks, projectil projects, org-agenda and more. ")
  19096. (license license:gpl3+)))
  19097. (define-public emacs-slime-company
  19098. (package
  19099. (name "emacs-slime-company")
  19100. (version "1.6")
  19101. (source
  19102. (origin
  19103. (method git-fetch)
  19104. (uri (git-reference
  19105. (url "https://github.com/anwyn/slime-company")
  19106. (commit (string-append "v" version))))
  19107. (file-name (git-file-name name version))
  19108. (sha256
  19109. (base32 "05dnnc4ms5c9yp9h65k2gbkg3pw9k38nx5wzlwdlfr4shqmw54w0"))))
  19110. (build-system emacs-build-system)
  19111. (propagated-inputs
  19112. `(("emacs-slime" ,emacs-slime)
  19113. ("emacs-company" ,emacs-company)))
  19114. (home-page "https://company-mode.github.io")
  19115. (synopsis "SLIME completion backend for @code{company-mode}")
  19116. (description
  19117. "This is a backend implementation for the completion package
  19118. @code{company-mode} which supports the normal and the fuzzy completion
  19119. modes of SLIME.")
  19120. (license license:gpl3+)))
  19121. (define-public emacs-sml-mode
  19122. (package
  19123. (name "emacs-sml-mode")
  19124. (version "6.10")
  19125. (source
  19126. (origin
  19127. (method url-fetch)
  19128. (uri (string-append "https://elpa.gnu.org/packages/sml-mode-"
  19129. version ".el"))
  19130. (sha256
  19131. (base32 "01yf0s474r9xhj6nbs14ljn9ccxb5yy758i17c8nmgmqvm8fx7sb"))))
  19132. (build-system emacs-build-system)
  19133. (home-page "https://elpa.gnu.org/packages/sml-mode.html")
  19134. (synopsis "Major mode for editing (Standard) ML")
  19135. (description "SML-MODE is a major Emacs mode for editing Standard ML.
  19136. It provides syntax highlighting and automatic indentation and
  19137. comes with sml-proc which allows interaction with an inferior SML
  19138. interactive loop.")
  19139. (license license:gpl3+)))
  19140. (define-public emacs-eros
  19141. (let ((commit "dd8910279226259e100dab798b073a52f9b4233a")
  19142. (revision "2"))
  19143. (package
  19144. (name "emacs-eros")
  19145. (version (git-version "0.0.1" revision commit))
  19146. (source
  19147. (origin
  19148. (method git-fetch)
  19149. (uri (git-reference
  19150. (url "https://github.com/xiongtx/eros")
  19151. (commit commit)))
  19152. (file-name (git-file-name name version))
  19153. (sha256
  19154. (base32
  19155. "08chj3a0lw4ygi2sv7wj0i6ihfbi8jhylr8p92inif8b88r6wg3k"))))
  19156. (build-system emacs-build-system)
  19157. (home-page "https://github.com/xiongtx/eros")
  19158. (synopsis "Evaluation result overlays")
  19159. (description "@code{eros} provides evaluation result overlays.")
  19160. (license license:gpl3+))))
  19161. (define-public emacs-stickyfunc-enhance
  19162. (let ((commit "13bdba51fcd83ccbc3267959d23afc94d458dcb0")
  19163. (revision "1"))
  19164. (package
  19165. (name "emacs-stickyfunc-enhance")
  19166. (version "0.1")
  19167. (source
  19168. (origin
  19169. (method git-fetch)
  19170. (uri (git-reference
  19171. (url "https://github.com/tuhdo/semantic-stickyfunc-enhance")
  19172. (commit commit)))
  19173. (file-name (git-file-name name version))
  19174. (sha256
  19175. (base32
  19176. "16dxjsr5nj20blww4xpd4jzgjprzzh1nwvb810ggdmp9paf4iy0g"))))
  19177. (build-system emacs-build-system)
  19178. (home-page "https://github.com/tuhdo/semantic-stickyfunc-enhance")
  19179. (synopsis "Enhancement to stock @code{semantic-stickyfunc-mode}")
  19180. (description
  19181. "@code{semantic-stickyfunc-mode} shows the function point is currently
  19182. in at the first line of the current buffer. This is useful when you have a
  19183. very long function that spreads more than a screen, and you don't have to
  19184. scroll up to read the function name and then scroll down to original position.")
  19185. (license license:gpl3+))))
  19186. (define-public emacs-git-auto-commit-mode
  19187. (package
  19188. (name "emacs-git-auto-commit-mode")
  19189. (version "4.7.0")
  19190. (source
  19191. (origin
  19192. (method git-fetch)
  19193. (uri (git-reference
  19194. (url "https://github.com/ryuslash/git-auto-commit-mode")
  19195. (commit version)))
  19196. (file-name (git-file-name name version))
  19197. (sha256
  19198. (base32 "0gpib57f7xza04g3iyihw5v15hb7pncqsmvyggib902yvcxlkvqf"))))
  19199. (build-system emacs-build-system)
  19200. (native-inputs
  19201. `(("emacs-buttercup" ,emacs-buttercup)
  19202. ("git" ,git)))
  19203. (arguments
  19204. `(#:tests? #t
  19205. #:test-command '("buttercup" "-L" ".")))
  19206. (home-page "https://github.com/ryuslash/git-auto-commit-mode")
  19207. (synopsis "Emacs Minor mode to automatically commit and push")
  19208. (description "@code{git-auto-commit-mode} is an Emacs minor mode that
  19209. tries to commit changes to a file after every save.
  19210. When @code{gac-automatically-push-p} is non-nil, it also tries to push to the
  19211. current upstream.")
  19212. (license license:gpl3+)))
  19213. (define-public emacs-scroll-on-drag
  19214. (let ((commit "888abd04c34753b1fc4b2fe541bc004ebec5c996")
  19215. (revision "1"))
  19216. (package
  19217. (name "emacs-scroll-on-drag")
  19218. (version (git-version "0.1" revision commit))
  19219. (source
  19220. (origin
  19221. (method git-fetch)
  19222. (uri (git-reference
  19223. (url "https://gitlab.com/ideasman42/emacs-scroll-on-drag.git")
  19224. (commit commit)))
  19225. (file-name (git-file-name name version))
  19226. (sha256
  19227. (base32
  19228. "1si4hdqa3jw1inbyh3wb3i5i9grbms1nwky3vyk9zg7iznwm8a9p"))))
  19229. (build-system emacs-build-system)
  19230. (home-page "https://gitlab.com/ideasman42/emacs-scroll-on-drag")
  19231. (synopsis "Interactive scrolling")
  19232. (description "This package permits scrolling at increasing speeds based
  19233. on drag distance.")
  19234. (license license:gpl3+))))
  19235. (define-public emacs-company-restclient
  19236. (package
  19237. (name "emacs-company-restclient")
  19238. (version "0.3.0")
  19239. (source
  19240. (origin
  19241. (method git-fetch)
  19242. (uri (git-reference
  19243. (url "https://github.com/iquiw/company-restclient")
  19244. (commit (string-append "v" version))))
  19245. (file-name (git-file-name name version))
  19246. (sha256
  19247. (base32 "0yp0hlrgcr6yy1xkjvfckys2k24x9xg7y6336ma61bdwn5lpv0x0"))))
  19248. (build-system emacs-build-system)
  19249. (propagated-inputs
  19250. `(("emacs-company" ,emacs-company)
  19251. ("emacs-know-your-http-well" ,emacs-know-your-http-well)
  19252. ("emacs-restclient" ,emacs-restclient)))
  19253. (home-page "https://github.com/iquiw/company-restclient")
  19254. (synopsis "Company-mode completion back-end for restclient-mode")
  19255. (description "@code{company-mode} back-end for
  19256. @code{restclient-mode}.
  19257. It provides auto-completion for HTTP methods and headers in
  19258. @code{restclient-mode}. Completion source is given by
  19259. @code{know-your-http-well}.")
  19260. (license license:gpl3+)))
  19261. (define-public emacs-noflet
  19262. (let ((version "20170629")
  19263. (revision "1")
  19264. (commit "7ae84dc3257637af7334101456dafe1759c6b68a"))
  19265. (package
  19266. (name "emacs-noflet")
  19267. (version (git-version version revision commit))
  19268. (source
  19269. (origin
  19270. (method git-fetch)
  19271. (uri (git-reference
  19272. (url "https://github.com/nicferrier/emacs-noflet")
  19273. (commit commit)))
  19274. (file-name (git-file-name name version))
  19275. (sha256
  19276. (base32
  19277. "0g70gnmfi8n24jzfci9nrj0n9bn1qig7b8f9f325rin8h7x32ypf"))))
  19278. (build-system emacs-build-system)
  19279. (arguments
  19280. `(#:phases
  19281. (modify-phases %standard-phases
  19282. (add-after 'unpack 'require-dash
  19283. ;; noflet.el uses -map from dash, but (require 'dash) is
  19284. ;; missing. So, add it.
  19285. (lambda _
  19286. (substitute* "noflet.el"
  19287. ((";;; Code:") ";;; Code:\n(require 'dash)"))
  19288. #t)))))
  19289. (propagated-inputs
  19290. `(("emacs-dash" ,emacs-dash)))
  19291. (home-page "https://github.com/nicferrier/emacs-noflet")
  19292. (synopsis "Locally override functions")
  19293. (description "@code{emacs-noflet} lets you locally override functions,
  19294. in the manner of @command{flet}, but with access to the original function
  19295. through the symbol: @command{this-fn}.")
  19296. (license license:gpl3+))))
  19297. (define-public emacs-dumb-jump
  19298. (package
  19299. (name "emacs-dumb-jump")
  19300. (version "0.5.3")
  19301. (source
  19302. (origin
  19303. (method git-fetch)
  19304. (uri (git-reference
  19305. (url "https://github.com/jacktasia/dumb-jump")
  19306. (commit (string-append "v" version))))
  19307. (file-name (git-file-name name version))
  19308. (sha256
  19309. (base32 "1njf60264snhxrd36m4z687lqfkis0p9mmrr7cf1c8l0lfdvawxi"))))
  19310. (build-system emacs-build-system)
  19311. (arguments
  19312. `(#:tests? #f ; FIXME: Tests freeze when run.
  19313. #:test-command '("ert-runner")
  19314. #:phases
  19315. (modify-phases %standard-phases
  19316. (add-after 'unpack 'set-shell
  19317. (lambda _
  19318. ;; Setting the SHELL environment variable is required for the
  19319. ;; tests to find sh.
  19320. (setenv "SHELL" (which "sh"))
  19321. #t)))))
  19322. (native-inputs
  19323. `(("emacs-el-mock" ,emacs-el-mock)
  19324. ("emacs-noflet" ,emacs-noflet)
  19325. ("emacs-undercover" ,emacs-undercover)
  19326. ("ert-runner" ,emacs-ert-runner)))
  19327. (propagated-inputs
  19328. `(("emacs-f" ,emacs-f)
  19329. ("emacs-popup" ,emacs-popup)))
  19330. (home-page "https://github.com/jacktasia/dumb-jump")
  19331. (synopsis "Jump to definition for multiple languages without configuration")
  19332. (description "Dumb Jump is an Emacs \"jump to definition\" package with
  19333. support for multiple programming languages that favors \"just working\" over
  19334. speed or accuracy. This means minimal --- and ideally zero --- configuration
  19335. with absolutely no stored indexes (tags) or persistent background processes.
  19336. Dumb Jump performs best with The Silver Searcher @command{ag} or ripgrep
  19337. @command{rg} installed.")
  19338. (license license:gpl3+)))
  19339. (define-public emacs-dts-mode
  19340. (let ((commit "9ee0854446dcc6c53d2b8d2941051768dba50344")
  19341. (revision "1"))
  19342. (package
  19343. (name "emacs-dts-mode")
  19344. (version (string-append "0.1.0-" revision "." (string-take commit 7)))
  19345. (source
  19346. (origin
  19347. (method git-fetch)
  19348. (uri (git-reference
  19349. (url "https://github.com/bgamari/dts-mode")
  19350. (commit commit)))
  19351. (file-name (git-file-name name version))
  19352. (sha256
  19353. (base32
  19354. "1k8lljdbc90nd29xrhdrsscxavzdq532wq2mg7ljc94krj7538b1"))))
  19355. (build-system emacs-build-system)
  19356. (home-page "https://github.com/bgamari/dts-mode")
  19357. (synopsis "Emacs minor mode for editing device tree files")
  19358. (description
  19359. "This package provides an Emacs minor mode for highlighting
  19360. device tree files.")
  19361. (license license:gpl3+))))
  19362. (define-public emacs-daemons
  19363. (package
  19364. (name "emacs-daemons")
  19365. (version "2.0.0")
  19366. (source
  19367. (origin
  19368. (method git-fetch)
  19369. (uri (git-reference
  19370. (url "https://github.com/cbowdon/daemons.el")
  19371. (commit version)))
  19372. (file-name (git-file-name name version))
  19373. (sha256
  19374. (base32
  19375. "00bkzfaw3bqykcks610vk9wlpa2z360xn32bpsrycacwfv29j7g4"))))
  19376. (build-system emacs-build-system)
  19377. (home-page "https://github.com/cbowdon/daemons.el")
  19378. (synopsis "Emacs UI for managing init system services")
  19379. (description
  19380. "This is an Emacs mode to give you a UI for managing init system
  19381. daemons (services) for those getting tired of typing out @code{sudo service
  19382. my_thing reload} all the time. It offers a consistent UI over different init
  19383. systems.")
  19384. (license license:gpl3+)))
  19385. (define-public emacs-isearch+
  19386. (let ((commit "7c251b91a67bf914066e23e269ba52fda5b45f5f")
  19387. (revision "2"))
  19388. (package
  19389. (name "emacs-isearch+")
  19390. (version (git-version "0" revision commit))
  19391. (source
  19392. (origin
  19393. (method git-fetch)
  19394. (uri (git-reference
  19395. (url "https://github.com/emacsmirror/isearch-plus")
  19396. (commit commit)))
  19397. (file-name (git-file-name name version))
  19398. (sha256
  19399. (base32
  19400. "1w2799714jcdycjlxgs8lpmmz6dmzvcvqy8xwxhvmgpb60g4f2yr"))))
  19401. (build-system emacs-build-system)
  19402. (home-page "https://www.emacswiki.org/emacs/isearch+.el")
  19403. (synopsis "Extensions to @code{isearch.el}")
  19404. (description "This package extends @code{isearch} with advice, dynamic
  19405. filters, highlighting of regexp group levels, and more.")
  19406. (license license:gpl2+))))
  19407. (define-public emacs-eshell-bookmark
  19408. (package
  19409. (name "emacs-eshell-bookmark")
  19410. (version "2.0.0")
  19411. (source
  19412. (origin
  19413. (method git-fetch)
  19414. (uri (git-reference
  19415. (url "https://github.com/Fuco1/eshell-bookmark")
  19416. (commit version)))
  19417. (file-name (git-file-name name version))
  19418. (sha256
  19419. (base32
  19420. "14dmsnixf9vqdhsixw693sml0fn80zcf0b37z049fb40cmppqxdw"))))
  19421. (build-system emacs-build-system)
  19422. (home-page "https://github.com/Fuco1/eshell-bookmark")
  19423. (synopsis "Provide @file{bookmark.el} integration for @code{eshell}")
  19424. (description
  19425. "This package allows for bookmarking @code{eshell} buffers. Upon
  19426. visiting the bookmark, a new @code{eshell} session will be opened in the
  19427. appropriate directory if no @code{eshell} session is active.")
  19428. (license license:gpl3+)))
  19429. (define-public emacs-eshell-syntax-highlighting
  19430. (package
  19431. (name "emacs-eshell-syntax-highlighting")
  19432. (version "0.3")
  19433. (source
  19434. (origin
  19435. (method git-fetch)
  19436. (uri (git-reference
  19437. (url "https://github.com/akreisher/eshell-syntax-highlighting")
  19438. (commit (string-append "v" version))))
  19439. (file-name (git-file-name name version))
  19440. (sha256
  19441. (base32 "1fb9aa85a3hx1rcmv71j6sc3y278452p1y4dabpwy07avb6apd0p"))))
  19442. (build-system emacs-build-system)
  19443. (home-page "https://github.com/akreisher/eshell-syntax-highlighting")
  19444. (synopsis "Add syntax highlighting to Eshell")
  19445. (description
  19446. "This package highlights user commands at the Eshell interactive prompt
  19447. to provide feedback on the validity of commands and syntax.")
  19448. (license license:gpl3+)))
  19449. (define-public emacs-eshell-z
  19450. (package
  19451. (name "emacs-eshell-z")
  19452. (version "0.4")
  19453. (source
  19454. (origin
  19455. (method git-fetch)
  19456. (uri (git-reference
  19457. (url "https://github.com/xuchunyang/eshell-z")
  19458. (commit (string-append "v" version))))
  19459. (file-name (git-file-name name version))
  19460. (sha256
  19461. (base32
  19462. "13dwaq8q23rwmrkpy3gvf7aswrkk6b9ak5221xl7n0bld4wdhq3j"))))
  19463. (build-system emacs-build-system)
  19464. (home-page "https://github.com/xuchunyang/eshell-z")
  19465. (synopsis "Quick navigation to frequently visited directories")
  19466. (description
  19467. "This package is a port of @code{z}, and keeps track of visited directories
  19468. and commands invoked within them in order to enable navigation via input of
  19469. matching regexps.")
  19470. (license license:gpl3+)))
  19471. (define-public emacs-esh-autosuggest
  19472. (package
  19473. (name "emacs-esh-autosuggest")
  19474. (version "2.0.1")
  19475. (source
  19476. (origin
  19477. (method git-fetch)
  19478. (uri (git-reference
  19479. (url "https://github.com/dieggsy/esh-autosuggest")
  19480. (commit version)))
  19481. (file-name (git-file-name name version))
  19482. (sha256
  19483. (base32
  19484. "0l2nnlr3b6df1xn0qjf5d5ryy1wcs1jczyfy795vsasd5gm3g0xh"))))
  19485. (build-system emacs-build-system)
  19486. (propagated-inputs `(("emacs-company" ,emacs-company)))
  19487. (home-page "https://github.com/dieggsy/esh-autosuggest")
  19488. (synopsis "Fish-like autosuggestions in Eshell")
  19489. (description
  19490. "This package assumes you use something other than company for eshell
  19491. completion (e.g. @code{eshell-pcomplete}, @code{completion-at-point},
  19492. @code{helm-esh-pcomplete}). @code{company-mode} is used solely as a mechanism
  19493. for history autosuggestions.
  19494. Unless you're using @code{use-package}'s hook keyword, you can enable the
  19495. autosuggestions with:
  19496. @code{(add-hook 'eshell-mode-hook #'esh-autosuggest-mode)}")
  19497. (license license:gpl3+)))
  19498. (define-public emacs-desktop-environment
  19499. (package
  19500. (name "emacs-desktop-environment")
  19501. (version "0.4.0")
  19502. (source
  19503. (origin
  19504. (method git-fetch)
  19505. (uri (git-reference
  19506. (url "https://gitlab.petton.fr/DamienCassou/desktop-environment")
  19507. (commit (string-append "v" version))))
  19508. (file-name (git-file-name name version))
  19509. (sha256
  19510. (base32
  19511. "0s33jncjg8c2xlr90qjk1ishwmwxm9yg0z6n3kzilawcilpxidsh"))))
  19512. (build-system emacs-build-system)
  19513. (home-page "https://gitlab.petton.fr/DamienCassou/desktop-environment")
  19514. (synopsis "Control your GNU/Linux desktop environment from Emacs")
  19515. (description
  19516. "This package helps you control your GNU/Linux desktop from Emacs.
  19517. With @code{desktop-environment}, you can control the brightness and volume as
  19518. well as take screenshots and lock your screen. The package depends on the
  19519. availability of shell commands to do the hard work for us. These commands can
  19520. be changed by customizing the appropriate variables.")
  19521. (license license:gpl3+)))
  19522. (define-public emacs-org-caldav
  19523. (let ((commit "8569941a0a5a9393ba51afc8923fd7b77b73fa7a")
  19524. (revision "2"))
  19525. (package
  19526. (name "emacs-org-caldav")
  19527. (version (git-version "0.0.0" revision commit))
  19528. (source
  19529. (origin
  19530. (method git-fetch)
  19531. (uri (git-reference
  19532. (url "https://github.com/dengste/org-caldav")
  19533. (commit commit)))
  19534. (file-name (git-file-name name version))
  19535. (sha256
  19536. (base32 "05lgxqaffnqaqnzl24frafdkskran88hl2ml05qvyjhs4jjbgw9g"))))
  19537. (build-system emacs-build-system)
  19538. (arguments
  19539. ;; Tests require to have two specific calendars on a test server.
  19540. `(#:exclude '("^org-caldav-testsuite\\.el")))
  19541. (propagated-inputs
  19542. `(("emacs-org" ,emacs-org)))
  19543. (home-page "https://github.com/dengste/org-caldav")
  19544. (synopsis "Sync Org files with external calendars via the CalDAV protocol")
  19545. (description
  19546. "Org CalDAV synchronizes events between Org files and a CalDAV
  19547. calendar.")
  19548. (license license:gpl3+))))
  19549. (define-public emacs-zotxt
  19550. (package
  19551. (name "emacs-zotxt")
  19552. (version "5.0.5")
  19553. (source
  19554. (origin
  19555. (method git-fetch)
  19556. (uri (git-reference
  19557. (url "https://github.com/egh/zotxt-emacs")
  19558. (commit (string-append "v" version))))
  19559. (file-name (git-file-name name version))
  19560. (sha256
  19561. (base32 "1zr67h0w49rsi84mgf6jdili28h8782q6vjl8za0iq1hcx9zqxyf"))))
  19562. (build-system emacs-build-system)
  19563. (propagated-inputs
  19564. `(("emacs-deferred" ,emacs-deferred)
  19565. ("emacs-request" ,emacs-request)))
  19566. (home-page "https://github.com/egh/zotxt-emacs")
  19567. (synopsis "Integrate Emacs with Zotero")
  19568. (description "This package provides two integration features between Emacs
  19569. and the Zotero research assistant: Insertion of links to Zotero items into an
  19570. Org-mode file, and citations of Zotero items in Pandoc Markdown files.")
  19571. (license license:gpl3+)))
  19572. (define-public emacs-evil-magit
  19573. (let ((commit "98c076fbeb6d2d7d71e02dc204ba3ad5d577abda")
  19574. (revision "5"))
  19575. (package
  19576. (name "emacs-evil-magit")
  19577. (version (git-version "0.4.2" revision commit))
  19578. (source
  19579. (origin
  19580. (method git-fetch)
  19581. (uri (git-reference
  19582. (url "https://github.com/emacs-evil/evil-magit")
  19583. (commit commit)))
  19584. (file-name (git-file-name name version))
  19585. (sha256
  19586. (base32
  19587. "0b4iplxh3rmy8jadhf05pgksv1798d68d1jrhfry93jca8x9crxs"))))
  19588. (build-system emacs-build-system)
  19589. (propagated-inputs
  19590. `(("emacs-evil" ,emacs-evil)
  19591. ("magit" ,emacs-magit)))
  19592. (arguments
  19593. `(#:tests? #t
  19594. #:test-command '("emacs" "-Q" "-batch"
  19595. "-L" "."
  19596. "-l" "evil-magit-tests"
  19597. "-f" "ert-run-tests-batch-and-exit")))
  19598. (home-page
  19599. "https://github.com/emacs-evil/evil-magit")
  19600. (synopsis "Evil-based key bindings for Magit")
  19601. (description
  19602. "This Emacs library configures Magit and Evil to play well with each other.
  19603. For some background see @url{https://github.com/magit/evil-magit/issues/1}.
  19604. See the README at @url{https://github.com/justbur/evil-magit} for a table
  19605. describing the key binding changes.")
  19606. (license license:gpl3+))))
  19607. (define-public emacs-evil-multiedit
  19608. (package
  19609. (name "emacs-evil-multiedit")
  19610. (version "1.3.9")
  19611. (source
  19612. (origin
  19613. (method git-fetch)
  19614. (uri (git-reference
  19615. (url "https://github.com/hlissner/evil-multiedit")
  19616. (commit (string-append "v" version))))
  19617. (file-name (git-file-name name version))
  19618. (sha256
  19619. (base32
  19620. "19h3kqylqzbjv4297wkzzxdmn9yxbg6z4ga4ssrqri90xs7m3rw3"))))
  19621. (build-system emacs-build-system)
  19622. (propagated-inputs
  19623. `(("emacs-evil" ,emacs-evil)
  19624. ("emacs-iedit" ,emacs-iedit)))
  19625. (native-inputs
  19626. `(("emacs-ert-runner" ,emacs-ert-runner)))
  19627. (arguments
  19628. `(#:phases
  19629. (modify-phases %standard-phases
  19630. (add-before 'check 'fix-makefile
  19631. (lambda _
  19632. (substitute* "Makefile"
  19633. (("@cask exec ") ""))
  19634. #t)))
  19635. #:tests? #t
  19636. #:test-command '("make" "test")))
  19637. (home-page
  19638. "https://github.com/hlissner/evil-multiedit")
  19639. (synopsis "Multiple cursors for Evil mode")
  19640. (description
  19641. "This plugin was an answer to the lack of proper multiple cursor support
  19642. in Emacs+Evil. It allows you to select and edit matches interactively,
  19643. integrating @code{iedit-mode} into Evil mode with an attempt at sensible
  19644. defaults.")
  19645. (license license:gpl3+)))
  19646. (define-public emacs-evil-mc
  19647. (let ((commit "1cabb869fe70cef49f7dc06f015c3ade1a969c8c")
  19648. (revision "2"))
  19649. (package
  19650. (name "emacs-evil-mc")
  19651. (version (git-version "0.0.3" revision commit))
  19652. (source
  19653. (origin
  19654. (method git-fetch)
  19655. (uri (git-reference
  19656. (url "https://github.com/gabesoft/evil-mc")
  19657. (commit commit)))
  19658. (file-name (git-file-name name version))
  19659. (sha256
  19660. (base32 "0p83p90faq1p02lmsfs7zrnky3cyzgy8z4m83a81r9kakjzhkrnb"))))
  19661. (build-system emacs-build-system)
  19662. (propagated-inputs
  19663. `(("emacs-evil" ,emacs-evil)))
  19664. (native-inputs
  19665. `(("emacs-espuds" ,emacs-espuds)))
  19666. (home-page "https://github.com/gabesoft/evil-mc")
  19667. (synopsis "Interactive search compatible with @code{multiple-cursors}")
  19668. (description "This package can be used with @code{multiple-cursors} to
  19669. provide an incremental search that moves all fake cursors in sync.")
  19670. (license license:expat))))
  19671. (define-public emacs-evil-org
  19672. (let ((commit "9d4be14118bf27094a30dbff349b815f098aacbf"))
  19673. (package
  19674. (name "emacs-evil-org")
  19675. (version (git-version "1.0.2" "1" commit))
  19676. (source
  19677. (origin
  19678. (method git-fetch)
  19679. (uri (git-reference
  19680. (url "https://github.com/Somelauw/evil-org-mode")
  19681. (commit commit)))
  19682. (file-name (git-file-name name version))
  19683. (sha256
  19684. (base32
  19685. "1fxxfkinb0gq4p5b686r7z4jrkv98zfgh5z889zkjacncv8ibswn"))))
  19686. (build-system emacs-build-system)
  19687. (propagated-inputs `(("emacs-evil" ,emacs-evil)))
  19688. (home-page
  19689. "https://github.com/Somelauw/evil-org-mode")
  19690. (synopsis "Evil keybindings for Org mode")
  19691. (description
  19692. "This package adds supplemental Evil mode key-bindings to Emacs
  19693. Org-mode. It features:
  19694. @itemize
  19695. @item normal, visual and insert mode bindings;
  19696. @item key bindings organised in key themes;
  19697. @item operators like > and < to work on headings;
  19698. @item text objects;
  19699. @item table support;
  19700. @item calendar (date selection) support;
  19701. @item agenda support.
  19702. @end itemize\n")
  19703. (license license:gpl3+))))
  19704. (define-public emacs-debpaste
  19705. (package
  19706. (name "emacs-debpaste")
  19707. (version "0.1.5")
  19708. (home-page "https://github.com/alezost/debpaste.el")
  19709. (source
  19710. (origin
  19711. (method git-fetch)
  19712. (uri (git-reference (url home-page)
  19713. (commit (string-append "v" version))))
  19714. (file-name (git-file-name name version))
  19715. (sha256
  19716. (base32
  19717. "1wi70r56pd5z0x4dp4m58p9asq03j74kdm4fi9vai83vsl2z9amq"))))
  19718. (build-system emacs-build-system)
  19719. (propagated-inputs
  19720. `(("emacs-xml-rpc" ,emacs-xml-rpc)))
  19721. (synopsis "Manipulate pastes from the Debian Pastezone")
  19722. (description "Debpaste is an Emacs interface for the Debian Pastezone,
  19723. allowing you to receive, post, and delete pastes. It communicates with the
  19724. server using XML-RPC.")
  19725. (license license:gpl3+)))
  19726. (define-public emacs-xml-rpc
  19727. (package
  19728. (name "emacs-xml-rpc")
  19729. (version "1.6.15")
  19730. (source
  19731. (origin
  19732. (method git-fetch)
  19733. (uri (git-reference
  19734. (url "https://github.com/hexmode/xml-rpc-el")
  19735. (commit version)))
  19736. (file-name (git-file-name name version))
  19737. (sha256
  19738. (base32 "07vgwnk96i1vpsv2glg6kbkamjcs72xiznsa6xk7nl0nranzr3hd"))))
  19739. (build-system emacs-build-system)
  19740. (home-page "https://github.com/hexmode/xml-rpc-el")
  19741. (synopsis "XML-RPC client for Emacs")
  19742. (description "This package provides an XML-RPC client for Emacs capable
  19743. of both synchronous and asynchronous method calls using the @code{url}
  19744. package's async retrieval functionality. @file{xml-rpc.el} represents XML-RPC
  19745. datatypes as Lisp values, automatically converting to and from the XML
  19746. datastructures as needed, both for method parameters and return values, making
  19747. using XML-RPC methods fairly transparent to the Lisp code.")
  19748. (license license:gpl3+)))
  19749. (define-public emacs-xpm
  19750. (package
  19751. (name "emacs-xpm")
  19752. (version "1.0.4")
  19753. (source
  19754. (origin
  19755. (method url-fetch)
  19756. (uri (string-append "https://elpa.gnu.org/packages/xpm-"
  19757. version ".tar"))
  19758. (sha256
  19759. (base32
  19760. "075miyashh9cm3b0gk6ngld3rm8bfgnh4qxnhxmmvjgzf6a64grh"))))
  19761. (build-system emacs-build-system)
  19762. (home-page "https://elpa.gnu.org/packages/xpm.html")
  19763. (synopsis "XPM image editing mode for Emacs")
  19764. (description "This Emacs package makes editing XPM images easy (and maybe
  19765. fun). Editing is done directly on the (textual) image format, for maximal
  19766. cohesion with the Emacs Way.")
  19767. (license license:gpl3+)))
  19768. (define-public emacs-fish-completion
  19769. (package
  19770. (name "emacs-fish-completion")
  19771. (version "1.2")
  19772. (source
  19773. (origin
  19774. (method git-fetch)
  19775. (uri (git-reference
  19776. (url "https://gitlab.com/Ambrevar/emacs-fish-completion.git")
  19777. (commit version)))
  19778. (file-name (git-file-name name version))
  19779. (sha256
  19780. (base32
  19781. "17lqip1i1rrsvxzz4bx9rqf1fvwd3hriwg3sj6qxmfc8pylnp37q"))))
  19782. (build-system emacs-build-system)
  19783. (inputs `(("fish" ,fish)))
  19784. (arguments
  19785. `(#:phases
  19786. (modify-phases %standard-phases
  19787. (add-after 'unpack 'configure
  19788. (lambda* (#:key inputs outputs #:allow-other-keys)
  19789. (let ((fish (assoc-ref inputs "fish")))
  19790. ;; Specify the absolute file names of the various
  19791. ;; programs so that everything works out-of-the-box.
  19792. (make-file-writable "fish-completion.el")
  19793. (emacs-substitute-variables
  19794. "fish-completion.el"
  19795. ("fish-completion-command"
  19796. (string-append fish "/bin/fish")))))))))
  19797. (home-page
  19798. "https://gitlab.com/Ambrevar/emacs-fish-completion")
  19799. (synopsis "Fish completion for Emacs pcomplete")
  19800. (description
  19801. "This package provides completion for the Fish shell to pcomplete (used
  19802. by shell and Eshell). You can set it up globally with:
  19803. @example
  19804. (when (and (executable-find \"fish\")
  19805. (require 'fish-completion nil t))
  19806. (global-fish-completion-mode))
  19807. @end example
  19808. Alternatively, you can call the @code{fish-completion-mode} manually or in
  19809. shell/Eshell mode hook.
  19810. The package @code{emacs-bash-completion} is an optional dependency: if available,
  19811. @code{fish-completion-complete} can be configured to fall back on bash to further
  19812. try completing. See @code{fish-completion-fallback-on-bash-p}.")
  19813. (license license:gpl3+)))
  19814. (define-public emacs-gif-screencast
  19815. (package
  19816. (name "emacs-gif-screencast")
  19817. (version "1.2")
  19818. (source
  19819. (origin
  19820. (method git-fetch)
  19821. (uri (git-reference
  19822. (url "https://gitlab.com/Ambrevar/emacs-gif-screencast.git")
  19823. (commit version)))
  19824. (file-name (git-file-name name version))
  19825. (sha256
  19826. (base32
  19827. "1yf6yipvhhna29mzaan5vb3d5qvbrkp2awr5diyf381mvxgk8akh"))))
  19828. (build-system emacs-build-system)
  19829. (inputs
  19830. `(("scrot" ,scrot)
  19831. ("imagemagick" ,imagemagick)
  19832. ("gifsicle" ,gifsicle)))
  19833. (arguments
  19834. `(#:phases
  19835. (modify-phases %standard-phases
  19836. (add-after 'unpack 'configure
  19837. (lambda* (#:key inputs outputs #:allow-other-keys)
  19838. (let ((scrot (assoc-ref inputs "scrot"))
  19839. (imagemagick (assoc-ref inputs "imagemagick"))
  19840. (gifsicle (assoc-ref inputs "gifsicle")))
  19841. (make-file-writable "gif-screencast.el")
  19842. ;; Specify the absolute file names of the various
  19843. ;; programs so that everything works out-of-the-box.
  19844. (emacs-substitute-variables
  19845. "gif-screencast.el"
  19846. ("gif-screencast-program"
  19847. (string-append scrot "/bin/scrot"))
  19848. ("gif-screencast-convert-program"
  19849. (string-append imagemagick "/bin/convert"))
  19850. ("gif-screencast-cropping-program"
  19851. (string-append imagemagick "/bin/mogrify"))
  19852. ("gif-screencast-optimize-program"
  19853. (string-append gifsicle "/bin/gifsicle")))))))))
  19854. (home-page
  19855. "https://gitlab.com/Ambrevar/emacs-gif-screencast")
  19856. (synopsis "One-frame-per-action GIF recording")
  19857. (description
  19858. "Call @code{gif-screencast} to start a recording.
  19859. A screenshot is taken for every user action. Call
  19860. @code{gif-screencast-stop} (<f9> by default) to finish recording and create
  19861. the GIF result.")
  19862. (license license:gpl3+)))
  19863. (define-public emacs-google-translate
  19864. (package
  19865. (name "emacs-google-translate")
  19866. (version "0.12.0")
  19867. (source
  19868. (origin
  19869. (method git-fetch)
  19870. (uri (git-reference
  19871. (url "https://github.com/atykhonov/google-translate/")
  19872. (commit (string-append "v" version))))
  19873. (file-name (git-file-name name version))
  19874. (sha256
  19875. (base32
  19876. "0rwpij2bm8d4jq2w5snkp88mfryplw8166dsrjm407n2p6xr48zx"))))
  19877. (build-system emacs-build-system)
  19878. (home-page "https://github.com/atykhonov/google-translate")
  19879. (synopsis "Emacs interface to Google Translate")
  19880. (description
  19881. "This package provides an Emacs interface to the Google Translate
  19882. on-line service.")
  19883. (license license:gpl3+)))
  19884. (define-public emacs-helm-company
  19885. (package
  19886. (name "emacs-helm-company")
  19887. (version "0.2.5")
  19888. (source
  19889. (origin
  19890. (method git-fetch)
  19891. (uri (git-reference
  19892. (url "https://github.com/Sodel-the-Vociferous/helm-company")
  19893. (commit (string-append "v" version))))
  19894. (file-name (git-file-name name version))
  19895. (sha256
  19896. (base32
  19897. "1ci37w6ahnqrfpb284gjvxmimlf61sdxb9k192yy9q983cksv2hx"))))
  19898. (build-system emacs-build-system)
  19899. (propagated-inputs
  19900. `(("emacs-helm" ,emacs-helm)
  19901. ("emacs-company" ,emacs-company)))
  19902. (native-inputs
  19903. `(("emacs-ert-runner" ,emacs-ert-runner)))
  19904. (arguments
  19905. `(#:tests? #t
  19906. #:test-command '("ert-runner")))
  19907. (home-page "https://github.com/Sodel-the-Vociferous/helm-company")
  19908. (synopsis "Helm interface for company-mode")
  19909. (description
  19910. "This is a Helm interface to company-mode, a text completion
  19911. framework.")
  19912. (license license:gpl3+)))
  19913. (define-public emacs-helm-descbinds
  19914. (let ((commit "033be73f21778633813264ce1634a6e1ad873d8e"))
  19915. (package
  19916. (name "emacs-helm-descbinds")
  19917. (version (git-version "1.13" "1" commit))
  19918. (source
  19919. (origin
  19920. (method git-fetch)
  19921. (uri (git-reference
  19922. (url "https://github.com/emacs-helm/helm-descbinds")
  19923. (commit commit)))
  19924. (file-name (git-file-name name version))
  19925. (sha256
  19926. (base32
  19927. "1n89p56qwa243w1c85i5awnaf7piwjsvfi7nmnsrwm33hix5dknk"))))
  19928. (build-system emacs-build-system)
  19929. (propagated-inputs `(("emacs-helm" ,emacs-helm)))
  19930. (home-page "https://github.com/emacs-helm/helm-descbinds")
  19931. (synopsis "Convenient @code{describe-bindings} with Helm")
  19932. (description
  19933. "This package is a replacement of @code{describe-bindings} for Helm.
  19934. @code{describe-bindings} is replaced with @code{helm-descbinds}. As usual,
  19935. type @code{C-h b}, or any incomplete key sequence plus @code{C-h}, to run
  19936. @code{helm-descbinds}. The bindings are presented in a similar way as
  19937. @code{describe-bindings} does, but you can use completion to find the command
  19938. you searched for and execute it, or view its documentation.")
  19939. (license license:gpl3+))))
  19940. (define-public emacs-helm-emms
  19941. (let ((commit "37e5aa029abfa5a5c48636314de8157142944fa2"))
  19942. (package
  19943. (name "emacs-helm-emms")
  19944. (version (git-version "1.3" "3" commit))
  19945. (source
  19946. (origin
  19947. (method git-fetch)
  19948. (uri (git-reference
  19949. (url "https://github.com/emacs-helm/helm-emms")
  19950. (commit commit)))
  19951. (file-name (git-file-name name version))
  19952. (sha256
  19953. (base32
  19954. "0r1ai6xhzayyik30w2sx9n62bxxwm12vfmjspv0daqif9az8y3vg"))))
  19955. (build-system emacs-build-system)
  19956. (propagated-inputs
  19957. `(("emacs-helm" ,emacs-helm)
  19958. ("emacs-emms" ,emacs-emms)))
  19959. (home-page
  19960. "https://github.com/emacs-helm/helm-emms")
  19961. (synopsis "Emms for Helm")
  19962. (description "Helm interface for Emms to browse all tracks and all folders
  19963. from @code{emms-source-file-default-directory}.")
  19964. (license license:gpl3+))))
  19965. (define-public emacs-helm-exwm
  19966. (package
  19967. (name "emacs-helm-exwm")
  19968. (version "0.0.2")
  19969. (source
  19970. (origin
  19971. (method git-fetch)
  19972. (uri (git-reference
  19973. (url "https://github.com/emacs-helm/helm-exwm")
  19974. (commit version)))
  19975. (file-name (git-file-name name version))
  19976. (sha256
  19977. (base32 "0g4k01ps14bp2az8v6dcag9llg045k2b4kdis81xx4lvw76znr9v"))))
  19978. (build-system emacs-build-system)
  19979. (propagated-inputs
  19980. `(("emacs-helm" ,emacs-helm)
  19981. ("emacs-exwm" ,emacs-exwm)))
  19982. (home-page
  19983. "https://github.com/emacs-helm/helm-exwm")
  19984. (synopsis "Helm for EXWM buffers")
  19985. (description
  19986. "@code{helm-exwm} runs a Helm session over the list of EXWM buffers.
  19987. @code{helm-exwm-switch} is a convenience X application launcher using Helm to
  19988. switch between the various windows of one or several specific applications.
  19989. See @code{helm-exwm-switch-browser} for an example.")
  19990. (license license:gpl3+)))
  19991. (define-public emacs-helm-flycheck
  19992. (let ((commit "3cf7d3bb194acacc6395f88360588013d92675d6"))
  19993. (package
  19994. (name "emacs-helm-flycheck")
  19995. (version (git-version "0.4" "1" commit))
  19996. (source
  19997. (origin
  19998. (method git-fetch)
  19999. (uri (git-reference
  20000. (url "https://github.com/yasuyk/helm-flycheck")
  20001. (commit commit)))
  20002. (file-name (git-file-name name version))
  20003. (sha256
  20004. (base32
  20005. "1a2yfxhz04klwhcandqvfzysxp6b7bxyxx1xk1x3kds5hif5fkl4"))))
  20006. (build-system emacs-build-system)
  20007. (propagated-inputs
  20008. `(("emacs-dash" ,emacs-dash)
  20009. ("emacs-flycheck" ,emacs-flycheck)
  20010. ("emacs-helm" ,emacs-helm)))
  20011. (home-page "https://github.com/yasuyk/helm-flycheck")
  20012. (synopsis "Show Flycheck errors with Helm")
  20013. (description
  20014. "This integrates Flycheck with Helm.")
  20015. (license license:gpl3+))))
  20016. (define-public emacs-helm-ls-git
  20017. (let ((commit "4da1a53f2f0a078ee2e896a914a1b19c0bf1d5ed"))
  20018. (package
  20019. (name "emacs-helm-ls-git")
  20020. (version (git-version "1.9.1" "2" commit))
  20021. (source
  20022. (origin
  20023. (method git-fetch)
  20024. (uri (git-reference
  20025. (url "https://github.com/emacs-helm/helm-ls-git")
  20026. (commit commit)))
  20027. (file-name (git-file-name name version))
  20028. (sha256
  20029. (base32
  20030. "12fi08w20yjsdfkxl1pk9q4w0z9l92va5fa5ghay9w33xlymc8dc"))))
  20031. (build-system emacs-build-system)
  20032. (propagated-inputs `(("emacs-helm" ,emacs-helm)))
  20033. (home-page "https://github.com/emacs-helm/helm-ls-git")
  20034. (synopsis "Helm interface for listing the files in a Git repository")
  20035. (description
  20036. "This package provides a Helm interface for Git files.
  20037. @itemize
  20038. @item Display the open buffers in project.
  20039. @item Display a status source showing state of project (modified files etc.).
  20040. @item Display a list of all files in project under git control.
  20041. @item Quickly look at diffs of modified files.
  20042. @item Allow switching to @code{git status} with your preferred frontend
  20043. (vc-dir, Magit,etc.).
  20044. @item Full integration of git-grep, also allow usage of @code{helm-grep} (you
  20045. can use ack-grep instead of grep).
  20046. @item Integrate usage of gid from id-utils.
  20047. @item Full integration with @code{helm-find-files}, allow you to browse
  20048. projects unrelated to current-buffer.
  20049. @item In addition, all actions of type files and buffers are provided.
  20050. @end itemize\n")
  20051. (license license:gpl3+))))
  20052. (define-public emacs-helm-mu
  20053. (let ((commit "77e6fea24e01481418738421dbcfe28ef1bd63cf"))
  20054. (package
  20055. (name "emacs-helm-mu")
  20056. (version (git-version "20180513" "1" commit))
  20057. (source
  20058. (origin
  20059. (method git-fetch)
  20060. (uri (git-reference
  20061. (url "https://github.com/emacs-helm/helm-mu")
  20062. (commit commit)))
  20063. (file-name (git-file-name name version))
  20064. (sha256
  20065. (base32 "1lh0ahxdc5b2z18m9p30gwg8sbg33sjwkjr38p7h5xsm5fm7i0fz"))))
  20066. (build-system emacs-build-system)
  20067. (propagated-inputs
  20068. `(("emacs-helm" ,emacs-helm)
  20069. ("mu" ,mu)))
  20070. (home-page
  20071. "https://github.com/emacs-helm/helm-mu")
  20072. (synopsis
  20073. "Helm sources for searching emails and contacts")
  20074. (description
  20075. "Helm sources for searching emails and contacts using @code{mu} and
  20076. @code{mu4e}. Mu is an indexer for maildirs and mu4e is a mutt-like MUA for
  20077. Emacs build on top of mu. Mu is highly efficient making it possible to get
  20078. instant results even for huge maildirs. It also provides search operators,
  20079. e.g: @code{from:Peter to:Anne flag:attach search term}.")
  20080. (license license:gpl3+))))
  20081. (define-public emacs-helm-pass
  20082. (package
  20083. (name "emacs-helm-pass")
  20084. (version "0.4")
  20085. (source
  20086. (origin
  20087. (method git-fetch)
  20088. (uri (git-reference
  20089. (url "https://github.com/emacs-helm/helm-pass")
  20090. (commit version)))
  20091. (file-name (git-file-name name version))
  20092. (sha256
  20093. (base32
  20094. "19w24isddzamkikq17vbv3y7ha22i7wc09d2nqw1j0qwhrrfkng9"))))
  20095. (build-system emacs-build-system)
  20096. (propagated-inputs
  20097. `(("emacs-helm" ,emacs-helm)
  20098. ("emacs-password-store" ,emacs-password-store)))
  20099. (home-page "https://github.com/emacs-helm/helm-pass")
  20100. (synopsis "Helm interface to pass, the standard Unix password manager")
  20101. (description
  20102. "Users of @code{helm-pass} may also be interested in functionality
  20103. provided by other Emacs packages dealing with pass:
  20104. @itemize
  20105. @item @code{emacs-password-store}, which @code{helm-pass} relies on.
  20106. @item @code{emacs-pass}, a major mode for @code{pass}.
  20107. @item @code{auth-source-pass.el}: integration of Emacs' auth-source with
  20108. @code{pass}, included in Emacs 26+).
  20109. @end itemize\n")
  20110. (license license:gpl3+)))
  20111. (define-public emacs-image+
  20112. (let ((commit "6834d0c09bb4df9ecc0d7a559bd7827fed48fffc"))
  20113. (package
  20114. (name "emacs-image+")
  20115. (version (git-version "0.6.2" "1" commit))
  20116. (source
  20117. (origin
  20118. (method git-fetch)
  20119. (uri (git-reference
  20120. (url "https://github.com/mhayashi1120/Emacs-imagex")
  20121. (commit commit)))
  20122. (file-name (git-file-name name version))
  20123. (sha256
  20124. (base32
  20125. "0v66wk9nh0raih4jhrzmmyi5lbysjnmbv791vm2230ffi2hmwxnd"))))
  20126. (build-system emacs-build-system)
  20127. (inputs `(("imagemagick" ,imagemagick)))
  20128. (arguments
  20129. `(#:phases
  20130. (modify-phases %standard-phases
  20131. (add-after 'unpack 'configure
  20132. (lambda* (#:key inputs outputs #:allow-other-keys)
  20133. (let ((imagemagick (assoc-ref inputs "imagemagick")))
  20134. ;; Specify the absolute file names of the various
  20135. ;; programs so that everything works out-of-the-box.
  20136. (chmod "image+.el" #o666)
  20137. (emacs-substitute-variables
  20138. "image+.el"
  20139. ("imagex-convert-command"
  20140. (string-append imagemagick "/bin/convert"))
  20141. ("imagex-identify-command"
  20142. (string-append imagemagick "/bin/identify")))))))))
  20143. (home-page "https://github.com/mhayashi1120/Emacs-imagex")
  20144. (synopsis "Image manipulation extensions for Emacs")
  20145. (description
  20146. "Image+ provides keybindings allowing you to zoom in or zoom out of an
  20147. image, rotate it, save modified images, and more.")
  20148. (license license:gpl3+))))
  20149. (define-public emacs-package-lint
  20150. (package
  20151. (name "emacs-package-lint")
  20152. (version "0.15")
  20153. (source
  20154. (origin
  20155. (method git-fetch)
  20156. (uri (git-reference
  20157. (url "https://github.com/purcell/package-lint")
  20158. (commit version)))
  20159. (file-name (git-file-name name version))
  20160. (sha256
  20161. (base32
  20162. "1cn713g90zyjfq225yvg14c1qshslpi4466m3w102l5g57p8xv44"))))
  20163. (arguments
  20164. '(#:include (cons "^data/" %default-include)))
  20165. (build-system emacs-build-system)
  20166. (home-page "https://github.com/purcell/package-lint")
  20167. (synopsis "Linting library for elisp package authors")
  20168. (description
  20169. "This provides a list of issues with the Emacs package metadata of a file,
  20170. e.g. the package dependencies it requires. See function
  20171. @code{package-lint-buffer}. Checks will currently be enabled only if a
  20172. \"Package-Requires:\" or \"Package-Version:\" header is present in the
  20173. file.")
  20174. (license license:gpl3+)))
  20175. (define-public emacs-packed
  20176. (package
  20177. (name "emacs-packed")
  20178. (version "3.0.3")
  20179. (source
  20180. (origin
  20181. (method git-fetch)
  20182. (uri (git-reference
  20183. (url "https://github.com/emacscollective/packed")
  20184. (commit version)))
  20185. (file-name (git-file-name name version))
  20186. (sha256
  20187. (base32
  20188. "06blk8parnpq3qi6y5628q3v59c8dyi41glb289a0l16248qwphk"))))
  20189. (build-system emacs-build-system)
  20190. (home-page "https://github.com/emacscollective/packed")
  20191. (synopsis "Package manager agnostic Emacs Lisp package utilities")
  20192. (description
  20193. "Packed provides some package manager agnostic utilities to work
  20194. with Emacs Lisp packages. As far as Packed is concerned packages
  20195. are collections of Emacs Lisp libraries that are stored in a
  20196. dedicated directory such as a Git repository. And libraries are
  20197. Emacs Lisp files that provide the correct feature (matching the
  20198. filename).
  20199. Where a package manager might depend on metadata, Packed instead
  20200. uses some heuristics to get the same information---that is slower
  20201. and might also fail at times but makes it unnecessary to maintain
  20202. package recipes.")
  20203. (license license:gpl3+)))
  20204. (define-public emacs-picpocket
  20205. (let ((version "41")
  20206. (commit "fa3a49f011b5ae139728548fec7375743f61c7c7"))
  20207. (package
  20208. (name "emacs-picpocket")
  20209. (version version)
  20210. (source
  20211. (origin
  20212. (method git-fetch)
  20213. (uri (git-reference
  20214. (url "https://github.com/johanclaesson/picpocket")
  20215. (commit commit)))
  20216. (file-name (git-file-name name version))
  20217. (sha256
  20218. (base32 "1vb358jyfs3px70ah60dmlz5azdfkva9xrw3mgrr4060vcy7w4q1"))))
  20219. (build-system emacs-build-system)
  20220. (arguments ; needed for running tests
  20221. `(#:tests? #t
  20222. #:emacs ,emacs
  20223. #:test-command '("emacs" "--batch"
  20224. "-l" "picpocket-test.el"
  20225. "-f" "ert-run-tests-batch-and-exit")))
  20226. (home-page "https://github.com/johanclaesson/picpocket")
  20227. (synopsis "Image viewer for Emacs")
  20228. (description
  20229. "Picpocket is an image viewer for GNU Emacs. It has commands for:
  20230. @itemize
  20231. @item File operations on the picture files (delete, move, copy, hardlink).
  20232. @item Scale and rotate the picture.
  20233. @item Associate pictures with tags which are saved to disk.
  20234. @item Filter pictures according to tags.
  20235. @item Customizing keystrokes for quick tagging and file operations.
  20236. @item Undo and browse history of undoable commands.
  20237. @end itemize")
  20238. (license license:gpl3+))))
  20239. (define-public emacs-mu4e-conversation
  20240. (let ((commit "98110bb9c300fc9866dee8e0023355f9f79c9b96")
  20241. (revision "5"))
  20242. (package
  20243. (name "emacs-mu4e-conversation")
  20244. (version (git-version "0.0.1" revision commit))
  20245. (source
  20246. (origin
  20247. (method git-fetch)
  20248. (uri (git-reference
  20249. (url "https://gitlab.com/Ambrevar/mu4e-conversation.git")
  20250. (commit commit)))
  20251. (file-name (git-file-name name version))
  20252. (sha256
  20253. (base32
  20254. "080s96jkcw2p288sp1vgds91rgl693iz6hi2dv56p2ih0nnivwlg"))))
  20255. (build-system emacs-build-system)
  20256. (propagated-inputs
  20257. `(("mu" ,mu)))
  20258. (home-page
  20259. "https://gitlab.com/Ambrevar/mu4e-conversation")
  20260. (synopsis
  20261. "Show a complete thread in a single buffer")
  20262. (description
  20263. "This package offers an alternate view to mu4e's e-mail display. It
  20264. shows all e-mails of a thread in a single view, where each correspondent has
  20265. their own face. Threads can be displayed linearly (in which case e-mails are
  20266. displayed in chronological order) or as an Org document where the node tree
  20267. maps the thread tree.")
  20268. (license license:gpl3+))))
  20269. (define-public emacs-pinentry
  20270. (let ((commit "dcc9ba03252ee5d39e03bba31b420e0708c3ba0c")
  20271. (revision "1"))
  20272. (package
  20273. (name "emacs-pinentry")
  20274. (version (git-version "0.1" revision commit))
  20275. (source
  20276. (origin
  20277. (method url-fetch)
  20278. (uri (string-append
  20279. "http://git.savannah.gnu.org/cgit/emacs/elpa.git/plain"
  20280. "/packages/pinentry/pinentry.el?id=" commit))
  20281. (file-name (string-append "pinentry.el"))
  20282. (sha256
  20283. (base32
  20284. "1lf30q6r8nz5cjzclbb9bbymsk2y75nskvb55hnjdv93gr3j0sik"))))
  20285. (build-system emacs-build-system)
  20286. (propagated-inputs
  20287. `(("gnupg" ,gnupg)))
  20288. (home-page "https://elpa.gnu.org/packages/pinentry.html")
  20289. (synopsis "GnuPG Pinentry server implementation")
  20290. (description
  20291. "This package allows GnuPG passphrase to be prompted through the
  20292. minibuffer instead of graphical dialog.
  20293. To use, add @code{allow-emacs-pinentry} to @code{~/.gnupg/gpg-agent.conf},
  20294. reload the configuration with @code{gpgconf --reload gpg-agent}, and start the
  20295. server with @code{M-x pinentry-start}.")
  20296. (license license:gpl3+))))
  20297. (define-public emacs-so-long
  20298. (package
  20299. (name "emacs-so-long")
  20300. (version "1.1")
  20301. (source
  20302. (origin
  20303. (method git-fetch)
  20304. (uri (git-reference
  20305. (url "https://git.savannah.gnu.org/git/so-long")
  20306. (commit version)))
  20307. (file-name (git-file-name name version))
  20308. (sha256
  20309. (base32
  20310. "1d886fgsbly7wpm6ppll45yq3y87a27wy5c6m0gqxq5jb4q0q7d2"))))
  20311. (build-system emacs-build-system)
  20312. (home-page "https://www.emacswiki.org/emacs/SoLong")
  20313. (synopsis "Improve performance in files with long lines")
  20314. (description "This package improves the performance of Emacs when
  20315. viewing files with long lines. It is included as standard with Emacs 27 or
  20316. later.")
  20317. (license license:gpl3+)))
  20318. (define-public emacs-srfi
  20319. ;; SRFI data gets updated quite frequently; lastest tag is from
  20320. ;; 2020; commit from 2021-08-12.
  20321. (let ((commit "e31bf04a3be3aad1286b7fe919c2e4810aae751e")
  20322. (revision "0"))
  20323. (package
  20324. (name "emacs-srfi")
  20325. (version (git-version "0.3" revision commit))
  20326. (source (origin
  20327. (method git-fetch)
  20328. (uri (git-reference
  20329. (url "https://github.com/srfi-explorations/emacs-srfi")
  20330. (commit commit)))
  20331. (file-name (git-file-name name version))
  20332. (sha256
  20333. (base32
  20334. "01n3yrjrdl2gdhvgd56lpjqg9d82mmrnb0h6hxdx4h5hy8sbk2p4"))))
  20335. (build-system emacs-build-system)
  20336. (home-page "https://github.com/srfi-explorations/emacs-srfi")
  20337. (synopsis "Scheme Requests for Implementation browser in Emacs")
  20338. (description
  20339. "This package shows a list of all SRFIs and provides commands to visit
  20340. them in your web browser.")
  20341. (license license:expat))))
  20342. (define-public emacs-github-review
  20343. (let ((commit "a13a3b4f1b6114a32af843971a145ab880f51232")
  20344. (revision "2"))
  20345. (package
  20346. (name "emacs-github-review")
  20347. (version (git-version "0.1" revision commit))
  20348. (source
  20349. (origin
  20350. (method git-fetch)
  20351. (uri (git-reference
  20352. (url "https://github.com/charignon/github-review")
  20353. (commit commit)))
  20354. (file-name (git-file-name name version))
  20355. (sha256
  20356. (base32
  20357. "0injfpxzgfhmqalba845j5l5cdcxxqz43knhxwinf36g52nfabl0"))))
  20358. (build-system emacs-build-system)
  20359. (inputs
  20360. `(("emacs-dash" ,emacs-dash)
  20361. ("emacs-s" ,emacs-s)
  20362. ("emacs-ghub" ,emacs-ghub)))
  20363. (native-inputs
  20364. `(("emacs-buttercup" ,emacs-buttercup)
  20365. ("emacs-undercover" ,emacs-undercover)))
  20366. (arguments
  20367. `(#:tests? #t
  20368. #:test-command '("buttercup" "-L" "test/github-review-test.el")))
  20369. (home-page "https://github.com/charignon/github-review")
  20370. (synopsis "Review GitHub pull requests within Emacs")
  20371. (description "This package provides commands to pull in, comment on, and
  20372. accept and reject GitHub pull requests.")
  20373. (license license:gpl3+))))
  20374. (define-public emacs-deadgrep
  20375. (let ((commit "7e50e71c6ff4e17dded43e0836dae4e5ec020fcf")
  20376. (revision "1"))
  20377. (package
  20378. (name "emacs-deadgrep")
  20379. (version (git-version "0.10" revision commit))
  20380. (source
  20381. (origin
  20382. (method git-fetch)
  20383. (uri (git-reference
  20384. (url "https://github.com/Wilfred/deadgrep")
  20385. (commit commit)))
  20386. (file-name (git-file-name name version))
  20387. (sha256
  20388. (base32
  20389. "1vjhrq02l8gvdn2haygzq7277hnhjchs9xrfpcnh76gqip200gx4"))))
  20390. (build-system emacs-build-system)
  20391. (inputs `(("ripgrep" ,ripgrep)))
  20392. (propagated-inputs
  20393. `(("emacs-dash" ,emacs-dash)
  20394. ("emacs-s" ,emacs-s)
  20395. ("emacs-spinner" ,emacs-spinner)))
  20396. (arguments
  20397. `(#:phases
  20398. (modify-phases %standard-phases
  20399. (add-after 'unpack 'configure
  20400. (lambda* (#:key inputs #:allow-other-keys)
  20401. (let ((ripgrep (assoc-ref inputs "ripgrep")))
  20402. ;; .el is read-only in git.
  20403. (make-file-writable "deadgrep.el")
  20404. ;; Specify the absolute file names of rg so that everything
  20405. ;; works out-of-the-box.
  20406. (emacs-substitute-variables "deadgrep.el"
  20407. ("deadgrep-executable"
  20408. (string-append ripgrep "/bin/rg")))))))))
  20409. (home-page "https://github.com/Wilfred/deadgrep")
  20410. (synopsis "Frontend for @code{ripgrep}")
  20411. (description "This package provides an Emacs interface for performing
  20412. searches with @code{ripgrep}.")
  20413. (license license:gpl3+))))
  20414. (define-public emacs-focus
  20415. (let ((commit "5f3f20e7f22fb9fd7c48abce8bd38061d97e4bc0")
  20416. (version "1.0.0")
  20417. (revision "1"))
  20418. (package
  20419. (name "emacs-focus")
  20420. (version (git-version version revision commit))
  20421. (source
  20422. (origin
  20423. (method git-fetch)
  20424. (uri (git-reference
  20425. (url "https://github.com/larstvei/Focus")
  20426. (commit commit)))
  20427. (file-name (git-file-name name version))
  20428. (sha256
  20429. (base32
  20430. "0a55i4bychfnnzjg67a9h4j130hchcg44446dwwx1l1h48i692dw"))))
  20431. (build-system emacs-build-system)
  20432. (home-page "https://github.com/larstvei/Focus")
  20433. (synopsis "Minor mode for focusing in on relevant text")
  20434. (description "This package provides a minor mode that dims the color of
  20435. text in neighboring sections.")
  20436. (license license:gpl3+))))
  20437. (define-public emacs-pandoc-mode
  20438. (package
  20439. (name "emacs-pandoc-mode")
  20440. (version "2.31")
  20441. (source
  20442. (origin
  20443. (method git-fetch)
  20444. (uri (git-reference
  20445. (url "https://github.com/joostkremers/pandoc-mode")
  20446. (commit version)))
  20447. (file-name (git-file-name name version))
  20448. (sha256
  20449. (base32
  20450. "1c3gay9fkikg7h46djw1nf86fzckmv7w1zbz5fbar20klcr12pbm"))))
  20451. (build-system emacs-build-system)
  20452. (propagated-inputs
  20453. `(("emacs-dash" ,emacs-dash)
  20454. ("emacs-hydra" ,emacs-hydra)))
  20455. (home-page "https://github.com/joostkremers/pandoc-mode")
  20456. (synopsis "Minor mode for interacting with Pandoc")
  20457. (description "This package provides a Hydra menu for interacting with the
  20458. Pandoc, the document-conversion tool.")
  20459. (license license:bsd-3)))
  20460. (define-public emacs-hlint-refactor-mode
  20461. (let ((commit "c4307f86aad6d02e32e9b30cb6edc115584c791c")
  20462. (revision "1"))
  20463. (package
  20464. (name "emacs-hlint-refactor-mode")
  20465. (version (git-version "0.0.1" revision commit))
  20466. (source
  20467. (origin
  20468. (method git-fetch)
  20469. (uri (git-reference
  20470. (url "https://github.com/mpickering/hlint-refactor-mode")
  20471. (commit commit)))
  20472. (file-name (git-file-name name version))
  20473. (sha256
  20474. (base32
  20475. "1c71w9s34n0i7mm4njchxn6s3ri1y6mh3akgbg4nq41d42h8iap3"))))
  20476. (build-system emacs-build-system)
  20477. (propagated-inputs
  20478. `(("apply-refact" ,apply-refact)
  20479. ("hlint" ,hlint)))
  20480. (home-page "https://github.com/mpickering/hlint-refactor-mode")
  20481. (synopsis "Emacs bindings for @code{hlint}'s @code{--refactor} option")
  20482. (description "This package applies refactoring suggestions from
  20483. @code{hlint}.")
  20484. (license license:expat))))
  20485. (define-public emacs-ccls
  20486. (let ((commit "675a5704c14a27931e835a431beea3631d92e8e6")
  20487. (revision "5"))
  20488. (package
  20489. (name "emacs-ccls")
  20490. (version (git-version "0.1" revision commit))
  20491. (source
  20492. (origin
  20493. (method git-fetch)
  20494. (uri (git-reference
  20495. (url "https://github.com/MaskRay/emacs-ccls")
  20496. (commit commit)))
  20497. (file-name (git-file-name name version))
  20498. (sha256
  20499. (base32
  20500. "0l4bhyr9d8ljz1f0cfg1s2cjcmh6fiwbk5mdlvc7rrwz5hxc21is"))))
  20501. (build-system emacs-build-system)
  20502. (propagated-inputs
  20503. `(("ccls" ,ccls)
  20504. ("emacs-dash" ,emacs-dash)
  20505. ("emacs-lsp-mode" ,emacs-lsp-mode)))
  20506. (home-page "https://github.com/MaskRay/emacs-ccls")
  20507. (synopsis "Emacs support for the @code{ccls} language server")
  20508. (description "This package extends @code{lsp-mode} to work with @code{C}
  20509. and @code{C++} files through the @code{ccls} language server.")
  20510. (license license:expat))))
  20511. (define-public emacs-org-brain
  20512. (package
  20513. (name "emacs-org-brain")
  20514. (version "0.5")
  20515. (source
  20516. (origin
  20517. (method git-fetch)
  20518. (uri (git-reference
  20519. (url "https://github.com/Kungsgeten/org-brain")
  20520. (commit "3faf9303af3f2356e3444e69c22dc6c5774047d1")))
  20521. (file-name (git-file-name name version))
  20522. (sha256
  20523. (base32
  20524. "1ad681zk6kckw2zbk0r4iaj4bw8cfqrbd1s3gdwgdjlzq81q9mmj"))))
  20525. (build-system emacs-build-system)
  20526. (home-page "https://github.com/Kungsgeten/org-brain")
  20527. (synopsis "Org-mode wiki and concept-mapping for Emacs")
  20528. (description "@code{emacs-org-brain} implements a variant of concept
  20529. mapping in Emacs, using @code{org-mode}. An org-brain is a network of
  20530. org-mode entries, where each entry is a file or a headline, and you can get a
  20531. visual overview of the relationships between the entries: parents, children,
  20532. siblings and friends. This visual overview can also be used to browse your
  20533. entries. You can think of entries as nodes in a mind map, or pages in a
  20534. wiki.")
  20535. (license license:expat)))
  20536. (define-public emacs-recent-addresses
  20537. (let ((commit "afbbfdc43b81e620acf827ca20d297e0c517b6eb")
  20538. (revision "1"))
  20539. (package
  20540. (name "emacs-recent-addresses")
  20541. (home-page "https://nschum.de/src/emacs/recent-addresses/")
  20542. (version (git-version "0.1" revision commit))
  20543. (source (origin
  20544. (method git-fetch)
  20545. (uri (git-reference
  20546. ;; Note: Use a branch that works with Helm. Submitted
  20547. ;; at <https://github.com/nschum/recent-addresses.el/pull/1>.
  20548. (url "https://github.com/civodul/recent-addresses.el")
  20549. (commit commit)))
  20550. (sha256
  20551. (base32
  20552. "0ajrq0galjmdyjdjyxazykjyax3gh6hvfk4s7l657pi11g0q5zax"))
  20553. (file-name (git-file-name name version))))
  20554. (build-system emacs-build-system)
  20555. (synopsis "Record recently-used email addressed and auto-complete them")
  20556. (description
  20557. "@code{recent-addresses} is an Emacs package that allows you to quickly
  20558. look up previously used email addresses. It can be used alongside the Gnus
  20559. email client.")
  20560. (license license:gpl2+))))
  20561. (define-public emacs-fold-dwim
  20562. (let ((commit "c46f4bb2ce91b4e307136320e72c28dd50b6cd8b")
  20563. (revision "0"))
  20564. (package
  20565. (name "emacs-fold-dwim")
  20566. (version (git-version "1.2" revision commit))
  20567. (home-page "https://github.com/emacsattic/fold-dwim")
  20568. (source (origin
  20569. (method git-fetch)
  20570. (uri (git-reference (url home-page) (commit commit)))
  20571. (sha256
  20572. (base32
  20573. "1yz1wis31asw6xa5maliyd1ck2q02xnnh7dc6swgj9cb4wi7k6i1"))
  20574. (file-name (git-file-name name version))))
  20575. (build-system emacs-build-system)
  20576. (synopsis "Unified user interface for Emacs folding modes")
  20577. (description
  20578. "DWIM stands for \"do what I mean\", as in the idea that one keystroke
  20579. can do different things depending on the context. In this package, it means
  20580. that, if the cursor is in a currently hidden folded construction, we want to
  20581. show it; if it's not, we want to hide whatever fold the cursor is in.")
  20582. (license license:gpl2+))))
  20583. (define-public emacs-markup-faces
  20584. (package
  20585. (name "emacs-markup-faces")
  20586. (version "1.0.0")
  20587. (source
  20588. (origin
  20589. (method url-fetch)
  20590. (uri (string-append "https://stable.melpa.org/packages/markup-faces-"
  20591. version ".el"))
  20592. (sha256
  20593. (base32
  20594. "124dxbaa25fwxnpwsygpz7pw6da6dnnw7y2lic3jf8rgz7lw4v32"))))
  20595. (build-system emacs-build-system)
  20596. (home-page "https://github.com/sensorflo/markup-faces")
  20597. (synopsis "Collection of Emacs faces for markup language modes")
  20598. (description "emacs-markup-faces is like font-lock-faces, but tailored for
  20599. markup languages instead programming languages. The sub group markup-faces-text
  20600. is also intended for 'text viewing modes' such as info or (wo)man. This gives a
  20601. common look and feel, or let's say theme, across different markup language modes
  20602. and 'text viewing modes' respectively.")
  20603. (license license:gpl3+)))
  20604. (define-public emacs-adoc-mode
  20605. (package
  20606. (name "emacs-adoc-mode")
  20607. (version "0.6.6")
  20608. (source
  20609. (origin
  20610. (method git-fetch)
  20611. (uri (git-reference
  20612. (url "https://github.com/sensorflo/adoc-mode")
  20613. (commit (string-append "V" version))))
  20614. (file-name (git-file-name name version))
  20615. (sha256
  20616. (base32
  20617. "0kp2aafjhqxz3mjr9hkkss85r4n51chws5a2qj1xzb63dh36liwm"))))
  20618. (build-system emacs-build-system)
  20619. (arguments
  20620. `(#:phases
  20621. (modify-phases %standard-phases
  20622. ;; See: https://github.com/sensorflo/adoc-mode/issues/39.
  20623. (add-after 'unpack 'disable-failing-tests
  20624. (lambda _
  20625. (let-syntax
  20626. ((disable-tests
  20627. (syntax-rules ()
  20628. ((_ file ())
  20629. (syntax-error "test names list must not be empty"))
  20630. ((_ file (test-name ...))
  20631. (substitute* file
  20632. (((string-append "^\\(ert-deftest " test-name ".*") all)
  20633. (string-append all "(skip-unless nil)\n")) ...)))))
  20634. (disable-tests "adoc-mode-test.el"
  20635. ("adoctest-test-tempo-delimited-blocks"
  20636. "adoctest-test-tempo-macros"
  20637. "adoctest-test-tempo-paragraphs"
  20638. "adoctest-test-tempo-passthroug-macros"
  20639. "adoctest-test-tempo-quotes")))
  20640. #t)))
  20641. #:tests? #t
  20642. #:test-command '("emacs" "-Q" "-batch"
  20643. "-l" "adoc-mode-test.el"
  20644. "-f" "ert-run-tests-batch-and-exit")))
  20645. (propagated-inputs
  20646. `(("emacs-markup-faces" ,emacs-markup-faces)))
  20647. (home-page "https://github.com/sensorflo/adoc-mode/wiki")
  20648. (synopsis "AsciiDoc mode for Emacs")
  20649. (description "This package provides an Emacs major mode for editing AsciiDoc
  20650. files. It focuses on highlighting the document to improve readability.")
  20651. (license license:gpl2+)))
  20652. (define-public emacs-racer
  20653. (package
  20654. (name "emacs-racer")
  20655. (version "1.2")
  20656. (source
  20657. (origin
  20658. (method git-fetch)
  20659. (uri
  20660. (git-reference
  20661. (url "https://github.com/racer-rust/emacs-racer")
  20662. (commit version)))
  20663. (file-name (git-file-name name version))
  20664. (sha256
  20665. (base32 "0xj5iki10cg8j8vvqjlw6lfx97k3agwirhchcjnzbnkry48x9qi6"))))
  20666. (arguments
  20667. `(#:tests? #t
  20668. #:test-command '("make" "test")
  20669. #:phases
  20670. (modify-phases %standard-phases
  20671. (add-before 'check 'fix-makefile
  20672. (lambda _
  20673. (substitute* "Makefile"
  20674. (("\\$\\{CASK\\} exec ") ""))
  20675. #t))
  20676. ;; Two tests are failing with Emacs 27, as reported here:
  20677. ;; <https://github.com/racer-rust/emacs-racer/issues/136>. Disable
  20678. ;; them.
  20679. (add-before 'check 'fix-failing-tests
  20680. (lambda _
  20681. (substitute* "test/racer-test.el"
  20682. (("`Write`") "Write")
  20683. (("^\\\\\\[`str\\]:.*") "")
  20684. ((" \\[`str`\\]") " str"))
  20685. #t)))))
  20686. (native-inputs
  20687. `(("emacs-ert-runner" ,emacs-ert-runner)
  20688. ("emacs-undercover" ,emacs-undercover)))
  20689. (propagated-inputs
  20690. `(("emacs-dash" ,emacs-dash)
  20691. ("emacs-f" ,emacs-f)
  20692. ("emacs-pos-tip" ,emacs-pos-tip)
  20693. ("emacs-rust-mode" ,emacs-rust-mode)
  20694. ("emacs-s" ,emacs-s)))
  20695. (build-system emacs-build-system)
  20696. (home-page "https://github.com/racer-rust/emacs-racer")
  20697. (synopsis "Racer support for Emacs")
  20698. (description
  20699. "This is the official Emacs package for Racer. It supports code
  20700. completion of variables, functions and modules. It can also jump to
  20701. definition of functions and types, and show a help buffer based on the
  20702. docstring of the thing at point.")
  20703. (license license:expat)))
  20704. (define-public emacs-rust-mode
  20705. (package
  20706. (name "emacs-rust-mode")
  20707. (version "0.5.0")
  20708. (source (origin
  20709. (method git-fetch)
  20710. (uri (git-reference
  20711. (url "https://github.com/rust-lang/rust-mode")
  20712. (commit version)))
  20713. (file-name (git-file-name name version))
  20714. (sha256
  20715. (base32
  20716. "1f3nnl0d7p9b5cv1bpm0hj898qmr2psxfvmqr61bh684z7fgc045"))))
  20717. (build-system emacs-build-system)
  20718. (arguments
  20719. `(#:phases
  20720. (modify-phases %standard-phases
  20721. (replace 'check
  20722. (lambda _
  20723. (invoke "sh" "run_rust_emacs_tests.sh"))))))
  20724. (home-page "https://github.com/rust-lang/rust-mode")
  20725. (synopsis "Major Emacs mode for editing Rust source code")
  20726. (description "This package provides a major Emacs mode for editing Rust
  20727. source code.")
  20728. (license (list license:expat
  20729. license:asl2.0))))
  20730. (define-public emacs-rustic
  20731. ;; XXX: Upstream does not tag releases. Version is extracted from main
  20732. ;; file.
  20733. (let ((commit "bbf129cd128105de51b6c242b2551094b8d8987d")
  20734. (revision "0"))
  20735. (package
  20736. (name "emacs-rustic")
  20737. (version (git-version "1.3" revision commit))
  20738. (source
  20739. (origin
  20740. (method git-fetch)
  20741. (uri (git-reference
  20742. (url "https://github.com/brotzeit/rustic")
  20743. (commit commit)))
  20744. (file-name (git-file-name name version))
  20745. (sha256
  20746. (base32 "09dnlvi8kf683n6q3yp4gy9d4idiyg4x6rcij8d90cvygh8i30wd"))))
  20747. (build-system emacs-build-system)
  20748. (propagated-inputs
  20749. `(("emacs-dash" ,emacs-dash)
  20750. ("emacs-f" ,emacs-f)
  20751. ("emacs-flycheck" ,emacs-flycheck)
  20752. ("emacs-lsp-mode" ,emacs-lsp-mode)
  20753. ("emacs-markdown-mode" ,emacs-markdown-mode)
  20754. ("emacs-project" ,emacs-project)
  20755. ("emacs-s" ,emacs-s)
  20756. ("emacs-spinner" ,emacs-spinner)
  20757. ("emacs-xterm-color" ,emacs-xterm-color)))
  20758. (arguments
  20759. ;; Tests require rust, cargo, rustfmt, and various crates to be
  20760. ;; vendored.
  20761. `(#:tests? #f
  20762. #:phases
  20763. (modify-phases %standard-phases
  20764. (add-before 'check 'set-without-cask
  20765. (lambda _
  20766. (setenv "WITHOUT_CASK" "1"))))))
  20767. (home-page "https://github.com/brotzeit/rustic")
  20768. (synopsis "Rust development environment for Emacs")
  20769. (description "Rustic is a fork of Rust mode.
  20770. In addition to its predecessor, it offers the following features:
  20771. @itemize
  20772. @item Flycheck integration,
  20773. @item Cargo popup,
  20774. @item multiline error parsing,
  20775. @item translation of ANSI control sequences through XTerm color,
  20776. @item asynchronous Org Babel,
  20777. @item custom compilation process,
  20778. @item @command{rustfmt} errors in a Rust compilation mode,
  20779. @item automatic LSP configuration with Eglot or LSP mode,
  20780. @item optional Rust inline documentation,
  20781. @item etc.
  20782. @end itemize")
  20783. (license (list license:expat
  20784. license:asl2.0)))))
  20785. (define-public emacs-ztree
  20786. ;; Upstream provides no tag, but the commit below matches latest release.
  20787. (let ((commit "c9ad9136d52ca5a81475693864e255d29448f43f"))
  20788. (package
  20789. (name "emacs-ztree")
  20790. (version "1.0.6")
  20791. (source
  20792. (origin
  20793. (method git-fetch)
  20794. (uri (git-reference
  20795. (url "https://github.com/fourier/ztree")
  20796. (commit commit)))
  20797. (file-name (git-file-name name version))
  20798. (sha256
  20799. (base32
  20800. "03i5pa3nfdz6g0yrdk7r2qcn679w0s85cc5kcmgrwlnhdzakgr80"))))
  20801. (build-system emacs-build-system)
  20802. (home-page "https://github.com/fourier/ztree")
  20803. (synopsis "Directory tree comparison mode for Emacs")
  20804. (description "Ztree is a project dedicated to implementation of several
  20805. text-tree applications inside GNU Emacs. It consists of 2 subprojects:
  20806. @command{ztree-diff} and @command{ztree-dir} (the basis of
  20807. @command{ztree-diff}).")
  20808. (license license:gpl3))))
  20809. (define-public emacs-helm-org-contacts
  20810. (let ((commit "e7f11615802df55bb8b679450b5a5ef82a9081f9"))
  20811. (package
  20812. (name "emacs-helm-org-contacts")
  20813. (version (git-version "20200310" "1" commit))
  20814. (source
  20815. (origin
  20816. (method git-fetch)
  20817. (uri (git-reference
  20818. (url "https://github.com/tmalsburg/helm-org-contacts")
  20819. (commit commit)))
  20820. (file-name (git-file-name name version))
  20821. (sha256
  20822. (base32
  20823. "06a1gbrq3qcfsn0kyv4i24x1xxfrrwqa3kgfj4xa4va88q2vqyb5"))))
  20824. (build-system emacs-build-system)
  20825. (propagated-inputs
  20826. `(("emacs-dash" ,emacs-dash)
  20827. ("emacs-helm" ,emacs-helm)
  20828. ("emacs-s" ,emacs-s)))
  20829. (home-page "https://github.com/tmalsburg/helm-org-contacts")
  20830. (synopsis "Helm source for org-contacts")
  20831. (description "This Helm source can be used to search contacts stored in
  20832. org-contacts format. There are actions for inserting postal addresses, email
  20833. addresses, and phone numbers in the buffer where @command{helm-org-contacts}
  20834. was called.")
  20835. (license license:gpl3))))
  20836. (define-public emacs-dired-du
  20837. (package
  20838. (name "emacs-dired-du")
  20839. (version "0.5.2")
  20840. (source
  20841. (origin
  20842. (method url-fetch)
  20843. (uri (string-append
  20844. "https://elpa.gnu.org/packages/dired-du-" version ".tar"))
  20845. (sha256
  20846. (base32 "0vhph7vcicsiq28b10h3b4dvnhckcy4gccpdgsad5j7pwa5k26m1"))))
  20847. (build-system emacs-build-system)
  20848. (home-page "https://elpa.gnu.org/packages/dired-du.html")
  20849. (synopsis "Dired with recursive directory sizes")
  20850. (description
  20851. "Display the recursive size of directories in Dired.
  20852. This file defines a minor mode @command{dired-du-mode} to show the recursive
  20853. size of directories in Dired buffers. If @command{du} program is available,
  20854. then the directory sizes are obtained with it. Otherwise, the directory sizes
  20855. are obtained with Lisp. The former is faster and provide a more precise
  20856. value. For directories where the user doesn't have read permission, the
  20857. recursive size is not obtained. Once this mode is enabled, every new Dired
  20858. buffer displays recursive dir sizes.")
  20859. (license license:gpl3+)))
  20860. (define-public emacs-dired-rsync
  20861. (package
  20862. (name "emacs-dired-rsync")
  20863. (version "0.6")
  20864. (source (origin
  20865. (method git-fetch)
  20866. (uri (git-reference
  20867. (url "https://github.com/stsquad/dired-rsync")
  20868. (commit version)))
  20869. (file-name (git-file-name name version))
  20870. (sha256
  20871. (base32
  20872. "19za6i96xrmczdh928n5ixd7j7pvy175sz1msaiwvdjwysjr8k51"))))
  20873. (build-system emacs-build-system)
  20874. (propagated-inputs
  20875. `(("emacs-s" ,emacs-s)
  20876. ("emacs-dash" ,emacs-dash)))
  20877. (home-page "https://github.com/stsquad/dired-rsync/")
  20878. (synopsis "Support for rsync from Emacs dired buffers")
  20879. (description "This package adds a single command @code{dired-rsync} which
  20880. allows the user to copy marked files in a dired buffer via @code{rsync}. This
  20881. is useful, especially for large files, because the copy happens in the
  20882. background and doesn’t lock up Emacs. It is also more efficient than using
  20883. tramps own encoding methods for moving data between systems.")
  20884. (license license:gpl3+)))
  20885. (define-public emacs-pcre2el
  20886. ;; Last release is very old so we get the latest commit.
  20887. (let ((commit "0b5b2a2c173aab3fd14aac6cf5e90ad3bf58fa7d"))
  20888. (package
  20889. (name "emacs-pcre2el")
  20890. (version (git-version "1.8" "1" commit))
  20891. (source
  20892. (origin
  20893. (method git-fetch)
  20894. (uri (git-reference
  20895. (url "https://github.com/joddie/pcre2el")
  20896. (commit commit)))
  20897. (file-name (git-file-name name version))
  20898. (sha256
  20899. (base32
  20900. "14br6ad138qx1z822wqssswqiihxiynz1k69p6mcdisr2q8yyi1z"))))
  20901. (build-system emacs-build-system)
  20902. (home-page "https://github.com/joddie/pcre2el")
  20903. (synopsis "Convert between PCRE, Emacs and rx regexp syntax")
  20904. (description "@code{pcre2el} or @code{rxt} (RegeXp Translator or RegeXp
  20905. Tools) is a utility for working with regular expressions in Emacs, based on a
  20906. recursive-descent parser for regexp syntax. In addition to converting (a
  20907. subset of) PCRE syntax into its Emacs equivalent, it can do the following:
  20908. @itemize
  20909. @item convert Emacs syntax to PCRE
  20910. @item convert either syntax to @code{rx}, an S-expression based regexp syntax
  20911. @item untangle complex regexps by showing the parse tree in @code{rx} form and
  20912. highlighting the corresponding chunks of code
  20913. @item show the complete list of strings (productions) matching a regexp,
  20914. provided the list is finite
  20915. @item provide live font-locking of regexp syntax (so far only for Elisp
  20916. buffers – other modes on the TODO list).
  20917. @end itemize\n")
  20918. (license license:gpl3))))
  20919. (define-public emacs-magit-todos
  20920. (package
  20921. (name "emacs-magit-todos")
  20922. (version "1.5.3")
  20923. (source
  20924. (origin
  20925. (method git-fetch)
  20926. (uri (git-reference
  20927. (url "https://github.com/alphapapa/magit-todos")
  20928. (commit version)))
  20929. (file-name (git-file-name name version))
  20930. (sha256
  20931. (base32
  20932. "12ay02vk6bk77k33mhlqi41m03a77y80b15rj1dbh1n6jfrjwkfy"))))
  20933. (build-system emacs-build-system)
  20934. (propagated-inputs
  20935. `(("emacs-async" ,emacs-async)
  20936. ("emacs-dash" ,emacs-dash)
  20937. ("emacs-f" ,emacs-f)
  20938. ("emacs-hl-todo" ,emacs-hl-todo)
  20939. ("magit" ,emacs-magit)
  20940. ("emacs-pcre2el" ,emacs-pcre2el)
  20941. ("emacs-s" ,emacs-s)))
  20942. (home-page "https://github.com/alphapapa/magit-todos")
  20943. (synopsis "Show source files' TODOs (and FIXMEs, etc) in Magit status buffer")
  20944. (description "This package displays keyword entries from source code
  20945. comments and Org files in the Magit status buffer. Activating an item jumps
  20946. to it in its file. By default, it uses keywords from @code{hl-todo}, minus a
  20947. few (like NOTE).")
  20948. (license license:gpl3)))
  20949. (define-public emacs-git-annex
  20950. ;; Unreleased version has a fontification fix.
  20951. (let ((commit "1324d3f23c534fe79391a2c256bb8803054e383b")
  20952. (revision "2"))
  20953. (package
  20954. (name "emacs-git-annex")
  20955. (version (git-version "1.1" revision commit))
  20956. (source
  20957. (origin
  20958. (method git-fetch)
  20959. (uri (git-reference
  20960. (url "https://github.com/jwiegley/git-annex-el")
  20961. (commit commit)))
  20962. (file-name (git-file-name name version))
  20963. (sha256
  20964. (base32
  20965. "1lfky2nsrlndlbvk6vwbswnvbvkz1sxgg0n3r5q6xykdkjym0lrh"))))
  20966. (build-system emacs-build-system)
  20967. (home-page "https://github.com/jwiegley/git-annex-el")
  20968. (synopsis "Emacs integration for git-annex")
  20969. (description "Enhances Dired and buffers visiting annex files with
  20970. git-annex functionality. In Dired, the names of annex files are shortened by
  20971. hiding the symbolic links and fontified based on whether content is present.
  20972. Commands for performing some common operations (e.g., unlocking and adding
  20973. files) are provided.")
  20974. (license license:gpl2+))))
  20975. (define-public emacs-hackernews
  20976. (package
  20977. (name "emacs-hackernews")
  20978. (version "0.6.1")
  20979. (source
  20980. (origin
  20981. (method git-fetch)
  20982. (uri (git-reference
  20983. (url "https://github.com/clarete/hackernews.el")
  20984. (commit (string-append "v" version))))
  20985. (file-name (git-file-name name version))
  20986. (sha256
  20987. (base32
  20988. "17lkjcka6ydd6khhz5jbjlybfpx05153z0d8s1rxaxcwl7z2y6cf"))))
  20989. (build-system emacs-build-system)
  20990. (home-page "https://github.com/clarete/hackernews.el")
  20991. (synopsis "Hacker News client for Emacs")
  20992. (description "The @command{hackernews} package is able to fetch stories
  20993. from six different Hacker News feeds, namely top, new, best, ask, show and job
  20994. stories. The default feed is top stories, which corresponds to the Hacker
  20995. News homepage.")
  20996. (license license:gpl3)))
  20997. (define-public emacs-youtube-dl
  20998. (let ((commit "af877b5bc4f01c04fccfa7d47a2c328926f20ef4")
  20999. (revision "2"))
  21000. (package
  21001. (name "emacs-youtube-dl")
  21002. (version (git-version "1.0" "2" commit))
  21003. (source
  21004. (origin
  21005. (method git-fetch)
  21006. (uri (git-reference
  21007. (url "https://github.com/skeeto/youtube-dl-emacs/")
  21008. (commit commit)))
  21009. (file-name (git-file-name name version))
  21010. (sha256
  21011. (base32
  21012. "0zkl9jkjbx0lmp9ylv4rqg1zwqibk053s4rp7s1h0i18nzk7vn8j"))))
  21013. (build-system emacs-build-system)
  21014. (inputs
  21015. `(("youtube-dl" ,youtube-dl)))
  21016. (arguments
  21017. `(#:phases
  21018. (modify-phases %standard-phases
  21019. (add-after 'unpack 'configure
  21020. (lambda* (#:key inputs #:allow-other-keys)
  21021. (let ((youtube-dl (assoc-ref inputs "youtube-dl")))
  21022. ;; .el is read-only in git.
  21023. (chmod "youtube-dl.el" #o644)
  21024. ;; Specify the absolute file names of the various
  21025. ;; programs so that everything works out-of-the-box.
  21026. (emacs-substitute-variables
  21027. "youtube-dl.el"
  21028. ("youtube-dl-program"
  21029. (string-append youtube-dl "/bin/youtube-dl")))))))))
  21030. (home-page "https://github.com/skeeto/youtube-dl-emacs/")
  21031. (synopsis "Emacs youtube-dl download manager")
  21032. (description "This package manages a video download queue for
  21033. @command{youtube-dl}, which serves as the back end. It manages a single
  21034. @command{youtube-dl} subprocess, downloading one video at a time. New videos
  21035. can be queued at any time.")
  21036. (license license:unlicense))))
  21037. (define-public emacs-ytdl
  21038. (package
  21039. (name "emacs-ytdl")
  21040. (version "1.3.6")
  21041. (source
  21042. (origin
  21043. (method git-fetch)
  21044. (uri (git-reference
  21045. (url "https://gitlab.com/tuedachu/ytdl")
  21046. (commit version)))
  21047. (file-name (git-file-name name version))
  21048. (sha256
  21049. (base32 "010arhvibyw50lqhsr8bm0vj3pzry1h1vgcvxnmyryirk3dv40jl"))))
  21050. (build-system emacs-build-system)
  21051. (inputs
  21052. `(("youtube-dl" ,youtube-dl)))
  21053. (propagated-inputs
  21054. `(("async" ,emacs-async)
  21055. ("transient" ,emacs-transient)))
  21056. (arguments
  21057. `(#:phases
  21058. (modify-phases %standard-phases
  21059. (add-after 'unpack 'configure
  21060. (lambda* (#:key inputs #:allow-other-keys)
  21061. (let ((youtube-dl (assoc-ref inputs "youtube-dl")))
  21062. ;; .el is read-only in git.
  21063. (make-file-writable "ytdl.el")
  21064. ;; Specify the absolute file names of the various programs so
  21065. ;; that everything works out-of-the-box.
  21066. (emacs-substitute-variables "ytdl.el"
  21067. ("ytdl-command" (string-append youtube-dl "/bin/youtube-dl")))
  21068. #t))))))
  21069. (home-page "https://gitlab.com/tuedachu/ytdl")
  21070. (synopsis "Emacs interface for youtube-dl")
  21071. (description
  21072. "This package manages a video download queue for @command{youtube-dl},
  21073. which serves as the back end. New videos can be queued at any time. All
  21074. youtube-dl backends are supported. It is possible to create download profiles
  21075. depending on the downloaded URL.")
  21076. (license license:gpl3+)))
  21077. (define-public emacs-ytel
  21078. ;; No tagged releases. Using version from main file.
  21079. (let ((commit "d40bc7ead8d4d7e4d16b03b66a93d63bef51cc5f")
  21080. (revision "0"))
  21081. (package
  21082. (name "emacs-ytel")
  21083. (version (git-version "0.1.0" revision commit))
  21084. (source
  21085. (origin
  21086. (method git-fetch)
  21087. (uri (git-reference
  21088. (url "https://github.com/grastello/ytel")
  21089. (commit commit)))
  21090. (file-name (git-file-name name version))
  21091. (sha256
  21092. (base32 "0pxzfsxzrpv59dssrgx2mmwkm6rzk49ffjkgsa3wks7rdyfil3kf"))))
  21093. (build-system emacs-build-system)
  21094. (arguments
  21095. `(#:phases
  21096. (modify-phases %standard-phases
  21097. (add-after 'unpack 'patch-exec-paths
  21098. (lambda* (#:key inputs #:allow-other-keys)
  21099. (let ((curl (assoc-ref inputs "curl")))
  21100. (substitute* "ytel.el"
  21101. (("\"curl\"") (string-append "\"" curl "/bin/curl\"")))))))))
  21102. (inputs
  21103. `(("curl" ,curl)))
  21104. (home-page "https://github.com/grastello/ytel")
  21105. (synopsis "Youtube front-end for Emacs")
  21106. (description
  21107. "This package provides a major mode to search YouTube videos via an
  21108. Elfeed-like buffer. Information about videos displayed in this buffer can be
  21109. extracted and manipulated by user-defined functions to do various things such
  21110. as playing them in some video player, or downloading them.")
  21111. (license license:gpl3+))))
  21112. (define-public emacs-ytel-show
  21113. ;; No tagged releases. Version extracted from main file.
  21114. (let ((commit "8b999484eb447ecdb741b24cbef2b5a7260a53e6")
  21115. (revision "0"))
  21116. (package
  21117. (name "emacs-ytel-show")
  21118. (version (git-version "0.1.0" revision commit))
  21119. (source
  21120. (origin
  21121. (method git-fetch)
  21122. (uri (git-reference
  21123. (url "https://github.com/xFA25E/ytel-show")
  21124. (commit commit)))
  21125. (file-name (git-file-name name version))
  21126. (sha256
  21127. (base32 "0nhgzfzq1bgpbdbljx5z2hzr8ia7ybsyvvr66yj4klz0zj97rghj"))))
  21128. (build-system emacs-build-system)
  21129. (propagated-inputs
  21130. `(("emacs-ytel" ,emacs-ytel)))
  21131. (home-page "https://github.com/xFA25E/ytel-show")
  21132. (synopsis "Browse YouTube in Emacs")
  21133. (description
  21134. "This package provides an Emacs interface for browsing YouTube videos
  21135. and comments.")
  21136. (license license:gpl3+))))
  21137. (define-public emacs-org-web-tools
  21138. (package
  21139. (name "emacs-org-web-tools")
  21140. (version "1.1.1")
  21141. (source
  21142. (origin
  21143. (method git-fetch)
  21144. (uri (git-reference
  21145. (url "https://github.com/alphapapa/org-web-tools")
  21146. (commit version)))
  21147. (file-name (git-file-name name version))
  21148. (sha256
  21149. (base32
  21150. "0v4qad54r0z7dr7kg5lpfdsazi44qvrbybx9aciyl4w9grfajphb"))))
  21151. (build-system emacs-build-system)
  21152. (propagated-inputs
  21153. `(("emacs-dash" ,emacs-dash)
  21154. ("emacs-esxml" ,emacs-esxml)
  21155. ("emacs-request" ,emacs-request)
  21156. ("emacs-s" ,emacs-s)))
  21157. (inputs
  21158. `(("pandoc" ,pandoc)))
  21159. (arguments
  21160. `(#:phases
  21161. (modify-phases %standard-phases
  21162. (add-after 'unpack 'patch-exec-paths
  21163. (lambda* (#:key inputs #:allow-other-keys)
  21164. (let ((pandoc (assoc-ref inputs "pandoc")))
  21165. (substitute* "org-web-tools.el"
  21166. (("\"pandoc\"") (string-append "\"" pandoc "/bin/pandoc\"")))
  21167. #t))))))
  21168. (home-page "https://github.com/alphapapa/org-web-tools")
  21169. (synopsis "Display/Process web page as Org-mode content")
  21170. (description "This package contains library functions and commands useful
  21171. for retrieving web page content and processing it into Org-mode content.
  21172. For example, you can copy a URL to the clipboard or kill-ring, then run a
  21173. command that downloads the page, isolates the “readable” content with
  21174. @command{eww-readable}, converts it to Org-mode content with Pandoc, and
  21175. displays it in an Org-mode buffer. Another command does all of that but
  21176. inserts it as an Org entry instead of displaying it in a new buffer.")
  21177. (license license:gpl3+)))
  21178. (define-public emacs-blimp
  21179. (let ((commit "e420763d6d18b5d1be552cdbc47f91418343db03"))
  21180. (package
  21181. (name "emacs-blimp")
  21182. (version (git-version "0.0.0" "1" commit))
  21183. (source
  21184. (origin
  21185. (method git-fetch)
  21186. (uri (git-reference
  21187. (url "https://github.com/walseb/blimp")
  21188. (commit commit)))
  21189. (file-name (git-file-name name version))
  21190. (sha256
  21191. (base32
  21192. "09wmhpym516b81dfq8smdmysh1fn610dzlyvyl2rkx8600f0fizd"))))
  21193. (build-system emacs-build-system)
  21194. (propagated-inputs
  21195. `(("emacs-eimp" ,emacs-eimp)))
  21196. (home-page "https://github.com/walseb/blimp")
  21197. (synopsis "Emacs wrapper around all Imagemagick commands")
  21198. (description "Blimp (Bustling Image Manipulation Package) is a complete
  21199. wrapper around all Imagemagick commands with descriptions, autocompletion (for
  21200. some commands) and hints displayed in prompt using @command{eimp.el} to
  21201. execute its commands and resize images.")
  21202. (license license:gpl3+))))
  21203. (define-public emacs-synosaurus
  21204. (package
  21205. (name "emacs-synosaurus")
  21206. (version "0.2.0")
  21207. (source
  21208. (origin
  21209. (method git-fetch)
  21210. (uri (git-reference
  21211. (url "https://github.com/hpdeifel/synosaurus")
  21212. (commit (string-append "v" version))))
  21213. (file-name (git-file-name name version))
  21214. (sha256
  21215. (base32
  21216. "14dd6p89pmpf1w3nx4f9mzm4sn2b64nicws436ck7pmp223pwciv"))))
  21217. (build-system emacs-build-system)
  21218. (propagated-inputs
  21219. `(("wordnet" ,wordnet)))
  21220. (arguments
  21221. `(#:phases
  21222. (modify-phases %standard-phases
  21223. (add-after 'unpack 'configure
  21224. (lambda* (#:key inputs outputs #:allow-other-keys)
  21225. (let ((wn (assoc-ref inputs "wordnet")))
  21226. ;; .el is read-only in git.
  21227. (make-file-writable "synosaurus-wordnet.el")
  21228. ;; Specify the absolute file names of the various
  21229. ;; programs so that everything works out-of-the-box.
  21230. (emacs-substitute-variables "synosaurus-wordnet.el"
  21231. ("synosaurus-wordnet--command"
  21232. (string-append wn "/bin/wn")))))))))
  21233. (home-page "https://github.com/hpdeifel/synosaurus")
  21234. (synopsis "Extensible thesaurus mode for Emacs")
  21235. (description "Synosaurus is a thesaurus fontend for Emacs with pluggable
  21236. backends, including the @command{wordnet} offline backend.")
  21237. (license license:gpl3+)))
  21238. (define-public emacs-editorconfig
  21239. (package
  21240. (name "emacs-editorconfig")
  21241. (version "0.8.2")
  21242. (source
  21243. (origin
  21244. (method git-fetch)
  21245. (uri (git-reference
  21246. (url "https://github.com/editorconfig/editorconfig-emacs")
  21247. (commit (string-append "v" version))))
  21248. (file-name (git-file-name name version))
  21249. (sha256
  21250. (base32
  21251. "1lqxgc24gr67yhi64i9v4w2dcjhpx99jg1kr25gr2byqkkdldkz0"))))
  21252. (build-system emacs-build-system)
  21253. (home-page "https://github.com/editorconfig/editorconfig-emacs")
  21254. (synopsis "Define and maintain consistent coding styles between different
  21255. editors and IDEs")
  21256. (description "The EditorConfig project consists of a file format for
  21257. defining coding styles and a collection of text editor plugins that enable
  21258. editors to read the file format and adhere to defined styles. EditorConfig
  21259. files are easily readable and they work nicely with version control systems.")
  21260. (license license:gpl3+)))
  21261. (define-public emacs-all-the-icons
  21262. (package
  21263. (name "emacs-all-the-icons")
  21264. (version "5.0.0")
  21265. (source
  21266. (origin
  21267. (method git-fetch)
  21268. (uri (git-reference
  21269. (url "https://github.com/domtronn/all-the-icons.el")
  21270. (commit version)))
  21271. (file-name (git-file-name name version))
  21272. (sha256
  21273. (base32 "0lwgvgnqf7vihglm0c5bwsxbl4x7f641289cji5s7jwy2dbsqk7g"))))
  21274. (build-system emacs-build-system)
  21275. (arguments
  21276. `(#:include '("\\.el$" "^data/" "^fonts/")
  21277. ;; Compiling "test/" fails with "Symbol’s value as variable is void:
  21278. ;; all-the-icons--root-code". Ignoring tests.
  21279. #:exclude '("^test/")
  21280. #:tests? #f))
  21281. (propagated-inputs
  21282. `(("f" ,emacs-f)
  21283. ("memoize" ,emacs-memoize)))
  21284. (home-page "https://github.com/domtronn/all-the-icons.el")
  21285. (synopsis "Collect icon fonts and propertize them within Emacs")
  21286. (description
  21287. "All-the-icons is a utility package to collect various icon fonts and
  21288. propertize them within Emacs. Icon fonts allow you to propertize and format
  21289. icons the same way you would normal text. This enables things such as better
  21290. scaling of and anti aliasing of the icons.")
  21291. ;; Package is released under Expat license. Elisp files are licensed
  21292. ;; under GPL3+. Fonts come with various licenses: Expat for
  21293. ;; "all-the-icons.ttf" and "file-icons.ttf", Apache License 2.0 for
  21294. ;; "material-design-icons.ttf", and SIL OFL 1.1 for "fontawesome.ttf",
  21295. ;; "ocitcons.ttf" and "weathericons.ttf".
  21296. (license
  21297. (list license:expat license:gpl3+ license:silofl1.1 license:asl2.0))))
  21298. (define-public emacs-wttrin
  21299. (let ((commit "df5427ce2a5ad4dab652dbb1c4a1834d7ddc2abc")
  21300. (revision "1"))
  21301. (package
  21302. (name "emacs-wttrin")
  21303. (version (git-version "0.2.0" revision commit))
  21304. (source (origin
  21305. (method git-fetch)
  21306. (uri (git-reference
  21307. (url "https://github.com/bcbcarl/emacs-wttrin")
  21308. (commit commit)))
  21309. (file-name (git-file-name name version))
  21310. (sha256
  21311. (base32
  21312. "1ai655f10iayb4vw0ass2j3x83f4vsv90326mnywkzfl3sxd432z"))))
  21313. (build-system emacs-build-system)
  21314. (propagated-inputs
  21315. `(("emacs-xterm-color" ,emacs-xterm-color)))
  21316. (home-page "https://github.com/bcbcarl/emacs-wttrin")
  21317. (synopsis "Frontend for weather web service @url{wttr.in}")
  21318. (description "This package provides local weather information from
  21319. @url{wttr.in}.")
  21320. (license license:expat))))
  21321. (define-public emacs-browse-kill-ring
  21322. (let ((commit "1ef72cc6accd94cd7032c02b1b2c78ae7f1d1965")
  21323. (revision "0"))
  21324. (package
  21325. (name "emacs-browse-kill-ring")
  21326. (version (git-version "2.0.0" revision commit))
  21327. (source
  21328. (origin
  21329. (method git-fetch)
  21330. (uri (git-reference
  21331. (url "https://github.com/browse-kill-ring/browse-kill-ring")
  21332. (commit commit)))
  21333. (file-name (git-file-name name version))
  21334. (sha256
  21335. (base32
  21336. "0mil32g7hcw376jibs5hdyv00xbaql3m4a27rwqaafg0x59avxdj"))))
  21337. (build-system emacs-build-system)
  21338. (home-page "https://github.com/browse-kill-ring/browse-kill-ring")
  21339. (synopsis "Interactively insert items from kill-ring")
  21340. (description
  21341. "Did you ever feel that @code{C-y M-y M-y M-y ...} is not a great way
  21342. of trying to find that piece of text you know you killed a while back? Then
  21343. @code{browse-kill-ring.el} is for you.")
  21344. (license license:gpl2+))))
  21345. (define-public emacs-powerline
  21346. (package
  21347. (name "emacs-powerline")
  21348. (version "2.4")
  21349. (source
  21350. (origin
  21351. (method git-fetch)
  21352. (uri (git-reference
  21353. (url "https://github.com/milkypostman/powerline")
  21354. (commit version)))
  21355. (file-name (git-file-name name version))
  21356. (sha256
  21357. (base32
  21358. "1hp3xp18943n0rlggz55150020ivw8gvi1vyxkr4z8xhpwq4gaar"))))
  21359. (build-system emacs-build-system)
  21360. (home-page "https://github.com/milkypostman/powerline/")
  21361. (synopsis "Mode-line plugin for Emacs")
  21362. (description "Powerline is a utility plugin which allows you to create
  21363. a better-looking, more functional Emacs mode-line. A collection of predefined
  21364. themes comes with the package.")
  21365. (license license:gpl3+)))
  21366. (define-public emacs-spaceline
  21367. (package
  21368. (name "emacs-spaceline")
  21369. (version "2.0.1")
  21370. (source
  21371. (origin
  21372. (method git-fetch)
  21373. (uri (git-reference
  21374. (url "https://github.com/TheBB/spaceline")
  21375. (commit (string-append "v" version))))
  21376. (file-name (git-file-name name version))
  21377. (sha256
  21378. (base32
  21379. "1q8r95zfrh0vxna5ml2pq9b9f66clfqcl4d2qy2aizkvzyxg6skl"))))
  21380. (build-system emacs-build-system)
  21381. (propagated-inputs
  21382. `(("dash" ,emacs-dash)
  21383. ("powerline" ,emacs-powerline)
  21384. ("s" ,emacs-s)))
  21385. (home-page "https://github.com/TheBB/spaceline")
  21386. (synopsis "Powerline theme from Spacemacs")
  21387. (description "Spaceline provides Spacemacs' mode-line theme.
  21388. This package provides features for three kinds of users.
  21389. @itemize
  21390. @item You just want to use the Spacemacs mode-line theme and forget about it.
  21391. @item You want to use something similar to the Spacemacs mode-line theme, but
  21392. with a handful of easy tweaks.
  21393. @item You want an easy-to-use library for building your own mode-line from
  21394. scratch, and you think the Spacemacs theme looks good.
  21395. @end itemize")
  21396. (license license:gpl3+)))
  21397. (define-public emacs-spaceline-next
  21398. (let ((commit "1b26af2c1a701481ac5d90928fe0200e389756c3")
  21399. (last-release-version "2.0.1")
  21400. (revision "0"))
  21401. (package
  21402. (inherit emacs-spaceline)
  21403. (name "emacs-spaceline-next")
  21404. (version (git-version last-release-version revision commit))
  21405. (source
  21406. (origin
  21407. (method git-fetch)
  21408. (uri (git-reference
  21409. (url "https://github.com/TheBB/spaceline")
  21410. (commit commit)))
  21411. (sha256
  21412. (base32 "11lwckqcgzsahrkkm5wk1ph4kc7d4yz05r7251g8c9f0q6vdj9dp"))
  21413. (file-name (git-file-name name version)))))))
  21414. (define-public emacs-column-marker
  21415. (package
  21416. (name "emacs-column-marker")
  21417. (version "9")
  21418. (source
  21419. (origin
  21420. (method url-fetch)
  21421. (uri "https://www.emacswiki.org/emacs/download/column-marker.el")
  21422. (sha256 (base32 "05bv198zhqw5hqq6cr11mhz02dpca74hhp1ycwq369m0yb2naxy9"))))
  21423. (build-system emacs-build-system)
  21424. (home-page "https://www.emacswiki.org/emacs/ColumnMarker")
  21425. (synopsis "Emacs mode for highlighting columns")
  21426. (description
  21427. "With @code{column-marker.el} you can highlight any number of text columns.
  21428. Three such highlight column markers are provided by default. This is
  21429. especially useful for languages like COBOL or Fortran where certain columns
  21430. have special meaning. It is also handy for aligning text across long vertical
  21431. distances. Multi-column characters, such as @kbd{TAB} are treated
  21432. correctly.")
  21433. (license license:gpl2+)))
  21434. (define-public emacs-slime-repl-ansi-color
  21435. (let ((commit "ad03263f5d4de473bc173b64a6fc3dc1106393d7"))
  21436. (package
  21437. (name "emacs-slime-repl-ansi-color")
  21438. (version (git-version "0.0.0" "1" commit))
  21439. (source (origin
  21440. (method git-fetch)
  21441. (uri (git-reference
  21442. (url "https://github.com/deadtrickster/slime-repl-ansi-color")
  21443. (commit commit)))
  21444. (file-name (git-file-name name version))
  21445. (sha256
  21446. (base32
  21447. "0bpg7gxz310x7bnlg324c507sxc5gxwwz6h64h6kdq141r73vbi4"))))
  21448. (build-system emacs-build-system)
  21449. (home-page "https://github.com/deadtrickster/slime-repl-ansi-color")
  21450. (synopsis "Color ANSI codes in the REPL of SLIME")
  21451. (description "Color ANSI codes in the REPL of SLIME")
  21452. (license license:gpl2+))))
  21453. (define-public emacs-helm-slime
  21454. (package
  21455. (name "emacs-helm-slime")
  21456. (version "0.4.0")
  21457. (source (origin
  21458. (method git-fetch)
  21459. (uri (git-reference
  21460. (url "https://github.com/emacs-helm/helm-slime")
  21461. (commit version)))
  21462. (file-name (git-file-name name version))
  21463. (sha256
  21464. (base32
  21465. "0mrpjhpijdrq353fnfvdj9l9xfsz390qlcvifcair9732ma7i8l0"))))
  21466. (build-system emacs-build-system)
  21467. (propagated-inputs
  21468. `(("emacs-helm" ,emacs-helm)
  21469. ("emacs-slime" ,emacs-slime)))
  21470. (home-page "https://github.com/emacs-helm/helm-slime")
  21471. (synopsis "Helm for SLIME, the Superior Lisp Interaction Mode for Emacs")
  21472. (description "Helm-SLIME defines a few new commands:
  21473. @itemize
  21474. @item helm-slime-complete: Select a symbol from the SLIME completion systems.
  21475. @item helm-slime-list-connections: Yet another slime-list-connections with Helm.
  21476. @item: helm-slime-apropos: Yet another slime-apropos with Helm.
  21477. @item helm-slime-repl-history: Select an input from the SLIME REPL history and insert it.
  21478. @end itemize\n")
  21479. (license license:gpl3+)))
  21480. (define-public emacs-helm-sly
  21481. (package
  21482. (name "emacs-helm-sly")
  21483. (version "0.7.2")
  21484. (source (origin
  21485. (method git-fetch)
  21486. (uri (git-reference
  21487. (url "https://github.com/emacs-helm/helm-sly")
  21488. (commit version)))
  21489. (file-name (git-file-name name version))
  21490. (sha256
  21491. (base32
  21492. "06x8wyx1r0s7askkvlbklgz1cszv34qsvv3gryndw350smk1v8kx"))))
  21493. (build-system emacs-build-system)
  21494. (propagated-inputs
  21495. `(("emacs-helm" ,emacs-helm)
  21496. ("emacs-sly" ,emacs-sly)))
  21497. (home-page "https://github.com/emacs-helm/helm-sly")
  21498. (synopsis "Helm for SLY, a Common Lisp interaction mode for Emacs")
  21499. (description "Helm-SLY defines a few new commands:
  21500. @itemize
  21501. @item @code{helm-sly-list-connections}: Yet another Lisp connection list with
  21502. Helm.
  21503. @item @code{helm-sly-apropos}: Yet another @command{apropos} with Helm.
  21504. @item @code{helm-sly-mini}: Like @command{helm-sly-list-connections}, but
  21505. include an extra source of Lisp-related buffers, like the events buffer or the
  21506. scratch buffer.
  21507. @end itemize\n")
  21508. (license license:gpl3+)))
  21509. (define-public emacs-gtk-look
  21510. (package
  21511. (name "emacs-gtk-look")
  21512. (version "29")
  21513. (source (origin
  21514. (method url-fetch)
  21515. (uri "https://download.tuxfamily.org/user42/gtk-look.el")
  21516. (sha256
  21517. (base32
  21518. "14p2nwrd51cr1v06fxbjjn6jdrkf9d6vcxhmscm0kl677s25ypsp"))))
  21519. (build-system emacs-build-system)
  21520. (arguments
  21521. `(#:phases
  21522. (modify-phases %standard-phases
  21523. (add-after 'unpack 'configure
  21524. (lambda _
  21525. ;; File is read-only.
  21526. (chmod "gtk-look.el" #o644)
  21527. (emacs-substitute-variables "gtk-look.el"
  21528. ("gtk-lookup-devhelp-indices"
  21529. '(list (expand-file-name "~/.guix-profile/share/gtk-doc/html/*/*.devhelp*"))))
  21530. #t)))))
  21531. (home-page "http://user42.tuxfamily.org/gtk-look/index.html")
  21532. (synopsis "Find and display HTML documentation for GTK, GNOME and Glib")
  21533. (description "@command{gtk-look} finds and displays HTML documentation for
  21534. GTK, GNOME and Glib functions and variables in Emacs, similar to what
  21535. info-lookup-symbol does for info files (C-h S). The documentation is expected
  21536. to be devhelp indexes with HTML files. The location of the indexes can be
  21537. customized. In addition to C code development @command{gtk-look} is good for
  21538. @itemize
  21539. @item @command{perl-gtk2}, recognising class funcs like
  21540. @command{Gtk2::Label->new} and bare method names like @command{set_text}.
  21541. @item @command{guile-gnome}, recognising methods like @command{set-text} and
  21542. classes like @command{<gtk-window>}.
  21543. @end itemize\n")
  21544. (license license:gpl3+)))
  21545. (define-public emacs-ov
  21546. (package
  21547. (name "emacs-ov")
  21548. (version "1.0.6")
  21549. (source (origin
  21550. (method git-fetch)
  21551. (uri (git-reference
  21552. (url "https://github.com/ShingoFukuyama/ov.el")
  21553. (commit version)))
  21554. (file-name (git-file-name name version))
  21555. (sha256
  21556. (base32
  21557. "0qxk2rf84j86syxi8xknsq252irwg7sz396v3bb4wqz4prpj0kzc"))))
  21558. (build-system emacs-build-system)
  21559. (home-page "https://github.com/ShingoFukuyama/ov.el")
  21560. (synopsis "Overlay library for Emacs Lisp")
  21561. (description "@code{ov.el} provides a simple way to manipulate overlays in
  21562. Emacs.")
  21563. (license license:gpl3+)))
  21564. (define-public emacs-matrix-client
  21565. (let ((commit "d2ac55293c96d4c95971ed8e2a3f6f354565c5ed"))
  21566. (package
  21567. (name "emacs-matrix-client")
  21568. (version (git-version "0.0.0" "6" commit))
  21569. (source (origin
  21570. (method git-fetch)
  21571. (uri (git-reference
  21572. (url "https://github.com/jgkamat/matrix-client-el")
  21573. (commit commit)))
  21574. (file-name (git-file-name name version))
  21575. (sha256
  21576. (base32
  21577. "1scfv1502yg7x4bsl253cpr6plml1j4d437vci2ggs764sh3rcqq"))))
  21578. (build-system emacs-build-system)
  21579. (propagated-inputs
  21580. `(("a" ,emacs-a)
  21581. ("anaphora" ,emacs-anaphora)
  21582. ("dash" ,emacs-dash)
  21583. ("esxml" ,emacs-esxml)
  21584. ("f" ,emacs-f)
  21585. ("frame-purpose" ,emacs-frame-purpose)
  21586. ("ht" ,emacs-ht)
  21587. ("ov" ,emacs-ov)
  21588. ("rainbow-identifiers" ,emacs-rainbow-identifiers)
  21589. ("request" ,emacs-request)
  21590. ("s" ,emacs-s)
  21591. ("tracking" ,emacs-tracking)))
  21592. (home-page "https://github.com/jgkamat/matrix-client-el")
  21593. (synopsis "Matrix client for Emacs")
  21594. (description "@code{matrix-client} is a simple chat UI to Matrix.org
  21595. rooms. It also provides an API which allows Emacs to seamlessly create
  21596. RPC channels with users and other software.")
  21597. (license license:gpl3+))))
  21598. (define-public emacs-sesman
  21599. (package
  21600. (name "emacs-sesman")
  21601. (version "0.3.4")
  21602. (source
  21603. (origin
  21604. (method git-fetch)
  21605. (uri (git-reference
  21606. (url "https://github.com/vspinu/sesman")
  21607. (commit (string-append "v" version))))
  21608. (file-name (git-file-name name version))
  21609. (sha256
  21610. (base32
  21611. "0z5jb4vpbjsi63w3wjy6d2lgz33qdfvrgfb3bszv4hcf6a96y7fc"))))
  21612. (build-system emacs-build-system)
  21613. (arguments
  21614. `(#:phases
  21615. (modify-phases %standard-phases
  21616. (add-after 'unpack 'set-shell
  21617. ;; Setting the SHELL environment variable is required for the tests
  21618. ;; to find sh.
  21619. (lambda _
  21620. (setenv "SHELL" (which "sh"))
  21621. #t)))
  21622. #:tests? #t
  21623. #:test-command '("make" "test")))
  21624. (home-page "https://github.com/vspinu/sesman")
  21625. (synopsis "Session manager for Emacs based IDEs")
  21626. (description "Sesman provides facilities for session management and
  21627. interactive session association with the current contexts (project, directory,
  21628. buffers). While sesman can be used to manage arbitrary sessions, it primary
  21629. targets the Emacs based IDEs (CIDER, ESS, Geiser, Robe, SLIME etc.)")
  21630. (license license:gpl3+)))
  21631. (define-public emacs-buttercup
  21632. (package
  21633. (name "emacs-buttercup")
  21634. (version "1.24")
  21635. (source
  21636. (origin
  21637. (method git-fetch)
  21638. (uri (git-reference
  21639. (url "https://github.com/jorgenschaefer/emacs-buttercup")
  21640. (commit (string-append "v" version))))
  21641. (file-name (git-file-name name version))
  21642. (sha256
  21643. (base32
  21644. "1w02p4bfkyga6sign4flq2kw0hawyvnv63410pyh8nm7acp311gg"))))
  21645. (build-system emacs-build-system)
  21646. (arguments
  21647. `(#:tests? #t
  21648. #:test-command '("make" "test")
  21649. #:phases
  21650. (modify-phases %standard-phases
  21651. (add-after 'install 'install-bin
  21652. (lambda* (#:key outputs #:allow-other-keys)
  21653. (install-file "bin/buttercup"
  21654. (string-append (assoc-ref outputs "out") "/bin"))
  21655. #t)))))
  21656. (home-page "https://github.com/jorgenschaefer/emacs-buttercup")
  21657. (synopsis "Behavior driven emacs lisp testing framework")
  21658. (description "Buttercup is a behavior-driven development framework for
  21659. testing Emacs Lisp code. It groups related tests so they can share
  21660. common set-up and tear-down code, and allows the programmer to \"spy\" on
  21661. functions to ensure they are called with the right arguments during testing.")
  21662. (license license:gpl3+)))
  21663. (define-public emacs-cort
  21664. (package
  21665. (name "emacs-cort")
  21666. (version "7.1.0")
  21667. (source (origin
  21668. (method git-fetch)
  21669. (uri (git-reference
  21670. (url "https://github.com/conao3/cort.el")
  21671. (commit (string-append "v" version))))
  21672. (file-name (git-file-name name version))
  21673. (sha256
  21674. (base32
  21675. "03c223nczpbdkjmq69panhbsq2a0zj20w329jgj4c0zsj8m1a32a"))))
  21676. (build-system emacs-build-system)
  21677. (propagated-inputs
  21678. `(("emacs-ansi" ,emacs-ansi)))
  21679. (arguments
  21680. `(#:tests? #t
  21681. #:test-command '("emacs" "--batch" "--quick"
  21682. "--directory=." "--load=cort-tests.el"
  21683. "--funcall=cort-test-run")))
  21684. (home-page "https://github.com/conao3/cort.el")
  21685. (synopsis "Unit test framework for the Emacs Lisp")
  21686. (description "@code{cort} is a lightweight Emacs Lisp unit test library.")
  21687. (license license:gpl3+)))
  21688. (define-public emacs-wordnut
  21689. (let ((commit "feac531404041855312c1a046bde7ea18c674915")
  21690. (revision "0"))
  21691. (package
  21692. (name "emacs-wordnut")
  21693. (version (git-version "0.1" revision commit))
  21694. (home-page "https://github.com/gromnitsky/wordnut")
  21695. (source (origin
  21696. (method git-fetch)
  21697. (uri (git-reference (url home-page) (commit commit)))
  21698. (sha256
  21699. (base32
  21700. "1jl0b6g64a9w0q7bfvwha67vgws5xd15b7mkfyb5gkz3pymqhfxn"))
  21701. (patches
  21702. (search-patches "emacs-wordnut-require-adaptive-wrap.patch"))
  21703. (file-name (git-file-name name version))))
  21704. (build-system emacs-build-system)
  21705. (propagated-inputs
  21706. `(("wordnet" ,wordnet)
  21707. ("emacs-adaptive-wrap" ,emacs-adaptive-wrap)))
  21708. (synopsis "Major mode for WordNet")
  21709. (description "This Emacs package provides an interface for
  21710. @code{wordnet}. Features include completion, if the query is not found
  21711. too ambiguous and navigation in the result buffer.")
  21712. (license license:gpl3+))))
  21713. (define-public emacs-frame-local
  21714. ;; There is no release yet. Version is extracted from the main
  21715. ;; file.
  21716. (let ((version "0.0.1")
  21717. (revision "0")
  21718. (commit "7ee1106c3bcd4022f48421f8cb1ef4f995da816e"))
  21719. (package
  21720. (name "emacs-frame-local")
  21721. (version (git-version version revision commit))
  21722. (source
  21723. (origin
  21724. (method git-fetch)
  21725. (uri (git-reference
  21726. (url "https://github.com/sebastiencs/frame-local")
  21727. (commit commit)))
  21728. (file-name (git-file-name name version))
  21729. (sha256
  21730. (base32 "0zfxsxdh3bd3fd566zl0byp13p5b8f4cgkwl637imvarvahczigp"))))
  21731. (build-system emacs-build-system)
  21732. (home-page "https://github.com/sebastiencs/frame-local")
  21733. (synopsis "Access variables local to an Emacs frame")
  21734. (description
  21735. "This package allows setting and accessing variables local to
  21736. an Emacs frame. Note that the variables created with this package do
  21737. not have any relation with variables defined by @code{defvar},
  21738. @code{defconst}, etc.")
  21739. (license license:gpl3+))))
  21740. (define-public emacs-frame-purpose
  21741. (package
  21742. (name "emacs-frame-purpose")
  21743. (version "1.0")
  21744. (source (origin
  21745. (method git-fetch)
  21746. (uri (git-reference
  21747. (url "https://github.com/alphapapa/frame-purpose.el")
  21748. (commit version)))
  21749. (sha256
  21750. (base32
  21751. "0jq2aam1yvccw887ighd1wm2xkvk5bv53ffiz3crcl16a255aj4q"))
  21752. (file-name (git-file-name name version))))
  21753. (build-system emacs-build-system)
  21754. (inputs
  21755. `(("dash" ,emacs-dash)))
  21756. (synopsis "Purpose-specific frames for Emacs")
  21757. (description "@code{frame-purpose} makes it easy to open purpose-specific
  21758. frames that only show certain buffers, e.g. by buffers’ major mode, their
  21759. filename or directory, etc, with custom frame/X-window titles, icons, and
  21760. other frame parameters.")
  21761. (home-page "https://github.com/alphapapa/frame-purpose.el")
  21762. (license license:gpl3+)))
  21763. (define-public emacs-arduino-mode
  21764. (let ((commit "23ae47c9f28f559e70b790b471f20310e163a39b")
  21765. (revision "1")) ;no release yet
  21766. (package
  21767. (name "emacs-arduino-mode")
  21768. (version (git-version "0" revision commit))
  21769. (source (origin
  21770. (method git-fetch)
  21771. (uri (git-reference
  21772. (url "https://github.com/stardiviner/arduino-mode")
  21773. (commit commit)))
  21774. (sha256
  21775. (base32
  21776. "08vnbz9gpah1l93fzfd87aawrhcnh2v1kyfxgsn88pdwg8awz8rx"))
  21777. (file-name (git-file-name name version))))
  21778. (build-system emacs-build-system)
  21779. (inputs
  21780. `(("spinner" ,emacs-spinner)
  21781. ("flycheck" ,emacs-flycheck)))
  21782. (arguments
  21783. `(#:phases
  21784. (modify-phases %standard-phases
  21785. ;; Emacs complains that "defmethod" and "defgeneric" are obsolete
  21786. ;; macros when compiling. Substitute them with the recommended
  21787. ;; macros "cl-defmethod" and "cl-defgeneric", respectively.
  21788. (add-after 'unpack 'fix-obsolete
  21789. (lambda _
  21790. (substitute* "ede-arduino.el"
  21791. (("defmethod") "cl-defmethod")
  21792. (("defgeneric") "cl-defgeneric"))
  21793. #t)))))
  21794. (synopsis "Emacs major mode for editing Arduino sketches")
  21795. (description "Emacs major mode for editing Arduino sketches.")
  21796. (home-page "https://github.com/stardiviner/arduino-mode")
  21797. (license license:gpl3+))))
  21798. (define-public emacs-annalist
  21799. (package
  21800. (name "emacs-annalist")
  21801. (version "1.0.1")
  21802. (source (origin
  21803. (method git-fetch)
  21804. (uri (git-reference
  21805. (url "https://github.com/noctuid/annalist.el")
  21806. (commit version)))
  21807. (sha256
  21808. (base32
  21809. "1jlb5w4972l8m2aa18q2l6arfpm65g4nk21dn1yi8c9dbpk2g67c"))
  21810. (file-name (git-file-name name version))))
  21811. (build-system emacs-build-system)
  21812. (native-inputs
  21813. `(("emacs-buttercup" ,emacs-buttercup)
  21814. ("emacs-lispy" ,emacs-lispy)
  21815. ("emacs-evil" ,emacs-evil)))
  21816. (arguments
  21817. `(#:phases
  21818. (modify-phases %standard-phases
  21819. (add-before 'check 'fix-makefile
  21820. (lambda _
  21821. (substitute* "Makefile"
  21822. (("cask exec ") ""))
  21823. #t)))
  21824. #:tests? #t
  21825. #:test-command '("make" "test")))
  21826. (home-page "https://github.com/noctuid/annalist.el")
  21827. (synopsis "Record and display information with Org headings and tables")
  21828. (description "This package allows for keybindings, settings, hooks, and
  21829. advice to be recorded and displayed.")
  21830. (license license:gpl3+)))
  21831. (define-public emacs-general
  21832. (let ((commit "a0b17d207badf462311b2eef7c065b884462cb7c")
  21833. (revision "4"))
  21834. (package
  21835. (name "emacs-general")
  21836. (version (git-version "0" revision commit))
  21837. (source
  21838. (origin
  21839. (method git-fetch)
  21840. (uri (git-reference
  21841. (url "https://github.com/noctuid/general.el")
  21842. (commit commit)))
  21843. (sha256
  21844. (base32 "0wn5rk3gkimdklip392mnjrmkymgrb7q9skifi03cbpjam1anzvv"))
  21845. (file-name (git-file-name name version))))
  21846. (build-system emacs-build-system)
  21847. (native-inputs
  21848. `(("emacs-buttercup" ,emacs-buttercup)
  21849. ("emacs-evil" ,emacs-evil)
  21850. ("emacs-which-key" ,emacs-which-key)
  21851. ("emacs-use-package" ,emacs-use-package)))
  21852. (arguments
  21853. `(#:tests? #t
  21854. #:test-command '("buttercup" "-L" "test/test-general.el")))
  21855. (home-page "https://github.com/noctuid/general.el")
  21856. (synopsis "More convenient key definitions in emacs")
  21857. (description "@code{general.el} provides a more convenient method for
  21858. binding keys in emacs (for both evil and non-evil users). Like
  21859. @code{use-package}, which provides a convenient, unified interface for
  21860. managing packages, @code{general.el} is intended to provide a convenient,
  21861. unified interface for key definitions. While this package does implement some
  21862. completely new functionality (such as the ability to make vim-style
  21863. keybindings under non-prefix keys with an optional timeout), its primary
  21864. purpose is to build on existing functionality to make key definition more
  21865. clear and concise. @code{general-define-key} is user-extensible and supports
  21866. defining multiple keys in multiple keymaps at once, implicitly wrapping key
  21867. strings with (@code{kbd ...}), using named prefix key sequences (like the
  21868. leader key in vim), and much more.")
  21869. (license license:gpl3+))))
  21870. (define-public emacs-tldr
  21871. (let ((commit "7203d1be3dcbf12131846ffe06601933fa874d74"))
  21872. (package
  21873. (name "emacs-tldr")
  21874. (version (git-version "0" "1" commit))
  21875. (home-page "https://github.com/kuanyui/tldr.el")
  21876. (source (origin
  21877. (method git-fetch)
  21878. (uri (git-reference
  21879. (url (string-append home-page ".git"))
  21880. (commit commit)))
  21881. (sha256
  21882. (base32
  21883. "1bw6la463l2yfm7rp76ga4makfy4kpxgwi7ni5gxk31w11g26ryk"))
  21884. (file-name (git-file-name name version))))
  21885. (build-system emacs-build-system)
  21886. (propagated-inputs
  21887. `(("emacs-request" ,emacs-request)))
  21888. (synopsis "Simplified and community-driven man pages for Emacs")
  21889. (description "@code{emacs-tldr} allows the user to access tldr pages
  21890. from within emacs. The @code{tldr} pages are a community effort to simplify
  21891. the man pages with practical examples.")
  21892. (license license:wtfpl2))))
  21893. (define-public emacs-window-layout
  21894. (package
  21895. (name "emacs-window-layout")
  21896. (version "1.4")
  21897. (home-page "https://github.com/kiwanami/emacs-window-layout")
  21898. (source (origin
  21899. (method git-fetch)
  21900. (uri (git-reference
  21901. (url home-page)
  21902. (commit (string-append "v" version))))
  21903. (sha256
  21904. (base32
  21905. "0wgqi8r844lbx52fn6az8c1n8m681rp6dkfzd54wmdk1ka7zmvv6"))
  21906. (file-name (git-file-name name version))))
  21907. (build-system emacs-build-system)
  21908. (synopsis "Simple window layout management framework for emacs")
  21909. (description "A window-layout management library that can split a frame
  21910. or a window into some windows according to a layout recipe.")
  21911. (license license:gpl3+)))
  21912. (define-public emacs-e2wm
  21913. (package
  21914. (name "emacs-e2wm")
  21915. (version "1.4")
  21916. (home-page "https://github.com/kiwanami/emacs-window-manager")
  21917. (source (origin
  21918. (method git-fetch)
  21919. (uri (git-reference
  21920. (url home-page)
  21921. (commit (string-append "v" version))))
  21922. (sha256
  21923. (base32
  21924. "12midsrx07pdrsr1qbl2rpi7xyhxqx08bkz7n7gf8vsmqkpfp56s"))
  21925. (file-name (git-file-name name version))))
  21926. (build-system emacs-build-system)
  21927. (propagated-inputs
  21928. `(("emacs-window-layout" ,emacs-window-layout)))
  21929. (synopsis "Equilibrium Emacs Window Manager")
  21930. (description "E2WM is a window manager for Emacs. It enables to
  21931. customize the place of pop-up window, how the windows are split, how the
  21932. buffers are located in the windows, keybinds to manipulate windows and
  21933. buffers, etc. It also has plug-ins to help your Emacs life.")
  21934. (license license:gpl3+)))
  21935. (define-public emacs-ctable
  21936. (let ((commit "b8830d1ca95abb100a81bc32011bd17d5ecba000"))
  21937. (package
  21938. (name "emacs-ctable")
  21939. (version (git-version "0.1.2" "1" commit))
  21940. (home-page "https://github.com/kiwanami/emacs-ctable")
  21941. (source (origin
  21942. (method git-fetch)
  21943. (uri (git-reference
  21944. (url home-page)
  21945. (commit commit)))
  21946. (sha256
  21947. (base32
  21948. "0pg303pnqscrsbx9579hc815angszsgf9vpd2z2f8p4f4ka6a00h"))
  21949. (file-name (git-file-name name version))))
  21950. (build-system emacs-build-system)
  21951. (synopsis "Table component for Emacs Lisp")
  21952. (description "This program is a table component for Emacs Lisp. Other
  21953. programs can use this table component for the application UI.")
  21954. (license license:gpl3+))))
  21955. (define-public emacs-leetcode
  21956. (let ((commit "8624496af9e105c3e07d88844b37ede87540d604")
  21957. (revision "1"))
  21958. (package
  21959. (name "emacs-leetcode")
  21960. (version (git-version "0" "1" commit))
  21961. (home-page "https://github.com/ginqi7/leetcode-emacs")
  21962. (source (origin
  21963. (method git-fetch)
  21964. (uri (git-reference
  21965. (url "https://github.com/ginqi7/leetcode-emacs")
  21966. (commit commit)))
  21967. (sha256
  21968. (base32
  21969. "11pp7ydlmwrv7djf9mwk4xzn295xbmdnj5x13bfj5yjpjr89p531"))
  21970. (file-name (git-file-name name version))))
  21971. (build-system emacs-build-system)
  21972. (propagated-inputs
  21973. `(("emacs-names" ,emacs-names)
  21974. ("emacs-ctable" ,emacs-ctable)))
  21975. (synopsis "Solve and submit LeetCode problems from within Emacs")
  21976. (description "This package provides an Emacs interface to LeetCode
  21977. allowing users to log in and solve problems of their choice using Emacs.")
  21978. (license license:unlicense))))
  21979. (define-public emacs-epc
  21980. (let ((commit "e1bfa5ca163273859336e3cc89b4b6460f7f8cda"))
  21981. (package
  21982. (name "emacs-epc")
  21983. (version (git-version "0.1.1" "1" commit))
  21984. (home-page "https://github.com/kiwanami/emacs-epc")
  21985. (source (origin
  21986. (method git-fetch)
  21987. (uri (git-reference
  21988. (url home-page)
  21989. (commit commit)))
  21990. (sha256
  21991. (base32
  21992. "15nkrjgi64f829isfd6xrhl4zw8jirr8pkas7nisrbk1av868hx0"))
  21993. (file-name (git-file-name name version))))
  21994. (build-system emacs-build-system)
  21995. (propagated-inputs
  21996. `(("emacs-deferred" ,emacs-deferred)
  21997. ("emacs-ctable" ,emacs-ctable)))
  21998. (synopsis "RPC stack for Emacs Lisp")
  21999. (description "This program is an asynchronous RPC stack for Emacs.
  22000. Using this RPC stack, Emacs can communicate with the peer process
  22001. smoothly. Because the protocol employs S-expression encoding and consists of
  22002. asynchronous communications, the RPC response is fairly good.")
  22003. (license license:gpl3+))))
  22004. (define-public emacs-edbi
  22005. (let ((commit "6f50aaf4bde75255221f2292c7a4ad3fa9d918c0"))
  22006. (package
  22007. (name "emacs-edbi")
  22008. (version (git-version "0.1.3" "1" commit))
  22009. (home-page "https://github.com/kiwanami/emacs-edbi")
  22010. (source (origin
  22011. (method git-fetch)
  22012. (uri (git-reference
  22013. (url home-page)
  22014. (commit commit)))
  22015. (sha256
  22016. (base32
  22017. "0x0igyvdcm4863n7zndvcv6wgzwgn7324cbfjja6xd7r0k936zdy"))
  22018. (file-name (git-file-name name version))))
  22019. (build-system emacs-build-system)
  22020. (inputs
  22021. `(("perl" ,perl)
  22022. ("perl-rpc-epc-service" ,perl-rpc-epc-service)
  22023. ("perl-dbi" ,perl-dbi)
  22024. ;; TODO: Adding support for perl-dbd-mysql and others would
  22025. ;; dramatically increase the closure size. Make several packages?
  22026. ("perl-dbd-sqlite" ,perl-dbd-sqlite)))
  22027. (propagated-inputs
  22028. `(("emacs-e2wm" ,emacs-e2wm)
  22029. ("emacs-epc" ,emacs-epc)))
  22030. (arguments
  22031. `(#:include '("\\.el$" "\\.pl$")
  22032. #:phases
  22033. (modify-phases %standard-phases
  22034. (add-after 'unpack 'patch-path
  22035. (lambda* (#:key inputs #:allow-other-keys)
  22036. (let ((perl (assoc-ref inputs "perl")))
  22037. (substitute* "edbi.el"
  22038. (("\"perl\"") (string-append "\"" perl "/bin/perl\"")))
  22039. #t)))
  22040. (add-after 'wrap 'wrap-edbi-bridge
  22041. (lambda* (#:key inputs outputs #:allow-other-keys)
  22042. (let* ((out (assoc-ref outputs "out"))
  22043. (bridge (string-append (elpa-directory out)
  22044. "/edbi-bridge.pl")))
  22045. (chmod bridge #o555)
  22046. (wrap-program bridge
  22047. `("PERL5LIB" ":" prefix (,(getenv "PERL5LIB")))))
  22048. #t)))))
  22049. (synopsis "Database Interface for Emacs Lisp")
  22050. (description "This program connects the database server through Perl's
  22051. DBI, and provides DB-accessing API and the simple management UI.")
  22052. (license license:gpl3+))))
  22053. (define-public emacs-edbi-sqlite
  22054. (let ((commit "52cb9ca1af7691b592f2cfd2f007847e7a4ccd5f"))
  22055. (package
  22056. (name "emacs-edbi-sqlite")
  22057. (version (git-version "0.1.1" "1" commit))
  22058. (home-page "https://github.com/proofit404/edbi-sqlite")
  22059. (source (origin
  22060. (method git-fetch)
  22061. (uri (git-reference
  22062. (url home-page)
  22063. (commit commit)))
  22064. (sha256
  22065. (base32
  22066. "1vll81386fx90lq5sy4rlxcik6mvw7zx5cc51f0yaca9bkcckp51"))
  22067. (file-name (git-file-name name version))))
  22068. (build-system emacs-build-system)
  22069. (propagated-inputs
  22070. `(("emacs-edbi" ,emacs-edbi)))
  22071. (synopsis "Open SQLite files in Emacs")
  22072. (description "This package is a convenience wrapper for @command{edbi}
  22073. to open SQLite databases.")
  22074. (license license:gpl3+))))
  22075. (define-public emacs-nice-citation
  22076. (let ((commit "1013b56d9d1495a335f40a5f76203034dc5fa0ea")
  22077. (revision "0"))
  22078. (package
  22079. (name "emacs-nice-citation")
  22080. (version (git-version "0.0.2" revision commit))
  22081. (source
  22082. (origin
  22083. (method git-fetch)
  22084. (uri (git-reference
  22085. (url "https://github.com/damiencollard/nice-citation")
  22086. (commit commit)))
  22087. (sha256
  22088. (base32 "00xqr7haca5vd0bzd043lc6x4fjb903z96frz9b8cbd7spp63z7q"))
  22089. (file-name (git-file-name name version))))
  22090. (build-system emacs-build-system)
  22091. (home-page "https://github.com/damiencollard/nice-citation")
  22092. (synopsis "Depth-colored citations for Gnus")
  22093. (description
  22094. "This package replaces the traditional chevron citation marks @samp{>}
  22095. with a Unicode vertical bar with the same color as the text it is quoting.
  22096. It is purely presentation: the underlying text is unchanged. In particular,
  22097. if you send a message containing a citation, it will contain the traditional
  22098. chevron marks.")
  22099. (license license:gpl3+))))
  22100. (define-public emacs-nix-mode
  22101. (package
  22102. (name "emacs-nix-mode")
  22103. (version "1.4.5")
  22104. (source
  22105. (origin
  22106. (method git-fetch)
  22107. (uri (git-reference
  22108. (url "https://github.com/NixOS/nix-mode")
  22109. (commit (string-append "v" version))))
  22110. (file-name (git-file-name name version))
  22111. (sha256
  22112. (base32 "1bqlhkxg0faddhvxx909dq46dxdxk4mdyhdpww92dmzgxdpq38sx"))))
  22113. (build-system emacs-build-system)
  22114. (inputs
  22115. `(("emacs-company" ,emacs-company)
  22116. ("emacs-json-mode" ,emacs-json-mode)
  22117. ("emacs-mmm-mode" ,emacs-mmm-mode)))
  22118. (home-page "https://github.com/NixOS/nix-mode")
  22119. (synopsis "Emacs major mode for editing Nix expressions")
  22120. (description "@code{nixos-mode} provides an Emacs major mode for editing
  22121. Nix expressions. It supports syntax highlighting, indenting and refilling of
  22122. comments.")
  22123. (license license:lgpl2.1+)))
  22124. (define-public emacs-libmpdel
  22125. (package
  22126. (name "emacs-libmpdel")
  22127. (version "1.3.0")
  22128. (source (origin
  22129. (method git-fetch)
  22130. (uri (git-reference
  22131. (url "https://gitea.petton.fr/mpdel/libmpdel.git")
  22132. (commit (string-append "v" version))))
  22133. (file-name (git-file-name name version))
  22134. (sha256
  22135. (base32
  22136. "0krxhcay5s9s7i41q7ga5skj31vaz2qx3djcrlwajf203bl8j4m9"))))
  22137. (build-system emacs-build-system)
  22138. (home-page "https://gitea.petton.fr/mpdel/libmpdel")
  22139. (synopsis "Emacs library to communicate with Music Player Daemon (MPD)")
  22140. (description
  22141. "LibMPDel is an Emacs library client to communicate with Music Player
  22142. Daemon (MPD), a flexible, powerful, server-side application for playing
  22143. music.")
  22144. (license license:gpl3+)))
  22145. (define-public emacs-mpdel
  22146. (package
  22147. (name "emacs-mpdel")
  22148. (version "1.0.0")
  22149. (source
  22150. (origin
  22151. (method git-fetch)
  22152. (uri (git-reference
  22153. (url "https://gitea.petton.fr/mpdel/mpdel.git")
  22154. (commit (string-append "v" version))))
  22155. (file-name (git-file-name name version))
  22156. (sha256
  22157. (base32
  22158. "0pyyvbzskr44dxbmlp3y0r6s459fd51cvwjmnjaqxfxflr5v891g"))))
  22159. (build-system emacs-build-system)
  22160. (inputs
  22161. `(("emacs-libmpdel" ,emacs-libmpdel)))
  22162. (home-page "https://gitea.petton.fr/mpdel/mpdel")
  22163. (synopsis "Emacs user interface for Music Player Daemon (MPD)")
  22164. (description
  22165. "MPDel provides an Emacs user interface to control playback (play, pause,
  22166. next, volume) and display and control the current playlist as well as your
  22167. stored playlists.")
  22168. (license license:gpl3+)))
  22169. (define-public emacs-vterm
  22170. (let ((version "0.0.1")
  22171. (revision "0")
  22172. (commit "a670b786539d3c8865d8f68fe0c67a2d4afbf1aa"))
  22173. (package
  22174. (name "emacs-vterm")
  22175. (version (git-version version revision commit))
  22176. (source (origin
  22177. (method git-fetch)
  22178. (uri (git-reference
  22179. (url "https://github.com/akermu/emacs-libvterm")
  22180. (commit commit)))
  22181. (file-name (git-file-name name version))
  22182. (sha256
  22183. (base32
  22184. "0s244crjkbzl2jhp9m4sm1xdhbpxwph0m3jg18livirgajvdz6hn"))))
  22185. (build-system emacs-build-system)
  22186. (arguments
  22187. `(#:modules ((guix build emacs-build-system)
  22188. ((guix build cmake-build-system) #:prefix cmake:)
  22189. (guix build emacs-utils)
  22190. (guix build utils))
  22191. #:imported-modules (,@%emacs-build-system-modules
  22192. (guix build cmake-build-system))
  22193. #:phases
  22194. (modify-phases %standard-phases
  22195. (add-after 'unpack 'substitute-vterm-module-path
  22196. (lambda* (#:key outputs #:allow-other-keys)
  22197. (chmod "vterm.el" #o644)
  22198. (emacs-substitute-sexps "vterm.el"
  22199. ("(require 'vterm-module nil t)"
  22200. `(module-load
  22201. ,(string-append (assoc-ref outputs "out")
  22202. "/lib/vterm-module.so"))))
  22203. #t))
  22204. (add-after 'build 'configure
  22205. ;; Run cmake.
  22206. (lambda* (#:key outputs #:allow-other-keys)
  22207. ((assoc-ref cmake:%standard-phases 'configure)
  22208. #:outputs outputs
  22209. #:out-of-source? #f
  22210. #:configure-flags '("-DUSE_SYSTEM_LIBVTERM=ON"))
  22211. #t))
  22212. (add-after 'configure 'make
  22213. ;; Run make.
  22214. (lambda* (#:key (make-flags '()) outputs #:allow-other-keys)
  22215. ;; Compile the shared object file.
  22216. (apply invoke "make" "all" make-flags)
  22217. ;; Move the file into /lib.
  22218. (install-file
  22219. "vterm-module.so"
  22220. (string-append (assoc-ref outputs "out") "/lib"))
  22221. #t)))
  22222. #:tests? #f))
  22223. (native-inputs
  22224. `(("cmake" ,cmake-minimal)
  22225. ("libtool" ,libtool)
  22226. ("libvterm" ,libvterm)))
  22227. (home-page "https://github.com/akermu/emacs-libvterm")
  22228. (synopsis "Emacs libvterm integration")
  22229. (description "This package implements a bridge to @code{libvterm} to
  22230. display a terminal in an Emacs buffer.")
  22231. (license license:gpl3+))))
  22232. (define-public emacs-vterm-toggle
  22233. ;; There have been no releases.
  22234. (let ((commit "d10239b7bb89b78dddb82f66ac2286bc0b02747b")
  22235. (revision "1"))
  22236. (package
  22237. (name "emacs-vterm-toggle")
  22238. (version (git-version "0.0.4" revision commit))
  22239. (source
  22240. (origin
  22241. (method git-fetch)
  22242. (uri (git-reference
  22243. (url "https://github.com/jixiuf/vterm-toggle")
  22244. (commit commit)))
  22245. (file-name (git-file-name name version))
  22246. (sha256
  22247. (base32 "0r9n23wg9cfy10h5f9zqr8jpkvw34f9rylri3nxq870awjab7rqi"))))
  22248. (build-system emacs-build-system)
  22249. (propagated-inputs `(("emacs-vterm" ,emacs-vterm)))
  22250. (home-page "https://github.com/jixiuf/vterm-toggle")
  22251. (synopsis "Toggle between a vterm buffer and other buffers")
  22252. (description
  22253. "This package provides a DWIM way to switch from an Emacs buffer to
  22254. a vterm buffer and back again.")
  22255. (license license:gpl3+))))
  22256. (define-public emacs-simple-mpc
  22257. ;; There have been no releases.
  22258. (let ((commit "bee8520e81292b4c7353e45b193f9a13b482f5b2")
  22259. (revision "1"))
  22260. (package
  22261. (name "emacs-simple-mpc")
  22262. (version (git-version "0" revision commit))
  22263. (source
  22264. (origin
  22265. (method git-fetch)
  22266. (uri (git-reference
  22267. (url "https://github.com/jorenvo/simple-mpc")
  22268. (commit commit)))
  22269. (file-name (git-file-name name version))
  22270. (sha256
  22271. (base32
  22272. "1ja06pv007cmzjjgka95jlg31k7d29jrih1yxyblsxv85s9sg21q"))))
  22273. (build-system emacs-build-system)
  22274. (propagated-inputs `(("emacs-s" ,emacs-s)))
  22275. (home-page "https://github.com/jorenvo/simple-mpc")
  22276. (synopsis "Simple Emacs frontend to mpc")
  22277. (description "This package provides an Emacs major mode which acts as a
  22278. front end to mpc, a client for the @dfn{Music Player Daemon} (MPD).")
  22279. (license license:gpl3+))))
  22280. (define-public emacs-mkmcc-gnuplot-mode
  22281. (package
  22282. (name "emacs-mkmcc-gnuplot-mode")
  22283. (version "1.2.0")
  22284. (source
  22285. (origin
  22286. (method git-fetch)
  22287. (uri (git-reference
  22288. (url "https://github.com/mkmcc/gnuplot-mode")
  22289. (commit "601f6392986f0cba332c87678d31ae0d0a496ce7")))
  22290. (file-name (git-file-name name version))
  22291. (sha256
  22292. (base32
  22293. "14f0yh1rjqc3337j4sbqzfb7pjim2c8a7wk1a73xkrdkmjn82vgb"))))
  22294. (build-system emacs-build-system)
  22295. (home-page "https://mkmcc.github.io/software/gnuplot-mode.html")
  22296. (synopsis "Minimal emacs major mode for editing gnuplot scripts")
  22297. (description "@code{emacs-mkmcc-gnuplot-mode} is a minimal emacs major
  22298. mode for editing gnuplot scripts. It provides syntax highlighting,
  22299. indentation and a command to plot the file.")
  22300. (license license:gpl3+)))
  22301. (define-public emacs-cmake-font-lock
  22302. (let ((commit "e0ceaaae19c13b66f781512e3295bfc6707b56f4")
  22303. (revision "1"))
  22304. (package
  22305. (name "emacs-cmake-font-lock")
  22306. (version (git-version "0.1.5" revision commit))
  22307. (source (origin
  22308. (method git-fetch)
  22309. (uri (git-reference
  22310. (url "https://github.com/Lindydancer/cmake-font-lock")
  22311. (commit commit)))
  22312. (file-name (git-file-name name version))
  22313. (sha256
  22314. (base32
  22315. "03gsyn95dlmsn15bl353bphi3qy7ccn5bss3f7n97kf38bllh0yf"))))
  22316. (build-system emacs-build-system)
  22317. (native-inputs
  22318. `(("emacs-faceup" ,emacs-faceup)))
  22319. (arguments
  22320. `(#:include (cons "^admin\\/" %default-include)))
  22321. (home-page "https://github.com/Lindydancer/cmake-font-lock")
  22322. (synopsis "Advanced type-aware syntax-highlighting for CMake")
  22323. (description "This package highlights function arguments in CMake
  22324. according to their use.")
  22325. (license license:gpl3+))))
  22326. (define-public emacs-dtrt-indent
  22327. (package
  22328. (name "emacs-dtrt-indent")
  22329. (version "1.4")
  22330. (source (origin
  22331. (method git-fetch)
  22332. (uri (git-reference
  22333. (url "https://github.com/jscheid/dtrt-indent")
  22334. (commit version)))
  22335. (file-name (git-file-name name version))
  22336. (sha256
  22337. (base32
  22338. "11r68sh3yrrfib7pixnazispwsffrygmgplffrv8qq57xrqzyxih"))))
  22339. (build-system emacs-build-system)
  22340. (home-page "https://github.com/jscheid/dtrt-indent")
  22341. (synopsis "Minor mode that guesses the indentation offset")
  22342. (description "This package provides a minor mode that guesses the
  22343. indentation offset originally used for creating source code files and
  22344. transparently adjusts the corresponding settings in Emacs, making it more
  22345. convenient to edit foreign files.")
  22346. (license license:gpl2+)))
  22347. (define-public emacs-repo
  22348. (package
  22349. (name "emacs-repo")
  22350. (version "0.2.0")
  22351. (source (origin
  22352. (method git-fetch)
  22353. (uri (git-reference
  22354. (url "https://github.com/canatella/repo-el")
  22355. (commit version)))
  22356. (file-name (git-file-name name version))
  22357. (sha256
  22358. (base32
  22359. "0jgiawdnzjlrpx2j1y6djwbqncdpmyfd31q1qf1890049y8ppxnb"))))
  22360. (build-system emacs-build-system)
  22361. (native-inputs
  22362. `(("emacs-el-mock" ,emacs-el-mock)
  22363. ("ert-runner" ,emacs-ert-runner)))
  22364. (propagated-inputs
  22365. `(("emacs-f" ,emacs-f)
  22366. ("magit" ,emacs-magit)))
  22367. (home-page "https://github.com/canatella/repo-el")
  22368. (synopsis "Emacs interface for the Google Repo tool")
  22369. (description "This package provides integration of the Google Repo tool
  22370. with emacs. It displays the output of the @code{repo status} command in a
  22371. buffer and launches Magit from the status buffer for the project at point.")
  22372. (license license:gpl3+)))
  22373. (define-public emacs-repology
  22374. (package
  22375. (name "emacs-repology")
  22376. (version "1.1.0")
  22377. (source
  22378. (origin
  22379. (method url-fetch)
  22380. (uri (string-append "https://elpa.gnu.org/packages/"
  22381. "repology-" version ".tar"))
  22382. (sha256
  22383. (base32 "031245rrhazj53bk1csa6x3ygzvg74w2hwjf08ficwvmdn97li90"))))
  22384. (build-system emacs-build-system)
  22385. (home-page "https://elpa.gnu.org/packages/repology.html")
  22386. (synopsis "Repology API access via Elisp")
  22387. (description
  22388. "This package provides tools to query Repology API (see
  22389. @url{https://repology.org/api}), process results, and display them.")
  22390. (license license:gpl3+)))
  22391. (define-public emacs-alect-themes
  22392. (package
  22393. (name "emacs-alect-themes")
  22394. (version "0.9")
  22395. (source (origin
  22396. (method git-fetch)
  22397. (uri (git-reference
  22398. (url "https://github.com/alezost/alect-themes")
  22399. (commit (string-append "v" version))))
  22400. (file-name (git-file-name name version))
  22401. (sha256
  22402. (base32
  22403. "0nffxpdm0sa7bynwi0rmlwpc4qmvbda5ankhzz7fmk4ap9fkjxv9"))))
  22404. (build-system emacs-build-system)
  22405. (home-page "https://github.com/alezost/alect-themes")
  22406. (synopsis "Low contrast, light, dark and black color theme for Emacs")
  22407. (description "@code{emacs-alect-themes} provides configurable light, dark
  22408. and black color themes for Emacs. The themes are intended to be used with
  22409. GUI.")
  22410. (license license:gpl3+)))
  22411. (define-public emacs-google-c-style
  22412. (let ((commit "6271f3f473ceb3a7fef99388a3040903b1a145f1")
  22413. (revision "0"))
  22414. (package
  22415. (name "emacs-google-c-style")
  22416. (version (git-version "0.1" revision commit))
  22417. (source (origin
  22418. (method git-fetch)
  22419. (uri (git-reference
  22420. (url "https://github.com/google/styleguide")
  22421. (commit commit)))
  22422. (file-name (git-file-name name version))
  22423. (sha256
  22424. (base32
  22425. "1jghyyasdl15c4gaqaxmdn43am63k6bykn5ab83f1ahv9zi1krxk"))))
  22426. (build-system emacs-build-system)
  22427. (home-page "https://github.com/google/styleguide")
  22428. (synopsis "Emacs settings file for Google C/C++ style")
  22429. (description "@code{emacs-google-c-style} provides an Emacs settings
  22430. file for Google C and C++ style.")
  22431. (license license:gpl1+))))
  22432. (define-public emacs-redshank
  22433. (let ((commit "f98e68f532e622bcd464292ca4a9cf5fbea14ebb")
  22434. (revision "1"))
  22435. (package
  22436. (name "emacs-redshank")
  22437. (version (git-version "0.1" revision commit))
  22438. (source (origin
  22439. (method git-fetch)
  22440. (uri (git-reference
  22441. (url "http://www.foldr.org/~michaelw/projects/redshank.git")
  22442. (commit commit)))
  22443. (file-name (git-file-name name version))
  22444. (sha256
  22445. (base32
  22446. "1jdkgvd5xy9hl5q611jwah2n05abjp7qcy9sj4k1z11x0ii62b6p"))))
  22447. (build-system emacs-build-system)
  22448. (propagated-inputs
  22449. `(("emacs-paredit" ,emacs-paredit)))
  22450. (home-page "http://www.foldr.org/~michaelw/emacs/redshank/")
  22451. (synopsis "Common Lisp Editing Extensions (for Emacs)")
  22452. (description "Redshank is a collection of code-wrangling Emacs macros
  22453. mostly geared towards Common Lisp, but some are useful for other Lisp
  22454. dialects, too. Redshank's code transformations aim to be expression-based (as
  22455. opposed to character-based).")
  22456. (license license:gpl1+))))
  22457. (define-public emacs-disk-usage
  22458. (package
  22459. (name "emacs-disk-usage")
  22460. (version "1.3.3")
  22461. (source
  22462. (origin
  22463. (method git-fetch)
  22464. (uri (git-reference
  22465. (url "https://gitlab.com/Ambrevar/emacs-disk-usage")
  22466. (commit version)))
  22467. (file-name (git-file-name name version))
  22468. (sha256
  22469. (base32
  22470. "0hv2gsd8k5fbjgckgiyisq4rn1i7y4rchbjy8kmixjv6mx563bll"))))
  22471. (build-system emacs-build-system)
  22472. (home-page "https://gitlab.com/Ambrevar/emacs-disk-usage")
  22473. (synopsis "Sort and browse disk usage listings with Emacs")
  22474. (description "Disk Usage is a file system analyzer: it offers a tabulated
  22475. view of file listings sorted by size. Directory sizes are computed
  22476. recursively. The results are cached for speed.")
  22477. (license license:gpl3+)))
  22478. (define-public emacs-orgit
  22479. (package
  22480. (name "emacs-orgit")
  22481. (version "1.7.1")
  22482. (home-page "https://github.com/magit/orgit")
  22483. (source (origin
  22484. (method git-fetch)
  22485. (uri (git-reference
  22486. (url home-page)
  22487. (commit (string-append "v" version))))
  22488. (file-name (git-file-name name version))
  22489. (sha256
  22490. (base32
  22491. "0mbcr98xq3zim01dk1fbyc1vajnjwx90k62mygv343rhrd05v44m"))))
  22492. (build-system emacs-build-system)
  22493. (propagated-inputs
  22494. `(("emacs-dash" ,emacs-dash)
  22495. ("emacs-magit" ,emacs-magit)))
  22496. (synopsis "Support for Org links to Magit buffers")
  22497. (description "This package defines several Org link types, which can be
  22498. used to link to certain Magit buffers. Use the command
  22499. @command{org-store-link} while such a buffer is current to store a link.
  22500. Later you can insert it into an Org buffer using the command
  22501. @code{org-insert-link}.")
  22502. (license license:gpl3+)))
  22503. (define-public emacs-amx
  22504. (package
  22505. (name "emacs-amx")
  22506. (version "3.4")
  22507. (source
  22508. (origin
  22509. (method git-fetch)
  22510. (uri (git-reference
  22511. (url "https://github.com/DarwinAwardWinner/amx")
  22512. (commit (string-append "v" version))))
  22513. (file-name (git-file-name name version))
  22514. (sha256
  22515. (base32 "0h1cxqqf0hixh25j679r57bq9dv0b20icf268wbnsim5xp88ngf8"))))
  22516. (build-system emacs-build-system)
  22517. (propagated-inputs
  22518. `(("emacs-s" ,emacs-s)))
  22519. (home-page "https://github.com/DarwinAwardWinner/amx")
  22520. (synopsis "Alternative M-x interface for Emacs")
  22521. (description "Amx is an alternative interface for M-x in Emacs. It
  22522. provides several enhancements over the ordinary
  22523. @code{execute-extended-command}, such as prioritizing your most-used commands
  22524. in the completion list and showing keyboard shortcuts, and it supports several
  22525. completion systems for selecting commands, such as Ido and Ivy.")
  22526. (license license:gpl3+)))
  22527. (define-public emacs-lorem-ipsum
  22528. (let ((commit "4b39f6fed455d67f635b3837cf5668bf74d0f6cd"))
  22529. (package
  22530. (name "emacs-lorem-ipsum")
  22531. (version (git-version "0.2" "1" commit))
  22532. (home-page "https://github.com/jschaf/emacs-lorem-ipsum/")
  22533. (source (origin
  22534. (method git-fetch)
  22535. (uri (git-reference
  22536. (url home-page)
  22537. (commit commit)))
  22538. (file-name (git-file-name name version))
  22539. (sha256
  22540. (base32
  22541. "0a3b18p3vdjci89prsgdzjnfxsl8p67vjhf8ai4qdng7zvh50lir"))))
  22542. (build-system emacs-build-system)
  22543. (synopsis "Insert dummy pseudo Latin text in Emacs")
  22544. (description "This package provides convenience functions to insert
  22545. dummy Latin text into a buffer. This can be useful if you need to produce
  22546. paragraphs or pages of text for testing purposes.")
  22547. (license license:gpl3+))))
  22548. (define-public emacs-lisp-extra-font-lock
  22549. (let ((commit "4605eccbe1a7fcbd3cacf5b71249435413b4db4f"))
  22550. (package
  22551. (name "emacs-lisp-extra-font-lock")
  22552. (version (git-version "0.0.6" "1" commit))
  22553. (home-page "https://github.com/Lindydancer/lisp-extra-font-lock")
  22554. (source (origin
  22555. (method git-fetch)
  22556. (uri (git-reference
  22557. (url home-page)
  22558. (commit commit)))
  22559. (file-name (git-file-name name version))
  22560. (sha256
  22561. (base32
  22562. "152vcp3mdlv33jf5va4rinl1d0k960gnfhbrqqrafazgx9j3ya8w"))))
  22563. (build-system emacs-build-system)
  22564. (synopsis "Highlight bound variables and quoted expressions in Emacs")
  22565. (description "This package highlight the location where local variables
  22566. is created (bound, for example, by let) as well as quoted and backquoted
  22567. constant expressions.")
  22568. (license license:gpl3+))))
  22569. (define-public emacs-docker-tramp
  22570. (package
  22571. (name "emacs-docker-tramp")
  22572. (version "0.1")
  22573. (source
  22574. (origin
  22575. (method git-fetch)
  22576. (uri (git-reference
  22577. (url "https://github.com/emacs-pe/docker-tramp.el")
  22578. (commit (string-append "v" version))))
  22579. (file-name (git-file-name name version))
  22580. (sha256
  22581. (base32
  22582. "0lxvzmfg52fhxrhbvp92zwp7cv4i1rlxnkyyzgngj3sjm7y60yvg"))))
  22583. (build-system emacs-build-system)
  22584. (home-page "https://github.com/emacs-pe/docker-tramp.el")
  22585. (synopsis "TRAMP integration for docker containers")
  22586. (description
  22587. "This package provides a TRAMP method for Docker containers.")
  22588. (license license:gpl3+)))
  22589. (define-public emacs-docker
  22590. (package
  22591. (name "emacs-docker")
  22592. (version "1.3.0")
  22593. (source (origin
  22594. (method git-fetch)
  22595. (uri (git-reference
  22596. (url "https://github.com/Silex/docker.el")
  22597. (commit version)))
  22598. (file-name (git-file-name name version))
  22599. (sha256
  22600. (base32
  22601. "1g8r1faqp0z0vqp9qrl8m84pa0v2ddvc91klphdkfmldwv7rfipw"))))
  22602. (inputs
  22603. `(("emacs-undercover" ,emacs-undercover)))
  22604. (propagated-inputs
  22605. `(("emacs-dash" ,emacs-dash)
  22606. ("emacs-docker-tramp" ,emacs-docker-tramp)
  22607. ("emacs-magit-popup" ,emacs-magit-popup)
  22608. ("emacs-s" ,emacs-s)
  22609. ("emacs-tablist" ,emacs-tablist)
  22610. ("emacs-json-mode" ,emacs-json-mode)))
  22611. (arguments
  22612. `(#:phases
  22613. (modify-phases %standard-phases
  22614. (delete 'check)))) ;no tests
  22615. (build-system emacs-build-system)
  22616. (home-page "https://github.com/Silex/docker.el")
  22617. (synopsis "Manage docker from Emacs")
  22618. (description "This package provides an Emacs interface for Docker.")
  22619. (license license:gpl3+)))
  22620. (define-public emacs-dockerfile-mode
  22621. (package
  22622. (name "emacs-dockerfile-mode")
  22623. (version "1.5")
  22624. (source
  22625. (origin
  22626. (method git-fetch)
  22627. (uri (git-reference
  22628. (url "https://github.com/spotify/dockerfile-mode")
  22629. (commit (string-append "v" version))))
  22630. (file-name (git-file-name name version))
  22631. (sha256
  22632. (base32
  22633. "09pd8mfa45fy95mdg52fsafj3d1d5l52rskmw6q5np59dyzwch1b"))))
  22634. (build-system emacs-build-system)
  22635. (propagated-inputs
  22636. `(("emacs-s" ,emacs-s)))
  22637. (home-page "https://github.com/spotify/dockerfile-mode")
  22638. (synopsis "Major mode for editing Dockerfile")
  22639. (description
  22640. "This package provides a major mode @code{dockerfile-mode} for use with
  22641. the standard @code{Dockerfile} file format.")
  22642. (license license:asl2.0)))
  22643. (define-public emacs-lsp-mode
  22644. (package
  22645. (name "emacs-lsp-mode")
  22646. (version "8.0.0")
  22647. (source
  22648. (origin
  22649. (method git-fetch)
  22650. (uri (git-reference
  22651. (url "https://github.com/emacs-lsp/lsp-mode")
  22652. (commit version)))
  22653. (file-name (git-file-name name version))
  22654. (sha256
  22655. (base32 "1a6jc9sxf9b8fj9h8xlv5k546bkzsy8j5nj19cfama389z0bzcsl"))))
  22656. (build-system emacs-build-system)
  22657. (arguments
  22658. `(#:emacs ,emacs ;need libxml support
  22659. #:phases
  22660. (modify-phases %standard-phases
  22661. (add-after 'unpack 'move-clients-libraries
  22662. ;; Move all clients libraries at top-level, as is done, e.g., in
  22663. ;; MELPA.
  22664. (lambda _
  22665. (for-each (lambda (f)
  22666. (install-file f "."))
  22667. (find-files "clients/" "\\.el$")))))))
  22668. (propagated-inputs
  22669. `(("emacs-dash" ,emacs-dash)
  22670. ("emacs-f" ,emacs-f)
  22671. ("emacs-ht" ,emacs-ht)
  22672. ("emacs-hydra" ,emacs-hydra)
  22673. ("emacs-markdown-mode" ,emacs-markdown-mode)
  22674. ("emacs-spinner" ,emacs-spinner)))
  22675. (home-page "https://emacs-lsp.github.io/lsp-mode/")
  22676. (synopsis "Emacs client and library for the Language Server Protocol")
  22677. (description
  22678. "LSP mode is a client and library implementation for the Language Server
  22679. Protocol. This mode creates an IDE-like experience by providing optional
  22680. integration with other popular Emacs packages like Company, Flycheck, and
  22681. Projectile.")
  22682. (license license:gpl3+)))
  22683. (define-public emacs-lsp-treemacs
  22684. (package
  22685. (name "emacs-lsp-treemacs")
  22686. (version "0.4")
  22687. (source
  22688. (origin
  22689. (method git-fetch)
  22690. (uri (git-reference
  22691. (url "https://github.com/emacs-lsp/lsp-treemacs")
  22692. (commit version)))
  22693. (file-name (git-file-name name version))
  22694. (sha256
  22695. (base32 "05ivqa5900139jzjhwc3nggwznhm8564dz4ydcxym2ddd63571k0"))))
  22696. (build-system emacs-build-system)
  22697. (propagated-inputs
  22698. `(("emacs-lsp-mode" ,emacs-lsp-mode)
  22699. ("emacs-treemacs" ,emacs-treemacs)))
  22700. (home-page "https://github.com/emacs-lsp/lsp-treemacs")
  22701. (synopsis "Integration between LSP mode and treemacs")
  22702. (description
  22703. "This package provides integration between LSP mode and treemacs,
  22704. and implementation of treeview controls using treemacs as a tree renderer.")
  22705. (license license:gpl3+)))
  22706. (define-public emacs-dap-mode
  22707. (package
  22708. (name "emacs-dap-mode")
  22709. (version "0.7")
  22710. (source
  22711. (origin
  22712. (method git-fetch)
  22713. (uri (git-reference
  22714. (url "https://github.com/emacs-lsp/dap-mode")
  22715. (commit version)))
  22716. (file-name (git-file-name name version))
  22717. (sha256
  22718. (base32 "1zczmcv8562lachkvcwy6njn7zkgny08iznpmrx821wr8mh52wnn"))))
  22719. (build-system emacs-build-system)
  22720. (propagated-inputs
  22721. `(("emacs-bui" ,emacs-bui)
  22722. ("emacs-lsp-mode" ,emacs-lsp-mode)
  22723. ("emacs-posframe" ,emacs-posframe)
  22724. ("emacs-lsp-treemacs" ,emacs-lsp-treemacs)))
  22725. (home-page "https://emacs-lsp.github.io/dap-mode")
  22726. (synopsis "Emacs client/library for Debug Adapter Protocol ")
  22727. (description
  22728. "Dap mode is an Emacs client/library for Debug Adapter
  22729. Protocol (DAP), a wire protocol for communication between client and
  22730. debug server. It is similar to the LSP but provides integration with
  22731. Debug server.")
  22732. (license license:gpl3+)))
  22733. (define-public emacs-pfuture
  22734. (package
  22735. (name "emacs-pfuture")
  22736. (version "1.9")
  22737. (source (origin
  22738. (method git-fetch)
  22739. (uri (git-reference
  22740. (url "https://github.com/Alexander-Miller/pfuture")
  22741. (commit version)))
  22742. (file-name (git-file-name name version))
  22743. (sha256
  22744. (base32
  22745. "1chpin5277vbl2xvsl04pzzk7a9dbcvclibm2496gz6yvd19pwsf"))))
  22746. (build-system emacs-build-system)
  22747. (home-page
  22748. "https://github.com/Alexander-Miller/pfuture")
  22749. (synopsis "Simple wrapper around asynchronous processes for Emacs")
  22750. (description "This package provides a simple wrapper around asynchronous
  22751. processes for Emacs")
  22752. (license license:gpl3+)))
  22753. (define-public emacs-treemacs
  22754. (package
  22755. (name "emacs-treemacs")
  22756. (version "2.8")
  22757. (source (origin
  22758. (method git-fetch)
  22759. (uri (git-reference
  22760. (url "https://github.com/Alexander-Miller/treemacs")
  22761. (commit version)))
  22762. (file-name (git-file-name name version))
  22763. (sha256
  22764. (base32
  22765. "0m083g3pg0n4ymi1w0jx34awr7cqbm4r561adij9kklblxsz7sc2"))))
  22766. (build-system emacs-build-system)
  22767. (propagated-inputs
  22768. `(("emacs-ace-window" ,emacs-ace-window)
  22769. ("emacs-dash" ,emacs-dash)
  22770. ("emacs-f" ,emacs-f)
  22771. ("emacs-ht" ,emacs-ht)
  22772. ("emacs-hydra" ,emacs-hydra)
  22773. ("emacs-pfuture" ,emacs-pfuture)
  22774. ("emacs-s" ,emacs-s)))
  22775. (native-inputs
  22776. `(("emacs-buttercup" ,emacs-buttercup)
  22777. ("emacs-el-mock" ,emacs-el-mock)))
  22778. (inputs
  22779. `(("python" ,python)))
  22780. (arguments
  22781. `(#:tests? #t
  22782. #:phases
  22783. (modify-phases %standard-phases
  22784. (add-after 'unpack 'fix-makefile
  22785. (lambda _
  22786. (substitute* "Makefile"
  22787. (("@\\$\\(CASK\\) exec ") "")
  22788. ;; Guix does not need to prepare dependencies before testing.
  22789. (("test: prepare") "test:"))
  22790. #t))
  22791. (add-after 'fix-makefile 'chdir-elisp
  22792. ;; Elisp directory is not in root of the source.
  22793. (lambda _
  22794. (chdir "src/elisp")))
  22795. (replace 'check
  22796. ;; FIXME: Work around ‘treemacs--parse-collapsed-dirs’ and
  22797. ;; `treemacs-collect-child-nodes' test failures.
  22798. (lambda _
  22799. (with-directory-excursion "../.." ;treemacs root
  22800. (chmod "test/test-treemacs.el" #o644)
  22801. (emacs-substitute-sexps "test/test-treemacs.el"
  22802. ("(describe \"treemacs--parse-collapsed-dirs\"" "")
  22803. ("\"Finds only direct childre\"" ""))
  22804. (invoke "make" "test"))))
  22805. (add-before 'install 'patch-paths
  22806. (lambda* (#:key inputs outputs #:allow-other-keys)
  22807. (with-directory-excursion "../.." ;treemacs root
  22808. (chmod "src/elisp/treemacs-core-utils.el" #o644)
  22809. (emacs-substitute-variables "src/elisp/treemacs-core-utils.el"
  22810. ("treemacs-dir"
  22811. (string-append (assoc-ref outputs "out") "/")))
  22812. (chmod "src/elisp/treemacs-icons.el" #o644)
  22813. (substitute* "src/elisp/treemacs-icons.el"
  22814. (("icons/default") "share/emacs-treemacs/images"))
  22815. (chmod "src/elisp/treemacs-customization.el" #o644)
  22816. (emacs-substitute-variables "src/elisp/treemacs-customization.el"
  22817. ("treemacs-python-executable"
  22818. (search-input-file inputs "/bin/python3")))
  22819. (chmod "src/elisp/treemacs-async.el" #o644)
  22820. (substitute* "src/elisp/treemacs-async.el"
  22821. (("src/scripts") (string-append "share/" ,name "/scripts"))))
  22822. #t))
  22823. (add-after 'install 'install-data
  22824. (lambda* (#:key outputs #:allow-other-keys)
  22825. (let ((out (assoc-ref outputs "out")))
  22826. (with-directory-excursion "../.." ;treemacs root
  22827. (copy-recursively "icons/default"
  22828. (string-append out "/share/" ,name "/images"))
  22829. (copy-recursively
  22830. "src/scripts"
  22831. (string-append out "/share/" ,name "/scripts"))
  22832. #t)))))))
  22833. (home-page "https://github.com/Alexander-Miller/treemacs")
  22834. (synopsis "Emacs tree style file explorer")
  22835. (description
  22836. "Treemacs is a file and project explorer similar to NeoTree or Vim's
  22837. NerdTree, but largely inspired by the Project Explorer in Eclipse. It shows
  22838. the file system outlines of your projects in a simple tree layout allowing
  22839. quick navigation and exploration, while also possessing basic file management
  22840. utilities.")
  22841. (license license:gpl3+)))
  22842. (define-public emacs-treemacs-extra
  22843. (package
  22844. (inherit emacs-treemacs)
  22845. (name "emacs-treemacs-extra")
  22846. (propagated-inputs
  22847. `(,@(package-propagated-inputs emacs-treemacs)
  22848. ("emacs-evil" ,emacs-evil)
  22849. ("emacs-magit" ,emacs-magit)
  22850. ("emacs-projectile" ,emacs-projectile)
  22851. ("emacs-persp-mode" ,emacs-persp-mode)))
  22852. (arguments
  22853. (substitute-keyword-arguments
  22854. (package-arguments emacs-treemacs)
  22855. ((#:phases phases)
  22856. `(modify-phases ,phases
  22857. (add-after 'chdir-elisp 'copy-extra
  22858. (lambda _
  22859. (copy-recursively "../extra" ".")))))))))
  22860. (define-public emacs-libyaml
  22861. ;; Upstream made no release so far.
  22862. (let ((version "0")
  22863. (revision "1")
  22864. (commit "703e0d448c7ee24e25b513a3c65980c80e166805"))
  22865. (package
  22866. (name "emacs-libyaml")
  22867. (version (git-version version revision commit))
  22868. (source
  22869. (origin
  22870. (method git-fetch)
  22871. (uri (git-reference
  22872. (url "https://github.com/syohex/emacs-libyaml")
  22873. (commit commit)))
  22874. (file-name (git-file-name name version))
  22875. (sha256
  22876. (base32 "08l7pm9v50ykd3fkbm0bh2kcd57cadbc5i9r6rj51vd32w3pl2yl"))))
  22877. (build-system emacs-build-system)
  22878. (arguments
  22879. `(#:tests? #f ;no test
  22880. #:modules ((guix build emacs-build-system)
  22881. (guix build emacs-utils)
  22882. (guix build utils))
  22883. #:imported-modules (,@%emacs-build-system-modules
  22884. (guix build gnu-build-system))
  22885. #:phases
  22886. (modify-phases %standard-phases
  22887. (add-after 'unpack 'substitute-libyaml-core-path
  22888. (lambda* (#:key outputs #:allow-other-keys)
  22889. (chmod "libyaml.el" #o644)
  22890. (substitute* "libyaml.el"
  22891. (("^\\(require 'libyaml-core\\)")
  22892. (string-append "(module-load \"" (assoc-ref outputs "out")
  22893. "/lib/libyaml-core.so\")")))
  22894. #t))
  22895. (add-after 'check 'make
  22896. ;; Run make.
  22897. (lambda* (#:key (make-flags '()) outputs #:allow-other-keys)
  22898. ;; Compile the shared object file.
  22899. (apply invoke "make" "all" "CPPFLAGS=" make-flags)
  22900. ;; Move the file into /lib.
  22901. (install-file "libyaml-core.so"
  22902. (string-append (assoc-ref outputs "out") "/lib"))
  22903. #t)))))
  22904. (native-inputs `(("libyaml" ,libyaml)))
  22905. (home-page "https://github.com/syohex/emacs-libyaml")
  22906. (synopsis "Libyaml bindings for Emacs")
  22907. (description
  22908. "This package implements bindings for LibYAML to be able to parse YAML
  22909. files in Elisp.")
  22910. (license license:gpl3+))))
  22911. (define-public emacs-lsp-java
  22912. (package
  22913. (name "emacs-lsp-java")
  22914. (version "3.1")
  22915. (source (origin
  22916. (method git-fetch)
  22917. (uri (git-reference
  22918. (url "https://github.com/emacs-lsp/lsp-java")
  22919. (commit version)))
  22920. (file-name (git-file-name name version))
  22921. (sha256
  22922. (base32
  22923. "1h0hqgjpk5mbylma1fkva0vx45achf0k7ab2c5y8a2449niww90h"))))
  22924. (build-system emacs-build-system)
  22925. (propagated-inputs
  22926. `(("emacs-dap-mode" ,emacs-dap-mode)
  22927. ("emacs-lsp-mode" ,emacs-lsp-mode)
  22928. ("emacs-markdown-mode" ,emacs-markdown-mode)
  22929. ("emacs-dash" ,emacs-dash)
  22930. ("emacs-f" ,emacs-f)
  22931. ("emacs-ht" ,emacs-ht)
  22932. ("emacs-request" ,emacs-request)
  22933. ("emacs-treemacs" ,emacs-treemacs)))
  22934. (home-page "https://github.com/emacs-lsp/lsp-java/")
  22935. (synopsis "Java support for lsp-mode")
  22936. (description "Emacs Java IDE using Eclipse JDT Language Server.")
  22937. (license license:gpl3+)))
  22938. (define-public emacs-lsp-ui
  22939. (package
  22940. (name "emacs-lsp-ui")
  22941. (version "8.0.0")
  22942. (source (origin
  22943. (method git-fetch)
  22944. (uri (git-reference
  22945. (url "https://github.com/emacs-lsp/lsp-ui")
  22946. (commit version)))
  22947. (file-name (git-file-name name version))
  22948. (sha256
  22949. (base32
  22950. "00yirx6qzlb8fv8rd53zaw93nw72z3br40rb16scdqj1v20qsp47"))))
  22951. (build-system emacs-build-system)
  22952. (propagated-inputs
  22953. `(("emacs-dash" ,emacs-dash)
  22954. ("emacs-lsp-mode" ,emacs-lsp-mode)
  22955. ("emacs-markdown-mode" ,emacs-markdown-mode)
  22956. ("emacs-flycheck" ,emacs-flycheck)))
  22957. (home-page "https://github.com/emacs-lsp/lsp-ui")
  22958. (synopsis "User interface extensions for @code{lsp-mode}")
  22959. (description
  22960. "@code{LSP-ui} contains several enhancements and integrations for
  22961. @code{lsp-mode}, such as visual flychecking, displaying references in-line,
  22962. and code peeking.")
  22963. (license license:gpl3+)))
  22964. (define-public emacs-lsp-lua-emmy
  22965. (let ((commit "ab53fb2a8b8942804eb75bab5624fd19f1d360bf"))
  22966. (package
  22967. (name "emacs-lsp-lua-emmy")
  22968. (version (git-version "0.1.0" "1" commit))
  22969. (source (origin
  22970. (method git-fetch)
  22971. (uri (git-reference
  22972. (url "https://github.com/phenix3443/lsp-lua-emmy")
  22973. (commit commit)))
  22974. (file-name (git-file-name name version))
  22975. (sha256
  22976. (base32
  22977. "0rbizis73n1w5ig07fj1han74chbc1zpbp5bn37rj0gz608aqka8"))))
  22978. (build-system emacs-build-system)
  22979. (propagated-inputs
  22980. `(("emacs-lsp-mode" ,emacs-lsp-mode)))
  22981. (home-page "https://github.com/phenix3443/lsp-lua-emmy/")
  22982. (synopsis "Lua support in @code{lsp-mode} client for Emacs")
  22983. (description "This package provides a Lua language support in
  22984. @code{lsp-mode} client for Emacs.")
  22985. (license license:gpl3+))))
  22986. (define-public emacs-lsp-ivy
  22987. (package
  22988. (name "emacs-lsp-ivy")
  22989. (version "0.5")
  22990. (source
  22991. (origin
  22992. (method git-fetch)
  22993. (uri (git-reference
  22994. (url "https://github.com/emacs-lsp/lsp-ivy")
  22995. (commit version)))
  22996. (file-name (git-file-name name version))
  22997. (sha256
  22998. (base32 "0nb9ypa8hyx7i38rbywh8hn2i5f9l2l567hvdr9767fk279yr97n"))))
  22999. (build-system emacs-build-system)
  23000. (propagated-inputs
  23001. `(("emacs-dash" ,emacs-dash)
  23002. ("emacs-ivy" ,emacs-ivy)
  23003. ("emacs-lsp-mode" ,emacs-lsp-mode)))
  23004. (home-page "https://github.com/emacs-lsp/lsp-ivy")
  23005. (synopsis "Provide LSP-enhanced completion for symbols")
  23006. (description
  23007. "This package enhances @code{ivy} with completion for symbols from
  23008. workspaces with a LSP-compliant server running.")
  23009. (license license:gpl3+)))
  23010. (define-public emacs-helm-lsp
  23011. (package
  23012. (name "emacs-helm-lsp")
  23013. (version "0.2")
  23014. (source (origin
  23015. (method git-fetch)
  23016. (uri (git-reference
  23017. (url "https://github.com/emacs-lsp/helm-lsp")
  23018. (commit version)))
  23019. (file-name (git-file-name name version))
  23020. (sha256
  23021. (base32
  23022. "1vq3qpqm3ndqyvf5bk8qhqcr60x9ykc0ipk2a43rr3yjm4z1b6s9"))))
  23023. (build-system emacs-build-system)
  23024. (propagated-inputs
  23025. `(("emacs-helm" ,emacs-helm)
  23026. ("emacs-lsp-mode" ,emacs-lsp-mode)
  23027. ("emacs-dash" ,emacs-dash)))
  23028. (home-page "https://github.com/emacs-lsp/helm-lsp")
  23029. (synopsis "Provide LSP-enhanced completion for symbols")
  23030. (description
  23031. "This package enhances @code{helm} with completion for symbols from
  23032. workspaces with a LSP-compliant server running.")
  23033. (license license:gpl3+)))
  23034. (define-public emacs-helm-notmuch
  23035. (package
  23036. (name "emacs-helm-notmuch")
  23037. (version "1.2")
  23038. (home-page "https://github.com/emacs-helm/helm-notmuch/")
  23039. (source (origin
  23040. (method git-fetch)
  23041. (uri (git-reference
  23042. (url home-page)
  23043. (commit version)))
  23044. (file-name (git-file-name name version))
  23045. (sha256
  23046. (base32
  23047. "1k038dbdpaa411gl4071x19fklhnizhr346plxw23lsnxir9dhqc"))))
  23048. (build-system emacs-build-system)
  23049. (propagated-inputs
  23050. `(("emacs-helm" ,emacs-helm)
  23051. ("emacs-notmuch" ,emacs-notmuch)))
  23052. (synopsis "Search emails with Emacs Notmuch and Helm")
  23053. (description
  23054. "This package can be used to search emails in Emacs, searching result
  23055. displays as you type thanks to Helm, though @command{notmuch-search} does the
  23056. real search.")
  23057. (license license:gpl3+)))
  23058. (define-public emacs-notmuch-maildir
  23059. (package
  23060. (name "emacs-notmuch-maildir")
  23061. (version "0.2.0")
  23062. (source (origin
  23063. (method git-fetch)
  23064. (uri (git-reference
  23065. (url "https://git.sr.ht/~tarsius/notmuch-maildir")
  23066. (commit (string-append "v" version))))
  23067. (file-name (git-file-name name version))
  23068. (sha256
  23069. (base32
  23070. "0pmikf1djkr07067nkgmdcxyn7l7ibswx6qlnai8v1v51f9h1g9q"))))
  23071. (build-system emacs-build-system)
  23072. (propagated-inputs
  23073. `(("emacs-notmuch" ,emacs-notmuch)))
  23074. (home-page "https://git.sr.ht/~tarsius/notmuch-maildir")
  23075. (synopsis "Visualize maildirs as a tree")
  23076. (description
  23077. "This package can visualize maildirs hierarchically in Notmuch's ``hello
  23078. buffer''.")
  23079. (license license:gpl3+)))
  23080. (define-public emacs-elmacro
  23081. (package
  23082. (name "emacs-elmacro")
  23083. (version "1.1.1")
  23084. (home-page "https://github.com/Silex/elmacro")
  23085. (source (origin
  23086. (method git-fetch)
  23087. (uri (git-reference
  23088. (url home-page)
  23089. (commit version)))
  23090. (file-name (git-file-name name version))
  23091. (sha256
  23092. (base32
  23093. "1x4wnsshf9h10mp51x92vs5rxw5had4gmw6zz4f53czx1ymcv16a"))))
  23094. (build-system emacs-build-system)
  23095. (propagated-inputs
  23096. `(("emacs-s" ,emacs-s)
  23097. ("emacs-dash" ,emacs-dash)))
  23098. (synopsis "Convert keyboard macros to Emacs Lisp")
  23099. (description
  23100. "This package displays keyboard macros or latest interactive commands
  23101. as Emacs Lisp.")
  23102. (license license:gpl3+)))
  23103. (define-public emacs-transient
  23104. (package
  23105. (name "emacs-transient")
  23106. (version "0.3.6")
  23107. (source (origin
  23108. (method git-fetch)
  23109. (uri (git-reference
  23110. (url "https://github.com/magit/transient")
  23111. (commit (string-append "v" version))))
  23112. (file-name (git-file-name name version))
  23113. (sha256
  23114. (base32
  23115. "10k9dzs8y6i0rfckclxm5n3maylmh95993n5dvrs8rbmlcpmihvy"))))
  23116. (build-system emacs-build-system)
  23117. (arguments
  23118. `(#:tests? #f ;no test suite
  23119. #:phases
  23120. (modify-phases %standard-phases
  23121. (add-after 'unpack 'build-info-manual
  23122. (lambda _
  23123. (invoke "make" "info")
  23124. ;; Move the info file to lisp so that it gets installed by the
  23125. ;; emacs-build-system.
  23126. (rename-file "docs/transient.info" "lisp/transient.info")))
  23127. (add-after 'build-info-manual 'enter-lisp-directory
  23128. (lambda _
  23129. (chdir "lisp"))))))
  23130. (native-inputs
  23131. `(("texinfo" ,texinfo)))
  23132. (propagated-inputs
  23133. `(("dash" ,emacs-dash)))
  23134. (home-page "https://magit.vc/manual/transient")
  23135. (synopsis "Transient commands in Emacs")
  23136. (description "Taking inspiration from prefix keys and prefix arguments
  23137. in Emacs, Transient implements a similar abstraction involving a prefix
  23138. command, infix arguments and suffix commands. We could call this abstraction
  23139. a \"transient command\", but because it always involves at least two
  23140. commands (a prefix and a suffix) we prefer to call it just a \"transient\".")
  23141. (license license:gpl3+)))
  23142. (define-public emacs-forge
  23143. (package
  23144. (name "emacs-forge")
  23145. (version "0.2.1")
  23146. (source
  23147. (origin
  23148. (method git-fetch)
  23149. (uri (git-reference
  23150. (url "https://github.com/magit/forge")
  23151. (commit (string-append "v" version))))
  23152. (file-name (git-file-name name version))
  23153. (sha256
  23154. (base32
  23155. "0j28vc0q1h36pk0y2nidnlsc2y7n0vpfrd8civiv1zp8z0jwfyc9"))))
  23156. (build-system emacs-build-system)
  23157. (native-inputs
  23158. `(("texinfo" ,texinfo)))
  23159. (propagated-inputs
  23160. `(("emacs-closql" ,emacs-closql)
  23161. ("emacs-dash" ,emacs-dash)
  23162. ("emacs-emacsql-sqlite" ,emacs-emacsql)
  23163. ("emacs-ghub" ,emacs-ghub)
  23164. ("emacs-let-alist" ,emacs-let-alist)
  23165. ("emacs-magit" ,emacs-magit)
  23166. ("emacs-markdown-mode" ,emacs-markdown-mode)
  23167. ("emacs-transient" ,emacs-transient)))
  23168. (arguments
  23169. `(#:tests? #f ;no tests
  23170. #:phases
  23171. (modify-phases %standard-phases
  23172. (add-after 'unpack 'build-info-manual
  23173. (lambda _
  23174. (invoke "make" "info")
  23175. ;; Move the info file to lisp so that it gets installed by the
  23176. ;; emacs-build-system.
  23177. (rename-file "docs/forge.info" "lisp/forge.info")))
  23178. (add-after 'build-info-manual 'chdir-lisp
  23179. (lambda _
  23180. (chdir "lisp"))))))
  23181. (home-page "https://github.com/magit/forge/")
  23182. (synopsis "Access Git forges from Magit")
  23183. (description "Work with Git forges, such as Github and Gitlab, from the
  23184. comfort of Magit and the rest of Emacs.")
  23185. (license license:gpl3+)))
  23186. (define-public emacs-matcha
  23187. (let ((commit "c7df5cf5cdac9ae369e241342389ccda0205eab9"))
  23188. (package
  23189. (name "emacs-matcha")
  23190. (version (git-version "0.0.1" "1" commit)) ;no upstream release
  23191. (source (origin
  23192. (method git-fetch)
  23193. (uri (git-reference
  23194. (url "https://github.com/jojojames/matcha")
  23195. (commit commit)))
  23196. (file-name (git-file-name name version))
  23197. (sha256
  23198. (base32
  23199. "1lfnh1glg6al677m7ci0x8g5wjdhjxlfl3nv1f1ppsw4dpnwsj9b"))))
  23200. (propagated-inputs
  23201. `(("emacs-hydra" ,emacs-hydra)
  23202. ("emacs-transient" ,emacs-transient)))
  23203. (build-system emacs-build-system)
  23204. (home-page "https://github.com/jojojames/matcha/")
  23205. (synopsis "Collection of hydras with a generic interface to launch them")
  23206. (description "Matcha provides a collection of transients for various
  23207. packages with a consistent way to use them.")
  23208. (license license:gpl3+))))
  23209. (define-public emacs-undo-propose-el
  23210. (let ((commit "f80baee566807d733fbacbab08a897bcd62579c3")
  23211. (revision "3"))
  23212. (package
  23213. (name "emacs-undo-propose-el")
  23214. (version (git-version "3.0.0" revision commit))
  23215. (source
  23216. (origin
  23217. (method git-fetch)
  23218. (uri (git-reference
  23219. (url "https://github.com/jackkamm/undo-propose-el")
  23220. (commit commit)))
  23221. (file-name (git-file-name name version))
  23222. (sha256
  23223. (base32
  23224. "00rqz63bhh66q78l646q3w16gydygj8h4d8np0dpbifgzciak90b"))))
  23225. (build-system emacs-build-system)
  23226. (arguments
  23227. `(#:tests? #t
  23228. #:test-command '("make" "test")))
  23229. (home-page "https://github.com/jackkamm/undo-propose-el")
  23230. (synopsis "Simple and safe navigation of @code{undo} history")
  23231. (description "This package permits navigation of @code{undo} history in a
  23232. temporary buffer, which is read-only save for @code{undo} commands, and
  23233. subsequent committal of a chain of @code{undo} commands as a single edit in
  23234. the @code{undo} history.")
  23235. (license license:gpl3+))))
  23236. (define-public emacs-elisp-docstring-mode
  23237. (let ((commit "f512e509dd690f65133e55563ebbfd2dede5034f")
  23238. (version "0.0.1")
  23239. (revision "1"))
  23240. (package
  23241. (name "emacs-elisp-docstring-mode")
  23242. (version (git-version version revision commit))
  23243. (source
  23244. (origin
  23245. (method git-fetch)
  23246. (uri (git-reference
  23247. (url "https://github.com/Fuco1/elisp-docstring-mode")
  23248. (commit commit)))
  23249. (file-name (git-file-name name version))
  23250. (sha256
  23251. (base32
  23252. "0al8m75p359h4n82rf0dsl22qfdg9cwwywn5pn7x6gb96c7qrqaa"))))
  23253. (build-system emacs-build-system)
  23254. (home-page "https://github.com/Fuco1/elisp-docstring-mode")
  23255. (synopsis "Major mode for editing Emacs Lisp docstrings")
  23256. (description "This package provides font lock and automatic escaping and
  23257. unescaping of quotes.")
  23258. (license license:gpl3+))))
  23259. (define-public emacs-vimrc-mode
  23260. (let ((commit "13bc150a870d5d4a95f1111e4740e2b22813c30e")
  23261. (version "0.3.1")
  23262. (revision "1"))
  23263. (package
  23264. (name "emacs-vimrc-mode")
  23265. (version (git-version version revision commit))
  23266. (source
  23267. (origin
  23268. (method git-fetch)
  23269. (uri (git-reference
  23270. (url "https://github.com/mcandre/vimrc-mode")
  23271. (commit commit)))
  23272. (file-name (git-file-name name version))
  23273. (sha256
  23274. (base32
  23275. "0026dqs3hwygk2k2xfra90w5sfnxrfj7l69jz7sq5glavbf340pk"))))
  23276. (build-system emacs-build-system)
  23277. (home-page "https://github.com/mcandre/vimrc-mode")
  23278. (synopsis "Major mode for Vimscript")
  23279. (description "This package provides font lock and @code{beginning-} and
  23280. @code{end-of-defun} functions for Vimscript files.")
  23281. (license license:gpl3+))))
  23282. (define-public emacs-flycheck-elm
  23283. (let ((revision "0")
  23284. (commit "1b60050efd4729bfba548f3e5adbcb58436667cb"))
  23285. (package
  23286. (name "emacs-flycheck-elm")
  23287. (version (git-version "0" revision commit))
  23288. (source
  23289. (origin
  23290. (method git-fetch)
  23291. (uri
  23292. (git-reference
  23293. (url "https://github.com/bsermons/flycheck-elm")
  23294. (commit commit)))
  23295. (file-name (git-file-name name version))
  23296. (sha256
  23297. (base32 "1kjms9d2c98ffd1qxs879qhg0n4jzic0r5kni9y4gz3v09ww8zms"))))
  23298. (build-system emacs-build-system)
  23299. (propagated-inputs
  23300. `(("emacs-flycheck" ,emacs-flycheck)
  23301. ("emacs-let-alist" ,emacs-let-alist)))
  23302. (home-page "https://github.com/bsermons/flycheck-elm")
  23303. (synopsis "Flycheck support for the Elm language")
  23304. (description "Flycheck Elm adds Flycheck support for Elm language.")
  23305. (license license:gpl3+))))
  23306. (define-public emacs-flycheck-haskell
  23307. (let ((commit "32ddff87165a7d3a35e7318bee997b5b4bd41278")
  23308. (revision "2"))
  23309. (package
  23310. (name "emacs-flycheck-haskell")
  23311. (version (git-version "0.8" revision commit))
  23312. (source
  23313. (origin
  23314. (method git-fetch)
  23315. (uri (git-reference
  23316. (url "https://github.com/flycheck/flycheck-haskell")
  23317. (commit commit)))
  23318. (file-name (git-file-name name version))
  23319. (sha256
  23320. (base32
  23321. "10pgsbagq6qj4mshq5sypv0q0khck92b30sc793b4g1pfpsxvgjn"))))
  23322. (build-system emacs-build-system)
  23323. (propagated-inputs
  23324. `(("emacs-dash" ,emacs-dash)
  23325. ("emacs-flycheck" ,emacs-flycheck)
  23326. ("emacs-haskell-mode" ,emacs-haskell-mode)
  23327. ("emacs-let-alist" ,emacs-let-alist)))
  23328. (arguments
  23329. `(#:include '("\\.el$" "\\.hs$")))
  23330. (home-page "https://github.com/flycheck/flycheck-haskell")
  23331. (synopsis "Flycheck for Haskell")
  23332. (description "This package configures syntax-checking for Haskell
  23333. buffers.")
  23334. (license license:gpl3+))))
  23335. (define-public emacs-js2-refactor-el
  23336. (let ((commit "d4c40b5fc86d3edd7c6a7d83ac86483ee1cb7a28")
  23337. (revision "2"))
  23338. (package
  23339. (name "emacs-js2-refactor-el")
  23340. (version (git-version "0.9.0" revision commit))
  23341. (source
  23342. (origin
  23343. (method git-fetch)
  23344. (uri (git-reference
  23345. (url "https://github.com/magnars/js2-refactor.el")
  23346. (commit commit)))
  23347. (file-name (git-file-name name version))
  23348. (sha256
  23349. (base32
  23350. "08b25y3raz0p98zxk9xdd8nj9shqd6mzrqhbq1gg4cwsmi7h7ly1"))))
  23351. (build-system emacs-build-system)
  23352. (propagated-inputs
  23353. `(("emacs-dash" ,emacs-dash)
  23354. ("emacs-s" ,emacs-s)
  23355. ("emacs-js2-mode" ,emacs-js2-mode)
  23356. ("emacs-yasnippet" ,emacs-yasnippet)
  23357. ("emacs-multiple-cursors" ,emacs-multiple-cursors)))
  23358. (native-inputs
  23359. `(("emacs-buttercup" ,emacs-buttercup)
  23360. ("emacs-espuds" ,emacs-espuds)))
  23361. (home-page "https://github.com/magnars/js2-refactor.el")
  23362. (synopsis "JavaScript refactoring in Emacs")
  23363. (description "This package provides various refactoring functions for
  23364. JavaScript.")
  23365. (license license:gpl3+))))
  23366. (define-public emacs-prettier
  23367. (let ((commit "e9b73e81d3e1642aec682195f127a42dfb0b5774")
  23368. (version "0.1.0")
  23369. (revision "1"))
  23370. (package
  23371. (name "emacs-prettier")
  23372. (version (git-version version revision commit))
  23373. (source
  23374. (origin
  23375. (method git-fetch)
  23376. (uri (git-reference
  23377. (url "https://github.com/prettier/prettier-emacs")
  23378. (commit commit)))
  23379. (file-name (git-file-name name version))
  23380. (sha256
  23381. (base32
  23382. "0hj4fv3fgc60i6jrsx4a81s5c9fsxxafhhs3q2q1dypsscjci9ph"))))
  23383. (build-system emacs-build-system)
  23384. (home-page "https://github.com/prettier/prettier-emacs")
  23385. (synopsis "Automatic formatting of JavaScript code")
  23386. (description "This package integrates Prettier with Emacs, and
  23387. provides a minor mode that autoformats the buffer upon saving.")
  23388. (license license:expat))))
  23389. (define-public emacs-fish-mode
  23390. (package
  23391. (name "emacs-fish-mode")
  23392. (version "0.1.6")
  23393. (source
  23394. (origin
  23395. (method git-fetch)
  23396. (uri (git-reference
  23397. (url "https://github.com/wwwjfy/emacs-fish")
  23398. (commit version)))
  23399. (file-name (git-file-name name version))
  23400. (sha256
  23401. (base32
  23402. "1spxxkji9xa930sbwvzyjm8jrqk9ra0xqhivw7zd12a4c56nhna9"))))
  23403. (build-system emacs-build-system)
  23404. (home-page "https://github.com/wwwjfy/emacs-fish")
  23405. (synopsis "Major mode for Fish shell scripts")
  23406. (description "This package provides syntax highlighting and indentation
  23407. functions for Fish shell scripts.")
  23408. (license license:gpl3+)))
  23409. (define-public emacs-eshell-up
  23410. (let ((commit "9c100bae5c3020e8d9307e4332d3b64e7dc28519")
  23411. (version "0.0.3")
  23412. (revision "12"))
  23413. (package
  23414. (name "emacs-eshell-up")
  23415. (version (git-version version revision commit))
  23416. (source
  23417. (origin
  23418. (method git-fetch)
  23419. (uri (git-reference
  23420. (url "https://github.com/peterwvj/eshell-up")
  23421. (commit commit)))
  23422. (file-name (git-file-name name version))
  23423. (sha256
  23424. (base32
  23425. "00zdbcncjabgj5mp47l1chymx5na18v2g4kj730dgmj3rnl3iz2q"))))
  23426. (build-system emacs-build-system)
  23427. (home-page "https://github.com/peterwvj/eshell-up")
  23428. (synopsis "Quickly go to a parent directory in @code{Eshell}")
  23429. (description "This package provides quick navigation to a specific
  23430. parent directory using @code{Eshell}.")
  23431. (license license:gpl3+))))
  23432. (define-public emacs-springboard
  23433. ;; Upstream provides no tag. Using the latest commit. Version is extracted
  23434. ;; from "Version:" keyword.
  23435. (let ((commit "687d1e5898a880878995dc9bffe93b4598366203")
  23436. (version "1.0")
  23437. (revision "1"))
  23438. (package
  23439. (name "emacs-springboard")
  23440. (version (git-version version revision commit))
  23441. (source
  23442. (origin
  23443. (method git-fetch)
  23444. (uri (git-reference
  23445. (url "https://github.com/jwiegley/springboard")
  23446. (commit commit)))
  23447. (file-name (git-file-name name version))
  23448. (sha256
  23449. (base32 "0fn8c4hqblfjvcpg68kj2dmdjqsdnxddqbzgvakl43zckjg8pi01"))))
  23450. (build-system emacs-build-system)
  23451. (propagated-inputs
  23452. `(("emacs-helm" ,emacs-helm)
  23453. ("emacs-ivy" ,emacs-ivy)))
  23454. (home-page "https://github.com/jwiegley/springboard")
  23455. (synopsis "Change the Emacs default directory quickly")
  23456. (description
  23457. "This Emacs package provides a quick way to change the default
  23458. directory for only the next invoked command. The directory selection can be
  23459. done using Helm, Ido or Ivy.")
  23460. (license license:gpl2+))))
  23461. (define-public emacs-tco-el
  23462. (let ((commit "482db5313f090b17ed22ccd856f0e141dc75afe6")
  23463. (revision "1"))
  23464. (package
  23465. (name "emacs-tco-el")
  23466. (version (git-version "0.3" revision commit))
  23467. (source
  23468. (origin
  23469. (method git-fetch)
  23470. (uri (git-reference
  23471. (url "https://github.com/Wilfred/tco.el")
  23472. (commit commit)))
  23473. (file-name (git-file-name name version))
  23474. (sha256
  23475. (base32
  23476. "1z7xkbrqznk6ni687qqknp8labcyhl8y6576hjfri89fn21385y9"))))
  23477. (build-system emacs-build-system)
  23478. (propagated-inputs
  23479. `(("emacs-dash" ,emacs-dash)))
  23480. (native-inputs
  23481. `(("emacs-ert-runner" ,emacs-ert-runner)
  23482. ("emacs-undercover" ,emacs-undercover)))
  23483. (arguments
  23484. `(#:tests? #t
  23485. #:test-command '("ert-runner")))
  23486. (home-page "https://github.com/Wilfred/tco.el")
  23487. (synopsis "Tail-call optimization for Emacs Lisp")
  23488. (description "This package provides tail-call optimization for Emacs
  23489. Lisp functions that call themselves in tail position.")
  23490. (license license:gpl3+))))
  23491. (define-public emacs-equake
  23492. (let ((commit "7eddc025ee61b83029363e22219af228b8c20681")
  23493. (revision "2"))
  23494. (package
  23495. (name "emacs-equake")
  23496. (version (git-version "0.85" revision commit))
  23497. (source
  23498. (origin
  23499. (method git-fetch)
  23500. (uri (git-reference
  23501. (url "https://gitlab.com/emacsomancer/equake/")
  23502. (commit commit)))
  23503. (file-name (git-file-name name version))
  23504. (sha256
  23505. (base32
  23506. "1c55pbqak3d02sw6z1139baxzy401b90g0gxzcc3j6sgplz6sc6w"))))
  23507. (build-system emacs-build-system)
  23508. (propagated-inputs
  23509. `(("emacs-dash" ,emacs-dash)
  23510. ("emacs-tco-el" ,emacs-tco-el)))
  23511. (home-page "https://gitlab.com/emacsomancer/equake/")
  23512. (synopsis "Drop-down console for @code{Eshell} and terminal emulators")
  23513. (description "This package provides a Quake-style drop-down console
  23514. compatible with Emacs' shell modes.")
  23515. (license license:gpl3+))))
  23516. (define-public emacs-vdiff
  23517. ;; There is no proper tag, but the commit below matches the version bump.
  23518. (let ((commit "007e44be19d068fd6b49874b6e9b8df8b1f552bd"))
  23519. (package
  23520. (name "emacs-vdiff")
  23521. (version "0.2.4")
  23522. (source
  23523. (origin
  23524. (method git-fetch)
  23525. (uri (git-reference
  23526. (url "https://github.com/justbur/emacs-vdiff")
  23527. (commit commit)))
  23528. (file-name (git-file-name name version))
  23529. (sha256
  23530. (base32 "197xrwph1llrzjgkhlvagiwdgfp68pb45w5afg89ndahpqc2725s"))))
  23531. (build-system emacs-build-system)
  23532. (propagated-inputs
  23533. `(("emacs-hydra" ,emacs-hydra)))
  23534. (arguments
  23535. `(#:tests? #t
  23536. #:test-command '("emacs" "-Q" "-batch" "-L" "."
  23537. "-l" "vdiff-test.el"
  23538. "-f" "ert-run-tests-batch-and-exit")))
  23539. (home-page "https://github.com/justbur/emacs-vdiff/")
  23540. (synopsis "Frontend for diffing based on vimdiff")
  23541. (description
  23542. "This package permits comparisons of two or three buffers based on diff
  23543. output.")
  23544. (license license:gpl3+))))
  23545. (define-public emacs-vdiff-magit
  23546. ;; Need to use a more recent commit than the latest release version because
  23547. ;; of Magit and Transient
  23548. (let ((commit "b100d126c69e5c26a61ae05aa1778bcc4302b597")
  23549. (version "0.3.2")
  23550. (revision "8"))
  23551. (package
  23552. (name "emacs-vdiff-magit")
  23553. (version (git-version version revision commit))
  23554. (source
  23555. (origin
  23556. (method git-fetch)
  23557. (uri (git-reference
  23558. (url "https://github.com/justbur/emacs-vdiff-magit/")
  23559. (commit commit)))
  23560. (file-name (git-file-name name version))
  23561. (sha256
  23562. (base32
  23563. "16cjmrzflf2i1w01973sl944xrfanakba8sb4dpwi79d92xp03xy"))))
  23564. (build-system emacs-build-system)
  23565. (propagated-inputs
  23566. `(("emacs-vdiff" ,emacs-vdiff)
  23567. ("emacs-magit" ,emacs-magit)
  23568. ("emacs-transient" ,emacs-transient)))
  23569. (home-page "https://github.com/justbur/emacs-vdiff-magit/")
  23570. (synopsis "Frontend for diffing based on vimdiff")
  23571. (description "This package permits comparisons of two or three buffers
  23572. based on diff output.")
  23573. (license license:gpl3+))))
  23574. (define-public emacs-all-the-icons-dired
  23575. (let ((commit "fc2dfa1e9eb8bf1c402a675e7089638d702a27a5")
  23576. (version "1.0")
  23577. (revision "2"))
  23578. (package
  23579. (name "emacs-all-the-icons-dired")
  23580. (version (git-version version revision commit))
  23581. (source
  23582. (origin
  23583. (method git-fetch)
  23584. (uri (git-reference
  23585. (url "https://github.com/jtbm37/all-the-icons-dired/")
  23586. (commit commit)))
  23587. (file-name (git-file-name name version))
  23588. (sha256
  23589. (base32
  23590. "0zhyhz4lhx0d8wwh1xxxf7ck4s621fk9757ql2ypxbr4iqh7sjlp"))))
  23591. (build-system emacs-build-system)
  23592. (propagated-inputs
  23593. `(("emacs-all-the-icons" ,emacs-all-the-icons)))
  23594. (home-page "https://github.com/jtbm37/all-the-icons-dired/")
  23595. (synopsis "Show icons for each file in @code{dired-mode}")
  23596. (description "This package allows icons from @file{all-the-icons.el} to
  23597. be used in @code{dired-mode}.")
  23598. (license license:gpl3+))))
  23599. (define-public emacs-exwm-edit
  23600. (let ((commit "e1291e311840f1049106fe98cec032a1c75efd2b")
  23601. (version "0.0.1")
  23602. (revision "3"))
  23603. (package
  23604. (name "emacs-exwm-edit")
  23605. (version (git-version version revision commit))
  23606. (source
  23607. (origin
  23608. (method git-fetch)
  23609. (uri (git-reference
  23610. (url "https://github.com/agzam/exwm-edit/")
  23611. (commit commit)))
  23612. (file-name (git-file-name name version))
  23613. (sha256
  23614. (base32
  23615. "031cb8fvv5n30djr9lpl6vz3rl15zykfvjlgkjc8l33a3l5mw8j0"))))
  23616. (build-system emacs-build-system)
  23617. (propagated-inputs
  23618. `(("emacs-exwm" ,emacs-exwm)))
  23619. (home-page "https://github.com/agzam/exwm-edit/")
  23620. (synopsis "Open temp buffers for editing text from EXWM buffers")
  23621. (description "This package facilitates editing text from EXWM buffers by
  23622. generating a temp buffer in which any useful Emacs utilities and modes can be
  23623. invoked.")
  23624. (license license:gpl3+))))
  23625. (define-public emacs-ert-async
  23626. (package
  23627. (name "emacs-ert-async")
  23628. (version "0.1.2")
  23629. (source
  23630. (origin
  23631. (method git-fetch)
  23632. (uri (git-reference
  23633. (url "https://github.com/rejeep/ert-async.el")
  23634. (commit (string-append "v" version))))
  23635. (file-name (git-file-name name version))
  23636. (sha256
  23637. (base32
  23638. "0hn9i405nfhjd1h9vnwj43nxbbz00khrwkjq0acfyxjaz1shfac9"))))
  23639. (build-system emacs-build-system)
  23640. (home-page "https://github.com/rejeep/ert-async.el")
  23641. (synopsis "Async support for ERT")
  23642. (description "This package allows ERT to work with asynchronous tests.")
  23643. (license license:gpl3+)))
  23644. (define-public emacs-prodigy-el
  23645. (let ((commit "0a12eec1f001a4eef16b2c0c524f02f2647a4ff1")
  23646. (revision "2"))
  23647. (package
  23648. (name "emacs-prodigy-el")
  23649. (version (git-version "0.7.0" revision commit))
  23650. (source
  23651. (origin
  23652. (method git-fetch)
  23653. (uri (git-reference
  23654. (url "https://github.com/rejeep/prodigy.el")
  23655. (commit commit)))
  23656. (file-name (git-file-name name version))
  23657. (sha256
  23658. (base32
  23659. "02kysq57kqzg0zkhaf302ada9cp9spgp71z8vbdq4c7dl6x75h4g"))))
  23660. (build-system emacs-build-system)
  23661. (propagated-inputs
  23662. `(("emacs-dash" ,emacs-dash)
  23663. ("emacs-s" ,emacs-s)
  23664. ("emacs-f" ,emacs-f)))
  23665. (native-inputs
  23666. `(("emacs-el-mock" ,emacs-el-mock)
  23667. ("emacs-ert-async" ,emacs-ert-async)))
  23668. (home-page "https://github.com/rejeep/prodigy.el")
  23669. (synopsis "Manage external services from within Emacs")
  23670. (description "This package provides a GUI for defining and monitoring services.")
  23671. (license license:gpl3+))))
  23672. (define-public emacs-web-server
  23673. (package
  23674. (name "emacs-web-server")
  23675. (version "0.1.2")
  23676. (source
  23677. (origin
  23678. (method url-fetch)
  23679. (uri (string-append "https://elpa.gnu.org/packages/"
  23680. "web-server-" version ".tar"))
  23681. (sha256
  23682. (base32 "10lcsl4dg2yr9zjd99gq9jz150wvvh6r5y9pd88l8y9vz16f2lim"))))
  23683. (build-system emacs-build-system)
  23684. (home-page "https://github.com/eschulte/emacs-web-server/")
  23685. (synopsis "Web server with handlers in Emacs Lisp")
  23686. (description "This package supports HTTP GET and POST requests with
  23687. url-encoded parameters, as well as web sockets.")
  23688. (license license:gpl3+)))
  23689. (define-public emacs-markdown-preview-mode
  23690. (package
  23691. (name "emacs-markdown-preview-mode")
  23692. (version "0.9.4")
  23693. (source
  23694. (origin
  23695. (method git-fetch)
  23696. (uri (git-reference
  23697. (url "https://github.com/ancane/markdown-preview-mode")
  23698. (commit (string-append "v" version))))
  23699. (file-name (git-file-name name version))
  23700. (sha256
  23701. (base32
  23702. "0a0qskhy6jil583hq3mgbzdsi3m1schzyzrd46yfxdsvqiczg170"))))
  23703. (build-system emacs-build-system)
  23704. (propagated-inputs
  23705. `(("emacs-markdown-mode" ,emacs-markdown-mode)
  23706. ("emacs-websocket" ,emacs-websocket)
  23707. ("emacs-web-server" ,emacs-web-server)))
  23708. (arguments '(#:include '("\\.el$" "\\.html$")))
  23709. (home-page "https://github.com/ancane/markdown-preview-mode")
  23710. (synopsis "Preview Markdown files")
  23711. (description "This package provides a minor mode for preview of Markdown
  23712. files, and sends rendered Markdown to a web browser.")
  23713. (license license:gpl3+)))
  23714. (define-public emacs-dotenv-mode
  23715. (package
  23716. (name "emacs-dotenv-mode")
  23717. (version "0.2.5")
  23718. (source
  23719. (origin
  23720. (method git-fetch)
  23721. (uri (git-reference
  23722. (url "https://github.com/preetpalS/emacs-dotenv-mode")
  23723. (commit (string-append "v" version))))
  23724. (file-name (git-file-name name version))
  23725. (sha256
  23726. (base32
  23727. "0ys1czramj3c8zbnxxc599bqc0nqp3nnn3n45ac9cjglx5iaydq3"))))
  23728. (build-system emacs-build-system)
  23729. (home-page "https://github.com/preetpalS/emacs-dotenv-mode")
  23730. (synopsis "Major mode for @file{.env} files")
  23731. (description "This package provides syntax highlighting for @file{.env}
  23732. files.")
  23733. (license license:gpl3+)))
  23734. (define-public emacs-add-node-modules-path
  23735. (let ((commit "f31e69ccb681f882aebb806ce6e9478e3ac39708")
  23736. (version "1.2.0")
  23737. (revision "10"))
  23738. (package
  23739. (name "emacs-add-node-modules-path")
  23740. (version (git-version version revision commit))
  23741. (source
  23742. (origin
  23743. (method git-fetch)
  23744. (uri (git-reference
  23745. (url "https://github.com/codesuki/add-node-modules-path")
  23746. (commit commit)))
  23747. (file-name (git-file-name name version))
  23748. (sha256
  23749. (base32
  23750. "0p106bqmvdr8by5iv02bshm339qbrjcch2d15mrm4h3nav03v306"))))
  23751. (build-system emacs-build-system)
  23752. (home-page "https://github.com/codesuki/add-node-modules-path")
  23753. (synopsis "Add @file{node_modules} to the buffer-local @file{exec-path}")
  23754. (description "This package searches the parent directories of the
  23755. current file for the project's @file{node_modules/.bin/} directory, allowing
  23756. Emacs to find project-specific installations of packages.")
  23757. (license license:expat))))
  23758. (define-public emacs-flow-minor-mode
  23759. (let ((commit "d1b32a7dd0d33c6a00a106da5f4b2323602cbd3e")
  23760. (version "0.3")
  23761. (revision "4"))
  23762. (package
  23763. (name "emacs-flow-minor-mode")
  23764. (version (git-version version revision commit))
  23765. (source
  23766. (origin
  23767. (method git-fetch)
  23768. (uri (git-reference
  23769. (url "https://github.com/an-sh/flow-minor-mode")
  23770. (commit commit)))
  23771. (file-name (git-file-name name version))
  23772. (sha256
  23773. (base32
  23774. "169r4ib9qg9q6fm3p0p23qs1qx4pa9pg1qvyq4ysr85i7kwygppl"))))
  23775. (build-system emacs-build-system)
  23776. (home-page "https://github.com/an-sh/flow-minor-mode")
  23777. (synopsis "Minor mode for JavaScript Flow files")
  23778. (description "This package integrates Flow with Emacs, allowing for
  23779. definition-jumping and type-checking on demand.")
  23780. (license license:bsd-3))))
  23781. (define-public emacs-rjsx-mode
  23782. (package
  23783. (name "emacs-rjsx-mode")
  23784. (version "0.5.0")
  23785. (source
  23786. (origin
  23787. (method git-fetch)
  23788. (uri (git-reference
  23789. (url "https://github.com/felipeochoa/rjsx-mode")
  23790. (commit (string-append "v" version))))
  23791. (file-name (git-file-name name version))
  23792. (sha256
  23793. (base32
  23794. "08b4hdgq4hc1yfd9pvyir2j3cqqdqa3j5svgaba97x5fzhsz7y8i"))))
  23795. (build-system emacs-build-system)
  23796. (propagated-inputs
  23797. `(("emacs-js2-mode" ,emacs-js2-mode)))
  23798. (arguments
  23799. `(#:tests? #t
  23800. #:test-command '("make" "test")))
  23801. (home-page "https://github.com/felipeochoa/rjsx-mode")
  23802. (synopsis "Major mode for JSX files")
  23803. (description "This package extends the parser of @code{js2-mode} to
  23804. support JSX syntax.")
  23805. (license license:expat)))
  23806. (define-public emacs-origami-el
  23807. (let ((commit "1f38085c8f9af7842765ed63f7d6dfe4dab59366")
  23808. (version "1.0")
  23809. (revision "1"))
  23810. (package
  23811. (name "emacs-origami-el")
  23812. (version (git-version version revision commit))
  23813. (source
  23814. (origin
  23815. (method git-fetch)
  23816. (uri (git-reference
  23817. (url "https://github.com/gregsexton/origami.el")
  23818. (commit commit)))
  23819. (file-name (git-file-name name version))
  23820. (sha256
  23821. (base32
  23822. "0ha1qsz2p36pqa0sa2sp83lspbgx5lr7930qxnwd585liajzdd9x"))))
  23823. (build-system emacs-build-system)
  23824. (propagated-inputs
  23825. `(("emacs-dash" ,emacs-dash)
  23826. ("emacs-s" ,emacs-s)))
  23827. (home-page "https://github.com/gregsexton/origami.el")
  23828. (synopsis "Flexible text-folding")
  23829. (description "This package provides a minor mode for collapsing and
  23830. expanding regions of text without modifying the actual contents.")
  23831. (license license:expat))))
  23832. (define-public emacs-peep-dired
  23833. (let ((commit "c88a9a3050197840edfe145f11e0bb9488de32f4")
  23834. (version "0")
  23835. (revision "1"))
  23836. (package
  23837. (name "emacs-peep-dired")
  23838. (version (git-version version revision commit))
  23839. (source
  23840. (origin
  23841. (method git-fetch)
  23842. (uri (git-reference
  23843. (url "https://github.com/asok/peep-dired")
  23844. (commit commit)))
  23845. (file-name (git-file-name name version))
  23846. (sha256
  23847. (base32
  23848. "1wy5qpnfri1gha2cnl6q20qar8dbl2mimpb43bnhmm2g3wgjyad6"))))
  23849. (build-system emacs-build-system)
  23850. (home-page "https://github.com/asok/peep-dired")
  23851. (synopsis "Preview files in another window")
  23852. (description "This package provides a minor mode that allows files to be
  23853. previewed by scrolling up and down within a @code{dired} buffer.")
  23854. (license license:gpl3+))))
  23855. (define-public emacs-counsel-etags
  23856. (package
  23857. (name "emacs-counsel-etags")
  23858. (version "1.9.17")
  23859. (source
  23860. (origin
  23861. (method git-fetch)
  23862. (uri (git-reference
  23863. (url "https://github.com/redguardtoo/counsel-etags")
  23864. (commit version)))
  23865. (file-name (git-file-name name version))
  23866. (sha256
  23867. (base32 "07445bbr68q1pnwpj5bwqmml9ky1gq67g24zswv8fylnzjkhy9wc"))))
  23868. (build-system emacs-build-system)
  23869. (propagated-inputs
  23870. `(("emacs-counsel" ,emacs-counsel)))
  23871. (arguments
  23872. `(#:tests? #f ;require internet access
  23873. #:test-command '("make test")))
  23874. (home-page "https://github.com/redguardtoo/counsel-etags")
  23875. (synopsis "Fast @code{Ctags}/@code{Etags} solution with @code{ivy-mode}")
  23876. (description "This package uses @code{ivy-mode} to facilitate navigating
  23877. and searching through @code{Ctags} files.")
  23878. (license license:gpl3+)))
  23879. (define-public emacs-ivy-clipmenu
  23880. (let ((commit "d2071f2c5043a05d610cd1952e84176ca78c31dc"))
  23881. (package
  23882. (name "emacs-ivy-clipmenu")
  23883. (version (git-version "0.0.1" "1" commit))
  23884. (source (origin
  23885. (method git-fetch)
  23886. (uri (git-reference
  23887. (url "https://github.com/wpcarro/ivy-clipmenu.el")
  23888. (commit commit)))
  23889. (file-name (git-file-name name version))
  23890. (sha256
  23891. (base32
  23892. "0npd8glzk5z4n7y9mzbsbzi0cf3by19fqcki052jr3dga363lds7"))))
  23893. (propagated-inputs
  23894. `(("emacs-f" ,emacs-f)
  23895. ("emacs-ivy" ,emacs-ivy)))
  23896. (build-system emacs-build-system)
  23897. (home-page "https://github.com/wpcarro/ivy-clipmenu.el")
  23898. (synopsis "Ivy integration with clipmenu")
  23899. (description "Ivy integration with the clipboard manager, clipmenu.")
  23900. (license license:expat))))
  23901. (define-public emacs-org-download
  23902. (let ((commit "42ac361ef5502017e6fc1bceb00333eba90402f4")
  23903. (revision "3"))
  23904. (package
  23905. (name "emacs-org-download")
  23906. (version (git-version "0.1.0" revision commit))
  23907. (source (origin
  23908. (method git-fetch)
  23909. (uri (git-reference
  23910. (url "https://github.com/abo-abo/org-download")
  23911. (commit commit)))
  23912. (file-name (git-file-name name version))
  23913. (sha256
  23914. (base32 "0cg4y7hy7xbq4vrbdicfzgvyaf3cjbx2zkqd4yl0y2garz71j99l"))))
  23915. (build-system emacs-build-system)
  23916. (propagated-inputs
  23917. `(("emacs-org" ,emacs-org)
  23918. ("emacs-async" ,emacs-async)))
  23919. (home-page "https://github.com/abo-abo/org-download")
  23920. (synopsis "Facilitate moving images")
  23921. (description "This package provides utilities for managing image files
  23922. copied into @code{org-mode} buffers.")
  23923. (license license:gpl3+))))
  23924. (define-public emacs-org-drill-table
  23925. ;; No releases or tags.
  23926. (let ((commit "096387d929bcf3eb479e0a9d5da9cf32c756a759")
  23927. (revision "0"))
  23928. (package
  23929. (name "emacs-org-drill-table")
  23930. (version (git-version "0.1" revision commit))
  23931. (source
  23932. (origin
  23933. (method git-fetch)
  23934. (uri (git-reference
  23935. (url "https://github.com/chrisbarrett/org-drill-table.git")
  23936. (commit commit)))
  23937. (file-name (git-file-name name version))
  23938. (sha256
  23939. (base32 "1a8ygrcag8i9hdpy2vsn0sh8lwhl9b56rv91j3rddy1jv5qx1ipb"))))
  23940. (build-system emacs-build-system)
  23941. (propagated-inputs
  23942. `(("emacs-dash" ,emacs-dash)
  23943. ("emacs-org" ,emacs-org)
  23944. ("emacs-s" ,emacs-s)))
  23945. (home-page "https://github.com/chrisbarrett/org-drill-table")
  23946. (synopsis "Generate Org drill cards using Org mode tables")
  23947. (description
  23948. "This package generates drill cards based on an Org mode table in the
  23949. current subtree. The cards are inserted under a new ``Cards'' heading in the
  23950. current tree.")
  23951. (license license:gpl3+))))
  23952. (define-public emacs-dash-docs
  23953. (let ((commit "dafc8fc9f1ddb2e4e39e0b8d066c42d5d7ce8d06")
  23954. (revision "2"))
  23955. (package
  23956. (name "emacs-dash-docs")
  23957. (version (git-version "1.4.0" revision commit))
  23958. (source
  23959. (origin
  23960. (method git-fetch)
  23961. (uri (git-reference
  23962. (url "https://github.com/dash-docs-el/dash-docs")
  23963. (commit commit)))
  23964. (file-name (git-file-name name version))
  23965. (sha256
  23966. (base32
  23967. "0n6d3mm43gj16v8kjjradcfik93wb89dsqnfcbskb28bvcamafid"))))
  23968. (build-system emacs-build-system)
  23969. (propagated-inputs
  23970. `(("emacs-async" ,emacs-async)))
  23971. (native-inputs
  23972. `(("emacs-undercover" ,emacs-undercover)
  23973. ("emacs-ert-runner" ,emacs-ert-runner)))
  23974. (arguments
  23975. `(#:tests? #t
  23976. #:test-command '("ert-runner")
  23977. #:phases
  23978. ;; this test requires network access, so remove it
  23979. (modify-phases %standard-phases
  23980. (add-before 'check 'make-tests-writable
  23981. (lambda _
  23982. (make-file-writable "test/dash-docs-test.el")
  23983. #t))
  23984. (add-before 'check 'delete-test
  23985. (lambda _
  23986. (emacs-batch-edit-file "test/dash-docs-test.el"
  23987. `(progn (progn
  23988. (goto-char (point-min))
  23989. (re-search-forward "ert-deftest dash-docs-official-docsets-test")
  23990. (beginning-of-line)
  23991. (kill-sexp))
  23992. (basic-save-buffer)))
  23993. #t)))))
  23994. (home-page "https://github.com/dash-docs-el/dash-docs")
  23995. (synopsis "Offline documentation browser for APIs using Dash docsets")
  23996. (description "This package exposes functionality to work with Dash docsets.")
  23997. (license license:gpl3+))))
  23998. (define-public emacs-helm-dash
  23999. (let ((commit "7f853bd34da666f0e9a883011c80f451b06f6c59")
  24000. (revision "2"))
  24001. (package
  24002. (name "emacs-helm-dash")
  24003. (version (git-version "1.3.0" revision commit))
  24004. (source
  24005. (origin
  24006. (method git-fetch)
  24007. (uri (git-reference
  24008. (url "https://github.com/areina/helm-dash")
  24009. (commit commit)))
  24010. (file-name (git-file-name name version))
  24011. (sha256
  24012. (base32
  24013. "0r192vzry1212ihabg9pgw9xar8zdgnbgy0vsgvfm8s5wj6ny7jp"))))
  24014. (build-system emacs-build-system)
  24015. (propagated-inputs
  24016. `(("emacs-helm" ,emacs-helm)
  24017. ("emacs-dash-docs" ,emacs-dash-docs)))
  24018. (home-page "https://github.com/areina/helm-dash")
  24019. (synopsis "Offline documentation browser for APIs using Dash docsets")
  24020. (description "This package uses Helm to install and navigate through
  24021. Dash docsets.")
  24022. (license license:gpl3+))))
  24023. (define-public emacs-counsel-dash
  24024. (let ((commit "370d5f6f14b5294d0eb717f7b2a6a8e93df1ed24")
  24025. (revision "4"))
  24026. (package
  24027. (name "emacs-counsel-dash")
  24028. (version (git-version "0.1.3" revision commit))
  24029. (source
  24030. (origin
  24031. (method git-fetch)
  24032. (uri (git-reference
  24033. (url "https://github.com/dash-docs-el/counsel-dash")
  24034. (commit commit)))
  24035. (file-name (git-file-name name version))
  24036. (sha256
  24037. (base32 "1fn38vbz46ijarjvhgw7iy7dj9s2a2miy95fyy9f8b5sj8nrdfvz"))))
  24038. (build-system emacs-build-system)
  24039. (propagated-inputs
  24040. `(("emacs-counsel" ,emacs-counsel)
  24041. ("emacs-dash-docs" ,emacs-dash-docs)))
  24042. (home-page "https://github.com/dash-docs-el/counsel-dash")
  24043. (synopsis "Offline documentation browser for APIs using Dash docsets")
  24044. (description "This package uses @code{ivy-mode} to install and navigate
  24045. through Dash docsets.")
  24046. (license license:expat))))
  24047. (define-public emacs-cascading-dir-locals
  24048. (let ((release "0.1")
  24049. (revision "0")
  24050. (commit "efdf5e6d62b955ee0ca3c170eae1d388799f9fa0"))
  24051. (package
  24052. (name "emacs-cascading-dir-locals")
  24053. (version (git-version release revision commit))
  24054. (home-page "https://github.com/fritzgrabo/cascading-dir-locals")
  24055. (source
  24056. (origin
  24057. (method git-fetch)
  24058. (uri (git-reference
  24059. (url home-page)
  24060. (commit commit)))
  24061. (file-name (git-file-name name version))
  24062. (sha256
  24063. (base32 "1jwd99kk5l588n7wwi1x3b4bgimm66x1icna3n20pwaj49kf0zy8"))))
  24064. (build-system emacs-build-system)
  24065. (synopsis "Apply all @file{.dir-locals.el} from root to current directory")
  24066. (description
  24067. "This package provides a global minor mode that changes how Emacs
  24068. handles the lookup of applicable dir-locals files (@file{.dir-locals.el}):
  24069. instead of starting at the directory of the visited file and moving up the
  24070. directory tree only until a first dir-locals file is found, collect and apply
  24071. all (!) dir-locals files found from the current directory up to the root one.
  24072. Values specified in files nearer to the current directory take precedence over
  24073. values in files farther away from it.
  24074. You might want to use this to globally set dir-local variables that apply to
  24075. all of your projects, then override or add variables on a per-project basis.")
  24076. (license license:gpl3+))))
  24077. (define-public emacs-calibredb
  24078. (package
  24079. (name "emacs-calibredb")
  24080. (version "2.10.0")
  24081. (source
  24082. (origin
  24083. (method git-fetch)
  24084. (uri (git-reference
  24085. (url "https://github.com/chenyanming/calibredb.el")
  24086. (commit version)))
  24087. (file-name (git-file-name name version))
  24088. (sha256
  24089. (base32 "0s26a2fy1xldd0q57avds7zn0h7lkis2hjh9zmm1qhwn8409hys9"))))
  24090. (build-system emacs-build-system)
  24091. (arguments
  24092. '(#:phases
  24093. (modify-phases %standard-phases
  24094. (add-after 'unpack 'patch-paths
  24095. (lambda* (#:key inputs #:allow-other-keys)
  24096. (let ((calibre (assoc-ref inputs "calibre")))
  24097. (make-file-writable "calibredb-core.el")
  24098. (emacs-substitute-variables "calibredb-core.el"
  24099. ("calibredb-program"
  24100. (string-append calibre "/bin/calibredb"))
  24101. ("calibredb-fetch-metadata-program"
  24102. (string-append calibre "/bin/fetch-ebook-metadata")))))))))
  24103. (inputs
  24104. `(("calibre" ,calibre)))
  24105. (propagated-inputs
  24106. `(("emacs-dash" ,emacs-dash)
  24107. ("emacs-s" ,emacs-s)
  24108. ("emacs-transient" ,emacs-transient)))
  24109. (home-page "https://github.com/chenyanming/calibredb.el")
  24110. (synopsis "Yet another calibre client for Emacs")
  24111. (description "This package integrates calibre into Emacs.
  24112. @enumerate
  24113. @item Powerful ebook dashboard.
  24114. @item Manage ebooks, actually not only ebooks!
  24115. @item Manage Ebook libraries.
  24116. @item Another bookmarks solution, by setting the tags and comments.
  24117. @item Quick search, filter, make actions on items with ivy and helm.
  24118. @item Org-ref support.
  24119. @end enumerate")
  24120. (license license:gpl3)))
  24121. (define-public emacs-el-patch
  24122. (package
  24123. (name "emacs-el-patch")
  24124. (version "2.2.3")
  24125. (source
  24126. (origin
  24127. (method git-fetch)
  24128. (uri (git-reference
  24129. (url "https://github.com/raxod502/el-patch")
  24130. (commit version)))
  24131. (file-name (git-file-name name version))
  24132. (sha256
  24133. (base32
  24134. "18djslz177q6q33y82zmg2v6n9236a76kiqfvxdk4vbqzjbq82f7"))))
  24135. (build-system emacs-build-system)
  24136. (home-page "https://github.com/raxod502/el-patch")
  24137. (synopsis "Future-proof your Emacs customizations")
  24138. (description "This package allows for an alternate definition of an Elisp
  24139. function to be specified and for any differences from the original definition
  24140. to be examined using Ediff.")
  24141. (license license:expat)))
  24142. (define-public emacs-info-plus
  24143. (let ((commit "29811edf7a71764ac343631facc00268d9483146")
  24144. (revision "3"))
  24145. (package
  24146. (name "emacs-info-plus")
  24147. (version (git-version "0" revision commit))
  24148. (source
  24149. (origin
  24150. (method git-fetch)
  24151. (uri (git-reference
  24152. (url "https://github.com/emacsmirror/info-plus")
  24153. (commit commit)))
  24154. (file-name (git-file-name name version))
  24155. (sha256
  24156. (base32
  24157. "0ayq7z6dbf43vczbkjm1l976hxcfrmw45nfywbf1kjpzl3viy4gy"))))
  24158. (build-system emacs-build-system)
  24159. (home-page "https://github.com/emacsmirror/info-plus")
  24160. (synopsis "Extensions to @file{info.el}")
  24161. (description "This package extends Emacs' @file{info.el} by allowing
  24162. outline-enabled table of contents, additional metadata association for Info
  24163. nodes, and more.")
  24164. (license license:gpl2+))))
  24165. (define-public emacs-eval-sexp-fu-el
  24166. (package
  24167. (name "emacs-eval-sexp-fu-el")
  24168. (version "0.6.0")
  24169. (source
  24170. (origin
  24171. (method git-fetch)
  24172. (uri (git-reference
  24173. (url "https://github.com/hchbaw/eval-sexp-fu.el")
  24174. (commit (string-append "v" version))))
  24175. (file-name (git-file-name name version))
  24176. (sha256
  24177. (base32
  24178. "19rv0kwajq0j8inglp84sml23ci74wdcvp5bl6zxbw5skqpf6phr"))))
  24179. (build-system emacs-build-system)
  24180. (home-page "https://github.com/hchbaw/eval-sexp-fu.el")
  24181. (synopsis "Enhancements for evaluating s-expressions")
  24182. (description "This package provides provides variants of
  24183. @code{eval-last-sexp} that work on the containing list or s-expression, as
  24184. well as an option for visually flashing evaluated s-expressions.")
  24185. (license license:gpl3+)))
  24186. (define-public emacs-counsel-tramp
  24187. (package
  24188. (name "emacs-counsel-tramp")
  24189. (version "0.7.5")
  24190. (source
  24191. (origin
  24192. (method git-fetch)
  24193. (uri (git-reference
  24194. (url "https://github.com/masasam/emacs-counsel-tramp")
  24195. (commit version)))
  24196. (file-name (git-file-name name version))
  24197. (sha256
  24198. (base32 "18qlwyjqxap2qfbz14ma6yqp4p3v4q2y8idc355s4szjdd2as2lr"))))
  24199. (build-system emacs-build-system)
  24200. (propagated-inputs
  24201. `(("emacs-counsel" ,emacs-counsel)))
  24202. (home-page "https://github.com/masasam/emacs-counsel-tramp")
  24203. (synopsis "Ivy interface for TRAMP")
  24204. (description
  24205. "This package allows @code{ivy-mode} to display and filter SSH servers.")
  24206. (license license:gpl3+)))
  24207. (define-public emacs-tramp
  24208. (package
  24209. (name "emacs-tramp")
  24210. (version "2.5.1.2")
  24211. (source
  24212. (origin
  24213. (method url-fetch)
  24214. (uri (string-append "https://elpa.gnu.org/packages/"
  24215. "tramp-" version ".tar"))
  24216. (sha256
  24217. (base32 "0p8m8prxrvrr455ahb626c1dry04m80y017h16ngr4i5ais0r85g"))))
  24218. (build-system emacs-build-system)
  24219. (arguments
  24220. `(#:emacs ,emacs ;need D-Bus
  24221. #:phases
  24222. (modify-phases %standard-phases
  24223. ;; All but one "/bin/" directory refer to remote
  24224. ;; environments, which may not be Guix. Do not patch them
  24225. ;; blindly. However, local encoding shell has to be patched.
  24226. (replace 'patch-el-files
  24227. (lambda* (#:key inputs #:allow-other-keys)
  24228. (let ((sh (assoc-ref inputs "bash"))
  24229. (file "tramp.el"))
  24230. (emacs-substitute-variables file
  24231. ("tramp-encoding-shell" (string-append sh "/bin/sh"))))
  24232. #t)))))
  24233. (inputs
  24234. `(("bash" ,bash)))
  24235. (home-page "https://savannah.gnu.org/projects/tramp")
  24236. (synopsis "Remote file editing package for Emacs")
  24237. (description
  24238. "Tramp stands for ``Transparent Remote (file) Access, Multiple
  24239. Protocol''. This package provides remote file editing, using
  24240. a combination of @command{rsh} and @command{rcp} or other work-alike
  24241. programs, such as @command{ssh} and @command{scp}.")
  24242. (license license:gpl3+)))
  24243. (define-public emacs-tramp-auto-auth
  24244. (let ((commit "f15a12dfab651aff60f4a9d70f868030a12344ac"))
  24245. (package
  24246. (name "emacs-tramp-auto-auth")
  24247. (version (git-version "20191027" "1" commit))
  24248. (source
  24249. (origin
  24250. (method git-fetch)
  24251. (uri (git-reference
  24252. (url "https://github.com/oitofelix/tramp-auto-auth")
  24253. (commit commit)))
  24254. (file-name (git-file-name name version))
  24255. (sha256
  24256. (base32
  24257. "09nkjgwppjfgv04q0gv468qihgx4y3p39lpwbd6vbh3wgbccas9k"))))
  24258. (build-system emacs-build-system)
  24259. (home-page "https://github.com/oitofelix/tramp-auto-auth")
  24260. (synopsis "TRAMP automatic authentication library")
  24261. (description "This package provides @code{tramp-auto-auth-mode} Emacs
  24262. global minor mode whose purpose is to automatically feed TRAMP sub-processes
  24263. with passwords for paths matching regexps.")
  24264. (license license:gpl3+))))
  24265. (define-public emacs-eacl
  24266. (package
  24267. (name "emacs-eacl")
  24268. (version "2.1.0")
  24269. (source
  24270. (origin
  24271. (method git-fetch)
  24272. (uri (git-reference
  24273. (url "https://github.com/redguardtoo/eacl")
  24274. (commit version)))
  24275. (file-name (git-file-name name version))
  24276. (sha256
  24277. (base32
  24278. "0n1vlzvq5mv7z1yffjjqm9ixd3r0cljr60kg55l9pj9kp72a4iv8"))))
  24279. (build-system emacs-build-system)
  24280. (propagated-inputs
  24281. `(("emacs-ivy" ,emacs-ivy)))
  24282. (home-page "https://github.com/redguardtoo/eacl")
  24283. (synopsis "Auto-complete lines by using @code{grep} on a project")
  24284. (description "This package provides auto-completion commands for single
  24285. and multiple lines of code in a project.")
  24286. (license license:gpl3+)))
  24287. (define-public emacs-semantic-refactor
  24288. ;; The last release, 0.5, was made on 2015-07-26 and there have been 47
  24289. ;; commits since then.
  24290. (let ((commit "6f2c97d17fb70f4ca2112f5a2b99a8ec162004f5"))
  24291. (package
  24292. (name "emacs-semantic-refactor")
  24293. (version (git-version "0.5" "1" commit))
  24294. (source
  24295. (origin
  24296. (method git-fetch)
  24297. (uri (git-reference
  24298. (url "https://github.com/tuhdo/semantic-refactor")
  24299. (commit commit)))
  24300. (file-name (git-file-name name version))
  24301. (sha256
  24302. (base32
  24303. "1lyz3zjkx2csh0xdy1zpx8s32qp1p3sig57mwi9xhgpqjyf0axmb"))))
  24304. (build-system emacs-build-system)
  24305. (home-page "https://github.com/tuhdo/semantic-refactor")
  24306. (synopsis "Refactoring tool for C/C++ and Lisp dialects")
  24307. (description "This package provides a refactoring tool based on the
  24308. Emacs Semantic parser framework. For C and C++ it supports operations such as:
  24309. @enumerate
  24310. @item Generating class implementations
  24311. @item Generating function prototypes
  24312. @item Converting functions to function pointers
  24313. @item Moving semantic units
  24314. @item etc...
  24315. @end enumerate
  24316. For Lisp dialects like Clojure, ELisp, and Scheme, it supports operations such
  24317. as:
  24318. @enumerate
  24319. @item Formatting the whole buffer
  24320. @item Converting sexpressions to one or multiple lines
  24321. @item etc...
  24322. @end enumerate\n")
  24323. (license license:gpl3+))))
  24324. (define-public emacs-nhexl-mode
  24325. (package
  24326. (name "emacs-nhexl-mode")
  24327. (version "1.5")
  24328. (source
  24329. (origin
  24330. (method url-fetch)
  24331. (uri (string-append "https://elpa.gnu.org/packages/"
  24332. "nhexl-mode-" version ".el"))
  24333. (sha256
  24334. (base32 "0qvxfg7sv4iqyjxzaim6b4v9k5hav36qd4vkf9jwzw6p5fri8w8d"))))
  24335. (build-system emacs-build-system)
  24336. (home-page "https://elpa.gnu.org/packages/nhexl-mode.html")
  24337. (synopsis "Minor mode to edit files via hex-dump format")
  24338. (description
  24339. "This package implements NHexl mode, a minor mode for editing files
  24340. in hex dump format. The mode command is called @command{nhexl-mode}.
  24341. This minor mode implements similar functionality to @command{hexl-mode},
  24342. but using a different implementation technique, which makes it
  24343. usable as a \"plain\" minor mode. It works on any buffer, and does
  24344. not mess with the undo log or with the major mode.
  24345. It also comes with:
  24346. @itemize
  24347. @item @command{nhexl-nibble-edit-mode}: a \"nibble editor\" minor mode, where
  24348. the cursor pretends to advance by nibbles (4-bit) and the self-insertion keys
  24349. (which only work for hex-digits) will only modify the nibble under point.
  24350. @item @command{nhexl-overwrite-only-mode}: a minor mode to try and avoid
  24351. moving text. In this minor mode, not only self-inserting keys overwrite
  24352. existing text, but commands like `yank' and @command{kill-region} as well.
  24353. @item It overrides @code{C-u} to use hexadecimal, so you can do @code{C-u a 4
  24354. C-f} to advance by #xa4 characters.
  24355. @end itemize")
  24356. (license license:gpl3+)))
  24357. (define-public emacs-helm-wikipedia
  24358. (let ((commit "126f044e0a0e1432e0791c33ce2a41875d704a9b"))
  24359. (package
  24360. (name "emacs-helm-wikipedia")
  24361. (version (git-version "0.0.0" "1" commit))
  24362. (home-page "https://github.com/emacs-helm/helm-wikipedia/")
  24363. (source
  24364. (origin
  24365. (method git-fetch)
  24366. (uri (git-reference
  24367. (url home-page)
  24368. (commit commit)))
  24369. (file-name (git-file-name name version))
  24370. (sha256
  24371. (base32
  24372. "148a5xsnbsiddhf9cl7yxdk41lrv38h0pip91kcflw9d7l0dp7pr"))))
  24373. (build-system emacs-build-system)
  24374. (inputs
  24375. `(("helm" ,emacs-helm)))
  24376. (synopsis "Search suggestions and article extracts from Wikipedia for Emacs")
  24377. (description
  24378. "This package provides an Emacs Helm interface for search suggestions
  24379. and article extracts for Wikipedia.")
  24380. (license license:gpl3+))))
  24381. (define-public emacs-webfeeder
  24382. (package
  24383. (name "emacs-webfeeder")
  24384. (version "1.1.2")
  24385. (source
  24386. (origin
  24387. (method url-fetch)
  24388. (uri (string-append
  24389. "https://elpa.gnu.org/packages/webfeeder-"
  24390. version
  24391. ".tar"))
  24392. (sha256
  24393. (base32
  24394. "1l128q424qsq9jv2wk8cv4zli71rk34q5kgwa9axdz0d27p9l6v4"))))
  24395. (build-system emacs-build-system)
  24396. (home-page "https://gitlab.com/Ambrevar/emacs-webfeeder")
  24397. (synopsis "Build RSS and Atom webfeeds from HTML files")
  24398. (description
  24399. "Webfeeder is an Emacs library to generate RSS and Atom feeds from HTML
  24400. files. The various elements of the HTML input are parsed with customizable
  24401. functions (e.g. @code{webfeeder-title-function}).")
  24402. (license license:gpl3+)))
  24403. (define-public emacs-evil-numbers
  24404. (let ((commit "6ea1c8c3a9b37bed63d48f1128e9a4910e68187e"))
  24405. (package
  24406. (name "emacs-evil-numbers")
  24407. (version (git-version "0.4" "1" commit))
  24408. (source (origin
  24409. (method git-fetch)
  24410. (uri (git-reference
  24411. (url "https://github.com/dieggsy/evil-numbers")
  24412. (commit commit)))
  24413. (file-name (git-file-name name version))
  24414. (sha256
  24415. (base32
  24416. "1aq95hj8x13py0pwsnc6wvd8cc5yv5qin8ym9js42y5966vwj4np"))))
  24417. (build-system emacs-build-system)
  24418. (home-page "https://github.com/dieggsy/evil-numbers")
  24419. (synopsis "Increment and decrement numbers in Emacs")
  24420. (description "This package increments and decrements binary, octal,
  24421. decimal and hex literals. It works like C-a/C-x in Vim, i.e. searches for
  24422. number up to EOL and then increments or decrements and keeps zero padding up
  24423. (unlike in Vim). When a region is active, as in Evil's visual mode, all the
  24424. numbers within that region will be incremented/decremented (unlike in Vim).
  24425. It is a fork of https://github.com/cofi/evil-numbers, which is unmaintained.")
  24426. (license license:gpl3+))))
  24427. (define-public emacs-rotate-text
  24428. (package
  24429. (name "emacs-rotate-text")
  24430. (version "0.1")
  24431. (source (origin
  24432. (method git-fetch)
  24433. (uri (git-reference
  24434. (url "https://github.com/nschum/rotate-text.el")
  24435. (commit version)))
  24436. (file-name (git-file-name name version))
  24437. (sha256
  24438. (base32
  24439. "1cgxv4aibkvv6lnssynn0438a615fz3zq8hg9sb0lhfgsr99pxln"))))
  24440. (build-system emacs-build-system)
  24441. (home-page "https://nschum.de/src/emacs/rotate-text/")
  24442. (synopsis "Cycle through words, symbols and patterns in Emacs")
  24443. (description "@code{rotate-text} allows you rotate to commonly
  24444. interchanged text with a single keystroke. For example, you can toggle
  24445. between \"frame-width\" and \"frame-height\", between \"public\",
  24446. \"protected\" and \"private\" and between \"variable1\", \"variable2\" through
  24447. \"variableN\".")
  24448. (license license:gpl2+)))
  24449. (define-public emacs-ediprolog
  24450. (package
  24451. (name "emacs-ediprolog")
  24452. (version "2.1")
  24453. (source
  24454. (origin
  24455. (method url-fetch)
  24456. (uri (string-append
  24457. "https://elpa.gnu.org/packages/ediprolog-"
  24458. version
  24459. ".el"))
  24460. (sha256
  24461. (base32 "1piimsmzpirw8plrpy79xbpnvynzzhcxi31g6lg6is8gridiv3md"))))
  24462. (build-system emacs-build-system)
  24463. (home-page "https://elpa.gnu.org/packages/ediprolog.html")
  24464. (synopsis "Emacs Does Interactive Prolog")
  24465. (description "This package provides a major mode that let the user
  24466. interact with SWI-Prolog in all buffers. For instance, one can consult Prolog
  24467. programs and evaluate embedded queries. This mode is focused on the command
  24468. @code{ediprolog-dwim} (Do What I Mean) which is supposed to, depending on the
  24469. context, carry out the appropriate action.")
  24470. (license license:gpl3+)))
  24471. (define-public emacs-evil-cleverparens
  24472. (let ((commit "8c45879d49bfa6d4e414b6c1df700a4a51cbb869")
  24473. (revision "1"))
  24474. (package
  24475. (name "emacs-evil-cleverparens")
  24476. (version (git-version "2017-07-17" revision commit))
  24477. (source (origin
  24478. (method git-fetch)
  24479. (uri (git-reference
  24480. (url "https://github.com/luxbock/evil-cleverparens")
  24481. (commit commit)))
  24482. (sha256 (base32 "0lhnybpnk4n2yhlcnj9zxn0vi5hpjfaqfhvyfy7ckzz74g8v7iyw"))
  24483. (file-name (git-file-name name version))))
  24484. (build-system emacs-build-system)
  24485. (propagated-inputs
  24486. `(("emacs-evil" ,emacs-evil)
  24487. ("emacs-paredit" ,emacs-paredit)
  24488. ("emacs-smartparens" ,emacs-smartparens)))
  24489. (home-page "https://github.com/luxbock/evil-cleverparens")
  24490. (synopsis "Emacs modal editing optimized for editing Lisp")
  24491. (description "@code{evil-cleverparens} remaps Evil keybindings to allow
  24492. modal editing with screwing up the structure of Lisp code. Alternatives for
  24493. verb commands which would are normally destructive (such as deletion) are
  24494. provided. Those alternative commands are and bound by default to their
  24495. corresponding Evil keys.")
  24496. (license license:expat))))
  24497. (define-public emacs-evil-traces
  24498. (let ((commit "1931e3ea2c64b4aec393a9c25063c330deff55e3")
  24499. (revision "2"))
  24500. (package
  24501. (name "emacs-evil-traces")
  24502. (version (git-version "0.0.1" revision commit))
  24503. (source (origin
  24504. (method git-fetch)
  24505. (uri (git-reference
  24506. (url "https://github.com/mamapanda/evil-traces")
  24507. (commit commit)))
  24508. (file-name (git-file-name name version))
  24509. (sha256
  24510. (base32
  24511. "12p9lfxscs182vbd4dy0m5gacs3d4kyprbz5yndpwvl8g2qsqplz"))))
  24512. (build-system emacs-build-system)
  24513. (propagated-inputs
  24514. `(("emacs-evil" ,emacs-evil)))
  24515. (arguments
  24516. `(#:phases
  24517. (modify-phases %standard-phases
  24518. (add-after 'unpack 'set-shell
  24519. ;; Setting the SHELL environment variable is required for the tests
  24520. ;; to find sh.
  24521. (lambda _
  24522. (setenv "SHELL" (which "sh"))
  24523. #t)))
  24524. #:tests? #t
  24525. #:test-command '("make" "test")))
  24526. (home-page "https://github.com/mamapanda/evil-traces")
  24527. (synopsis "Visual hints for @code{evil-ex}")
  24528. (description "This package adds visual hints to certain @code{ex}
  24529. commands in @code{evil-mode}.")
  24530. (license license:gpl3+))))
  24531. (define-public emacs-evil-tmux-navigator
  24532. (package
  24533. (name "emacs-evil-tmux-navigator")
  24534. (version "0.1.5")
  24535. (source
  24536. (origin
  24537. (method git-fetch)
  24538. (uri
  24539. (git-reference
  24540. (url "https://github.com/keith/evil-tmux-navigator")
  24541. (commit version)))
  24542. (file-name (git-file-name name version))
  24543. (sha256
  24544. (base32
  24545. "1na44rbc03sr5b4z9pvnps6n4nmrqcz58nywix9825l74a419ijx"))))
  24546. (propagated-inputs
  24547. `(("emacs-evil" ,emacs-evil)))
  24548. (build-system emacs-build-system)
  24549. (home-page "https://github.com/keith/evil-tmux-navigator")
  24550. (synopsis
  24551. "Navigate seamlessly between emacs windows and tmux panes")
  24552. (description
  24553. "This package lets you use C-h, C-j, C-k and C-l to navigate between
  24554. Emacs windows and tmux panes.")
  24555. (license license:expat)))
  24556. (define-public emacs-xclip
  24557. (package
  24558. (name "emacs-xclip")
  24559. (version "1.10")
  24560. (source
  24561. (origin
  24562. (method url-fetch)
  24563. (uri (string-append "https://elpa.gnu.org/packages/"
  24564. "xclip-" version ".el"))
  24565. (sha256
  24566. (base32 "0i3i9kwfg8qmhcmqhhnrb1kljgwkccv63s9q1mjwqfjldyfh8j8i"))))
  24567. (build-system emacs-build-system)
  24568. (home-page "http://elpa.gnu.org/packages/xclip.html")
  24569. (synopsis "Copy and paste GUI clipboard from Emacs in text terminal")
  24570. (description
  24571. "This package allows Emacs to copy to and paste from the GUI clipboard
  24572. when running in text terminal.
  24573. It can use external command-line tools for that, e.g., @command{xclip} or
  24574. @command{xsel}, which you may need to install in order for the package to
  24575. work.")
  24576. (license license:gpl3+)))
  24577. (define-public emacs-xterm-color
  24578. (package
  24579. (name "emacs-xterm-color")
  24580. (version "2.0")
  24581. (source
  24582. (origin
  24583. (method git-fetch)
  24584. (uri (git-reference
  24585. (url "https://github.com/atomontage/xterm-color")
  24586. (commit version)))
  24587. (file-name (git-file-name name version))
  24588. (sha256
  24589. (base32 "127lq50q62x06kd1xrf8lyc4rkqbfhfy86gsx1x4x169am2xk397"))))
  24590. (build-system emacs-build-system)
  24591. (home-page "https://github.com/atomontage/xterm-color")
  24592. (synopsis "ANSI & xterm-256 color text property translator for Emacs")
  24593. (description "@code{xterm-color.el} is an ANSI control sequence to
  24594. text-property translator.")
  24595. (license license:bsd-2)))
  24596. (define-public emacs-org-noter
  24597. (package
  24598. (name "emacs-org-noter")
  24599. (version "1.4.1")
  24600. (source
  24601. (origin
  24602. (method git-fetch)
  24603. (uri (git-reference
  24604. (url "https://github.com/weirdNox/org-noter")
  24605. (commit version)))
  24606. (file-name (git-file-name name version))
  24607. (sha256
  24608. (base32
  24609. "1vwfpdi7hfkxx4vi0cwg7rvqby3i0mymzdkyzrqzv30dazmcjpag"))))
  24610. (build-system emacs-build-system)
  24611. (propagated-inputs `(("emacs-org" ,emacs-org)))
  24612. (home-page "https://github.com/weirdNox/org-noter")
  24613. (synopsis "Synchronized, Org-mode, document annotator")
  24614. (description
  24615. "This package lets you create notes that are kept in sync when you
  24616. scroll through the document, but that are external to it---the notes
  24617. themselves live in an Org-mode file. As such, this leverages the power of
  24618. Org-mode (the notes may have outlines, latex fragments, babel, etc...) while
  24619. acting like notes that are made @emph{in} the document.")
  24620. (license license:gpl3+)))
  24621. (define-public emacs-org-redmine
  24622. (let ((commit "e77d013bc3784947c46a5c53f03cd7d3c68552fc"))
  24623. (package
  24624. (name "emacs-org-redmine")
  24625. (version (git-version "0.1" "1" commit))
  24626. (source (origin
  24627. (method git-fetch)
  24628. (uri (git-reference
  24629. (url "https://github.com/gongo/org-redmine")
  24630. (commit commit)))
  24631. (file-name (git-file-name name version))
  24632. (sha256
  24633. (base32
  24634. "06miv3mf2a39vkf6mmm5ssc47inqh7dq82khsyc03anz4d4lj822"))))
  24635. (build-system emacs-build-system)
  24636. (home-page "https://github.com/gongo/org-redmine/")
  24637. (synopsis "Redmine tools using Emacs")
  24638. (description "This program provides an Emacs client for Redmine.")
  24639. (license license:gpl3+))))
  24640. (define-public emacs-multi-term
  24641. ;; No upstream release. Extract version from main file.
  24642. (let ((commit "017c77c550115936860e2ea71b88e585371475d5")
  24643. (revision "0"))
  24644. (package
  24645. (name "emacs-multi-term")
  24646. (version (git-version "1.5" revision commit))
  24647. (source
  24648. (origin
  24649. (method git-fetch)
  24650. (uri (git-reference
  24651. (url "https://github.com/manateelazycat/multi-term")
  24652. (commit commit)))
  24653. (file-name (git-file-name name version))
  24654. (sha256
  24655. (base32 "043dqd8i8h6hbcg11rzprxin2yq5lb902zlrb7mxah44vyp8wrdi"))))
  24656. (build-system emacs-build-system)
  24657. (inputs
  24658. `(("zsh" ,zsh)))
  24659. (home-page "https://github.com/manateelazycat/multi-term")
  24660. (synopsis "Manage multiple terminal buffers in Emacs")
  24661. (description
  24662. "This package enhances @code{term.el} with the following features:
  24663. @enumerate
  24664. @item Functions to switch between multiple terminal buffers
  24665. @item List of keys to be intercepted by @code{emacs-multi-term} instead of by
  24666. the underlying terminal
  24667. @item Kills the unused buffer left after exiting the terminal
  24668. @item Kills the running sub-processes along with the terminal when killing the
  24669. it forcibly
  24670. @item Dedicated window for debugging program.
  24671. @end enumerate")
  24672. (license license:gpl3+))))
  24673. (define-public emacs-elpher
  24674. (package
  24675. (name "emacs-elpher")
  24676. (version "3.2.2")
  24677. (source
  24678. (origin
  24679. (method git-fetch)
  24680. (uri (git-reference
  24681. (url "git://thelambdalab.xyz/elpher.git")
  24682. (commit (string-append "v" version))))
  24683. (file-name (git-file-name name version))
  24684. (sha256
  24685. (base32 "0fzqm5gpadqzsl71r1bq72ki8dw8125v4nmhdd3b4rz9jy1rqm2g"))))
  24686. (build-system emacs-build-system)
  24687. (native-inputs
  24688. `(("texinfo" ,texinfo)))
  24689. (arguments
  24690. `(#:phases
  24691. (modify-phases %standard-phases
  24692. (add-before 'install 'build-doc
  24693. (lambda _
  24694. (invoke "makeinfo" "elpher.texi"))))))
  24695. (home-page "gopher://thelambdalab.xyz/1/projects/elpher/")
  24696. (synopsis "Gopher and gemini client for Emacs")
  24697. (description "Elpher is a full-featured gopher and gemini client for
  24698. Emacs. Its features include intuitive keyboard and mouse-driven browsing,
  24699. out-of-the-box compatibility with evil-mode, clickable links in plain text,
  24700. caching of visited sites, pleasant and configurable visualization of Gopher
  24701. directories, direct visualisation of image files, jumping directly to links by
  24702. name (with autocompletion), a simple bookmark management system and
  24703. connections using TLS encryption.")
  24704. (license license:gpl3+)))
  24705. (define-public emacs-zerodark-theme
  24706. (package
  24707. (name "emacs-zerodark-theme")
  24708. (version "4.7")
  24709. (source
  24710. (origin
  24711. (method git-fetch)
  24712. (uri (git-reference
  24713. (url "https://github.com/NicolasPetton/zerodark-theme")
  24714. (commit version)))
  24715. (file-name (git-file-name name version))
  24716. (sha256
  24717. (base32
  24718. "1r5s4mvwlxsb9ylr6dkfxpm1l0pbqkmn5gwjdcfk762cnxlam8cm"))))
  24719. (build-system emacs-build-system)
  24720. (propagated-inputs
  24721. `(("emacs-flycheck" ,emacs-flycheck)
  24722. ("emacs-all-the-icons" ,emacs-all-the-icons)))
  24723. (home-page
  24724. "https://gitlab.petton.fr/nico/zerodark-theme")
  24725. (synopsis
  24726. "Dark, medium contrast theme for Emacs")
  24727. (description
  24728. "Zerodark is a dark theme inspired from One Dark and Niflheim.
  24729. An optional mode-line format can be enabled with @code{zerodark-setup-modeline-format}.")
  24730. (license license:gpl3+)))
  24731. (define-public emacs-gnus-alias
  24732. (package
  24733. (name "emacs-gnus-alias")
  24734. (version "20150316")
  24735. (source (origin
  24736. (method git-fetch)
  24737. (uri (git-reference
  24738. (url "https://github.com/hexmode/gnus-alias")
  24739. (commit "9447d3ccb4c0e75d0468899cccff7aa249657bac")))
  24740. (file-name (git-file-name name version))
  24741. (sha256
  24742. (base32
  24743. "1i278npayv3kfxxd1ypi9n83q5l402sbc1zkm11pf8g006ifqsp4"))))
  24744. (build-system emacs-build-system)
  24745. (home-page "https://melpa.org/#/gnus-alias")
  24746. (synopsis "Alternative to @code{gnus-posting-styles}")
  24747. (description "This Emacs add-on provides a simple mechanism to switch
  24748. Identities when using a @code{message-mode} or a @code{message-mode} derived
  24749. mode. Identities can include @code{From} and @code{Organisation} headers,
  24750. extra headers, body and signature. Other features include:
  24751. @itemize
  24752. @item Switch Identities in a message buffer.
  24753. @item Access original message to help determine Identity of the followup/reply
  24754. message.
  24755. @item Act on a forwarded message as if it were a message being replied to.
  24756. @item Start a new message with a given Identity pre-selected.
  24757. @end itemize")
  24758. (license license:gpl2+)))
  24759. (define-public emacs-ox-epub
  24760. (package
  24761. (name "emacs-ox-epub")
  24762. (version "0.3")
  24763. (source (origin
  24764. (method git-fetch)
  24765. (uri (git-reference
  24766. (url "https://github.com/ofosos/ox-epub")
  24767. (commit (string-append "v" version))))
  24768. (file-name (git-file-name name version))
  24769. (sha256
  24770. (base32
  24771. "057sqmvm8hwkhcg3yd4i8zz2xlqsqrpyiklyiw750s3i5mxdn0k7"))))
  24772. (build-system emacs-build-system)
  24773. (home-page "https://github.com/ofosos/ox-epub")
  24774. (synopsis "Export org mode projects to EPUB")
  24775. (description "@code{ox-epub} extends the (X)HTML exporter to generate
  24776. @code{.epub} files directly from OrgMode. This will export EPUB version 2,
  24777. which should give broad compatibility. It should also be relatiely easy to
  24778. convert the resulting @code{.epub} to a @code{.mobi} file. Needs a working
  24779. zip utility (default is @code{zip}).")
  24780. (license license:gpl3+)))
  24781. (define-public emacs-ox-gemini
  24782. ;; No releases yet
  24783. (let ((commit "d88c10bcb10fc463fa5a2f6e29c8c94b75a314c0")
  24784. (revision "0"))
  24785. (package
  24786. (name "emacs-ox-gemini")
  24787. (version (git-version "0" revision commit))
  24788. (source
  24789. (origin
  24790. (method git-fetch)
  24791. (uri (git-reference
  24792. (url "https://git.sr.ht/~abrahms/ox-gemini")
  24793. (commit commit)))
  24794. (file-name (git-file-name name version))
  24795. (sha256
  24796. (base32 "1f8kbg5vjd1k7fak3v56b77yk612j6vmzx4xzx3m2vq3f0nyxq29"))))
  24797. (build-system emacs-build-system)
  24798. (home-page "https://sr.ht/~abrahms/ox-gemini")
  24799. (synopsis "Export Org files in Gemini format")
  24800. (description
  24801. "@code{ox-gemini} adds support for exporting Org files in Gemini
  24802. format. Many things were taken from the ASCII exporter, from which
  24803. @code{ox-gemini} derives.")
  24804. (license license:gpl3+))))
  24805. (define-public emacs-ox-haunt
  24806. (package
  24807. (name "emacs-ox-haunt")
  24808. (version "0.2")
  24809. (source
  24810. (origin
  24811. (method git-fetch)
  24812. (uri (git-reference
  24813. (url "https://git.sr.ht/~jakob/ox-haunt")
  24814. (commit (string-append "v" version))))
  24815. (file-name (git-file-name name version))
  24816. (sha256
  24817. (base32 "1rs1n228c2fmpvirc57bqgf2616ijpphkgf4w9ln5j46snmkam25"))))
  24818. (build-system emacs-build-system)
  24819. (home-page "https://git.sr.ht/~jakob/ox-haunt")
  24820. (synopsis "Export Org files to HTML appropriate for Haunt")
  24821. (description
  24822. "This library implements an HTML back-end for the Org generic exporter,
  24823. producing output appropriate for Haunt's @code{html-reader}.")
  24824. (license license:gpl3+)))
  24825. (define-public emacs-ox-hugo
  24826. (package
  24827. (name "emacs-ox-hugo")
  24828. (version "0.8")
  24829. (source
  24830. (origin
  24831. (method git-fetch)
  24832. (uri (git-reference
  24833. (url "https://github.com/kaushalmodi/ox-hugo")
  24834. (commit (string-append "v" version))))
  24835. (file-name (git-file-name name version))
  24836. (sha256
  24837. (base32
  24838. "11h464cyc28ld0b0zridgm4drydc1qjxbm1y24zrwlkyqqjk6yr7"))))
  24839. (build-system emacs-build-system)
  24840. (home-page "https://ox-hugo.scripter.co")
  24841. (synopsis "Hugo markdown back-end for Org export engine")
  24842. (description
  24843. "Ox-hugo is an Org exporter backend that exports Org to Hugo-compatible
  24844. Markdown, Blackfriday, and also generates the front-matter in TOML or YAML
  24845. format.")
  24846. (license license:gpl3+)))
  24847. (define-public emacs-ox-pandoc
  24848. (package
  24849. (name "emacs-ox-pandoc")
  24850. (version "20180510")
  24851. (source (origin
  24852. (method git-fetch)
  24853. (uri (git-reference
  24854. (url "https://github.com/kawabata/ox-pandoc")
  24855. (commit "aa37dc7e94213d4ebedb85c384c1ba35007da18e")))
  24856. (file-name (git-file-name name version))
  24857. (sha256
  24858. (base32
  24859. "0iibxplgdp34bpq1yll2gmqjd8d8lnqn4mqjvx6cdf0y438yr4jz"))))
  24860. (build-system emacs-build-system)
  24861. (inputs
  24862. `(("pandoc" ,pandoc)))
  24863. (propagated-inputs
  24864. `(("emacs-dash" ,emacs-dash)
  24865. ("emacs-ht" ,emacs-ht)))
  24866. (home-page "https://github.com/kawabata/ox-pandoc")
  24867. (synopsis "Org exporter for Pandoc")
  24868. (description "@code{ox-pandoc} is an exporter for converting Org-mode
  24869. files to numerous other formats via Pandoc.")
  24870. (license license:gpl3+)))
  24871. (define-public emacs-wc-mode
  24872. (package
  24873. (name "emacs-wc-mode")
  24874. (version "1.4.1")
  24875. (source (origin
  24876. (method git-fetch)
  24877. (uri (git-reference
  24878. (url "https://github.com/bnbeckwith/wc-mode")
  24879. (commit (string-append "v" version))))
  24880. (file-name (git-file-name name version))
  24881. (sha256
  24882. (base32
  24883. "1wzgb4z2qyyv223x5fc7ff2fn5xpz4s7lr1q1y33q8878a7w9d45"))))
  24884. (build-system emacs-build-system)
  24885. (home-page "https://github.com/bnbeckwith/wc-mode")
  24886. (synopsis "Running word count with goals (minor mode)")
  24887. (description "@code{wc-mode} is a minor mode, providing a ‘wc’ function
  24888. for Emacs buffers as well as a modeline addition with live word, line and
  24889. character counts. Additionally, a user can set specific goals for adding or
  24890. deleting words. These goals were partly inspired by 750words.com where the
  24891. goal of the site is to encourage writing by setting a goal of 750 words at a
  24892. time.")
  24893. (license license:gpl3+)))
  24894. (define-public emacs-mastodon
  24895. (package
  24896. (name "emacs-mastodon")
  24897. (version "0.9.0")
  24898. (source (origin
  24899. (method git-fetch)
  24900. (uri (git-reference
  24901. (url "https://github.com/jdenen/mastodon.el")
  24902. (commit version)))
  24903. (file-name (git-file-name name version))
  24904. (sha256
  24905. (base32
  24906. "0hwax6y9dghqwsbnb6f1bnc7gh8xsh5cvcnayk2sn49x8b0zi5h1"))))
  24907. (build-system emacs-build-system)
  24908. (arguments
  24909. `(#:phases
  24910. (modify-phases %standard-phases
  24911. ;; Move the source files to the top level, which is included in
  24912. ;; the EMACSLOADPATH.
  24913. (add-after 'unpack 'move-source-files
  24914. (lambda _
  24915. (let ((el-files (find-files "./lisp" ".*\\.el$")))
  24916. (for-each (lambda (f)
  24917. (rename-file f (basename f)))
  24918. el-files))
  24919. #t)))))
  24920. (home-page "https://github.com/jdenen/mastodon.el")
  24921. (synopsis "Emacs client for Mastodon")
  24922. (description "@code{mastodon.el} is an Emacs client for Mastodon, the
  24923. federated microblogging social network.")
  24924. (license license:gpl3+)))
  24925. (define-public emacs-ebdb
  24926. (package
  24927. (name "emacs-ebdb")
  24928. (version "0.8.4")
  24929. (source
  24930. (origin
  24931. (method url-fetch)
  24932. (uri (string-append "https://elpa.gnu.org/packages/"
  24933. "ebdb-" version ".tar"))
  24934. (sha256
  24935. (base32 "0n811af83fqpzq9513gf240gnz7qkwrjw07qs4sra4069q0pwnjr"))))
  24936. (build-system emacs-build-system)
  24937. (home-page "https://github.com/girzel/ebdb")
  24938. (synopsis "EIEIO port of BBDB, Emacs's contact-management package")
  24939. (description
  24940. "EBDB is a contact management/addressbook package for Emacs. It's
  24941. a re-write of the Insidious Big Brother Database (BBDB) using Emacs
  24942. Lisp's (relatively new) EIEIO object oriented libraries.")
  24943. (license license:gpl3+)))
  24944. (define-public emacs-refactor
  24945. (package
  24946. (name "emacs-refactor")
  24947. (version "0.4")
  24948. (source (origin
  24949. (method git-fetch)
  24950. (uri (git-reference
  24951. (url "https://github.com/Wilfred/emacs-refactor")
  24952. (commit version)))
  24953. (file-name (git-file-name name version))
  24954. (sha256
  24955. (base32
  24956. "1yky7vlv91501xb43xk19rr8mxlvrsxhawsc98jivf64nad5dqay"))))
  24957. (build-system emacs-build-system)
  24958. (propagated-inputs
  24959. `(("emacs-dash" ,emacs-dash)
  24960. ("emacs-s" ,emacs-s)
  24961. ("emacs-popup" ,emacs-popup)
  24962. ("emacs-list-utils" ,emacs-list-utils)
  24963. ("emacs-iedit" ,emacs-iedit)))
  24964. (home-page "https://github.com/Wilfred/emacs-refactor/")
  24965. (synopsis "Language-specific refactoring in Emacs")
  24966. (description "Emacs Refactor (EMR) is a framework for providing
  24967. language-specific refactoring in Emacs. It includes refactoring commands for
  24968. a variety of languages, including elisp itself.")
  24969. (license license:gpl3+)))
  24970. (define-public emacs-flyspell-correct
  24971. (package
  24972. (name "emacs-flyspell-correct")
  24973. (version "0.6.1")
  24974. (source
  24975. (origin
  24976. (method git-fetch)
  24977. (uri (git-reference
  24978. (url "https://github.com/d12frosted/flyspell-correct")
  24979. (commit (string-append "v" version))))
  24980. (file-name (git-file-name name version))
  24981. (sha256
  24982. (base32 "1m5da6r82hk0c2x3lw03qnkk79sx67875afw0ybblj3cmfk6szd1"))))
  24983. (build-system emacs-build-system)
  24984. ;; XXX: emacs-avy-menu is not packaged, so we ignore the file below.
  24985. (arguments
  24986. `(#:exclude '("flyspell-correct-avy-menu\\.el")))
  24987. (propagated-inputs
  24988. `(("emacs-helm" ,emacs-helm)
  24989. ("emacs-ivy" ,emacs-ivy)
  24990. ("emacs-popup" ,emacs-popup)))
  24991. (home-page "https://github.com/d12frosted/flyspell-correct")
  24992. (synopsis "Correcting words with flyspell via custom interfaces")
  24993. (description
  24994. "This package provides functionality for correcting words via custom
  24995. interfaces. Several interfaces are supported beside the classic Ido: Popup,
  24996. Helm and Ivy.")
  24997. (license license:gpl3+)))
  24998. (define-public emacs-org-emms
  24999. (let ((commit "07a8917f3d628c32e5de1dbd118ac08203772533")
  25000. (revision "1"))
  25001. (package
  25002. (name "emacs-org-emms")
  25003. (version
  25004. (git-version "0.1" revision commit))
  25005. (source
  25006. (origin
  25007. (method git-fetch)
  25008. (uri (git-reference
  25009. (url "https://gitlab.com/jagrg/org-emms.git")
  25010. (commit commit)))
  25011. (file-name (git-file-name name commit))
  25012. (sha256
  25013. (base32
  25014. "1sqsm5sv311xfdk4f4rsnvprdf2v2vm7l1b3vqi7pc0g8adlnw1d"))))
  25015. (build-system emacs-build-system)
  25016. (propagated-inputs
  25017. `(("emms" ,emacs-emms)
  25018. ("emacs-org" ,emacs-org)))
  25019. (home-page "https://gitlab.com/jagrg/org-emms")
  25020. (synopsis "Play multimedia files from org-mode")
  25021. (description
  25022. "This package provides a new org link type for playing back multimedia
  25023. files from org-mode using EMMS, The Emacs Multimedia System. If the link
  25024. contains a track position, playback will start at the specified position.")
  25025. (license license:gpl3+))))
  25026. (define-public emacs-org-jira
  25027. (package
  25028. (name "emacs-org-jira")
  25029. (version "4.3.2")
  25030. (source
  25031. (origin
  25032. (method git-fetch)
  25033. (uri (git-reference
  25034. (url "https://github.com/ahungry/org-jira")
  25035. (commit version)))
  25036. (file-name (git-file-name name version))
  25037. (sha256
  25038. (base32
  25039. "1hsfkkm3ykdf7n8a6k0mpzilhjpy7vllwrl2s4rfb9mhnaq5yb8y"))))
  25040. (build-system emacs-build-system)
  25041. (propagated-inputs
  25042. `(("emacs-request" ,emacs-request)
  25043. ("emacs-s" ,emacs-s)
  25044. ("emacs-dash" ,emacs-dash)
  25045. ("emacs-org" ,emacs-org)))
  25046. (home-page "https://github.com/ahungry/org-jira")
  25047. (synopsis "Syncing between Jira and Org-mode")
  25048. (description
  25049. "This package provides an extension to org-mode for syncing issues with
  25050. JIRA issue servers.")
  25051. (license license:gpl3+)))
  25052. (define-public emacs-slime-volleyball
  25053. (package
  25054. (name "emacs-slime-volleyball")
  25055. (version "1.2.0")
  25056. (source
  25057. (origin
  25058. (method url-fetch)
  25059. (uri (string-append "https://elpa.gnu.org/packages/"
  25060. "slime-volleyball-" version ".tar"))
  25061. (sha256
  25062. (base32 "07xavg6xq5ckrfy5sk5k5ldb46m5w8nw1r1k006ck8f23ajaw5z2"))))
  25063. (build-system emacs-build-system)
  25064. (arguments '(#:include '("\\.el$" "\\.svg$" "\\.b64$" "slime\\.el\\.gz$")))
  25065. (home-page "http://elpa.gnu.org/packages/slime-volleyball.html")
  25066. (synopsis "SVG slime volleyball game")
  25067. (description
  25068. "Emacs Slime Volleyball is a volleyball game. Win points by
  25069. making the ball land on your opponent's side of the court. The first
  25070. player to five points wins! You can play against a friend, or
  25071. challenge the three computer opponents in one player mode. You can
  25072. even train opponent slimes.")
  25073. (license license:gpl3+)))
  25074. (define-public emacs-systemd-mode
  25075. (package
  25076. (name "emacs-systemd-mode")
  25077. (version "1.6")
  25078. (source (origin
  25079. (method git-fetch)
  25080. (uri (git-reference
  25081. (url "https://github.com/holomorph/systemd-mode")
  25082. (commit (string-append "v" version))))
  25083. (file-name (git-file-name name version))
  25084. (sha256
  25085. (base32
  25086. "0ylgnvpfindg4cxccbqy02ic7p0i9rygf1w16dm1filwhbqvjplq"))))
  25087. (build-system emacs-build-system)
  25088. (arguments '(#:include '("\\.el$" "\\.txt$")))
  25089. (home-page "https://github.com/holomorph/systemd-mode")
  25090. (synopsis
  25091. "Major mode for editing systemd units")
  25092. (description
  25093. "Major mode for editing systemd units in GNU Emacs.")
  25094. (license license:gpl3+)))
  25095. (define-public emacs-ssh-config-mode
  25096. (let ((commit "4c1dfa57d452cb5654453bf186c8ff63e1e71b56")
  25097. (revision "1"))
  25098. (package
  25099. (name "emacs-ssh-config-mode")
  25100. (version (git-version "8.0" revision commit))
  25101. (source
  25102. (origin
  25103. (method git-fetch)
  25104. (uri
  25105. (git-reference
  25106. (url "https://github.com/jhgorrell/ssh-config-mode-el")
  25107. (commit commit)))
  25108. (file-name (git-file-name name commit))
  25109. (sha256
  25110. (base32
  25111. "0crglfdazzckizbwzmgl2rn6j85avfzkr1q7ijxd17rp2anvr9bd"))))
  25112. (build-system emacs-build-system)
  25113. (arguments '(#:include '("\\.el$" "\\.txt$")))
  25114. (home-page
  25115. "https://github.com/jhgorrell/ssh-config-mode-el")
  25116. (synopsis
  25117. "Mode for fontification of ~/.ssh/config")
  25118. (description
  25119. "This package fontifies the ssh config keywords and creates
  25120. keybindings for skipping from host section to host section.")
  25121. (license license:gpl3+))))
  25122. (define-public emacs-ssh-agency
  25123. (package
  25124. (name "emacs-ssh-agency")
  25125. (version "0.4.1")
  25126. (source (origin
  25127. (method git-fetch)
  25128. (uri (git-reference
  25129. (url "https://github.com/magit/ssh-agency")
  25130. (commit version)))
  25131. (file-name (git-file-name name version))
  25132. (sha256
  25133. (base32
  25134. "1i3zmsn0w2k7p2hlzssibckm32kf05l56mkhg96x4sf06g3pwq1d"))))
  25135. (build-system emacs-build-system)
  25136. (propagated-inputs
  25137. `(("dash" ,emacs-dash)))
  25138. (home-page "https://github.com/magit/ssh-agency")
  25139. (synopsis "Manage @code{ssh-agent} from Emacs")
  25140. (description
  25141. "This package provides functions to startup @code{ssh-agent}, set the
  25142. needed environment variables in Emacs, and prompt for passphrases from within
  25143. Emacs so that pushes and pulls from @code{magit} will not require entering any
  25144. passphrase.
  25145. It can also be useful on Unix-like platforms to delay having to enter your
  25146. passphrase until the first time you push to a remote.")
  25147. (license license:gpl3+)))
  25148. (define-public emacs-tao-theme
  25149. (let ((commit "468ee4f6ba7afb9dbfc8855ae2c333cb16ca4408")
  25150. (revision "1"))
  25151. (package
  25152. (name "emacs-tao-theme")
  25153. (version (git-version "1.1.1" revision commit))
  25154. (source
  25155. (origin
  25156. (method git-fetch)
  25157. (uri (git-reference
  25158. (url "https://github.com/11111000000/tao-theme-emacs")
  25159. (commit commit)))
  25160. (file-name (git-file-name name version))
  25161. (sha256
  25162. (base32
  25163. "0yqibx6wcdsj5k6130c3qp0hmj6zwhfjrrvw98lny23ksw6k0s3s"))))
  25164. (build-system emacs-build-system)
  25165. (home-page "https://github.com/11111000000/tao-theme-emacs")
  25166. (synopsis "Parameterized uncolored color themes for Emacs")
  25167. (description
  25168. "This package provides two parameterized uncolored color themes for
  25169. Emacs: @code{tao-yin} and @code{tao-yang}. The default
  25170. @code{tao-theme-scale-fn} is @code{tao-theme-golden-scale}.
  25171. You can customize: @code{tao-theme-scale-fn}, that returns 16 2-digit numbers;
  25172. @code{tao-theme-scale-filter-fn}, for edge filter; and
  25173. @code{tao-theme-use-height}.")
  25174. (license license:gpl3+))))
  25175. (define-public emacs-almost-mono-themes
  25176. (let ((commit "c3a85c1a665530a5d830665969725cdba8eceb75")
  25177. (revision "0"))
  25178. (package
  25179. (name "emacs-almost-mono-themes")
  25180. (version (git-version "0" revision commit))
  25181. (source
  25182. (origin
  25183. (method git-fetch)
  25184. (uri (git-reference
  25185. (url "https://github.com/cryon/almost-mono-themes")
  25186. (commit commit)))
  25187. (file-name (git-file-name name version))
  25188. (sha256
  25189. (base32
  25190. "034k32xkr5ma415hlkbl35z0jxc4sa1inf87hg3y6lrlfl83fyjh"))))
  25191. (build-system emacs-build-system)
  25192. (home-page "https://github.com/cryon/almost-mono-themes")
  25193. (synopsis "Almost monochromatic themes for emacs in a few variants")
  25194. (description
  25195. "This package provides a collection of almost monochrome Emacs themes:
  25196. @code{almost-mono-black} and @code{almost-mono-white}.")
  25197. (license license:gpl3+))))
  25198. (define-public emacs-quasi-monochrome
  25199. (let ((commit "68060dbbc0bbfe4924387392874186c5a29bb434")
  25200. (revision "0"))
  25201. (package
  25202. (name "emacs-quasi-monochrome")
  25203. (version (git-version "1.2" revision commit))
  25204. (source
  25205. (origin
  25206. (method git-fetch)
  25207. (uri (git-reference
  25208. (url "https://github.com/lbolla/emacs-quasi-monochrome")
  25209. (commit commit)))
  25210. (file-name (git-file-name name version))
  25211. (sha256
  25212. (base32
  25213. "0zp2xr0bjfqrpb0bqczzick1vvbjmipjavrdi70kw6a9caynvq22"))))
  25214. (build-system emacs-build-system)
  25215. (home-page "https://github.com/lbolla/emacs-quasi-monochrome")
  25216. (synopsis "Dark color theme for Emacs")
  25217. (description
  25218. "This package provides a dark color theme with a black background, high
  25219. contrast and few colors.")
  25220. (license license:gpl3+))))
  25221. (define-public emacs-doom-themes
  25222. (let ((commit "e803fc4ac8cf7118e2d1544d8241b848b5e79e9f")
  25223. (revision "5")
  25224. (version "2.1.6"))
  25225. (package
  25226. (name "emacs-doom-themes")
  25227. (version (git-version version revision commit))
  25228. (source (origin
  25229. (method git-fetch)
  25230. (uri (git-reference
  25231. (url "https://github.com/hlissner/emacs-doom-themes")
  25232. (commit commit)))
  25233. (file-name (git-file-name name version))
  25234. (sha256
  25235. (base32 "128hdmf0jkzr12fv2r6z349qiwba6q97hsb6b1n2qlhi0v5v3mfh"))))
  25236. (build-system emacs-build-system)
  25237. (native-inputs
  25238. `(("emacs-ert-runner" ,emacs-ert-runner)))
  25239. (arguments
  25240. `(#:tests? #t
  25241. #:test-command '("ert-runner")
  25242. #:modules ((guix build emacs-build-system)
  25243. (guix build utils)
  25244. (guix build emacs-utils)
  25245. (srfi srfi-1))
  25246. #:phases
  25247. (modify-phases %standard-phases
  25248. (add-after 'unpack 'move-themes
  25249. (lambda _
  25250. ;; Move the source files to the top level, which is in the
  25251. ;; EMACSLOADPATH.
  25252. (for-each (lambda (f)
  25253. (rename-file f (basename f)))
  25254. (find-files "./themes" ".*\\.el$"))
  25255. #t)))))
  25256. (synopsis "Wide collection of color themes for Emacs")
  25257. (description "Emacs-doom-themes contains numerous popular color themes for
  25258. Emacs that integrate with major modes like Org-mode.")
  25259. (home-page "https://github.com/hlissner/emacs-doom-themes")
  25260. (license license:expat))))
  25261. (define-public emacs-modus-themes
  25262. (package
  25263. (name "emacs-modus-themes")
  25264. (version "1.5.0")
  25265. (source
  25266. (origin
  25267. (method git-fetch)
  25268. (uri (git-reference
  25269. (url "https://gitlab.com/protesilaos/modus-themes")
  25270. (commit version)))
  25271. (file-name (git-file-name name version))
  25272. (sha256
  25273. (base32 "1yz5yr3acc601xcms7vr2jbj4bq6dqz8n5ymyfyxldid0n5ykzy4"))))
  25274. (build-system emacs-build-system)
  25275. (home-page "https://protesilaos.com/modus-themes/")
  25276. (synopsis "Accessible themes (WCAG AAA)")
  25277. (description
  25278. "The Modus themes are designed for accessible readability. They conform
  25279. with the highest standard for color contrast between any given combination of
  25280. background and foreground values. This corresponds to the WCAG AAA standard,
  25281. which specifies a minimum rate of distance in relative luminance of 7:1.
  25282. Modus Operandi (modus-operandi) is a light theme, while Modus
  25283. Vivendi (modus-vivendi) is dark. Each theme’s color palette is designed to
  25284. meet the needs of the numerous interfaces that are possible in the Emacs
  25285. computing environment.")
  25286. (license license:gpl3+)))
  25287. (define-public emacs-modus-operandi-theme
  25288. (deprecated-package "emacs-modus-operandi-theme" emacs-modus-themes))
  25289. (define-public emacs-modus-vivendi-theme
  25290. (deprecated-package "emacs-modus-vivendi-theme" emacs-modus-themes))
  25291. (define-public emacs-punpun-theme
  25292. (let ((commit "2f78125609277b2478abdebd8f9d5ee10a823b65")
  25293. (revision "0"))
  25294. (package
  25295. (name "emacs-punpun-theme")
  25296. (version (git-version "0" revision commit))
  25297. (source
  25298. (origin
  25299. (method git-fetch)
  25300. (uri (git-reference
  25301. (url "https://github.com/wasamasa/punpun-theme")
  25302. (commit commit)))
  25303. (file-name (git-file-name name version))
  25304. (sha256
  25305. (base32
  25306. "1sgxrj3igzq86h3whfymxf4qzv9kpvcrlhbvjmnp7fwrplys0n7d"))))
  25307. (build-system emacs-build-system)
  25308. (home-page "https://github.com/wasamasa/punpun-theme")
  25309. (synopsis "Bleak Emacs theme")
  25310. (description
  25311. "A bleak theme. Uses shades of gray and the occasional splash of
  25312. color. Designed for 256-color terminals. Comes in light and dark!")
  25313. (license license:gpl3+))))
  25314. (define-public emacs-spacemacs-theme
  25315. (let ((commit "f79c40fb241e204539fde97200abae91e828e585")
  25316. (revision "1"))
  25317. (package
  25318. (name "emacs-spacemacs-theme")
  25319. (version (git-version "0" revision commit)) ;no release yet
  25320. (source
  25321. (origin
  25322. (method git-fetch)
  25323. (uri (git-reference
  25324. (url "https://github.com/nashamri/spacemacs-theme")
  25325. (commit commit)))
  25326. (file-name (git-file-name name version))
  25327. (sha256
  25328. (base32 "1l2kkiyrskkpx8f901v0wrzaah1wjg15zdyv88spj3mh3hwd3b6n"))))
  25329. (build-system emacs-build-system)
  25330. (home-page "https://github.com/nashamri/spacemacs-theme")
  25331. (synopsis
  25332. "Light and dark theme for spacemacs that supports GUI and terminal")
  25333. (description
  25334. "Spacemacs theme is an Emacs color theme that started as
  25335. a theme for Spacemacs. The theme comes with dark and light variants
  25336. and it should work well with 256 color terminals.")
  25337. (license license:gpl3+))))
  25338. (define-public emacs-elixir-mode
  25339. (package
  25340. (name "emacs-elixir-mode")
  25341. (version "2.3.2")
  25342. (source
  25343. (origin
  25344. (method git-fetch)
  25345. (uri (git-reference
  25346. (url "https://github.com/elixir-editors/emacs-elixir")
  25347. (commit (string-append "v" version))))
  25348. (file-name (git-file-name name version))
  25349. (sha256
  25350. (base32 "0f2a360h8bizvqk6bmgxm59g8n7id5rzwlbv6d383h15w298mcga"))))
  25351. (build-system emacs-build-system)
  25352. (propagated-inputs
  25353. `(("emacs-pkg-info" ,emacs-pkg-info)))
  25354. (home-page
  25355. "https://github.com/elixir-editors/emacs-elixir")
  25356. (synopsis "Major mode for editing Elixir files")
  25357. (description
  25358. "Elixir-Mode provides font-locking, indentation and navigation support
  25359. for the Elixir programming language.")
  25360. (license license:gpl3+)))
  25361. (define-public emacs-dimmer
  25362. (package
  25363. (name "emacs-dimmer")
  25364. (version "0.4.2")
  25365. (source
  25366. (origin
  25367. (method git-fetch)
  25368. (uri (git-reference
  25369. (url "https://github.com/gonewest818/dimmer.el")
  25370. (commit version)))
  25371. (file-name (git-file-name name version))
  25372. (sha256
  25373. (base32
  25374. "0dw0qh5hm1x76s5cqxvylvmjgy0jwy11xm258g6kmx6w1k6r1d2l"))))
  25375. (build-system emacs-build-system)
  25376. (home-page "https://github.com/gonewest818/dimmer.el")
  25377. (synopsis "Visually highlights the selected buffer in Emacs")
  25378. (description "Dimmer provides a minor mode that indicates which buffer is
  25379. currently active by dimming the faces in the other buffers. It does this
  25380. nondestructively, and computes the dimmed faces dynamically such that your
  25381. overall color scheme is shown in a muted form without requiring you to define
  25382. what is a \"dim\" version of every face.")
  25383. (license license:gpl3+)))
  25384. (define-public emacs-minibuffer-line
  25385. (package
  25386. (name "emacs-minibuffer-line")
  25387. (version "0.1")
  25388. (source
  25389. (origin
  25390. (method url-fetch)
  25391. (uri (string-append
  25392. "https://elpa.gnu.org/packages/minibuffer-line-"
  25393. version
  25394. ".el"))
  25395. (sha256
  25396. (base32 "1ny4iirp26na5118wfgxlv6fxlrdclzdbd9m0lkrv51w0qw7spil"))))
  25397. (build-system emacs-build-system)
  25398. (home-page "https://elpa.gnu.org/packages/minibuffer-line.html")
  25399. (synopsis "Display status info in the minibuffer window")
  25400. (description
  25401. "This package lets you display various status information in the
  25402. minibuffer window instead of the mode-line. Of course, this is only displayed
  25403. when the minibuffer window is not already used for other things (e.g. a
  25404. minibuffer or an each area message).
  25405. The contents and aspect is controlled by the @code{minibuffer-line-format}
  25406. variable and the @code{minibuffer-line} face.")
  25407. (license license:gpl3+)))
  25408. (define-public emacs-eshell-prompt-extras
  25409. (package
  25410. (name "emacs-eshell-prompt-extras")
  25411. (version "1.0")
  25412. (home-page "https://github.com/zwild/eshell-prompt-extras")
  25413. (source
  25414. (origin
  25415. (method git-fetch)
  25416. (uri (git-reference
  25417. (url home-page)
  25418. (commit version)))
  25419. (file-name (git-file-name name version))
  25420. (sha256
  25421. (base32
  25422. "0gb07mns23dgqqr6qfy7d6ndizy15sqgbgfaig6k5xbjnwi02v9g"))))
  25423. (build-system emacs-build-system)
  25424. (synopsis "Display extra information and color for your Eshell prompt")
  25425. (description "This library displays various customizable elements for
  25426. @code{eshell} prompts: remote user, remote host, python virtual environment
  25427. info, git branch, git dirty info and git unpushed number. Multiple themes are
  25428. available.")
  25429. (license license:gpl3+)))
  25430. (define-public emacs-eshell-did-you-mean
  25431. (package
  25432. (name "emacs-eshell-did-you-mean")
  25433. (version "0.1")
  25434. (home-page "https://github.com/xuchunyang/eshell-did-you-mean")
  25435. (source
  25436. (origin
  25437. (method git-fetch)
  25438. (uri (git-reference
  25439. (url home-page)
  25440. (commit (string-append "v" version))))
  25441. (file-name (git-file-name name version))
  25442. (sha256
  25443. (base32
  25444. "0v0wshck5n4hspcv1zk1g2nm6xiigcjp16lx0dc8wzkl6ymljvbg"))))
  25445. (build-system emacs-build-system)
  25446. (synopsis "Display suggestions on 'command not found' in Eshell")
  25447. (description "This library adds a list of 'Did you mean...' suggestions
  25448. when the command was not found in Eshell. The suggestions are found after the
  25449. commands that bear resemblance to the input command.")
  25450. (license license:gpl3+)))
  25451. (define-public emacs-unfill
  25452. (package
  25453. (name "emacs-unfill")
  25454. (version "0.3")
  25455. (home-page "https://github.com/purcell/unfill")
  25456. (source
  25457. (origin
  25458. (method git-fetch)
  25459. (uri (git-reference
  25460. (url home-page)
  25461. (commit version)))
  25462. (file-name (git-file-name name version))
  25463. (sha256
  25464. (base32 "0pg64nza2mp4xyr69pjq51jsq1aaym0g38g4jzaxr0hh3w0ris1n"))))
  25465. (build-system emacs-build-system)
  25466. (synopsis "Inverse of Emacs' @code{fill-paragraph} and @code{fill-region}")
  25467. (description
  25468. "The functions in this package provide the inverse of Emacs'
  25469. @code{fill-paragraph} and @code{fill-region}.")
  25470. (license license:gpl3+)))
  25471. (define-public emacs-windower
  25472. (package
  25473. (name "emacs-windower")
  25474. (version "0.0.1")
  25475. (home-page "https://gitlab.com/ambrevar/emacs-windower")
  25476. (source
  25477. (origin
  25478. (method git-fetch)
  25479. (uri (git-reference
  25480. (url home-page)
  25481. (commit version)))
  25482. (file-name (git-file-name name version))
  25483. (sha256
  25484. (base32 "0h24gb1ip0czfasxm8wwcc3v19g7mznzw2sxkmmfb5iis59p7dfy"))))
  25485. (build-system emacs-build-system)
  25486. (synopsis "Helper functions for window manipulation in Emacs")
  25487. (description
  25488. "This package provides helper functions for window manipulation in Emacs,
  25489. such as:
  25490. @itemize
  25491. @item switch to last buffer,
  25492. @item toggle single window display,
  25493. @item toggle between horizontal and vertical splits,
  25494. @item move borders more naturally,
  25495. @item swap windows à-la @code{windmove}.
  25496. @end itemize")
  25497. (license license:gpl3+)))
  25498. (define-public emacs-flycheck-cpplint
  25499. (let ((commit "1d8a090861572258ab704915263feeb3a436c3d2")
  25500. (revision "1"))
  25501. (package
  25502. (name "emacs-flycheck-cpplint")
  25503. (version (git-version "0.1" revision commit))
  25504. (source
  25505. (origin
  25506. (method git-fetch)
  25507. (uri (git-reference
  25508. (url "https://github.com/flycheck/flycheck-google-cpplint")
  25509. (commit commit)))
  25510. (file-name (git-file-name name version))
  25511. (sha256
  25512. (base32 "0l6sg83f6z8x2alnblpv03rj442sbnkkkcbf8i0agjmx3713a5yx"))))
  25513. (build-system emacs-build-system)
  25514. (arguments
  25515. `(#:phases
  25516. (modify-phases %standard-phases
  25517. (add-after 'unpack 'set-cpplint-path
  25518. (lambda _
  25519. (substitute* "flycheck-google-cpplint.el"
  25520. (("\"cpplint.py\"")
  25521. (string-append "\"" (which "cpplint") "\"")))
  25522. #t)))))
  25523. (inputs
  25524. `(("cpplint" ,cpplint)))
  25525. (propagated-inputs
  25526. `(("flycheck-mode" ,emacs-flycheck)))
  25527. (synopsis "Google C++ checker for Flycheck")
  25528. (description "This package provides a interface for @code{cpplint} over
  25529. Flycheck plugin. @code{cpplint} is a static code checker for C++, following
  25530. Google guidelines.")
  25531. (home-page "https://github.com/flycheck/flycheck-google-cpplint")
  25532. (license license:gpl3+))))
  25533. (define-public emacs-helm-fish-completion
  25534. (package
  25535. (name "emacs-helm-fish-completion")
  25536. (version "0.6")
  25537. (home-page "https://github.com/emacs-helm/helm-fish-completion")
  25538. (source
  25539. (origin
  25540. (method git-fetch)
  25541. (uri (git-reference
  25542. (url home-page)
  25543. (commit version)))
  25544. (file-name (git-file-name name version))
  25545. (sha256
  25546. (base32 "1j2vfngq3512naaayv9kx0d1q2zg1xgs69l8afc7swg72h0l0imw"))))
  25547. (build-system emacs-build-system)
  25548. (propagated-inputs
  25549. `(("helm" ,emacs-helm)
  25550. ("fish-completion" ,emacs-fish-completion)))
  25551. (synopsis "Helm interface for Emacs fish-completion")
  25552. (description "Helm Fish Completion is a Helm interface for Emacs
  25553. fish-completion. It can be used in both Eshell and M-x shell.")
  25554. (license license:gpl3+)))
  25555. (define-public emacs-helm-switch-to-repl
  25556. (package
  25557. (name "emacs-helm-switch-to-repl")
  25558. (version "0.1.2")
  25559. (home-page "https://github.com/emacs-helm/helm-switch-to-repl")
  25560. (source
  25561. (origin
  25562. (method git-fetch)
  25563. (uri (git-reference
  25564. (url home-page)
  25565. (commit version)))
  25566. (file-name (git-file-name name version))
  25567. (sha256
  25568. (base32 "0n8qa549c5syvgqw1h2zrakjjbygddpxzaifaq5irscgdcajrads"))))
  25569. (build-system emacs-build-system)
  25570. (propagated-inputs
  25571. `(("helm" ,emacs-helm)))
  25572. (synopsis "Helm action to switch directory in Emacs REPLs")
  25573. (description "Helm \"Switch-to-REPL\" offers the
  25574. @code{helm-switch-to-repl} action, a generalized and extensible version of
  25575. @code{helm-ff-switch-to-shell}. It can be added to @code{helm-find-files} and
  25576. other @code{helm-type-file} sources such as @code{helm-locate}.")
  25577. (license license:gpl3+)))
  25578. (define-public emacs-telega-server
  25579. (package
  25580. (name "emacs-telega-server")
  25581. (version "0.7.030")
  25582. (source
  25583. (origin
  25584. (method git-fetch)
  25585. (uri (git-reference
  25586. (url "https://github.com/zevlg/telega.el")
  25587. (commit (string-append "v" version))))
  25588. (sha256
  25589. (base32 "1g29v5fgkqx43wsvh1npx0g3hj00n37lxgvxjvy85fs4h9226gl9"))
  25590. (file-name (git-file-name "emacs-telega" version))
  25591. (patches
  25592. (search-patches "emacs-telega-path-placeholder.patch"
  25593. "emacs-telega-test-env.patch"))))
  25594. (build-system gnu-build-system)
  25595. (arguments
  25596. `(#:make-flags
  25597. (list (string-append "CC=" ,(cc-for-target))
  25598. (string-append "INSTALL_PREFIX="
  25599. (assoc-ref %outputs "out") "/bin"))
  25600. #:phases
  25601. (modify-phases %standard-phases
  25602. (add-before 'configure 'enter-subdirectory
  25603. (lambda _ (chdir "server") #t))
  25604. (replace 'configure
  25605. (lambda* (#:key outputs #:allow-other-keys)
  25606. (let ((out (assoc-ref outputs "out")))
  25607. (substitute* "run_tests.py"
  25608. (("^(TELEGA_SERVER = ).*$" _all prefix)
  25609. (string-append prefix
  25610. "\"" out "/bin/telega-server\"\n"))))))
  25611. (delete 'check)
  25612. (add-after 'install 'check
  25613. (assoc-ref %standard-phases 'check))
  25614. (add-before 'install-license-files 'leave-subdirectory
  25615. (lambda _ (chdir "..") #t)))
  25616. #:test-target "test"))
  25617. (inputs
  25618. `(("tdlib" ,tdlib)
  25619. ("libappindicator" ,libappindicator)))
  25620. (native-inputs
  25621. `(("python" ,python)
  25622. ("pkg-config" ,pkg-config)))
  25623. (home-page "https://zevlg.github.io/telega.el/")
  25624. (synopsis "Server process of Telega")
  25625. (description "Telega-server is helper program to interact with Telegram
  25626. service, and connect it with Emacs via inter-process communication.")
  25627. (license license:gpl3+)))
  25628. (define-public emacs-telega
  25629. (package
  25630. (inherit emacs-telega-server)
  25631. (name "emacs-telega")
  25632. (build-system emacs-build-system)
  25633. (arguments
  25634. `(#:emacs ,(if (target-64bit?)
  25635. emacs-minimal
  25636. ;; Require wide-int support for 32-bit platform.
  25637. emacs-wide-int)
  25638. #:include (cons "^etc\\/" %default-include)
  25639. #:phases
  25640. (modify-phases %standard-phases
  25641. (add-after 'unpack 'patch-sources
  25642. (lambda* (#:key inputs #:allow-other-keys)
  25643. ;; Hard-code paths to `ffplay` and `ffmpeg`.
  25644. (let* ((ffplay-bin (search-input-file inputs "/bin/ffplay"))
  25645. (ffmpeg-bin (search-input-file inputs "/bin/ffmpeg")))
  25646. (substitute* '("telega-ffplay.el" "telega-vvnote.el")
  25647. (("(shell-command-to-string\|concat) \"(ffmpeg\|ffprobe)"
  25648. all func cmd)
  25649. (string-append func " \""
  25650. (search-input-file
  25651. inputs (string-append "/bin/" cmd))))
  25652. (("\\(executable-find \"ffplay\"\\)")
  25653. (string-append "(and (file-executable-p \"" ffplay-bin "\")"
  25654. "\"" ffplay-bin "\")"))
  25655. (("\\(executable-find \"ffmpeg\"\\)")
  25656. (string-append "(and (file-executable-p \"" ffmpeg-bin "\")"
  25657. "\"" ffmpeg-bin "\")"))))))
  25658. (add-after 'unpack 'configure
  25659. (lambda* (#:key inputs outputs #:allow-other-keys)
  25660. (substitute* "telega-server.el"
  25661. (("@TELEGA_SERVER_BIN@")
  25662. (search-input-file inputs "/bin/telega-server")))
  25663. (substitute* "telega-util.el"
  25664. (("@TELEGA_SHARE@")
  25665. (string-append (elpa-directory (assoc-ref outputs "out"))
  25666. "/etc"))))))))
  25667. (inputs
  25668. `(("emacs-telega-server" ,emacs-telega-server)
  25669. ("ffmpeg" ,ffmpeg)))
  25670. (native-inputs '())
  25671. (propagated-inputs
  25672. `(("emacs-visual-fill-column" ,emacs-visual-fill-column)
  25673. ("emacs-company" ,emacs-company)
  25674. ("emacs-rainbow-identifiers" ,emacs-rainbow-identifiers)))
  25675. (synopsis "GNU Emacs client for the Telegram messenger")
  25676. (description "Telega is a full-featured, unofficial GNU Emacs-based client
  25677. for the Telegram messaging platform.")))
  25678. (define-public emacs-telega-contrib
  25679. (package
  25680. (inherit emacs-telega)
  25681. (name "emacs-telega-contrib")
  25682. (arguments
  25683. `(#:exclude '("telega-live-location.el")
  25684. #:phases
  25685. (modify-phases %standard-phases
  25686. (add-after 'unpack 'enter-subdirectory
  25687. (lambda _ (chdir "contrib") #t))
  25688. (add-before 'install-license-files 'leave-subdirectory
  25689. (lambda _ (chdir "..") #t)))))
  25690. (inputs '())
  25691. (native-inputs '())
  25692. (propagated-inputs
  25693. `(("emacs-alert" ,emacs-alert)
  25694. ("emacs-all-the-icons" ,emacs-all-the-icons)
  25695. ("emacs-dashboard" ,emacs-dashboard)
  25696. ("emacs-telega" ,emacs-telega)
  25697. ("emacs-transient" ,emacs-transient)))
  25698. (synopsis "Contributed packages to Telega")
  25699. (description "Telega-contrib is a collection of third-party
  25700. contributed packages to Telega.")))
  25701. (define-public emacs-doom-modeline
  25702. (package
  25703. (name "emacs-doom-modeline")
  25704. (version "3.2.0")
  25705. (source (origin
  25706. (method git-fetch)
  25707. (uri (git-reference
  25708. (url "https://github.com/seagle0128/doom-modeline")
  25709. (commit (string-append "v" version))))
  25710. (sha256
  25711. (base32
  25712. "1gfkaxga919a1a19dhpbby95l8dixb1278g5d7iadjf2i3j0p3l0"))
  25713. (file-name (git-file-name name version))))
  25714. (build-system emacs-build-system)
  25715. (arguments
  25716. `(#:test-command '("ert-runner")))
  25717. (native-inputs `(("emacs-ert-runner" ,emacs-ert-runner)))
  25718. (propagated-inputs
  25719. `(("emacs-all-the-icons" ,emacs-all-the-icons)
  25720. ("emacs-dash" ,emacs-dash)
  25721. ("emacs-shrink-path" ,emacs-shrink-path)))
  25722. (synopsis "Fancy and fast mode-line inspired by minimalism design")
  25723. (description "Doom modeline is a complete modeline for GNU Emacs inspired
  25724. by the Doom theme collection. This modeline features support for mode-specific
  25725. icon support, git integration, and several other utilities.")
  25726. (home-page "https://github.com/seagle0128/doom-modeline/")
  25727. (license license:gpl3+)))
  25728. (define-public emacs-mood-line
  25729. (package
  25730. (name "emacs-mood-line")
  25731. (version "1.2.4")
  25732. (source
  25733. (origin
  25734. (method git-fetch)
  25735. (uri (git-reference
  25736. (url "https://gitlab.com/jessieh/mood-line")
  25737. (commit version)))
  25738. (file-name (git-file-name name version))
  25739. (sha256
  25740. (base32 "0fh9j9fkgl433nykfzjnzap5labi4sdndfk1nv4f904ij69pmvxb"))))
  25741. (build-system emacs-build-system)
  25742. (home-page "https://gitlab.com/jessieh/mood-line")
  25743. (synopsis "Minimal mode-line for Emacs")
  25744. (description
  25745. "Mood-line is a minimal Emacs mode-line configuration that aims to
  25746. replicate some of the features of the Doom modeline package.")
  25747. (license license:gpl2+)))
  25748. (define-public emacs-simple-modeline
  25749. (package
  25750. (name "emacs-simple-modeline")
  25751. (version "1.4")
  25752. (source
  25753. (origin
  25754. (method git-fetch)
  25755. (uri (git-reference
  25756. (url "https://github.com/gexplorer/simple-modeline")
  25757. (commit version)))
  25758. (file-name (git-file-name name version))
  25759. (sha256
  25760. (base32
  25761. "1rnzrx7gcaw056cqvnb1wai4hala0r0gpk3a4kyyghyp9hmrxbb5"))))
  25762. (build-system emacs-build-system)
  25763. (home-page "https://github.com/gexplorer/simple-modeline")
  25764. (synopsis "Simple mode-line configuration for Emacs")
  25765. (description
  25766. "This package provides a simple mode-line configuration for Emacs.")
  25767. (license license:gpl3+)))
  25768. (define-public emacs-frames-only-mode
  25769. (package
  25770. (name "emacs-frames-only-mode")
  25771. (version "1.0.0")
  25772. (source
  25773. (origin
  25774. (method git-fetch)
  25775. (uri (git-reference
  25776. (url "https://github.com/davidshepherd7/frames-only-mode")
  25777. (commit version)))
  25778. (file-name (git-file-name name version))
  25779. (sha256
  25780. (base32 "0y0sdjixaxvywrlp2sw51wnczhk51q1svl5aghbk9rkxpwv9ys9v"))))
  25781. (build-system emacs-build-system)
  25782. (propagated-inputs
  25783. `(("emacs-dash" ,emacs-dash)
  25784. ("emacs-s" ,emacs-s)))
  25785. (home-page "https://github.com/davidshepherd7/frames-only-mode")
  25786. (synopsis "Use frames instead of Emacs windows")
  25787. (description
  25788. "This is an Emacs global minor mode to use Emacs frames instead of Emacs'
  25789. internal windowing system. This combines particularly well with tiling window
  25790. managers such as XMonad.")
  25791. (license license:gpl3+)))
  25792. (define-public emacs-modalka
  25793. (package
  25794. (name "emacs-modalka")
  25795. (version "0.1.5")
  25796. (source
  25797. (origin
  25798. (method git-fetch)
  25799. (uri (git-reference
  25800. (url "https://github.com/mrkkrp/modalka")
  25801. (commit version)))
  25802. (file-name (git-file-name name version))
  25803. (sha256
  25804. (base32 "0ggj8q92sb6wp3hs1vhpmy56id0p3i9zwnw24g2v7xa7w8ac9s7l"))))
  25805. (build-system emacs-build-system)
  25806. (home-page "https://github.com/mrkkrp/modalka")
  25807. (synopsis "Minor mode to easily define native custom modal editing")
  25808. (description
  25809. "This is a building kit to help switch to modal editing in Emacs. The
  25810. main goal of the package is to make modal editing in Emacs as natural and
  25811. native as possible. Modalka lets you define your own keys and does not come
  25812. with a preconfigured set of keys.")
  25813. (license license:gpl3+)))
  25814. (define-public emacs-shrink-path
  25815. (package
  25816. (name "emacs-shrink-path")
  25817. (version "0.3.1")
  25818. (source
  25819. (origin
  25820. (method git-fetch)
  25821. (uri (git-reference
  25822. (url "https://gitlab.com/bennya/shrink-path.el.git")
  25823. (commit (string-append "v" version))))
  25824. (sha256
  25825. (base32
  25826. "0kx0c4syd7k6ff9j463bib32pz4wq0rzjlg6b0yqnymlzfr1mbki"))
  25827. (file-name (git-file-name name version))))
  25828. (build-system emacs-build-system)
  25829. (propagated-inputs
  25830. `(("emacs-s" ,emacs-s)
  25831. ("emacs-dash" ,emacs-dash)
  25832. ("emacs-f" ,emacs-f)))
  25833. (home-page "https://gitlab.com/bennya/shrink-path.el")
  25834. (synopsis "Fish-style path truncation in emacs-lisp")
  25835. (description "This package provides utility functions that allow for
  25836. Fish-style truncated directories in eshell and various modelines.")
  25837. (license license:gpl3+)))
  25838. (define-public emacs-org-present
  25839. (let ((commit "d13acd70eff6a1608bc991920232146a0de76b21"))
  25840. (package
  25841. (name "emacs-org-present")
  25842. (version "0.0.1")
  25843. (source
  25844. (origin
  25845. (method git-fetch)
  25846. (uri (git-reference
  25847. (url "https://github.com/rlister/org-present")
  25848. (commit commit)))
  25849. (file-name (git-file-name name version))
  25850. (sha256
  25851. (base32
  25852. "0jz8xiny3rv9ql0p623byz32pip1b82j2c2nyfz2wd114kiabb6q"))))
  25853. (build-system emacs-build-system)
  25854. (synopsis "Ultra-minimalist presentation minor-mode for Emacs org-mode")
  25855. (description "Org-present is an extremely minimalist presentation tool
  25856. for Emacs org-mode. Simply layout your presentation with each slide under a
  25857. top-level header, start the minor mode with @code{org-present}, and page through
  25858. each slide with left/right keys.")
  25859. (home-page "https://github.com/rlister/org-present")
  25860. (license license:gpl2))))
  25861. (define-public emacs-fullframe
  25862. (package
  25863. (name "emacs-fullframe")
  25864. (version "0.5.0")
  25865. (source
  25866. (origin
  25867. (method git-fetch)
  25868. (uri (git-reference
  25869. (url "https://github.com/tomterl/fullframe")
  25870. (commit version)))
  25871. (sha256
  25872. (base32
  25873. "0m43qnhp6ibsskpjkxc86p3lrjsjc0ndqml3lbd65s79x4x7i3fi"))
  25874. (file-name (git-file-name name version))))
  25875. (build-system emacs-build-system)
  25876. (home-page "https://github.com/tomterl/fullframe")
  25877. (synopsis "Generalized automatic execution in a single frame")
  25878. (description "This library provides helpers for single-window-per-frame
  25879. execution of buffer-exposing commands.")
  25880. (license license:gpl3+)))
  25881. (define-public emacs-eshell-toggle
  25882. (let ((commit "ddfbe0a693497c4d4bc5494a19970ba4f6ab9033")
  25883. (revision "1"))
  25884. (package
  25885. (name "emacs-eshell-toggle")
  25886. (version (git-version "0.10.0" revision commit))
  25887. (source
  25888. (origin
  25889. (method git-fetch)
  25890. (uri (git-reference
  25891. (url "https://github.com/4DA/eshell-toggle")
  25892. (commit commit)))
  25893. (sha256
  25894. (base32
  25895. "0xqrp8pwbmfxjdqipgpw5nw633mvhjjjm3k3j9sh9xdpmw05hhws"))
  25896. (file-name (git-file-name name version))))
  25897. (build-system emacs-build-system)
  25898. (propagated-inputs
  25899. `(("emacs-dash" ,emacs-dash)))
  25900. (home-page "https://github.com/4DA/eshell-toggle")
  25901. (synopsis "Show and hide an @code{eshell} instance")
  25902. (description "This package toggles an @code{eshell} instance for the
  25903. current buffer.")
  25904. (license license:gpl3+))))
  25905. (define-public emacs-repl-toggle
  25906. (package
  25907. (name "emacs-repl-toggle")
  25908. (version "0.7.1")
  25909. (source
  25910. (origin
  25911. (method git-fetch)
  25912. (uri (git-reference
  25913. (url "https://git.sr.ht/~tomterl/repl-toggle")
  25914. (commit version)))
  25915. (sha256
  25916. (base32
  25917. "0nycm8a4wwkkaif958z4m89slayp17k20lp2h7lvddjx8prn6yfp"))
  25918. (file-name (git-file-name name version))))
  25919. (build-system emacs-build-system)
  25920. (propagated-inputs
  25921. `(("emacs-fullframe" ,emacs-fullframe)))
  25922. (home-page "https://git.sr.ht/~tomterl/repl-toggle")
  25923. (synopsis "Switch to and from current major mode's REPL")
  25924. (description "This package provides a function to switch to and from a
  25925. REPL appropriate to the current major mode.")
  25926. (license license:gpl3+)))
  25927. (define-public emacs-rime
  25928. (package
  25929. (name "emacs-rime")
  25930. (version "1.0.5")
  25931. (source
  25932. (origin
  25933. (method git-fetch)
  25934. (uri (git-reference
  25935. (url "https://github.com/DogLooksGood/emacs-rime")
  25936. (commit (string-append "v" version))))
  25937. (file-name (git-file-name name version))
  25938. (sha256
  25939. (base32 "0z0iwsqr92g8ykxb51gkawwxwzx0faw0027zgdi7c38ngjqld237"))))
  25940. (build-system emacs-build-system)
  25941. (arguments
  25942. '(#:include (cons "\\.so$" %default-include)
  25943. #:phases
  25944. (modify-phases %standard-phases
  25945. (add-after 'unpack 'patch-rime-data-path
  25946. (lambda* (#:key inputs #:allow-other-keys)
  25947. (make-file-writable "rime.el")
  25948. (emacs-substitute-variables "rime.el"
  25949. ("rime-share-data-dir"
  25950. (search-input-directory inputs
  25951. "share/rime-data")))))
  25952. (add-before 'install 'build-emacs-module
  25953. (lambda _
  25954. (invoke "make" "lib"))))))
  25955. (inputs
  25956. `(("librime" ,librime)
  25957. ("rime-data" ,rime-data)))
  25958. (propagated-inputs
  25959. `(("emacs-dash" ,emacs-dash)
  25960. ("emacs-popup" ,emacs-popup)
  25961. ("emacs-posframe" ,emacs-posframe)))
  25962. (home-page "https://github.com/DogLooksGood/emacs-rime")
  25963. (synopsis "Rime input method in Emacs")
  25964. (description
  25965. "Rime is an Emacs input method built upon Rime input method engine.")
  25966. (license license:gpl3+)))
  25967. (define-public emacs-blackout
  25968. (let ((commit "4bac44671fca4c98d96aa94c79946bf4d4baf0ee")
  25969. (revision "1"))
  25970. (package
  25971. (name "emacs-blackout")
  25972. (version (git-version "1.0" revision commit))
  25973. (source
  25974. (origin
  25975. (method git-fetch)
  25976. (uri (git-reference
  25977. (url "https://github.com/raxod502/blackout")
  25978. (commit commit)))
  25979. (sha256
  25980. (base32
  25981. "1wnh0nwy6r3a18sy9sqmrwv04vnmaflxy4g7mq8jiyyjijri7l1b"))
  25982. (file-name (git-file-name name version))))
  25983. (build-system emacs-build-system)
  25984. (home-page "https://github.com/raxod502/blackout")
  25985. (synopsis "Clean up mode lighters")
  25986. (description "This package provides a function for hiding and customizing
  25987. display of major and minor modes in the mode line.")
  25988. (license license:gpl3+))))
  25989. (define-public emacs-ivy-omni-org
  25990. (let ((commit "5460a9fc061a4a5ae8372dc8df966ced94abab58")
  25991. (revision "1"))
  25992. (package
  25993. (name "emacs-ivy-omni-org")
  25994. (version (git-version "0.2.1" revision commit))
  25995. (source
  25996. (origin
  25997. (method git-fetch)
  25998. (uri (git-reference
  25999. (url "https://github.com/akirak/ivy-omni-org")
  26000. (commit commit)))
  26001. (file-name (git-file-name name version))
  26002. (sha256
  26003. (base32
  26004. "1np1f51hc3phkl5w02a9a79gl38ra2d535i784fn4pqaasvm0rq8"))))
  26005. (build-system emacs-build-system)
  26006. (propagated-inputs
  26007. `(("emacs-ivy" ,emacs-ivy)
  26008. ("emacs-dash" ,emacs-dash)))
  26009. (synopsis "Browse anything in Org mode")
  26010. (description "This package allows Org items to be accessed via the Ivy
  26011. interface.")
  26012. (home-page "https://github.com/akirak/ivy-omni-org")
  26013. (license license:gpl3+))))
  26014. (define-public emacs-ivy-posframe
  26015. (package
  26016. (name "emacs-ivy-posframe")
  26017. (version "0.6.1")
  26018. (source
  26019. (origin
  26020. (method url-fetch)
  26021. (uri (string-append "https://elpa.gnu.org/packages/"
  26022. "ivy-posframe-" version ".tar"))
  26023. (sha256
  26024. (base32 "1nay2sfbwm2fkp3f1y89innd9h6j3q70q9y4yddrwa69cxlj9m23"))))
  26025. (build-system emacs-build-system)
  26026. (propagated-inputs
  26027. `(("emacs-ivy" ,emacs-ivy)
  26028. ("emacs-posframe" ,emacs-posframe)))
  26029. (home-page "https://github.com/tumashu/ivy-posframe")
  26030. (synopsis "Pop a posframe (a child frame) to show Ivy candidates")
  26031. (description
  26032. "This package provides an Emacs Ivy extension, which let Ivy use
  26033. posframe to show its candidate menu.")
  26034. (license license:gpl3+)))
  26035. (define-public emacs-shackle
  26036. (let ((commit "7ccbe513852a1d1700b698547efca14b8940319d")
  26037. (revision "1"))
  26038. (package
  26039. (name "emacs-shackle")
  26040. (version (git-version "1.0.3" revision commit))
  26041. (source
  26042. (origin
  26043. (method git-fetch)
  26044. (uri (git-reference
  26045. (url "https://github.com/wasamasa/shackle")
  26046. (commit commit)))
  26047. (file-name (git-file-name name version))
  26048. (sha256
  26049. (base32
  26050. "0agsp8ia4irr540r898ifhjqp28n1zsq1pilv1kc272spn3qhvp9"))))
  26051. (build-system emacs-build-system)
  26052. (synopsis "Enforce rules for popups")
  26053. (description "This package provides a global minor mode in which users
  26054. can specify how popup-displaying functions occupy the screen.")
  26055. (home-page "https://github.com/wasamasa/shackle")
  26056. (license license:gpl3+))))
  26057. (define-public emacs-showtip
  26058. (let ((commit "930da302809a4257e8d69425455b29e1cc91949b")
  26059. (revision "0"))
  26060. (package
  26061. (name "emacs-showtip")
  26062. (version (git-version "0.01" revision commit))
  26063. (source
  26064. (origin
  26065. (method git-fetch)
  26066. (uri (git-reference
  26067. (url "https://github.com/emacsorphanage/showtip")
  26068. (commit commit)))
  26069. (file-name (git-file-name name version))
  26070. (sha256
  26071. (base32 "01zak0zhha6dp7a2hm28d065gjnc462iwpsfyxhbxgfzcdlicqc7"))))
  26072. (build-system emacs-build-system)
  26073. (home-page "https://github.com/emacsorphanage/showtip")
  26074. (synopsis "Show tip at cursor")
  26075. (description
  26076. "This library provide one function to show tooltip near the cursor.")
  26077. (license license:gpl2+))))
  26078. (define-public emacs-sdcv
  26079. ;; No tagged version upstream.
  26080. (let ((commit "943ae3e90cc9a0a88a37cc710acd7424fd4defc4" )
  26081. (revision "0"))
  26082. (package
  26083. (name "emacs-sdcv")
  26084. (version (git-version "1.5.2" revision commit))
  26085. (source
  26086. (origin
  26087. (method git-fetch)
  26088. (uri (git-reference
  26089. (url "https://github.com/stardiviner/sdcv.el")
  26090. (commit commit)))
  26091. (file-name (git-file-name name version))
  26092. (sha256
  26093. (base32 "0i1ylvw7p46pkf3yyyzcdmdhsspzymnnnvx8s0i7vynngr5x0vzh"))))
  26094. (build-system emacs-build-system)
  26095. (propagated-inputs
  26096. `(("emacs-popup" ,emacs-popup)
  26097. ("emacs-pos-tip" ,emacs-pos-tip)
  26098. ("emacs-showtip" ,emacs-showtip)))
  26099. (home-page "https://www.emacswiki.org/emacs/download/sdcv.el")
  26100. (synopsis "Emacs interface for @code{sdcv}")
  26101. (description
  26102. "This plugin translates words with @code{sdcv}, and displays
  26103. translation using a tooltip or in a dedicated buffer.")
  26104. (license license:gpl3+))))
  26105. (define-public emacs-helm-lacarte
  26106. (let ((commit "40a6c449720be521435b6b1da7911af3a0b9dca0")
  26107. (revision "1"))
  26108. (package
  26109. (name "emacs-helm-lacarte")
  26110. (version (git-version "0" revision commit))
  26111. (source
  26112. (origin
  26113. (method git-fetch)
  26114. (uri (git-reference
  26115. (url "https://github.com/emacs-helm/helm-lacarte")
  26116. (commit commit)))
  26117. (file-name (git-file-name name version))
  26118. (sha256
  26119. (base32
  26120. "0dkfd3lap2v7b4nckzv8v7hczmzwzhbl75haqkra107ln91ldbwc"))))
  26121. (build-system emacs-build-system)
  26122. (propagated-inputs
  26123. `(("emacs-helm" ,emacs-helm)
  26124. ("emacs-lacarte" ,emacs-lacarte)))
  26125. (synopsis "Helm interface to @code{lacarte.el}")
  26126. (description "This package provides a Helm interface to
  26127. @code{lacarte.el}, a package that displays mode-specific commands as menu
  26128. items.")
  26129. (home-page "https://github.com/emacs-helm/helm-lacarte")
  26130. (license license:gpl3+))))
  26131. (define-public emacs-esh-help
  26132. (let ((commit "417673ed18a983930a66a6692dbfb288a995cb80")
  26133. (revision "1"))
  26134. (package
  26135. (name "emacs-esh-help")
  26136. (version (git-version "1.0.1" revision commit))
  26137. (source
  26138. (origin
  26139. (method git-fetch)
  26140. (uri (git-reference
  26141. (url "https://github.com/tom-tan/esh-help")
  26142. (commit commit)))
  26143. (file-name (git-file-name name version))
  26144. (sha256
  26145. (base32
  26146. "0x7d51a6ljl014zy7mi27vzcqqbcwg9z4drq29fr2ajk82mqhlgd"))))
  26147. (build-system emacs-build-system)
  26148. (propagated-inputs
  26149. `(("emacs-dash" ,emacs-dash)))
  26150. (synopsis "Help functions for Eshell")
  26151. (description "This package provides a @code{run-help} function inspired
  26152. by @code{zsh} as well as @code{eldoc} support.")
  26153. (home-page "https://github.com/tom-tan/esh-help")
  26154. (license license:gpl3+))))
  26155. (define-public emacs-isearch-dabbrev
  26156. (let ((commit "1efe7abba4923015cbc2462395deaec5446a9cc8")
  26157. (revision "1"))
  26158. (package
  26159. (name "emacs-isearch-dabbrev")
  26160. (version (git-version "0.1" revision commit))
  26161. (source
  26162. (origin
  26163. (method git-fetch)
  26164. (uri (git-reference
  26165. (url "https://github.com/Dewdrops/isearch-dabbrev")
  26166. (commit commit)))
  26167. (file-name (git-file-name name version))
  26168. (sha256
  26169. (base32
  26170. "17d0816awadvsw1qc7r0p6ira75jmgxaj9hsk9ypayxsaf6ynyrb"))))
  26171. (build-system emacs-build-system)
  26172. (synopsis "Use @code{dabbrev} within @code{isearch}")
  26173. (description "This package allows @code{dabbrev-expand} to be used
  26174. within @code{isearch-mode}.")
  26175. (home-page "https://github.com/Dewdrops/isearch-dabbrev")
  26176. (license license:gpl3+))))
  26177. (define-public emacs-helm-linux-disks
  26178. (let ((commit "2cdc8116a08534289eb0dc76461d0f93a0bdf231")
  26179. (revision "1"))
  26180. (package
  26181. (name "emacs-helm-linux-disks")
  26182. (version (git-version "0.1" revision commit))
  26183. (source
  26184. (origin
  26185. (method git-fetch)
  26186. (uri (git-reference
  26187. (url "https://github.com/Akirak/helm-linux-disks")
  26188. (commit commit)))
  26189. (file-name (git-file-name name version))
  26190. (sha256
  26191. (base32
  26192. "1limw82zd8jz3mhh9rqlmhj4cjhfgybs9argfjid1an3vpyhc85i"))))
  26193. (build-system emacs-build-system)
  26194. (propagated-inputs
  26195. `(("emacs-helm" ,emacs-helm)))
  26196. (synopsis "Mount/unmount volumes in Linux via Helm")
  26197. (description "This package provides a Helm interface to run operations
  26198. on removable volumes in Linux.")
  26199. (home-page "https://github.com/Akirak/helm-linux-disks")
  26200. (license license:gpl3+))))
  26201. (define-public emacs-psession
  26202. (let ((commit "3e97267c92b164584e06a6c70ee7491714c7c12c")
  26203. (revision "1"))
  26204. (package
  26205. (name "emacs-psession")
  26206. (version (git-version "1.5" revision commit))
  26207. (source
  26208. (origin
  26209. (method git-fetch)
  26210. (uri (git-reference
  26211. (url "https://github.com/thierryvolpiatto/psession")
  26212. (commit commit)))
  26213. (file-name (git-file-name name version))
  26214. (sha256
  26215. (base32
  26216. "15frl618393bc891d0yi3mdxzvbq790a86vfvp3dyd5riz4ddg95"))))
  26217. (build-system emacs-build-system)
  26218. (propagated-inputs
  26219. `(("emacs-async" ,emacs-async)))
  26220. (synopsis "Persistent save of @code{elisp} objects.")
  26221. (description "This package provides minor modes for saving Emacs session
  26222. data, including buffers, window configuration, variables, and more.")
  26223. (home-page "https://github.com/thierryvolpiatto/psession")
  26224. (license license:gpl3+))))
  26225. (define-public emacs-parseedn
  26226. (package
  26227. (name "emacs-parseedn")
  26228. (version "0.2.0")
  26229. (source
  26230. (origin
  26231. (method git-fetch)
  26232. (uri (git-reference
  26233. (url "https://github.com/clojure-emacs/parseedn")
  26234. (commit (string-append "v" version))))
  26235. (file-name (git-file-name name version))
  26236. (sha256
  26237. (base32
  26238. "0271amhw63650rrzikcyqxa8sb42npnk7q3yrsay2v79wbqkdaw9"))))
  26239. (build-system emacs-build-system)
  26240. (propagated-inputs
  26241. `(("emacs-a" ,emacs-a)
  26242. ("emacs-parseclj" ,emacs-parseclj)))
  26243. (home-page "https://cider.mx")
  26244. (synopsis "EDN parser for Emacs Lisp")
  26245. (description
  26246. "Parseedn is an Emacs Lisp library for parsing EDN (Clojure) data.
  26247. It uses parseclj's shift-reduce parser internally.")
  26248. (license license:gpl3+)))
  26249. (define-public emacs-parseclj
  26250. (package
  26251. (name "emacs-parseclj")
  26252. (version "0.2.0")
  26253. (source
  26254. (origin
  26255. (method git-fetch)
  26256. (uri (git-reference
  26257. (url "https://github.com/clojure-emacs/parseclj")
  26258. (commit (string-append "v" version))))
  26259. (file-name (git-file-name name version))
  26260. (sha256
  26261. (base32
  26262. "0894vhyx1phq8mdynnnqflcgi2a54hi926f4dk8slawzx1cb9xxb"))))
  26263. (build-system emacs-build-system)
  26264. (propagated-inputs `(("emacs-a" ,emacs-a)))
  26265. (home-page "https://cider.mx")
  26266. (synopsis "Clojure parser for Emacs Lisp")
  26267. (description
  26268. "Parseclj is an Emacs Lisp library for parsing Clojure code and EDN data.
  26269. It supports several input and output formats, all powered by the same
  26270. shift-reduce parser function.")
  26271. (license license:gpl3+)))
  26272. (define-public emacs-hide-mode-line
  26273. (package
  26274. (name "emacs-hide-mode-line")
  26275. (version "1.0.2")
  26276. (source (origin
  26277. (method git-fetch)
  26278. (uri (git-reference
  26279. (url "https://github.com/hlissner/emacs-hide-mode-line")
  26280. (commit (string-append "v" version))))
  26281. (file-name (git-file-name name version))
  26282. (sha256
  26283. (base32
  26284. "0dfzjgxfkcw4wisbyldsm1km18pfp9j8xgadn6qnsz11l55bpgyp"))))
  26285. (build-system emacs-build-system)
  26286. (synopsis "Emacs plugin that hides the mode-line")
  26287. (description "A minor mode that hides the mode-line in your current
  26288. buffer. It can be used to toggle an alternative mode-line, toggle its visibility,
  26289. or simply disable the mode-line in buffers where it is not very useful.")
  26290. (home-page "https://github.com/hlissner/emacs-hide-mode-line")
  26291. (license license:expat)))
  26292. (define-public emacs-helm-cider
  26293. ;; No new release since March 2018.
  26294. (let ((commit "9363cc537f06233345aa3af5cd46aa5681ad607b"))
  26295. (package
  26296. (name "emacs-helm-cider")
  26297. (version (git-version "0.4.0" "1" commit))
  26298. (home-page "https://github.com/clojure-emacs/helm-cider")
  26299. (source (origin
  26300. (method git-fetch)
  26301. (uri (git-reference
  26302. (url home-page)
  26303. (commit commit)))
  26304. (file-name (git-file-name name version))
  26305. (sha256
  26306. (base32
  26307. "0vfn4smqba1vsshz48ggkj8gs94la0sxb1sq4shrb41qj2x3dci7"))))
  26308. (build-system emacs-build-system)
  26309. (propagated-inputs
  26310. `(("emacs-helm" ,emacs-helm)
  26311. ("emacs-cider" ,emacs-cider)))
  26312. (synopsis "Helm interface to Clojure's CIDER")
  26313. (description "Helm-CIDER adds Helm interfaces to
  26314. @command{cider-apropos}, @command{cider-apropos-documentation},
  26315. @command{cider-browse-ns} (namespaces).
  26316. It also provides original Helm commands: @command{helm-cider-spec},
  26317. @command{helm-cider-spec-ns}, @command{helm-cider-repl-history},
  26318. @command{helm-cider-cheatsheet}.")
  26319. (license license:gpl3+))))
  26320. (define-public emacs-edn
  26321. ;; No release since February 2016
  26322. (let ((commit "be9e32d1b49e35247b263b0243df7cfdc8d413ab"))
  26323. (package
  26324. (name "emacs-edn")
  26325. (version (git-version "1.1.2" "1" commit))
  26326. (home-page "https://github.com/expez/edn.el")
  26327. (source (origin
  26328. (method git-fetch)
  26329. (uri (git-reference
  26330. (url home-page)
  26331. (commit commit)))
  26332. (file-name (git-file-name name version))
  26333. (sha256
  26334. (base32
  26335. "1xp2hjhn52k6l1g6ypva6dsklpawni7gvjafbz6404f9dyxflh7l"))))
  26336. (build-system emacs-build-system)
  26337. (propagated-inputs
  26338. `(("emacs-peg" ,emacs-peg)))
  26339. (synopsis "Read and write EDN from Elisp")
  26340. (description "This is an Emacs Lisp library for reading and writing the
  26341. data format @code{edn}. See @url{https://github.com/edn-format/edn}.")
  26342. (license license:gpl3+))))
  26343. (define-public emacs-helm-clojuredocs
  26344. (let ((commit "5a7f0f2cb401be0b09e73262a1c18265ab9a3cea"))
  26345. (package
  26346. (name "emacs-helm-clojuredocs")
  26347. (version (git-version "0.3" "1" commit))
  26348. (home-page "https://github.com/mbuczko/helm-clojuredocs")
  26349. (source (origin
  26350. (method git-fetch)
  26351. (uri (git-reference
  26352. (url home-page)
  26353. (commit commit)))
  26354. (file-name (git-file-name name version))
  26355. (sha256
  26356. (base32
  26357. "015b8zxh91ljhqvn6z43gy08di54xcw9skw0i7frj3d7gk984qhl"))))
  26358. (build-system emacs-build-system)
  26359. (propagated-inputs
  26360. `(("emacs-helm" ,emacs-helm)
  26361. ("emacs-edn" ,emacs-edn)))
  26362. (synopsis "Search help on clojuredocs.org with Helm")
  26363. (description "This package provides a Helm interface to lookup Clojure
  26364. documentation on @url{https://clojuredocs.org} with Helm.
  26365. Two function are exposed:
  26366. @itemize
  26367. @item @command{helm-clojuredocs}: opens a Helm session with no initial
  26368. pattern. Searching starts with minimal 3 characters entered.
  26369. @item @command{helm-clojuredocs-at-point}: opens a Helm session with initial
  26370. pattern guessed from thing under current cursor position.
  26371. @end itemize\n")
  26372. (license license:gpl3+))))
  26373. (define-public emacs-helm-selector
  26374. (package
  26375. (name "emacs-helm-selector")
  26376. (version "0.6.1")
  26377. (home-page "https://github.com/emacs-helm/helm-selector")
  26378. (source
  26379. (origin
  26380. (method git-fetch)
  26381. (uri (git-reference
  26382. (url home-page)
  26383. (commit version)))
  26384. (file-name (git-file-name name version))
  26385. (sha256
  26386. (base32
  26387. "01lh1df0bnas1p7xlqc4i1jd67f8lxgq0q2zsvx10z8828i76j3v"))))
  26388. (build-system emacs-build-system)
  26389. (propagated-inputs
  26390. `(("emacs-helm" ,emacs-helm)))
  26391. (synopsis "Convenient related-buffer selection for Emacs Helm")
  26392. (description "Helm Selector is a collection of Helm helper functions for
  26393. convenient buffer selection.
  26394. It is especially helpful to create Helm sessions to navigate buffers of a
  26395. given mode in a “do what I mean” fashion:
  26396. If current buffer is not of mode X, switch to last buffer of mode X. If
  26397. current buffer is of mode X, show a Helm session of all buffers in mode X. In
  26398. the Helm session, it’s also possible to input an arbitrary name which will be
  26399. used for the creation of a new buffer of mode X.")
  26400. (license license:gpl3+)))
  26401. (define-public emacs-helm-wordnut
  26402. (let ((commit "9681a9535a839cd5d042c302945ae595852fe7bf"))
  26403. (package
  26404. (name "emacs-helm-wordnut")
  26405. (version (git-version "0.1" "1" commit))
  26406. (home-page "https://github.com/emacs-helm/helm-wordnut")
  26407. (source
  26408. (origin
  26409. (method git-fetch)
  26410. (uri (git-reference
  26411. (url home-page)
  26412. (commit commit)))
  26413. (file-name (git-file-name name version))
  26414. (sha256
  26415. (base32
  26416. "0msj7nbsb363pxamxi7n2z08cp5jizkpjbwia8f5a161wjglrihs"))))
  26417. (build-system emacs-build-system)
  26418. (inputs
  26419. `(("wordnet" ,wordnet)))
  26420. (propagated-inputs
  26421. `(("emacs-helm" ,emacs-helm)))
  26422. (arguments
  26423. `(#:phases
  26424. (modify-phases %standard-phases
  26425. (add-after 'unpack 'configure
  26426. (lambda* (#:key inputs #:allow-other-keys)
  26427. (let ((wn (assoc-ref inputs "wordnet")))
  26428. ;; .el is read-only in git.
  26429. (chmod "helm-wordnut.el" #o644)
  26430. ;; Specify the absolute file names of the various
  26431. ;; programs so that everything works out-of-the-box.
  26432. (emacs-substitute-variables "helm-wordnut.el"
  26433. ("helm-wordnut-prog" (string-append wn "/bin/wn"))
  26434. ("helm-wordnut-wordnet-location"
  26435. (string-append wn "/dict")))))))))
  26436. (synopsis "Emacs Helm interface for Wordnet")
  26437. (description "This package is merely a combination of two other Emacs
  26438. packages: @code{helm-wordnet} and @code{wordnut}. It features word completion
  26439. with Helm and displays a buffer of all the different result types available to
  26440. Wordnet.")
  26441. (license license:gpl3+))))
  26442. (define-public emacs-helm-xref
  26443. (let ((commit "23f1174cfca7667d95828dcd388c655a4a9c877d")
  26444. (revision "1"))
  26445. (package
  26446. (name "emacs-helm-xref")
  26447. (version (git-version "0.5" revision commit))
  26448. (source
  26449. (origin
  26450. (method git-fetch)
  26451. (uri (git-reference
  26452. (url "https://github.com/brotzeit/helm-xref")
  26453. (commit commit)))
  26454. (file-name (git-file-name name version))
  26455. (sha256
  26456. (base32
  26457. "0v0lkabpi1n4hgnp28jk19f7b78yk93ssm0gr0fr25yqx5zskdnk"))))
  26458. (build-system emacs-build-system)
  26459. (propagated-inputs
  26460. `(("emacs-helm" ,emacs-helm)))
  26461. (home-page "https://github.com/brotzeit/helm-xref")
  26462. (synopsis "Helm interface for @code{xref}")
  26463. (description "This package provides a Helm interface for selecting
  26464. @code{xref} results.")
  26465. (license license:gpl3+))))
  26466. (define-public emacs-metal-mercury-mode
  26467. (let ((commit "99e2d8fb7177cae3bfa2dec2910fc28216d5f5a8")
  26468. (revision "1")
  26469. (version "0.0.0"))
  26470. (package
  26471. (name "emacs-metal-mercury-mode")
  26472. (version (git-version version revision commit))
  26473. (source
  26474. (origin
  26475. (method git-fetch)
  26476. (uri (git-reference
  26477. (url "https://github.com/ahungry/metal-mercury-mode")
  26478. (commit commit)))
  26479. (sha256
  26480. (base32
  26481. "0iil5k3rgifz2vqwsy12rbv5rzyvidq4sgwazsb2hzys8xynmfn5"))
  26482. (file-name (git-file-name name version))))
  26483. (build-system emacs-build-system)
  26484. (propagated-inputs
  26485. `(("emacs-dash" ,emacs-dash)))
  26486. (synopsis "Major mode for editing Mercury files")
  26487. (description
  26488. "Major mode for editing Mercury files. This is a rewrite of the original
  26489. mercury-mode provided by Emacs as a wrapper around prolog-mode.")
  26490. (home-page "https://github.com/ahungry/metal-mercury-mode")
  26491. (license license:gpl3+))))
  26492. (define-public emacs-boxquote
  26493. (package
  26494. (name "emacs-boxquote")
  26495. (version "2.2")
  26496. (source
  26497. (origin
  26498. (method git-fetch)
  26499. (uri (git-reference
  26500. (url "https://github.com/davep/boxquote.el")
  26501. (commit (string-append "v" version))))
  26502. (file-name (git-file-name name version))
  26503. (sha256
  26504. (base32 "0wwjawgylaaifdsszqxcfsyhfzgxbjkzqhzrnxnr9b16wghb7xf7"))))
  26505. (build-system emacs-build-system)
  26506. (home-page "https://github.com/davep/boxquote.el")
  26507. (synopsis "Quote text with different kinds of boxes")
  26508. (description "@code{boxquote} provides a set of functions for using
  26509. a text quoting style that partially boxes in the left hand side of an area of
  26510. text, such a marking style might be used to show externally included text or
  26511. example code.")
  26512. (license license:gpl3+)))
  26513. (define-public emacs-buffer-move
  26514. (package
  26515. (name "emacs-buffer-move")
  26516. (version "0.6.2")
  26517. (source
  26518. (origin
  26519. (method git-fetch)
  26520. (uri (git-reference
  26521. (url "https://github.com/lukhas/buffer-move")
  26522. (commit version)))
  26523. (file-name (git-file-name name version))
  26524. (sha256
  26525. (base32 "0xdks4jfqyhkh34y48iq3gz8swp0f526kwnaai5mhgvazvs4za8c"))))
  26526. (build-system emacs-build-system)
  26527. (home-page "https://github.com/lukhas/buffer-move")
  26528. (synopsis "Functions for moving Emacs' buffers around")
  26529. (description
  26530. "This package define functions for swapping buffers between windows
  26531. contained in the same frame. An alternate behavior is to have the current
  26532. window switch to the previous buffer instead of swapping with the other
  26533. window.")
  26534. (license license:gpl3+)))
  26535. (define-public emacs-company-ebdb
  26536. (package
  26537. (name "emacs-company-ebdb")
  26538. (version "1.1")
  26539. (source
  26540. (origin
  26541. (method url-fetch)
  26542. (uri (string-append "https://elpa.gnu.org/packages/"
  26543. "company-ebdb-" version ".el"))
  26544. (sha256
  26545. (base32 "146qpiigz12zp1823ggxfrx090g0mxs7gz1ba7sa0iq6ibgzwwm9"))))
  26546. (build-system emacs-build-system)
  26547. (propagated-inputs
  26548. `(("emacs-company" ,emacs-company)))
  26549. (home-page "https://elpa.gnu.org/packages/company-ebdb.html")
  26550. (synopsis "Company completion backend for EBDB in Message mode")
  26551. (description "@code{company-ebdb} provides Company mode integration for
  26552. EBDB. It is copied more or less intact from @code{company-bbdb}, originally
  26553. by Jan Tatarik.")
  26554. (license license:gpl3+)))
  26555. (define-public emacs-mwim
  26556. ;; Use the latest commit not in a release version as of yet, since it
  26557. ;; contains a bug fix for the cases where `comment-start-skip' is nil.
  26558. (let ((commit "b4f3edb4c0fb8f8b71cecbf8095c2c25a8ffbf85")
  26559. (revision "0"))
  26560. (package
  26561. (name "emacs-mwim")
  26562. (version (git-version "0.4" revision commit))
  26563. (source
  26564. (origin
  26565. (method git-fetch)
  26566. (uri (git-reference
  26567. (url "https://github.com/alezost/mwim.el")
  26568. (commit commit)))
  26569. (file-name (git-file-name name version))
  26570. (sha256
  26571. (base32 "0l3k611gp9g2x2vfmh92wnhnda81dslpwwpb8mxmzk308man77ya"))))
  26572. (build-system emacs-build-system)
  26573. (home-page "https://github.com/alezost/mwim.el")
  26574. (synopsis "Move to the beginning/end of line, code or comment")
  26575. (description "@code{mwim} provides several commands to switch between
  26576. various line positions, like moving to the beginning/end of code, line, or
  26577. comment.")
  26578. (license license:gpl3+))))
  26579. (define-public emacs-delight
  26580. (package
  26581. (name "emacs-delight")
  26582. (version "1.7")
  26583. (source
  26584. (origin
  26585. (method url-fetch)
  26586. (uri (string-append "https://elpa.gnu.org/packages/"
  26587. "delight-" version ".el"))
  26588. (sha256
  26589. (base32 "0pihsghrf9xnd1kqlq48qmjcmp5ra95wwwgrb3l8m1wagmmc0bi1"))))
  26590. (build-system emacs-build-system)
  26591. (home-page "https://elpa.gnu.org/packages/delight.html")
  26592. (synopsis "Dimmer switch for your mode-line lighter text")
  26593. (description "@code{delight} enables customizing or hiding the
  26594. mode-line text (lighter) of major and minor modes.")
  26595. (license license:gpl3+)))
  26596. (define-public emacs-unkillable-scratch
  26597. ;; Use the latest (unreleased) commit as of now, since it contains a handy
  26598. ;; `unkillable-scratch-do-not-reset-scratch-buffer' customization to not
  26599. ;; repopulate the scratch buffer with `initial-scratch-message'.
  26600. (let ((commit "b24c2a760529833f230c14cb02ff6e7ec92288ab")
  26601. (revision "0"))
  26602. (package
  26603. (name "emacs-unkillable-scratch")
  26604. (version (git-version "1.0.0" revision commit))
  26605. (source
  26606. (origin
  26607. (method git-fetch)
  26608. (uri (git-reference
  26609. (url "https://github.com/EricCrosson/unkillable-scratch")
  26610. (commit commit)))
  26611. (file-name (git-file-name name version))
  26612. (sha256
  26613. (base32 "13wjbcxr3km4s96yhpavgs5acs5pvqv3ih1p84diqb3x3i6wd4pa"))))
  26614. (build-system emacs-build-system)
  26615. (home-page "https://github.com/EricCrosson/unkillable-scratch")
  26616. (synopsis "Prevents the *scratch* buffer from being killed")
  26617. (description "@code{unkillable-scratch} helps prevent killing buffers
  26618. matching a given regexp.")
  26619. (license license:gpl2+))))
  26620. (define-public emacs-switch-buffer-functions
  26621. (package
  26622. (name "emacs-switch-buffer-functions")
  26623. (version "0.0.1")
  26624. (source
  26625. (origin
  26626. (method git-fetch)
  26627. (uri (git-reference
  26628. (url "https://github.com/10sr/switch-buffer-functions-el")
  26629. (commit (string-append "v" version))))
  26630. (file-name (git-file-name name version))
  26631. (sha256
  26632. (base32 "0pq53b8wrjbrxd5hnrcdi0z7mffp4bax55hn90k9ca3j76lhbn1k"))))
  26633. (build-system emacs-build-system)
  26634. (home-page "https://github.com/10sr/switch-buffer-functions-el")
  26635. (synopsis "Hooks run when switching current buffer")
  26636. (description "This package provides a hook variable
  26637. @code{switch-buffer-functions}. The hooks will be run when the current buffer
  26638. is changed after an interactive command, i.e., when @code{post-command-hook}
  26639. hooks are run. The hooked functions will be called with both the previous and
  26640. the current buffer.")
  26641. (license license:unlicense)))
  26642. (define-public emacs-erc-scrolltoplace
  26643. (package
  26644. (name "emacs-erc-scrolltoplace")
  26645. (version "0.1.0")
  26646. (source
  26647. (origin
  26648. (method git-fetch)
  26649. (uri (git-reference
  26650. (url "https://gitlab.com/jgkamat/erc-scrolltoplace.git")
  26651. (commit version)))
  26652. (file-name (git-file-name name version))
  26653. (sha256
  26654. (base32 "11zpqwh1mlfifbgnvhc63bvnhg340jgxssm3m43hr1sxsyb52lh6"))))
  26655. (build-system emacs-build-system)
  26656. (propagated-inputs
  26657. `(("emacs-switch-buffer-functions" ,emacs-switch-buffer-functions)))
  26658. (home-page "https://gitlab.com/jgkamat/erc-scrolltoplace")
  26659. (synopsis "ERC module to replace scrolltobottom while using keep-place")
  26660. (description "@code{erc-scrolltoplace} is an ERC module to try
  26661. to emulate @code{scrolltobottom} while @code{keep-place} is enabled.")
  26662. (license license:gpl3+)))
  26663. (define-public emacs-dmenu
  26664. ;; Use the latest commit, as there are no tagged releases.
  26665. (let ((commit "e8cc9b27c79d3ecc252267c082ab8e9c82eab264")
  26666. (revision "0"))
  26667. (package
  26668. (name "emacs-dmenu")
  26669. (version (git-version "0.1" revision commit))
  26670. (source
  26671. (origin
  26672. (method git-fetch)
  26673. (uri (git-reference
  26674. (url "https://github.com/lujun9972/el-dmenu")
  26675. (commit commit)))
  26676. (file-name (git-file-name name version))
  26677. (sha256
  26678. (base32 "098ncygms1r33zhjlq4fj2p4jc91v5whqrm3fazzdk7sd6dilf25"))))
  26679. (build-system emacs-build-system)
  26680. (home-page "https://github.com/lujun9972/el-dmenu")
  26681. (synopsis "Simulate the @command{dmenu} command line program")
  26682. (description "This package provides a @command{dmenu} command for
  26683. launching other commands/applications from within Emacs, similar to the
  26684. @command{dmenu} program. This is especially useful when using EXWM.")
  26685. (license license:gpl3+))))
  26686. (define-public emacs-no-littering
  26687. (package
  26688. (name "emacs-no-littering")
  26689. (version "1.2.2")
  26690. (source
  26691. (origin
  26692. (method git-fetch)
  26693. (uri (git-reference
  26694. (url "https://github.com/emacscollective/no-littering")
  26695. (commit (string-append "v" version))))
  26696. (file-name (git-file-name name version))
  26697. (sha256
  26698. (base32 "1kbbbx1agzcxc5n1b6cavdx3wjxz6mgi9rafja8mk8cyaaiz0rkd"))))
  26699. (build-system emacs-build-system)
  26700. (home-page "https://github.com/emacscollective/no-littering")
  26701. (synopsis "Help keep @file{~/.emacs.d/} clean")
  26702. (description "The default paths used to store configuration files and
  26703. persistent data are not consistent across Emacs packages, be them built-in or
  26704. third-party ones. @code{no-littering} sets out to help clean
  26705. @file{~/.emacs.d/} by putting configuration files and persistent data files in
  26706. two user-defined directories, as well as using more descriptive names for
  26707. files and subdirectories when appropriate.")
  26708. (license license:gpl3+)))
  26709. (define-public emacs-meson-mode
  26710. (package
  26711. (name "emacs-meson-mode")
  26712. (version "0.3")
  26713. (source
  26714. (origin
  26715. (method git-fetch)
  26716. (uri (git-reference
  26717. (url "https://github.com/wentasah/meson-mode")
  26718. (commit (string-append "v" version))))
  26719. (file-name (git-file-name name version))
  26720. (sha256
  26721. (base32 "0hlqvq3j4f6g16nj3bm2wbkncn8hv8c8iqd0sch3w80wwqnr622y"))))
  26722. (build-system emacs-build-system)
  26723. (home-page "https://github.com/wentasah/meson-mode")
  26724. (synopsis "Major mode for Meson build system files")
  26725. (description
  26726. "This is an Emacs major mode for Meson build system files. Syntax
  26727. highlighting works reliably. Indentation works too, but there are probably
  26728. cases where it breaks.")
  26729. (license license:gpl3+)))
  26730. (define-public emacs-message-x
  26731. ;; Use the latest commit, as there are no tagged releases.
  26732. (let ((commit "5524de7bbfdd8749c110f48de5afb024d9f83133")
  26733. (revision "0"))
  26734. (package
  26735. (name "emacs-message-x")
  26736. (version (git-version "1.23" revision commit))
  26737. (source
  26738. (origin
  26739. (method git-fetch)
  26740. (uri (git-reference
  26741. (url "https://github.com/emacsmirror/message-x")
  26742. (commit commit)))
  26743. (file-name (git-file-name name version))
  26744. (sha256
  26745. (base32 "0qy1xf11j357lsnbb829hnbg7fq1cii4cx54fwf0wgjh1bv2abvj"))))
  26746. (build-system emacs-build-system)
  26747. (home-page "https://www.emacswiki.org/emacs/message-x.el")
  26748. (synopsis "Customizable completion in message headers")
  26749. (description "@code{message-x} assigns a context-sensitive function to
  26750. the TAB key in Message mode. When on a header line, it performs completion
  26751. based on which header we are in (for example, newsgroup name completion makes
  26752. sense on the @samp{Newsgroups} header, whereas mail alias expansion makes
  26753. sense in the @samp{To} and @samp{Cc} headers). When in the message body, this
  26754. executes a different function (default: @code{indent-relative}).")
  26755. (license license:gpl2+))))
  26756. (define-public emacs-glsl-mode
  26757. ;; No tag, version grabbed from source .el file.
  26758. (let ((commit "b07112016436d9634cd4ef747f9af6b01366d136")
  26759. (revision "0"))
  26760. (package
  26761. (name "emacs-glsl-mode")
  26762. (version (git-version "2.4" revision commit))
  26763. (source
  26764. (origin
  26765. (method git-fetch)
  26766. (uri (git-reference
  26767. (url "https://github.com/jimhourihan/glsl-mode")
  26768. (commit commit)))
  26769. (file-name (git-file-name name version))
  26770. (sha256
  26771. (base32 "0bav9ipfm0vy26n74ngsmjzc7fsyqz6xmriadzx55s44h8p5dn1s"))))
  26772. (build-system emacs-build-system)
  26773. (home-page "https://github.com/jimhourihan/glsl-mode")
  26774. (synopsis "Major mode for Open GLSL shader files")
  26775. (description
  26776. "This package provides a major mode for editing OpenGLSL grammar files,
  26777. usually files ending with @file{.vert}, @file{.frag}, @file{.glsl} or
  26778. @file{.geom}. It is based on C mode plus some features and pre-specified
  26779. fontifications.")
  26780. (license license:gpl3+))))
  26781. (define-public emacs-gnus-harvest
  26782. (let ((commit "feda071a87b799bd5d23cacde3ee71f0b166e75d")
  26783. (revision "0"))
  26784. (package
  26785. (name "emacs-gnus-harvest")
  26786. (version (git-version "1.0" revision commit))
  26787. (source
  26788. (origin
  26789. (method git-fetch)
  26790. (uri (git-reference
  26791. (url "https://github.com/jwiegley/gnus-harvest")
  26792. (commit commit)))
  26793. (file-name (git-file-name name version))
  26794. (sha256
  26795. (base32 "08zb7vc3v3wdxkzgi902vlc5ybfvm8fxrvm5drnwfsjj9873pbcb"))))
  26796. (build-system emacs-build-system)
  26797. (inputs
  26798. `(("sqlite" ,sqlite)))
  26799. (arguments
  26800. `(#:phases
  26801. (modify-phases %standard-phases
  26802. (add-before 'build 'patch-exec-paths
  26803. (lambda* (#:key inputs #:allow-other-keys)
  26804. (let ((sqlite (assoc-ref inputs "sqlite"))
  26805. (file "gnus-harvest.el"))
  26806. (make-file-writable file)
  26807. (emacs-substitute-variables file
  26808. ("gnus-harvest-sqlite-program"
  26809. (string-append sqlite "/bin/sqlite3"))))
  26810. #t)))))
  26811. (home-page "https://github.com/jwiegley/gnus-harvest")
  26812. (synopsis
  26813. "Harvest email addresses from read/written Gnus articles")
  26814. (description "@code{gnus-harvest} notices email address in every message
  26815. or post you read or write, and collects them in a SQLite database, which can
  26816. be easily and quickly queried to determine the completion list. It optionally
  26817. uses BBDB and Message-X.")
  26818. (license license:gpl3+))))
  26819. (define-public emacs-auto-dictionary-mode
  26820. (package
  26821. (name "emacs-auto-dictionary-mode")
  26822. (version "1.1")
  26823. (source
  26824. (origin
  26825. (method git-fetch)
  26826. (uri (git-reference
  26827. (url "https://github.com/nschum/auto-dictionary-mode")
  26828. (commit version)))
  26829. (file-name (git-file-name name version))
  26830. (sha256
  26831. (base32 "191294k92qp8gmfypf0q8j8qrym96aqikzvyb9p03wqvbr3r1dsk"))))
  26832. (build-system emacs-build-system)
  26833. (home-page "http://nschum.de/src/emacs/auto-dictionary/")
  26834. (synopsis "Automatic dictionary switcher for Emacs spell checking")
  26835. (description "@code{auto-dictionary} is a minor mode that hooks into
  26836. Flyspell's on-the-fly spell checking and extends these checks to also detect
  26837. language. Auto-dictionary then sets @code{ispell-dictionary} to use the
  26838. detected language.")
  26839. (license license:gpl2+)))
  26840. (define-public emacs-persist
  26841. (package
  26842. (name "emacs-persist")
  26843. (version "0.4")
  26844. (source
  26845. (origin
  26846. (method url-fetch)
  26847. (uri (string-append "https://elpa.gnu.org/packages/"
  26848. "persist-" version ".tar"))
  26849. (sha256
  26850. (base32 "0gpxy41qawzss2526j9a7lys60vqma1lvamn4bfabwza7gfhac0q"))))
  26851. (build-system emacs-build-system)
  26852. (home-page "http://elpa.gnu.org/packages/persist.html")
  26853. (synopsis "Persist variables between Emacs sessions")
  26854. (description
  26855. "This package provides variables which persist across sessions.
  26856. Values are stored in a directory in @code{user-emacs-directory}, using
  26857. one file per value. This makes it easy to delete or remove unused
  26858. variables.")
  26859. (license license:gpl3+)))
  26860. (define-public emacs-company-emoji
  26861. (package
  26862. (name "emacs-company-emoji")
  26863. (version "2.6.1")
  26864. (source
  26865. (origin
  26866. (method git-fetch)
  26867. (uri (git-reference
  26868. (url "https://github.com/dunn/company-emoji/")
  26869. (commit version)))
  26870. (file-name (git-file-name name version))
  26871. (sha256
  26872. (base32 "1rhf2hr345953mkn52i58aiq8j16ps2ckapd5f7jxmhkcpzxxfhk"))))
  26873. (build-system emacs-build-system)
  26874. (propagated-inputs
  26875. `(("emacs-company" ,emacs-company)))
  26876. (home-page "https://github.com/dunn/company-emoji/")
  26877. (synopsis "Company completion back-end for emoji")
  26878. (description
  26879. "This library is a Company back-end providing auto-completion for
  26880. emoji.")
  26881. (license license:gpl3+)))
  26882. (define-public emacs-exiftool
  26883. (package
  26884. (name "emacs-exiftool")
  26885. (version "0.3.2")
  26886. (source
  26887. (origin
  26888. (method git-fetch)
  26889. (uri (git-reference
  26890. (url "https://git.systemreboot.net/exiftool.el/")
  26891. (commit (string-append "v" version))))
  26892. (file-name (git-file-name name version))
  26893. (sha256
  26894. (base32
  26895. "0bv58is66cz21yhc0qqkp1z4nk13zfi2l7i6pjbhyi0g1n88qqyv"))))
  26896. (build-system emacs-build-system)
  26897. (arguments
  26898. `(#:tests? #t
  26899. #:test-command '("make" "-C" "tests")
  26900. #:phases
  26901. (modify-phases %standard-phases
  26902. (add-after 'unpack 'configure
  26903. (lambda* (#:key inputs #:allow-other-keys)
  26904. (make-file-writable "exiftool.el")
  26905. (emacs-substitute-variables "exiftool.el"
  26906. ("exiftool-executable"
  26907. (search-input-file inputs "/bin/exiftool"))))))))
  26908. (inputs
  26909. `(("perl-image-exiftool" ,perl-image-exiftool)))
  26910. (home-page "https://git.systemreboot.net/exiftool.el/about/")
  26911. (synopsis "Elisp wrapper around ExifTool")
  26912. (description "@code{emacs-exiftool} is an Elisp wrapper around ExifTool.
  26913. ExifTool supports reading and writing metadata in various formats including
  26914. EXIF, XMP and IPTC.")
  26915. (license license:gpl3+)))
  26916. (define-public emacs-password-generator
  26917. (package
  26918. (name "emacs-password-generator")
  26919. (version "1.01")
  26920. (home-page "https://github.com/zargener/emacs-password-genarator")
  26921. (source
  26922. (origin
  26923. (method git-fetch)
  26924. (uri (git-reference
  26925. (url home-page)
  26926. (commit "904cdb591a04305ba882ce19e1d117f5fa60f7d3")))
  26927. (file-name (git-file-name name version))
  26928. (sha256
  26929. (base32
  26930. "1qgvn79qz1h8ykm5i1qv2fja4v2y0g2i0n5sf7byhnqhqlwn63nv"))))
  26931. (build-system emacs-build-system)
  26932. (synopsis "Generate passwords inside Emacs")
  26933. (description "@code{emacs-password-generator} provides simple functions to
  26934. generate random passwords and insert them into the current buffer. It also
  26935. supports generation of phonetic and numeric passwords.")
  26936. (license license:artistic2.0)))
  26937. (define-public emacs-csv
  26938. (package
  26939. (name "emacs-csv")
  26940. (version "2.1")
  26941. (home-page "https://gitlab.com/u11/csv.el")
  26942. (source
  26943. (origin
  26944. (method git-fetch)
  26945. (uri (git-reference
  26946. (url home-page)
  26947. (commit (string-append "V" version))))
  26948. (file-name (git-file-name name version))
  26949. (sha256
  26950. (base32
  26951. "1vmazjrfcsa9aa9aw8bq5sazdhqvhxyj837dyw5lmh8gk7z0xdaa"))))
  26952. (build-system emacs-build-system)
  26953. (synopsis "Elisp functions for reading and parsing CSV files")
  26954. (description
  26955. "@code{csv.el} provides functions for reading and parsing @acronym{CSV,
  26956. Comma-Separated Values} files. It follows the format as defined in RFC 4180
  26957. @emph{Common Format and MIME Type for CSV
  26958. Files} (@url{http://tools.ietf.org/html/rfc4180}).")
  26959. (license license:gpl3+)))
  26960. (define-public emacs-org-journal
  26961. (package
  26962. (name "emacs-org-journal")
  26963. (version "2.1.2")
  26964. (source
  26965. (origin
  26966. (method git-fetch)
  26967. (uri (git-reference
  26968. (url "https://github.com/bastibe/org-journal")
  26969. (commit version)))
  26970. (file-name (git-file-name name version))
  26971. (sha256
  26972. (base32 "0s82sh2svc0mzr1ak414n5r2j0dmwvvyx4swk2c61zivc2gjd778"))))
  26973. (build-system emacs-build-system)
  26974. (home-page "https://github.com/bastibe/org-journal")
  26975. (synopsis "Simple Org mode journaling mode")
  26976. (description
  26977. "Org Journal is a set of functions to maintain a simple personal diary /
  26978. journal using in Emacs, adapted from
  26979. @url{https://www.emacswiki.org/emacs/PersonalDiary}. Convenient bindings
  26980. allow the creation of journal records in the current daily, weekly, monthly or
  26981. yearly file and search within all records or specified time intervals. All
  26982. records can be browsed and searched from the Emacs Calendar for convenience.
  26983. All entries in a specified TODO state will be carried over to the next day.")
  26984. (license license:bsd-3)))
  26985. (define-public emacs-org-static-blog
  26986. (package
  26987. (name "emacs-org-static-blog")
  26988. (version "1.5.0")
  26989. (source
  26990. (origin
  26991. (method git-fetch)
  26992. (uri (git-reference
  26993. (url "https://github.com/bastibe/org-static-blog")
  26994. (commit version)))
  26995. (file-name (git-file-name name version))
  26996. (sha256
  26997. (base32 "1p9v40mm8p25b9xgfahwqqx4c36aqnl9yyjjdhkp6x5xkhkdf7by"))))
  26998. (build-system emacs-build-system)
  26999. (home-page "https://github.com/bastibe/org-static-blog")
  27000. (synopsis
  27001. "Simple Org mode based static blog generator")
  27002. (description
  27003. "@code{emacs-org-static-blog} is one more static blog generator, it
  27004. focuses on being simple. All files are simple Org files in a directory. The
  27005. only requirement is that every Org file must have a @samp{title} and
  27006. a @samp{date} keywords, and optionally, a @samp{filetags} keyword.")
  27007. (license license:bsd-3)))
  27008. (define-public emacs-ddskk
  27009. ;; XXX: Upstream adds code names to their release tags, so version and code
  27010. ;; name below need to be updated together.
  27011. (let ((version "17.1")
  27012. (code-name "Neppu"))
  27013. (package
  27014. (name "emacs-ddskk")
  27015. (version version)
  27016. (source
  27017. (origin
  27018. (method git-fetch)
  27019. (uri (git-reference
  27020. (url "https://github.com/skk-dev/ddskk")
  27021. (commit (string-append "ddskk-" version "_" code-name))))
  27022. (file-name (git-file-name name version))
  27023. (sha256
  27024. (base32 "0xm53rybxki2784gyjkafg6956viyhhcq51kbmnrwc6aw3yzh7aw"))))
  27025. (build-system gnu-build-system)
  27026. (arguments
  27027. `(#:modules ((guix build gnu-build-system)
  27028. (guix build utils)
  27029. (guix build emacs-utils))
  27030. #:imported-modules (,@%gnu-build-system-modules
  27031. (guix build emacs-utils))
  27032. #:test-target "test"
  27033. #:phases
  27034. (modify-phases %standard-phases
  27035. (replace 'configure
  27036. (lambda* (#:key outputs #:allow-other-keys)
  27037. (make-file-writable "SKK-MK")
  27038. (emacs-substitute-variables "SKK-MK"
  27039. ("PREFIX" (assoc-ref outputs "out"))
  27040. ("LISPDIR" '(expand-file-name "/share/emacs/site-lisp" PREFIX))
  27041. ("SKK_PREFIX" "")
  27042. ("SKK_INFODIR" '(expand-file-name "info" PREFIX)))
  27043. (for-each make-file-writable (find-files "./doc"))
  27044. #t))
  27045. (add-after 'unpack 'fix-test
  27046. (lambda _
  27047. (substitute* "Makefile"
  27048. (("/bin/rm") (which "rm"))))))))
  27049. (native-inputs
  27050. `(("emacs-minimal" ,emacs-minimal)
  27051. ("ruby" ,ruby)))
  27052. (home-page "https://github.com/skk-dev/ddskk")
  27053. (synopsis "Simple Kana to Kanji conversion program")
  27054. (description
  27055. "Daredevil SKK is a version of @acronym{SKK, Simple Kana to Kanji
  27056. conversion program}, a Japanese input method on Emacs.")
  27057. (license license:gpl2+))))
  27058. (define-public emacs-objed
  27059. (package
  27060. (name "emacs-objed")
  27061. (version "0.8.3")
  27062. (source
  27063. (origin
  27064. (method url-fetch)
  27065. (uri (string-append
  27066. "https://elpa.gnu.org/packages/objed-" version ".tar"))
  27067. (sha256
  27068. (base32
  27069. "1s38d6bvggdk5p45ww1jb4gxifzgjwgw1m6ar920nlg0j4fgbcvr"))))
  27070. (build-system emacs-build-system)
  27071. (home-page "https://github.com/clemera/objed")
  27072. (synopsis "Navigate and edit text objects")
  27073. (description
  27074. "@code{emacs-objed} allows navigating and editing text objects. It
  27075. enables modal editing and composition of commands, too. It combines ideas of
  27076. other Editors like Vim or Kakoune and tries to align them with regular Emacs
  27077. conventions.")
  27078. (license license:gpl3+)))
  27079. (define-public emacs-haskell-snippets
  27080. ;; The commit below is 5 commits ahead of release, and includes a build fix.
  27081. (let ((commit "07b0f460b946fd1be26c29652cb0468b47782f3a"))
  27082. (package
  27083. (name "emacs-haskell-snippets")
  27084. (version (git-version "0.1.0" "0" commit))
  27085. (source
  27086. (origin
  27087. (method git-fetch)
  27088. (uri
  27089. (git-reference
  27090. (url "https://github.com/haskell/haskell-snippets")
  27091. (commit commit)))
  27092. (file-name (git-file-name name version))
  27093. (sha256
  27094. (base32 "0a7y3awi9hcyahggf0ghsdwvsmrhr9yq634wy9lkqjzrm2hqj0ci"))))
  27095. (build-system emacs-build-system)
  27096. (arguments
  27097. `(#:phases
  27098. (modify-phases %standard-phases
  27099. (add-after 'install 'install-snippets
  27100. (lambda* (#:key outputs #:allow-other-keys)
  27101. (let* ((out (assoc-ref outputs "out"))
  27102. (snippets
  27103. (string-append
  27104. out "/share/emacs/site-lisp/snippets/haskell-mode")))
  27105. (mkdir-p snippets)
  27106. (copy-recursively "snippets/haskell-mode" snippets)
  27107. #t))))))
  27108. (propagated-inputs
  27109. `(("emacs-yasnippet" ,emacs-yasnippet)))
  27110. (home-page "https://github.com/haskell/haskell-snippets")
  27111. (synopsis "Official collection of YASnippet Haskell snippets for Emacs")
  27112. (description "Haskell-Snippets is a collection of YASnippet Haskell
  27113. snippets for Emacs.")
  27114. (license license:expat))))
  27115. (define-public emacs-org-roam
  27116. (package
  27117. (name "emacs-org-roam")
  27118. (version "2.1.0")
  27119. (source
  27120. (origin
  27121. (method git-fetch)
  27122. (uri (git-reference
  27123. (url "https://github.com/org-roam/org-roam")
  27124. (commit (string-append "v" version))))
  27125. (file-name (git-file-name name version))
  27126. (sha256
  27127. (base32 "092xn0sqc7b7f6pdf7m6c3giqqbh6fq02mfz8qrg0wmx4ds1isqp"))))
  27128. (build-system emacs-build-system)
  27129. (arguments
  27130. `(#:phases
  27131. (modify-phases %standard-phases
  27132. ;; Move the extensions source files to the top level, which is included in
  27133. ;; the EMACSLOADPATH.
  27134. (add-after 'unpack 'move-source-files
  27135. (lambda _
  27136. (let ((el-files (find-files "./extensions" ".*\\.el$")))
  27137. (for-each (lambda (f)
  27138. (rename-file f (basename f)))
  27139. el-files))
  27140. #t))
  27141. (add-after 'install 'install-image
  27142. (lambda* (#:key outputs #:allow-other-keys)
  27143. (let ((out (assoc-ref outputs "out")))
  27144. (install-file "doc/images/org-ref-citelink.png"
  27145. (string-append out "/share/info/images")))))
  27146. (add-after 'install-image 'make-info
  27147. (lambda* (#:key outputs #:allow-other-keys)
  27148. (let ((out (assoc-ref outputs "out")))
  27149. (with-directory-excursion "doc"
  27150. (invoke "makeinfo" "-o" "org-roam.info" "org-roam.texi")
  27151. (install-file "org-roam.info"
  27152. (string-append out "/share/info")))))))))
  27153. (native-inputs
  27154. `(("texinfo" ,texinfo)))
  27155. (propagated-inputs
  27156. `(("emacs-dash" ,emacs-dash)
  27157. ("emacs-emacsql-sqlite3" ,emacs-emacsql-sqlite3)
  27158. ("emacs-f" ,emacs-f)
  27159. ("emacs-magit" ,emacs-magit)
  27160. ("emacs-org" ,emacs-org)
  27161. ("emacs-s" ,emacs-s)))
  27162. (home-page "https://github.com/org-roam/org-roam/")
  27163. (synopsis "Non-hierarchical note-taking with Org mode")
  27164. (description "Emacs Org Roam is a solution for taking non-hierarchical
  27165. notes with Org mode. Notes are captured without hierarchy and are connected
  27166. by tags. Notes can be found and created quickly. Org Roam should also work
  27167. as a plug-and-play solution for anyone already using Org mode for their
  27168. personal wiki.")
  27169. (license license:gpl3+)))
  27170. (define-public emacs-org-roam-bibtex
  27171. (package
  27172. (name "emacs-org-roam-bibtex")
  27173. (version "0.6.0")
  27174. (source
  27175. (origin
  27176. (method git-fetch)
  27177. (uri (git-reference
  27178. (url "https://github.com/org-roam/org-roam-bibtex")
  27179. (commit (string-append "v" version))))
  27180. (file-name (git-file-name name version))
  27181. (sha256
  27182. (base32 "04vc2w7x2lyamp0qa1y274smsf9x2qxr1igrpz9f4y5ha5332px5"))))
  27183. (build-system emacs-build-system)
  27184. (propagated-inputs
  27185. `(("emacs-helm-bibtex" ,emacs-helm-bibtex)
  27186. ("emacs-org-ref" ,emacs-org-ref)
  27187. ("emacs-org-roam" ,emacs-org-roam)))
  27188. (home-page "https://github.com/org-roam/org-roam-bibtex")
  27189. (synopsis "Connector between Org Roam, BibTeX-completion, and Org Ref")
  27190. (description
  27191. "Org Roam BibTeX is a library which offers a tighter integration between
  27192. Org Roam, Helm-BibTeX, and Org Ref. It allows users to access their
  27193. bibliographical notes in Org Roam directory via Helm BibTeX, Ivy BibTeX, or by
  27194. opening Org Ref's @code{cite:} links.")
  27195. (license license:gpl3+)))
  27196. (define-public emacs-org-generate
  27197. (package
  27198. (name "emacs-org-generate")
  27199. (version "1.0.0")
  27200. (source (origin
  27201. (method git-fetch)
  27202. (uri (git-reference
  27203. (url "https://github.com/conao3/org-generate.el")
  27204. (commit (string-append "v" version))))
  27205. (file-name (git-file-name name version))
  27206. (sha256
  27207. (base32
  27208. "0z2frp5mn3lp2xskwanw2rncrwa50x3aphy87vfxmhx4fqlqrzy8"))))
  27209. (inputs
  27210. `(("emacs-cort" ,emacs-cort)
  27211. ("emacs-with-simulated-input" ,emacs-with-simulated-input)))
  27212. (propagated-inputs
  27213. `(("emacs-mustache" ,emacs-mustache)))
  27214. (arguments
  27215. ;; FIXME: Tests fail with "Wrong type argument: sequencep, :equal". It
  27216. ;; seems to be an issue with Cort library.
  27217. `(#:tests? #f
  27218. #:test-command '("emacs" "--batch" "--quick"
  27219. "--directory=." "--load=org-generate-tests.el"
  27220. "--funcall=cort-test-run")))
  27221. (build-system emacs-build-system)
  27222. (home-page "https://github.com/conao3/org-generate.el")
  27223. (synopsis "Generate template files and folders from Org document")
  27224. (description "This package generates files and folders from Emacs
  27225. org-mode templates.")
  27226. (license license:gpl3+)))
  27227. (define-public emacs-uml-mode
  27228. ;; Package has no release. Version is extracted from "Version:" keyword in
  27229. ;; main file.
  27230. (let ((commit "4c37ac1c4424b2313cd8f16ba48a98a4cc214200")
  27231. (revision "1"))
  27232. (package
  27233. (name "emacs-uml-mode")
  27234. (version (git-version "0.0.4" revision commit))
  27235. (source
  27236. (origin
  27237. (method git-fetch)
  27238. (uri (git-reference
  27239. (url "https://github.com/ianxm/emacs-uml")
  27240. (commit commit)))
  27241. (file-name (git-file-name name version))
  27242. (sha256
  27243. (base32 "145i4srnfvd1vyibri2a1l6p9mbjvkkwlrpi41134pbarqffcnka"))))
  27244. (build-system emacs-build-system)
  27245. (home-page "https://github.com/ianxm/emacs-uml")
  27246. (synopsis "Minor mode for editing ASCII UML sequence diagrams")
  27247. (description "Emacs UML mode is a minor mode that makes it easy to build
  27248. ASCII UML sequence diagrams in Emacs, which can be embedded in source code,
  27249. comments or emails.")
  27250. (license license:gpl3+))))
  27251. (define-public emacs-trashed
  27252. (package
  27253. (name "emacs-trashed")
  27254. (version "2.1.2")
  27255. (source
  27256. (origin
  27257. (method git-fetch)
  27258. (uri (git-reference
  27259. (url "https://github.com/shingo256/trashed/")
  27260. (commit version)))
  27261. (file-name (git-file-name name version))
  27262. (sha256
  27263. (base32 "0lfza55nbb62nmr27cwpcz2ad1vm95piq4nfd8zvkwqbn6klwmm6"))))
  27264. (build-system emacs-build-system)
  27265. (home-page "https://github.com/shingo256/trashed/")
  27266. (synopsis "View and edit system trash can in Emacs")
  27267. (description "Open, view, browse, restore or permanently delete trashed
  27268. files or directories in trash can with Dired-like look and feel. The trash
  27269. can has to be compliant with freedesktop.org. In Emacs, you can trash files by
  27270. deleting them with @code{(setq delete-by-moving-to-trash t)}. This package
  27271. provides a simple but convenient user interface to manage those trashed
  27272. files.")
  27273. (license license:gpl3+)))
  27274. (define-public emacs-placeholder
  27275. ;; No tags.
  27276. (let ((commit "b80cb152ddd63db40cc581eafee9d2ac08328df8"))
  27277. (package
  27278. (name "emacs-placeholder")
  27279. (version "0.1")
  27280. (source (origin
  27281. (method git-fetch)
  27282. (uri (git-reference
  27283. (url "https://github.com/oantolin/placeholder")
  27284. (commit commit)))
  27285. (file-name (git-file-name name version))
  27286. (sha256
  27287. (base32
  27288. "1ifiaxrp7inj70a3zf5137dih4b1sw38zmkp3h7dj79k2bv7h34h"))))
  27289. (build-system emacs-build-system)
  27290. (home-page "https://github.com/oantolin/placeholder")
  27291. (synopsis "Treat any buffer as a template with placeholders to fill-in")
  27292. (description
  27293. "This package provides a simple way to treat text in a buffer as a template
  27294. with placeholders where text needs to be filled in. Any occurrence of
  27295. @code{<++>} in the buffer is a placeholder. You can navigate among the
  27296. placeholder with the placeholder-forward and placeholder-backward commands.
  27297. They move the point to the next placeholder in the specified direction and
  27298. delete the placeholder so you can immediately start typing the text that
  27299. should replace it. However, if you call them again immediately after, they
  27300. restore that occurrence of the placeholder and move to the next.")
  27301. (license license:gpl3+))))
  27302. (define-public emacs-plantuml-mode
  27303. (package
  27304. (name "emacs-plantuml-mode")
  27305. (version "1.4.1")
  27306. (source
  27307. (origin
  27308. (method git-fetch)
  27309. (uri (git-reference
  27310. (url "https://github.com/skuro/plantuml-mode")
  27311. (commit (string-append "v" version))))
  27312. (file-name (git-file-name name version))
  27313. (sha256
  27314. (base32 "0yp41d2dmf3sx7qnl5x0zdjcr9y71b2wwc9m0q31v22xqn938ipc"))))
  27315. (arguments
  27316. '(#:phases
  27317. (modify-phases %standard-phases
  27318. (add-after 'unpack 'use-local-plantuml
  27319. (lambda* (#:key inputs #:allow-other-keys)
  27320. (let ((plantuml (assoc-ref inputs "plantuml"))
  27321. (file "plantuml-mode.el"))
  27322. (chmod file #o644)
  27323. (emacs-substitute-variables file
  27324. ("plantuml-jar-path"
  27325. (string-append plantuml "/share/java/plantuml.jar"))
  27326. ("plantuml-executable-path"
  27327. (string-append plantuml "/bin/plantuml"))
  27328. ("plantuml-server-url" 'nil)
  27329. ("plantuml-default-exec-mode" ''executable))
  27330. (emacs-batch-edit-file file
  27331. `(progn (progn
  27332. (goto-char (point-min))
  27333. (re-search-forward "(defun plantuml-download-jar")
  27334. (beginning-of-line)
  27335. (kill-sexp))
  27336. (basic-save-buffer)))
  27337. #t))))))
  27338. (inputs
  27339. `(("plantuml" ,plantuml)))
  27340. (propagated-inputs
  27341. `(("emacs-dash" ,emacs-dash)))
  27342. (build-system emacs-build-system)
  27343. (home-page "https://github.com/skuro/plantuml-mode")
  27344. (synopsis "Major mode for editing PlantUML sources")
  27345. (description "This package provides a major mode for editing PlantUML
  27346. sources. It features syntax highlighting, autocompletion, preview of buffer
  27347. or region and use of locally installed binaries.")
  27348. (license license:gpl3+)))
  27349. (define-public emacs-execline
  27350. (package
  27351. (name "emacs-execline")
  27352. (version "1.1")
  27353. (source (origin
  27354. (method git-fetch)
  27355. (uri (git-reference
  27356. (url "https://gitlab.com/KAction/emacs-execline/")
  27357. (commit (string-append "v" version))))
  27358. (file-name (git-file-name name version))
  27359. (sha256
  27360. (base32
  27361. "02q531c9wvdwflhggflnci4a36h2bb90bq25bbhw6i2lvrd9sk55"))))
  27362. (build-system emacs-build-system)
  27363. (propagated-inputs
  27364. `(("emacs-s" ,emacs-s)))
  27365. (arguments
  27366. `(#:tests? #t
  27367. #:test-command '("emacs" "-Q" "-batch" "-L" "."
  27368. "-l" "t/indent.el"
  27369. "-f" "ert-run-tests-batch-and-exit")))
  27370. (home-page "https://gitlab.com/KAction/emacs-execline/")
  27371. (synopsis "Major Emacs mode for editing execline scripts")
  27372. (description
  27373. "This package provides a major mode for editing execline scripts.
  27374. Features:
  27375. @itemize
  27376. @item Syntax highlighting of commends, builtin commands and variable substitution.
  27377. @item Completion of builtin commands.
  27378. @item Working @code{comment-region} command.
  27379. @item Indentation of blocks.
  27380. @item Automatic enable of mode in @file{*.exec} files.
  27381. @item Automatic enable of mode in files with @code{execlineb} interpreter.
  27382. @end itemize\n")
  27383. (license license:gpl3+)))
  27384. (define-public emacs-pcmpl-args
  27385. (package
  27386. (name "emacs-pcmpl-args")
  27387. (version "0.1.3")
  27388. (source
  27389. (origin
  27390. (method git-fetch)
  27391. (uri (git-reference
  27392. (url "https://github.com/JonWaltman/pcmpl-args.el")
  27393. (commit version)))
  27394. (sha256
  27395. (base32 "19xwwpfcf0l9jh7xixyjd5adivj27jw00zvxb7n1240k5p332pzi"))
  27396. (file-name (git-file-name name version))))
  27397. (build-system emacs-build-system)
  27398. (home-page "https://github.com/JonWaltman/pcmpl-args.el")
  27399. (synopsis "Enhanced shell command completion")
  27400. (description
  27401. "pcmpl-args extends option and argument completion of shell commands read
  27402. by Emacs. It is intended to make shell completion in Emacs comparable to the
  27403. rather excellent completion provided by both Bash and Zsh.")
  27404. (license license:gpl3+)))
  27405. (define-public emacs-shell-command+
  27406. (package
  27407. (name "emacs-shell-command+")
  27408. (version "2.2.0")
  27409. (source (origin
  27410. (method git-fetch)
  27411. (uri (git-reference
  27412. (url "https://git.sr.ht/~pkal/shell-command-plus")
  27413. (commit version)))
  27414. (file-name (git-file-name name version))
  27415. (sha256
  27416. (base32 "1micvz6smhjma7qbka8h3w0crb3sgrxf9lz2548iqfgww50gb0lj"))))
  27417. (build-system emacs-build-system)
  27418. (home-page "http://elpa.gnu.org/packages/shell-command+.html")
  27419. (synopsis "Extended Emacs @code{shell-command}")
  27420. (description
  27421. "Shell-command+ is a @code{shell-command} substitute that extends the
  27422. regular Emacs command with several features. You can for example count all
  27423. the lines in a buffer with @code{> wc -l}, or delete all lower case letters in
  27424. the selected region with @code{| tr -d a-z}.")
  27425. (license license:gpl3+)))
  27426. (define-public emacs-shell-pop
  27427. (let ((commit "4b4394037940a890a313d715d203d9ead2d156a6")
  27428. (revision "0"))
  27429. (package
  27430. (name "emacs-shell-pop")
  27431. (version (git-version "0.64" revision commit))
  27432. (source
  27433. (origin
  27434. (method git-fetch)
  27435. (uri (git-reference
  27436. (url "https://github.com/kyagi/shell-pop-el")
  27437. (commit commit)))
  27438. (file-name (git-file-name name version))
  27439. (sha256
  27440. (base32 "0s77n6b9iw1x3dv91ybkpgy3zvqd12si7zw3lg0m2b6j1akrawsg"))))
  27441. (build-system emacs-build-system)
  27442. (home-page "https://github.com/kyagi/shell-pop-el")
  27443. (synopsis "Utility which helps with pop up shell buffer")
  27444. (description
  27445. "This Emacs utility helps you pop up and pop out shell buffer window
  27446. easily. Four pre-set options are: @samp{shell}, @samp{terminal},
  27447. @samp{ansi-term}, and @samp{eshell}. You can also set your custom shell if
  27448. you use some other configuration.")
  27449. (license license:gpl3+))))
  27450. (define-public emacs-tshell
  27451. ;; XXX: Upstream has no tagged release. Version is extracted from keyword
  27452. ;; in main file.
  27453. (let ((commit "47ef3a6c537b06eb422d9a124e1c44062223e323")
  27454. (revision "0"))
  27455. (package
  27456. (name "emacs-tshell")
  27457. (version (git-version "0.1.0" revision commit))
  27458. (source
  27459. (origin
  27460. (method git-fetch)
  27461. (uri (git-reference
  27462. (url "https://github.com/TatriX/tshell")
  27463. (commit commit)))
  27464. (file-name (git-file-name name version))
  27465. (sha256
  27466. (base32 "0yv38bqdp6b614lbj4v408vv5mlic3vs1v7266xrfxm1cm903apj"))))
  27467. (build-system emacs-build-system)
  27468. (propagated-inputs
  27469. `(("emacs-transient" ,emacs-transient)))
  27470. (home-page "https://github.com/TatriX/tshell")
  27471. (synopsis "Experimental buffer-oriented Emacs shell")
  27472. (description
  27473. "Tshell is an experimental buffer-oriented shell. It supports shell
  27474. and Emacs lisp commands.")
  27475. (license license:gpl3+))))
  27476. (define-public emacs-extmap
  27477. (package
  27478. (name "emacs-extmap")
  27479. (version "1.1.1")
  27480. (source
  27481. (origin
  27482. (method git-fetch)
  27483. (uri (git-reference
  27484. (url "https://github.com/doublep/extmap")
  27485. (commit version)))
  27486. (file-name (git-file-name name version))
  27487. (sha256
  27488. (base32
  27489. "09kia3mr4si8kn46kyiza9nl669b22vmgc70ng3mqz742lph5siw"))))
  27490. (build-system emacs-build-system)
  27491. (home-page "https://github.com/doublep/extmap")
  27492. (synopsis "Externally-stored constant mapping for Emacs Lisp")
  27493. (description "A very simple package that lets you build a
  27494. read-only, constant database that maps Emacs Lisp symbols to
  27495. arbitrary Emacs Lisp objects.")
  27496. (license license:gpl3+)))
  27497. (define-public emacs-csound-mode
  27498. (package
  27499. (name "emacs-csound-mode")
  27500. (version "0.2.1")
  27501. (source
  27502. (origin
  27503. (method git-fetch)
  27504. (uri (git-reference
  27505. (url "https://github.com/hlolli/csound-mode")
  27506. (commit version)))
  27507. (file-name (git-file-name name version))
  27508. (sha256
  27509. (base32
  27510. "1c88ak0jaj51fwiqniqxd7xyk23wjl9m57znzm8j267ld8g12znp"))))
  27511. (build-system emacs-build-system)
  27512. (arguments
  27513. `(#:phases
  27514. (modify-phases %standard-phases
  27515. (add-after 'unpack 'disable-breaking-compilation
  27516. (lambda _
  27517. (for-each (lambda (file)
  27518. (chmod file #o600) ; needed to write changes.
  27519. (emacs-batch-disable-compilation file))
  27520. '("csound-font-lock.el"))
  27521. #t)))))
  27522. (inputs
  27523. `(("emacs-highlight" ,emacs-highlight)
  27524. ("emacs-multi" ,emacs-multi)
  27525. ("emacs-shut-up" ,emacs-shut-up)))
  27526. (home-page "https://github.com/hlolli/csound-mode")
  27527. (synopsis "Emacs major mode for coding in CSound")
  27528. (description "Provides both a basic major mode for editing
  27529. CSound files, as well as a REPL for fast feedback when composing
  27530. and sound-designing.")
  27531. (license license:gpl3+)))
  27532. (define-public emacs-multi
  27533. (package
  27534. (name "emacs-multi")
  27535. (version "2.0.1")
  27536. (source
  27537. (origin
  27538. (method git-fetch)
  27539. (uri (git-reference
  27540. (url "https://github.com/kurisuwhyte/emacs-multi")
  27541. (commit (string-append "v" version))))
  27542. (file-name (git-file-name name version))
  27543. (sha256
  27544. (base32
  27545. "11zabs7qpdhri6n90ck7pgwcbz46d813nyl73h5m1i8jvz1wzx7v"))))
  27546. (build-system emacs-build-system)
  27547. (home-page "https://github.com/kurisuwhyte/emacs-multi")
  27548. (synopsis "Clojure-style multi-methods for Emacs Lisp")
  27549. (description "Provides Emacs Lisp with a form of polymorphism
  27550. by way of predicate dispatching. Methods consist of a dispatch
  27551. function, and a series of branches. The dispatch function is
  27552. applied to the arguments, and the result value is checked against
  27553. the expectations of each branch to define which one to invoke.")
  27554. (license license:expat)))
  27555. (define-public emacs-highlight
  27556. (let ((commit "9258a2b8362d737115cbd87618f947eadb140411")
  27557. (revision "1"))
  27558. (package
  27559. (name "emacs-highlight")
  27560. (version "0.0.0")
  27561. (source
  27562. (origin
  27563. (method git-fetch)
  27564. (uri (git-reference
  27565. (url "https://github.com/emacsmirror/highlight/")
  27566. (commit commit)))
  27567. (file-name (git-file-name name commit))
  27568. (sha256
  27569. (base32
  27570. "0pbqzgbfkm8smi23j94hirxh2r1yc0ipyjbbv1y906br6bx5c1a8"))))
  27571. (build-system emacs-build-system)
  27572. (home-page "https://github.com/emacsmirror/highlight")
  27573. (synopsis "Highlighting commands for GNU Emacs")
  27574. (description "This library adds the possibility for ad-hoc
  27575. applying highlighting to any face in GNU Emacs. The functionality
  27576. of this library depends on overlays, which by default are not
  27577. picked up when copy-pasting text from buffer to buffer.")
  27578. (license license:gpl2+))))
  27579. (define-public emacs-org-webring
  27580. (package
  27581. (name "emacs-org-webring")
  27582. (version "2.0.0")
  27583. (source
  27584. (origin
  27585. (method git-fetch)
  27586. (uri (git-reference
  27587. (url "https://git.sr.ht/~brettgilio/org-webring")
  27588. (commit version)))
  27589. (file-name (git-file-name name version))
  27590. (sha256
  27591. (base32
  27592. "1si0jah7n2gvlvghjy5dpannqpkxni5rczfp1x2a4z6ydalr3bn5"))))
  27593. (build-system emacs-build-system)
  27594. (arguments
  27595. `(#:phases
  27596. (modify-phases %standard-phases
  27597. (add-after 'install 'install-assets
  27598. (lambda* (#:key outputs #:allow-other-keys)
  27599. (let* ((out (assoc-ref outputs "out"))
  27600. (assets
  27601. (string-append out "/share/emacs/org-webring-assets")))
  27602. (mkdir-p assets)
  27603. (copy-recursively "assets" assets)
  27604. #t))))))
  27605. (propagated-inputs
  27606. `(("emacs-xmlgen" ,emacs-xmlgen)))
  27607. (home-page "https://sr.ht/~brettgilio/org-webring")
  27608. (synopsis "Generate webrings for Org-based sites / blogs")
  27609. (description "Org-webring is an alternative implementation of a
  27610. feed-based webring, taking inspiration from openring by Drew DeVault.
  27611. Intended to integrate with Org-based websites and blogs (either
  27612. directly, or indirectly, as in ox-hugo), it will fetch a given list of
  27613. web feed files and correctly parse and format the elements to be
  27614. displayed for sharing.")
  27615. (license license:gpl3+)))
  27616. (define-public emacs-scpaste
  27617. (let ((commit "cd4fa0aafecd839736e0b6cba68b4fc4d7045472")
  27618. (revision "0"))
  27619. (package
  27620. (name "emacs-scpaste")
  27621. (version "0.6.5")
  27622. (source
  27623. (origin
  27624. (method git-fetch)
  27625. (uri (git-reference
  27626. (url "https://git.sr.ht/~technomancy/scpaste")
  27627. (commit commit)))
  27628. (file-name (git-file-name name commit))
  27629. (sha256
  27630. (base32
  27631. "1nvwbwl26z03963g9c82b3ggm39r95z1vp7c9qsa9mjm46dyq27w"))))
  27632. (build-system emacs-build-system)
  27633. (propagated-inputs
  27634. `(("emacs-htmlize" ,emacs-htmlize)))
  27635. (home-page "https://git.sr.ht/~technomancy/scpaste")
  27636. (synopsis "Emacs-based static HTML pastebin")
  27637. (description "This library will place an HTML copy of a
  27638. buffer on an active webserver to which the user has SSH access.
  27639. It is similar in purpose to services such as Gist or Pastebin,
  27640. but is much simpler since it assumes the user has access to a
  27641. publicly-accessible HTTP server.")
  27642. (license license:gpl3+))))
  27643. (define-public emacs-company-reftex
  27644. (package
  27645. (name "emacs-company-reftex")
  27646. (version "0.1.0")
  27647. (source
  27648. (origin
  27649. (method git-fetch)
  27650. (uri (git-reference
  27651. (url "https://github.com/TheBB/company-reftex")
  27652. (commit "275ef708f08d3bf0eb30632148e5c6184eeaacdb")))
  27653. (file-name (git-file-name name version))
  27654. (sha256
  27655. (base32
  27656. "118cgw5lsffqdqz95mnkw36mmnsbg9m52r2np4m7v14mjjwr9fby"))))
  27657. (build-system emacs-build-system)
  27658. (propagated-inputs
  27659. `(("emacs-company" ,emacs-company)
  27660. ("emacs-s" ,emacs-s)))
  27661. (home-page "https://github.com/TheBB/company-reftex")
  27662. (synopsis "RefTeX backends for company-mode")
  27663. (description "This package provides company-mode backends for completing
  27664. label references and citations in LaTeX. It is based on RefTeX, which is
  27665. included with Emacs.")
  27666. (license license:gpl3+)))
  27667. (define-public emacs-company-org-block
  27668. (let ((commit "115af0a3625f4669358eca568466d468cacc78bd")
  27669. (revision "1"))
  27670. (package
  27671. (name "emacs-company-org-block")
  27672. (version (git-version "0.3" revision commit))
  27673. (source (origin
  27674. (method git-fetch)
  27675. (uri (git-reference
  27676. (url "https://github.com/xenodium/company-org-block")
  27677. (commit commit)))
  27678. (file-name (git-file-name name version))
  27679. (sha256
  27680. (base32
  27681. "13kdwi4d1pvba6wv9yn1s0dl4cnq61zwf3j647d1s5ybqlrw5f4r"))))
  27682. (build-system emacs-build-system)
  27683. (propagated-inputs
  27684. `(("emacs-company" ,emacs-company)))
  27685. (home-page "https://github.com/xenodium/company-org-block")
  27686. (synopsis "Emacs @code{company-complete} for Org blocks")
  27687. (description
  27688. "Insert Emacs Org blocks with completion via @code{company} mode.")
  27689. (license license:gpl3+))))
  27690. (define-public emacs-html-to-hiccup
  27691. ;; Package has no release. Version is extracted from "Version:" keyword in
  27692. ;; main file.
  27693. (let ((commit "50a52e2b0d13d865187acdf775b8203d5003f2f1")
  27694. (revision "0"))
  27695. (package
  27696. (name "emacs-html-to-hiccup")
  27697. (version (git-version "1" revision commit))
  27698. (source
  27699. (origin
  27700. (method git-fetch)
  27701. (uri (git-reference
  27702. (url "https://github.com/plexus/html-to-hiccup")
  27703. (commit commit)))
  27704. (file-name (git-file-name name version))
  27705. (sha256
  27706. (base32 "1qi092mw2n08v6yr0j6hlpx0pnlcnhxjqbsrlw9pn4yin6zk91yp"))))
  27707. (build-system emacs-build-system)
  27708. (propagated-inputs
  27709. `(("dash" ,emacs-dash)
  27710. ("s" ,emacs-s)))
  27711. (home-page "https://github.com/plexus/html-to-hiccup")
  27712. (synopsis "Turn HTML into Hiccup syntax")
  27713. (description
  27714. "This is an Emacs package that turns HTML into Hiccup syntax
  27715. which is a popular notation to use when doing Clojure/ClojureScript
  27716. web development.")
  27717. ;; There is a conflict between the repository official LICENSE
  27718. ;; file and the header of the main elisp file which indicates
  27719. ;; that it is licensed under the GPL version 3 or later.
  27720. (license (list license:mpl2.0 license:gpl3+)))))
  27721. (define-public emacs-iter2
  27722. (package
  27723. (name "emacs-iter2")
  27724. (version "1.0")
  27725. (source
  27726. (origin
  27727. (method git-fetch)
  27728. (uri (git-reference
  27729. (url "https://github.com/doublep/iter2")
  27730. (commit version)))
  27731. (file-name (git-file-name name version))
  27732. (sha256
  27733. (base32 "0gaq3z2v1q4r9mkyq71dzmqakhi0p8g7ph4z0n3a11rvyc3z9ykx"))))
  27734. (build-system emacs-build-system)
  27735. (home-page "https://github.com/doublep/iter2")
  27736. (synopsis "Reimplementation of Elisp generators")
  27737. (description "@code{iter2} is a fully compatible reimplementation of
  27738. built-in generator package. It provides @code{iter2-defun} and
  27739. @code{iter2-lambda} forms that can be used in place of @code{iter-defun} and
  27740. @code{iter-lambda}. All other functions and macros (e.g. @code{iter-yield},
  27741. @code{iter-next}) are intentionally not duplicated: just use the ones from the
  27742. original package.")
  27743. (license license:gpl3+)))
  27744. (define-public emacs-promise
  27745. (package
  27746. (name "emacs-promise")
  27747. (version "1.1")
  27748. (source
  27749. (origin
  27750. (method git-fetch)
  27751. (uri (git-reference
  27752. (url "https://github.com/chuntaro/emacs-promise")
  27753. (commit version)))
  27754. (file-name (git-file-name name version))
  27755. (sha256
  27756. (base32 "1xb34zdbwjvahfhycjphdkm925kgd22dr298c57hwxza4ljc2hxj"))))
  27757. (build-system emacs-build-system)
  27758. (home-page "https://github.com/chuntaro/emacs-promise")
  27759. (synopsis "Promises/A+ for Emacs")
  27760. (description "This is a simple implementation of Promises/A+.
  27761. This implementation ports the following Promises/A+ features
  27762. faithfully. See @url{https://github.com/then/promise}.
  27763. @itemize
  27764. @item The same API as the JavaScript version of Promise can be used.
  27765. @item It has all the @code{then}, @code{catch}, @code{resolve}, @code{reject},
  27766. @code{all}, @code{race}, etc.
  27767. @item It supports \"thenable\".
  27768. @item It supports \"Inheritance of Promise\".
  27769. @item It supports \"rejection-tracking\".
  27770. @end itemize\n")
  27771. (license license:gpl3+)))
  27772. (define-public emacs-async-await
  27773. (package
  27774. (name "emacs-async-await")
  27775. (version "1.1")
  27776. (source
  27777. (origin
  27778. (method git-fetch)
  27779. (uri (git-reference
  27780. (url "https://github.com/chuntaro/emacs-async-await")
  27781. (commit version)))
  27782. (file-name (git-file-name name version))
  27783. (sha256
  27784. (base32 "0aav9qdswnw7ynqlzn0sm34as5fj2d85syxgg8zjabzp6646ay29"))))
  27785. (build-system emacs-build-system)
  27786. (propagated-inputs
  27787. `(("promise" ,emacs-promise)
  27788. ("iter2" ,emacs-iter2)))
  27789. (home-page "https://github.com/chuntaro/emacs-async-await")
  27790. (synopsis "Async/Await for Emacs")
  27791. (description "This is a simple implementation of Async/Await inspired by
  27792. the TypeScript implementation.")
  27793. (license license:gpl3+)))
  27794. (define-public emacs-rocket-chat
  27795. ;; No release.
  27796. (let ((commit "96fe27a8678de5ae4061f635108a7192eee13f98"))
  27797. (package
  27798. (name "emacs-rocket-chat")
  27799. (version (git-version "0.0.0" "1" commit))
  27800. (source
  27801. (origin
  27802. (method git-fetch)
  27803. (uri (git-reference
  27804. (url "https://github.com/4hiziri/rocket-chat")
  27805. (commit commit)))
  27806. (file-name (git-file-name name version))
  27807. (sha256
  27808. (base32 "02a4j0yy7330kfr3rd3k2agdj01ii6989nki598anbamq6xvj5ql"))))
  27809. (build-system emacs-build-system)
  27810. (propagated-inputs
  27811. `(("async-await" ,emacs-async-await)
  27812. ("request" ,emacs-request)))
  27813. (home-page "https://github.com/4hiziri/rocket-chat")
  27814. (synopsis "Emacs Rocket.chat client")
  27815. (description "This package provides an Emacs client for the Rocket.chat
  27816. service.")
  27817. (license license:expat))))
  27818. (define-public emacs-monokai-theme
  27819. (package
  27820. (name "emacs-monokai-theme")
  27821. (version "3.5.3")
  27822. (source
  27823. (origin
  27824. (method git-fetch)
  27825. (uri (git-reference
  27826. (url "https://github.com/oneKelvinSmith/monokai-emacs")
  27827. (commit (string-append "v" version))))
  27828. (file-name (git-file-name name version))
  27829. (sha256
  27830. (base32 "0dy8c3349j7fmp8052hbgvk0b7ldlv5jqpg0paq1i0hlypivd30i"))))
  27831. (build-system emacs-build-system)
  27832. (home-page "https://github.com/oneKelvinSmith/monokai-emacs")
  27833. (synopsis "High contrast color theme for Emacs")
  27834. (description
  27835. "Monokai theme is a port of the popular TextMate Monokai theme for
  27836. Emacs.")
  27837. (license license:gpl3+)))
  27838. (define-public emacs-nord-theme
  27839. (package
  27840. (name "emacs-nord-theme")
  27841. (version "0.5.0")
  27842. (source
  27843. (origin
  27844. (method git-fetch)
  27845. (uri (git-reference
  27846. (url "https://github.com/arcticicestudio/nord-emacs")
  27847. (commit (string-append "v" version))))
  27848. (file-name (git-file-name name version))
  27849. (sha256
  27850. (base32 "096f8cik4jz89bvkifwp3gm9iraqrd75ljy2q9js724v7yj88711"))))
  27851. (build-system emacs-build-system)
  27852. (home-page "https://www.nordtheme.com/")
  27853. (synopsis "Low contrast arctic color theme for Emacs")
  27854. (description
  27855. "Nord is an arctic, north-bluish color scheme created for a clean and
  27856. uncluttered design pattern to achieve optimal focus and readability for code
  27857. syntax highlighting and UI components.")
  27858. (license license:expat)))
  27859. (define-public emacs-janet-mode
  27860. (let ((commit "2f5bcabcb6953e1ed1926ba6a2328c453e8b4ac7"))
  27861. (package
  27862. (name "emacs-janet-mode")
  27863. (version (git-version "0.1.0" "1" commit))
  27864. (source
  27865. (origin
  27866. (method git-fetch)
  27867. (uri (git-reference
  27868. (url "https://github.com/ALSchwalm/janet-mode")
  27869. (commit commit)))
  27870. (file-name (git-file-name name version))
  27871. (sha256
  27872. (base32 "0qj0gpycv2f3z1dgz1a27bjn983hrr3ppvrp7csl34lagnmp89rz"))))
  27873. (build-system emacs-build-system)
  27874. (home-page "https://github.com/ALSchwalm/janet-mode")
  27875. (synopsis "Emacs major mode for the Janet programming language")
  27876. (description
  27877. "This package provides an Emacs major mode for editing Janet files.")
  27878. (license license:gpl3))))
  27879. (define-public emacs-inf-janet
  27880. (let ((commit "df46651d3aad32593b2195c80ca91fb64d571fb7"))
  27881. (package
  27882. (name "emacs-inf-janet")
  27883. (version (git-version "0.1.0" "1" commit))
  27884. (source
  27885. (origin
  27886. (method git-fetch)
  27887. (uri (git-reference
  27888. (url "https://github.com/velkyel/inf-janet")
  27889. (commit commit)))
  27890. (file-name (git-file-name name version))
  27891. (sha256
  27892. (base32 "0g0y7q62667j0p32md1h6zb2cap9fga9qgdg7138xwjqnk0328v7"))))
  27893. (build-system emacs-build-system)
  27894. (propagated-inputs
  27895. `(("janet-mode" ,emacs-janet-mode)))
  27896. (arguments
  27897. `(#:phases
  27898. (modify-phases %standard-phases
  27899. (add-after 'unpack 'fix-program-name
  27900. (lambda _
  27901. (make-file-writable "inf-janet.el")
  27902. (emacs-substitute-variables "inf-janet.el"
  27903. ("inf-janet-program" "janet"))
  27904. #t)))))
  27905. (home-page "https://github.com/velkyel/inf-janet")
  27906. (synopsis "Run an external Janet process in an Emacs buffer")
  27907. (description
  27908. "This Emacs package provides a Janet REPL to evaluate @code{janet-mode}
  27909. s-expression.")
  27910. (license license:expat))))
  27911. (define-public emacs-map
  27912. (package
  27913. (name "emacs-map")
  27914. (version "3.1")
  27915. (source
  27916. (origin
  27917. (method url-fetch)
  27918. (uri (string-append "https://elpa.gnu.org/packages/map-"
  27919. version ".tar"))
  27920. (sha256
  27921. (base32
  27922. "1akkp34psm71ylbf1i02m56ga1dkswhz069j98amixrhw20hq4nx"))))
  27923. (build-system emacs-build-system)
  27924. (home-page "http://elpa.gnu.org/packages/map.html")
  27925. (synopsis "Map manipulation functions")
  27926. (description "This package provides Emacs map-manipulation functions that
  27927. work on alists, hash-table and arrays. All functions are prefixed with
  27928. @code{map-}.")
  27929. (license license:gpl3+)))
  27930. (define-public emacs-xref
  27931. (package
  27932. (name "emacs-xref")
  27933. (version "1.2.2")
  27934. (source
  27935. (origin
  27936. (method url-fetch)
  27937. (uri (string-append "https://elpa.gnu.org/packages/xref-"
  27938. version ".tar"))
  27939. (sha256
  27940. (base32 "14kdy8blhs6lwg349l9lmv0bbpybgi9nsg2iic3v87j4jyi41ljm"))))
  27941. (build-system emacs-build-system)
  27942. (home-page "http://elpa.gnu.org/packages/xref.html")
  27943. (synopsis "Cross-referencing commands")
  27944. (description
  27945. "This library provides a generic infrastructure for cross referencing
  27946. commands, in particular @code{find-definition}.")
  27947. (license license:gpl3+)))
  27948. (define-public emacs-burly
  27949. (package
  27950. (name "emacs-burly")
  27951. (version "0.1")
  27952. (source
  27953. (origin
  27954. (method git-fetch)
  27955. (uri (git-reference
  27956. (url "https://github.com/alphapapa/burly.el")
  27957. (commit version)))
  27958. (file-name (git-file-name name version))
  27959. (sha256
  27960. (base32 "1vaikknjzmhpszyi4yxjjkp1ihgmhpbnbx1s5pjy4mnhl1ibi33b"))))
  27961. (build-system emacs-build-system)
  27962. (propagated-inputs
  27963. `(("emacs-map" ,emacs-map)))
  27964. (home-page "https://github.com/alphapapa/burly.el")
  27965. (synopsis "Save and restore frame/window configurations with buffers")
  27966. (description "This package provides tools to save and restore frame and
  27967. window configurations in Emacs, including buffers that may not be live
  27968. anymore. In this way, it's like a lightweight \"workspace\" manager, allowing
  27969. you to easily restore one or more frames, including their windows, the
  27970. windows' layout, and their buffers.")
  27971. (license license:gpl3+)))
  27972. (define-public emacs-smart-hungry-delete
  27973. (let ((commit "7c1d56a92481594e14d40b5fdf6c48657a0108a0"))
  27974. (package
  27975. (name "emacs-smart-hungry-delete")
  27976. (version "0.1")
  27977. (source
  27978. (origin
  27979. (method git-fetch)
  27980. (uri (git-reference
  27981. (url "https://github.com/hrehfeld/emacs-smart-hungry-delete")
  27982. (commit commit)))
  27983. (file-name (git-file-name name version))
  27984. (sha256
  27985. (base32
  27986. "0mxaslx5823s68a8ggbbnmfk1jiswjvip5s4sg7ihfagnci72wni"))))
  27987. (build-system emacs-build-system)
  27988. (home-page "https://github.com/hrehfeld/emacs-smart-hungry-delete")
  27989. (synopsis "Smart hungry deletion of whitespace")
  27990. (description "@code{emacs-smart-hungry-delete} hungrily deletes whitespace
  27991. between cursor and next word, parenthesis or delimiter while honoring some
  27992. rules about where space should be left to separate words and parentheses.")
  27993. (license license:gpl2+))))
  27994. (define-public emacs-seriestracker
  27995. (package
  27996. (name "emacs-seriestracker")
  27997. (version "1.1")
  27998. (source
  27999. (origin
  28000. (method git-fetch)
  28001. (uri (git-reference
  28002. (url "https://github.com/MaximeWack/seriesTracker")
  28003. (commit version)))
  28004. (file-name (git-file-name name version))
  28005. (sha256
  28006. (base32 "0b9hf20iah3ym2d4kz67k0kb48dq0442zxw4zmc03zg3sxfdxh0x"))))
  28007. (build-system emacs-build-system)
  28008. (propagated-inputs
  28009. `(("emacs-dash" ,emacs-dash)
  28010. ("emacs-transient" ,emacs-transient)))
  28011. (home-page "https://github.com/MaximeWack/seriesTracker")
  28012. (synopsis "Keep track of the TV shows you watch from Emacs")
  28013. (description
  28014. "This package provides a major mode for tracking TV shows.
  28015. TV shows data (episode list, release dates, etc.) are sourced from
  28016. the free database hosted at @url{episodate.com}. The mode presents an
  28017. outlined list of tracked shows, their episodes and release dates, and
  28018. enables the user to see when new episodes for their favorite shows get
  28019. released, and track their progress in watching a series.")
  28020. (license license:gpl3+)))
  28021. (define-public emacs-webpaste
  28022. (package
  28023. (name "emacs-webpaste")
  28024. (version "3.2.1")
  28025. (source
  28026. (origin
  28027. (method git-fetch)
  28028. (uri (git-reference
  28029. (url "https://github.com/etu/webpaste.el")
  28030. (commit version)))
  28031. (file-name (git-file-name name version))
  28032. (sha256
  28033. (base32
  28034. "1d481pdnh7cnbyka7wn59czlci63zwfqms8n515svg92qm573ckd"))))
  28035. (build-system emacs-build-system)
  28036. (arguments
  28037. `(#:tests? #t
  28038. #:test-command '("make" "unit" "integration")
  28039. #:phases
  28040. (modify-phases %standard-phases
  28041. (add-after 'unpack 'fix-tests
  28042. (lambda _
  28043. ;; Do not use cask to run tests.
  28044. (substitute* "Makefile"
  28045. (("\\$\\{CASK\\} exec ") ""))
  28046. ;; Disable tests that need network access.
  28047. (substitute* (list "tests/unit/test-webpaste-provider-creation.el"
  28048. "tests/integration/test-webpaste-providers.el")
  28049. (("describe") "xdescribe")))))))
  28050. (native-inputs
  28051. `(("emacs-buttercup" ,emacs-buttercup)))
  28052. (propagated-inputs
  28053. `(("emacs-request" ,emacs-request)))
  28054. (home-page "https://github.com/etu/webpaste.el")
  28055. (synopsis "Paste to pastebin-like services")
  28056. (description "This mode pastes whole buffers or parts of buffers
  28057. to pastebin-like services. It supports more than one service and will
  28058. failover if one service fails. More services can easily be added over time
  28059. and preferred services can easily be configured.")
  28060. (license license:gpl3+)))
  28061. (define-public emacs-keystore-mode
  28062. (let ((release "0.0.1")
  28063. (revision "0")
  28064. (commit "43bd5926348298d077c7221f37902c990df3f951"))
  28065. (package
  28066. (name "emacs-keystore-mode")
  28067. (version (git-version release revision commit))
  28068. (home-page "https://github.com/peterpaul/keystore-mode")
  28069. (source
  28070. (origin
  28071. (method git-fetch)
  28072. (uri (git-reference
  28073. (url home-page)
  28074. (commit commit)))
  28075. (file-name (git-file-name name version))
  28076. (sha256
  28077. (base32 "06cznkqkm04zz5lqfb514aqvsr2p13arzysixv0ss0bqpvdq7cv7"))))
  28078. (build-system emacs-build-system)
  28079. (arguments
  28080. `(#:tests? #t
  28081. #:test-command
  28082. '("emacs" "--no-init-file" "--batch"
  28083. "--eval=(require 'ecukes)" "--eval=(ecukes)")))
  28084. (native-inputs
  28085. `(("emacs-ecukes" ,emacs-ecukes)
  28086. ("emacs-espuds" ,emacs-espuds)
  28087. ("emacs-undercover" ,emacs-undercover)
  28088. ("openjdk" ,openjdk9)))
  28089. (propagated-inputs
  28090. `(("emacs-origami" ,emacs-origami-el)
  28091. ("emacs-s" ,emacs-s)))
  28092. (synopsis "Major mode for viewing and managing Java keystores")
  28093. (description
  28094. "This package provides an Elisp wrapper around the Java
  28095. @command{keytool} command and major mode for viewing Java keystores.")
  28096. (license license:expat))))
  28097. (define-public emacs-ivy-avy
  28098. (package
  28099. (name "emacs-ivy-avy")
  28100. (version "0.13.4")
  28101. (source
  28102. (origin
  28103. (method url-fetch)
  28104. (uri (string-append
  28105. "https://elpa.gnu.org/packages/"
  28106. "ivy-avy-" version ".tar"))
  28107. (sha256
  28108. (base32 "1q5caxm4rnh4jy5n88dhkdbx1afsshmfki5dl8xsqbdb3y0zq7yi"))))
  28109. (build-system emacs-build-system)
  28110. (propagated-inputs
  28111. `(("emacs-ivy" ,emacs-ivy)
  28112. ("emacs-avy" ,emacs-avy)))
  28113. (home-page "https://github.com/abo-abo/swiper")
  28114. (synopsis "Avy integration for Ivy")
  28115. (description
  28116. "This package adds a \"C-'\" binding to Ivy minibuffer that uses Avy.")
  28117. (license license:gpl3+)))
  28118. (define-public emacs-vertico
  28119. (package
  28120. (name "emacs-vertico")
  28121. (version "0.14")
  28122. (source
  28123. (origin
  28124. (method git-fetch)
  28125. (uri (git-reference
  28126. (url "https://github.com/minad/vertico")
  28127. (commit version)))
  28128. (file-name (git-file-name name version))
  28129. (sha256
  28130. (base32 "0rddk76ih44b574lsr6d6r9wa2l7c9zlb9kcyw5xvly17ciiq16h"))))
  28131. (build-system emacs-build-system)
  28132. (arguments
  28133. `(#:phases
  28134. (modify-phases %standard-phases
  28135. ;; Move the extensions source files to the top level, which is included in
  28136. ;; the EMACSLOADPATH.
  28137. (add-after 'unpack 'move-source-files
  28138. (lambda _
  28139. (let ((el-files (find-files "./extensions" ".*\\.el$")))
  28140. (for-each (lambda (f)
  28141. (rename-file f (basename f)))
  28142. el-files))
  28143. #t)))))
  28144. (native-inputs
  28145. `(("texinfo" ,texinfo)))
  28146. (home-page "https://github.com/minad/vertico")
  28147. (synopsis "Vertical interactive completion")
  28148. (description
  28149. "Vertico provides a minimalistic vertical completion UI, which is based
  28150. on Emacs' default completion system. By reusing the default system, it
  28151. achieves full compatibility with built-in Emacs commands and completion
  28152. tables. Vertico is pretty bare-bone and only provides a minimal set of
  28153. commands. Additional optional enhancements can be provided externally by
  28154. complementary packages.")
  28155. (license license:gpl3+)))
  28156. (define-public emacs-wisp-mode
  28157. (package
  28158. (name "emacs-wisp-mode")
  28159. (version "0.2.9")
  28160. (source
  28161. (origin
  28162. (method hg-fetch)
  28163. (uri (hg-reference
  28164. (url "https://hg.sr.ht/~arnebab/wisp")
  28165. (changeset (string-append "wisp-mode-" version))))
  28166. (file-name (git-file-name name version))
  28167. (sha256
  28168. (base32 "1xdzyj3yqzvdg0vrllp9wi8cswpa89i0gmiz22a25brw4qy185ar"))))
  28169. (build-system emacs-build-system)
  28170. (home-page "https://www.draketo.de/software/wisp")
  28171. (synopsis "Syntax highlighting and indentation support for Wisp files")
  28172. (description
  28173. "This package provides @code{wisp-mode}, an Emacs major mode for Wisp
  28174. files, providing syntax highlighting and indentation rules.")
  28175. (license license:gpl3+)))
  28176. (define-public emacs-ivy-hydra
  28177. (package
  28178. (name "emacs-ivy-hydra")
  28179. (version "0.13.5")
  28180. (source
  28181. (origin
  28182. (method url-fetch)
  28183. (uri (string-append
  28184. "https://elpa.gnu.org/packages/"
  28185. "ivy-hydra-" version ".tar"))
  28186. (sha256
  28187. (base32 "06rln9bnq5hli5rqlm47fb68b8llpqrmzwqqv4rn7mx3854i9a5x"))))
  28188. (build-system emacs-build-system)
  28189. (propagated-inputs
  28190. `(("emacs-ivy" ,emacs-ivy)
  28191. ("emacs-hydra" ,emacs-hydra)))
  28192. (home-page "https://github.com/abo-abo/swiper")
  28193. (synopsis "Additional key bindings for Ivy")
  28194. (description
  28195. "This package provides the `hydra-ivy/body' command, which is a
  28196. quasi-prefix map, with many useful bindings. These bindings are
  28197. shorter than usual, using mostly unprefixed keys.")
  28198. (license license:gpl3+)))
  28199. (define-public emacs-cwl-mode
  28200. (package
  28201. (name "emacs-cwl-mode")
  28202. (version "0.2.6")
  28203. (source
  28204. (origin
  28205. (method git-fetch)
  28206. (uri (git-reference
  28207. (url "https://github.com/tom-tan/cwl-mode")
  28208. (commit version)))
  28209. (file-name (git-file-name name version))
  28210. (sha256
  28211. (base32
  28212. "0507acyr9h4646scx316niq27vir6hl2gsgz7wdbiw0cb2drfkd1"))))
  28213. (build-system emacs-build-system)
  28214. (propagated-inputs
  28215. `(("emacs-yaml-mode" ,emacs-yaml-mode)))
  28216. (home-page "https://github.com/tom-tan/cwl-mode")
  28217. (synopsis "Emacs mode for @acronym{CWL, Common Workflow Language} files")
  28218. (description "This packages provides a major mode for editing
  28219. @acronym{CWL, Common Workflow Language} files.")
  28220. (license license:gpl3+)))
  28221. (define-public emacs-dictionary
  28222. (package
  28223. (name "emacs-dictionary")
  28224. (version "1.11")
  28225. (source
  28226. (origin
  28227. (method git-fetch)
  28228. (uri (git-reference
  28229. (url "https://github.com/myrkr/dictionary-el")
  28230. (commit (string-append "v" version))))
  28231. (file-name (git-file-name name version))
  28232. (sha256
  28233. (base32 "0zsjbpq0s0xdxd9r541f04bj1khhgzhdlzr0m4p17zjh1zardbpi"))))
  28234. (build-system emacs-build-system)
  28235. (home-page "http://www.myrkr.in-berlin.de/dictionary/index.html")
  28236. (synopsis "Emacs client for dictionary servers")
  28237. (description "This package provides commands for interacting with a
  28238. dictionary server (as defined by RFC 2229; by default, the public server at
  28239. dict.org) from within Emacs.")
  28240. (license license:gpl2+)))
  28241. (define-public emacs-multitran
  28242. (package
  28243. (name "emacs-multitran")
  28244. (version "0.4.11")
  28245. (source
  28246. (origin
  28247. (method git-fetch)
  28248. (uri (git-reference
  28249. (url "https://github.com/zevlg/multitran.el")
  28250. (commit version)))
  28251. (file-name (git-file-name name version))
  28252. (sha256
  28253. (base32 "0iqkgs3rrkhbj2mind4aa4qv7bf7vflnkdysd39b50jbwd7rv4fx"))))
  28254. (build-system emacs-build-system)
  28255. (home-page "https://github.com/zevlg/multitran.el")
  28256. (synopsis "Emacs interface to the multitran.com online dictionary")
  28257. (description "@code{emacs-multitran} is a zero-dependency Emacs interface
  28258. to the @url{https://multitran.com} online dictionary.")
  28259. (license license:gpl3+)))
  28260. (define-public emacs-kibit-helper
  28261. (package
  28262. (name "emacs-kibit-helper")
  28263. (version "0.1.1")
  28264. (source
  28265. (origin
  28266. (method git-fetch)
  28267. (uri (git-reference
  28268. (url "https://github.com/brunchboy/kibit-helper")
  28269. (commit (string-append "v" version))))
  28270. (file-name (git-file-name name version))
  28271. (sha256
  28272. (base32 "0ky167xh1hrmqsldybzjhyqjizgjzs1grn5mf8sm2j9qwcvjw2zv"))))
  28273. (build-system emacs-build-system)
  28274. (propagated-inputs
  28275. `(("emacs-s" ,emacs-s)))
  28276. (home-page "http://www.github.com/brunchboy/kibit-helper")
  28277. (synopsis "Use the Kibit Leiningen plugin from Emacs")
  28278. (description
  28279. "Kibit Helper provides functions to work with the Kibit Leiningen plugin
  28280. for detecting and improve non-idiomatic Clojure source code.")
  28281. (license license:gpl3+)))
  28282. (define-public emacs-seeing-is-believing
  28283. (let ((version "1.2.0") ; from .el file
  28284. (commit "fbbe246c0fda87bb26227bb826eebadb418a220f")
  28285. (revision "0"))
  28286. (package
  28287. (name "emacs-seeing-is-believing")
  28288. (home-page "https://github.com/jcinnamond/seeing-is-believing")
  28289. (version (git-version version revision commit))
  28290. (source
  28291. (origin
  28292. (method git-fetch)
  28293. (uri (git-reference
  28294. (url home-page)
  28295. (commit commit)))
  28296. (file-name (git-file-name name version))
  28297. (sha256
  28298. (base32
  28299. "1h1b48s2iirswdlvfz41jbflm4x09ksc2lycrc1awzlwd6r8hdhg"))))
  28300. (build-system emacs-build-system)
  28301. (synopsis
  28302. "Minor mode for running the seeing-is-believing Ruby gem")
  28303. (description
  28304. "@uref{https://github.com/JoshCheek/seeing_is_believing,Seeing Is
  28305. Believing} is a ruby gem to evaluate Ruby code, recording the results of each
  28306. line. This minor mode provides an easy way to run it from Emacs on the
  28307. current region or entire buffer.")
  28308. (license license:gpl3+))))
  28309. (define-public emacs-nasm-mode
  28310. (package
  28311. (name "emacs-nasm-mode")
  28312. (version "1.1.1")
  28313. (source
  28314. (origin
  28315. (method git-fetch)
  28316. (uri (git-reference
  28317. (url "https://github.com/skeeto/nasm-mode")
  28318. (commit version)))
  28319. (file-name (git-file-name name version))
  28320. (sha256
  28321. (base32
  28322. "1dyc50a1zskx9fqxl2iy2x74f3bkb2ccz908v0aj13rqfqqnns9j"))))
  28323. (build-system emacs-build-system)
  28324. (home-page "https://github.com/skeeto/nasm-mode")
  28325. (synopsis "NASM x86 assembly major mode")
  28326. (description
  28327. "NASM mode is a major mode for editing NASM x86 assembly programs.
  28328. It includes syntax highlighting, automatic indentation, and imenu integration.
  28329. Unlike Emacs' generic ASM mode, it understands NASM-specific syntax.")
  28330. (license license:unlicense)))