[{"data":1,"prerenderedAt":329},["ShallowReactive",2],{"project-31203024":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":9,"maker":10,"posted_at":11,"year":12,"points":13,"comments":14,"rank_in_year":15,"shown_in_year":16,"top":17,"tier":18,"category":19,"subcategory":20,"format":21,"keywords":22,"reception":28,"sentiment":29,"stance_mix":30,"scored_comments":35,"aspects":36,"strip":45,"post_text":46,"what":47,"said":86,"maker_in_thread":169,"shape":180,"grid":183,"attempts":291,"same_week":292,"maker_shows":284,"maker_hidden":321,"reader_version":322,"card":323},"31203024","Joyride","script VSCode like Emacs but using Clojure","title","Show HN: Joyride: script VSCode like Emacs but using Clojure",null,"Borkdude",1651223171,2022,211,44,265,2570,11,"notable","dev_tools","editor extension","desktop_app",[23,24,25,26,27],"vscode scripting","clojure","clojurescript","emacs","repl","mixed",0.13,{"positive":31,"neutral":32,"mixed":33,"critical":34},9,10,1,6,26,{"idea":37,"execution":40,"docs":42,"performance":44},{"positive":38,"critical":39},5,3,{"positive":41,"critical":33},2,{"positive":43,"critical":33},0,{"positive":43,"critical":43},[38,39,43,43,43,43,43,43,38,38,43,38,39,39,43,43,38,39,39,33,43,43,43,39,33,39,38,39,38,33,33,43,38,33,33,43,39,43,43,38],"Together with PEZ (Peter Strömberg) I made a VSCode extension that allows you to script VSCode using Clojure (interpreted CLJS).\n\nThe repo:\nhttps:\u002F\u002Fgithub.com\u002FBetterThanTomorrow\u002Fjoyride\n\nIntroductory video:\n\nhttps:\u002F\u002Fwww.youtube.com\u002Fwatch?v=V1oTf-1EchU\n\nSee examples directory:\n\nhttps:\u002F\u002Fgithub.com\u002FBetterThanTomorrow\u002Fjoyride\u002Ftree\u002Fmaster\u002Fexamples\u002F.joyride\u002Fscripts\n\nSee animated gifs and news on Twitter:\n\nhttps:\u002F\u002Ftwitter.com\u002Fhashtag\u002Fvsjoyride?src=hashtag_click&f=live",{"problem":48,"audience":58,"pricing":9,"motivation":67,"time_to_build":9,"stack":72,"openness":83,"stage":84,"team_size":85},{"value":49,"source":50,"evidence":51},"Lets users script and customize VSCode in Clojure, similar to Emacs Lisp scripting.","maker",[52,54],{"id":53},"post",{"id":55,"by":56,"text":57},"31203630","snorremd","Wow, really excited by this! The Calva extension gave us a really nice editing and REPL experience for Clojure code. Now we get to interactively configure VSCode with Clojure…",{"value":59,"source":60,"evidence":61},"Clojure programmers and Emacs users who want to customize VSCode.","inferred",[62,66],{"id":63,"by":64,"text":65},"31203330","cospaia","As the co-creator here I'd like to add that Joyride is taking the very first baby steps here. We hope a lot of people want to try it and provide feedback to inform our next…",{"id":55,"by":56,"text":57},{"value":68,"source":60,"evidence":69},"Bring Emacs-style Lisp scripting to VSCode.",[70,71],{"id":53},{"id":63,"by":64,"text":65},[73,77],{"value":74,"source":50,"evidence":75},"ClojureScript",[76],{"id":53},{"value":78,"source":50,"evidence":79},"SCI interpreter",[80],{"id":81,"by":10,"text":82},"31203358","This exists and is called self-hosted ClojureScript. To be clear, you don't need that nor do you need a JVM to write joyscript scripts, as the scripts are interpreted by SCI, a…","unknown","beta","team",{"praise":87,"objections":112,"requests":131,"questions":144,"alternatives":149},[88,101],{"value":89,"source":90,"evidence":91},"Brings Emacs-style scripting to VSCode with Clojure","commenter",[92,93,97],{"id":55,"by":56,"text":57},{"id":94,"by":95,"text":96},"31206003","yogthos","Fantastic work on the extension. In terms of ideas for next steps, my suggestion would be to consider automating the process of creating and invoking cljs files. One big use I…",{"id":98,"by":99,"text":100},"31208360","andriosr","Super cool! I've been planning integrating https:\u002F\u002Frunops.io\u002F to VSCode for a while and most of the delay is related to having to write Javascript. I like your wrapping of the…",{"value":102,"source":90,"evidence":103},"Fun and promising for Clojure users",[104,108],{"id":105,"by":106,"text":107},"31203119","maleghast","This is so great - the expanding universe of Clojure \u002F ClojureScript tooling and so forth is great to see and great fun to use, whether in anger or just out of curiosity - thanks…",{"id":109,"by":110,"text":111},"31204623","markus_zhang","Oh this could be fun. Anything other than JavaScript\u002FTypescript is good.",[113,127],{"value":114,"source":90,"evidence":115},"VSCode is less extensible than Emacs; cannot match its depth",[116,120,124],{"id":117,"by":118,"text":119},"31203590","tgv","That looks promising, but I have a feeling that vscode doesn't offer as much options to hook into the editor as emacs does. E.g., one of the first emacs scripts I wrote added the…",{"id":121,"by":122,"text":123},"31204061","mschaef","> That looks promising, but I have a feeling that vscode doesn't offer as much options to hook into the editor as emacs does. Agreed on both counts. But I don't think it's…",{"id":125,"by":64,"text":126},"31205169","It is definitely true that Joyride can't make VS Code as fully extensible as Emacs is. VS Code is not designed this way. And also some extensibility from an extension need to…",{"value":128,"source":90,"evidence":129},"Cannot declare new commands without extension manifest",[130],{"id":125,"by":64,"text":126},[132,136],{"value":133,"source":90,"evidence":134},"Ad hoc script creation and binding to shortcuts",[135],{"id":94,"by":95,"text":96},{"value":137,"source":90,"evidence":138},"Non-JavaScript language support beyond JS\u002FTS",[139,143],{"id":140,"by":141,"text":142},"31203341","rockyj","Nice! I really wish we could have a CLJS -> JS compiler in pure JS (something like TypeScript) and no need for JVM or JVM libs.",{"id":109,"by":110,"text":111},[145],{"value":146,"source":90,"evidence":147},"Can it insert text into the current line like Emacs?",[148],{"id":117,"by":118,"text":119},[150,158,162],{"value":151,"source":90,"evidence":152},"Emacs",[153,157],{"id":154,"by":155,"text":156},"31209276","vincent-manis","I am certain that this is excellent work. I, however, will continue using Emacs.",{"id":117,"by":118,"text":119},{"value":159,"source":90,"evidence":160},"Calva",[161],{"id":55,"by":56,"text":57},{"value":163,"source":90,"evidence":164},"Lumo",[165],{"id":166,"by":167,"text":168},"31203824","christophilus","I thought Lumo was this, tough that project might be dead. ShadowCljs is pretty close.",{"comments":38,"answered":41,"key":170},[171,174,177],{"id":172,"text":173},"31203605","This is possible, but it's a bit more code. Watch the introductory video that PEZ made where he does something similar.",{"id":175,"text":176},"31203778","I made a rough example here which insert the increment number at cursor by looking at the last number in the line: https:\u002F\u002Fgist.github.com\u002Fborkdude\u002F08ec3ae2af5963a4a03cd8e0873c918d",{"id":178,"text":179},"31203975","That would be possible with joyride as well. Ask for user input, then evaluate it.",{"commenters":181,"max_depth":34,"maker_replies":38,"first_comment_mins":182,"lifespan_hours":17},25,14,[184,186,188,192,195,198,201,204,207,210,212,214,216,218,221,223,224,226,228,232,235,238,241,244,247,248,250,252,254,257,260,261,265,268,270,272,273,275,280,283,285,287,288,290],[55,43,38,185,56,43],"project\u002Fpositive\u002Fidea",[63,33,39,187,64,43],"maker\u002Fneutral\u002Fnone",[189,33,43,190,191,43],"31203407","other\u002Fneutral\u002Fnone","ungamedplayer",[193,33,43,190,194,43],"31203496","mijoharas",[196,33,43,190,197,43],"31204781","seanw444",[199,33,43,190,200,43],"31203559","leifericf",[202,33,43,190,203,43],"31203603","kitd",[205,33,43,190,206,43],"31205367","gorjusborg",[208,33,38,209,167,43],"31203869","maker\u002Fpositive\u002Fnone",[211,33,39,187,64,43],"31203941",[213,33,38,209,200,43],"31204581",[215,33,43,190,167,43],"31205787",[94,33,38,217,95,43],"project\u002Fpositive\u002Fexecution",[219,33,39,220,64,43],"31210264","maker\u002Fneutral\u002Fdocs",[117,41,39,222,118,43],"project\u002Fneutral\u002Fperformance",[172,41,43,220,10,33],[175,41,43,225,10,33],"maker\u002Fpositive\u002Fexecution",[227,41,38,225,118,43],"31204166",[229,41,39,230,231,43],"31203625","project\u002Fneutral\u002Fexecution","macmac",[233,41,39,230,234,43],"31203629","oefrha",[236,41,39,230,237,43],"31203878","tom_",[239,41,33,240,234,43],"31203947","project\u002Fcritical\u002Fexecution",[242,41,43,243,231,43],"31204035","commenter\u002Fcritical\u002Fexecution",[245,41,43,246,234,43],"31204638","commenter\u002Fneutral\u002Fexecution",[178,41,43,230,10,33],[249,41,39,230,231,43],"31204338",[121,41,33,251,122,43],"project\u002Fcritical\u002Fidea",[125,41,39,253,64,43],"project\u002Fmixed\u002Fperformance",[255,41,38,185,256,43],"31205317","swah",[258,41,39,259,64,43],"31207806","project\u002Fneutral\u002Fidea",[98,39,38,185,99,43],[262,263,33,251,264,43],"31204628",4,"beepbooptheory",[266,263,43,267,64,43],"31205188","commenter\u002Fneutral\u002Fnone",[269,263,33,251,264,43],"31206218",[271,263,43,190,64,43],"31207838",[105,38,38,185,106,43],[154,34,33,274,155,43],"project\u002Fcritical\u002Fnone",[276,277,33,278,279,43],"31209472",7,"project\u002Fcritical\u002Fdocs","EnigmaCurry",[281,277,43,267,282,43],"31209622","joenathanone",[140,284,39,259,141,43],8,[81,284,43,286,10,33],"maker\u002Fneutral\u002Fperformance",[166,284,43,190,167,43],[289,284,43,190,10,33],"31203873",[109,31,38,185,110,43],[],[293,298,303,307,312,316],{"id":294,"name":295,"points":296,"category":297},"31238396","PostgresML",444,"ai",{"id":299,"name":300,"points":301,"category":302},"31210680","Radiopaper",346,"consumer_social",{"id":304,"name":305,"points":306,"category":302},"31238958","Hangtime",311,{"id":308,"name":309,"points":310,"category":311},"31192956","Fintopea",245,"finance_crypto",{"id":313,"name":314,"points":315,"category":311},"31247312","betagainst",217,{"id":317,"name":318,"points":319,"category":320},"31225494","NoiseCraft",214,"creative",false,"v2",{"id":324,"name":5,"line":6,"ai":321,"cat":19,"year":12,"points":13,"comments":14,"rec":28,"s":29,"top":17,"kw":325,"maker":10,"domain":326,"tier":18,"attempts":43,"strip":327,"url":-1,"mix":328,"praise":89,"objection":114,"sub":20},31203024,[23,24,25,26,27],"","5300000055053300533100031353511051103005",[31,32,33,34],1793991044992]