I should note that I'm standing on the shoulders of giants here: wlangstroth, the original author of vim-racket, did most of the work.
My contributions have been to update some mechanisms and keep the plugin active (the original repo hasn't seen any real activity, even on open issues and PRs, in some time). So if you're using vim and wlangstroth's version, consider switching, if only for a better support experience
This is great. REPL support, asynchronous linting, syntax highlighting -- from the sounds of things, Racket support in Vim is quite mature! I'm curious about the features in vim-racket. Is that documented somewhere?
Btw, love this L33t ASCII logo but it overflows when the browser is a little zoomed in (am I the only one who zooms in on different applications? At this point I've reported zoom related issues on at least three different repos! Maybe I need to get my eyes checked.).
(And this right here is one of the many reasons I advocate using the term "symex" rather than "sexp" )
Uh, yes. That's from the original… I'll consider removing it. I don't think the original sees much activity, and I've diverged so much, that remaining "close enough" to aid merging upstream changes isn't really worth it.
I love the overflow Concerning the word "sexp", I find it weirdly confusing and pleasing at the same time It's the kind of word you feel free to use with friends and connoisseurs, but with which you aren't really comfortable with strangers.
The "S" in "s-expression" does not stand for anything like "symbolic". It merely alludes to an open paren above a close paren, which resemble the shape of an "S".
(
)
S
-- The History of Lisp: Imaginary, Silly, and Terribly Wrong Edition
I have my own binding for ] which automatically chooses whether to insert )] or }, like in DrRacket. Do you have something like that already? If not, I could post mine.
@plane please share! I may incorporate something like that (gated behind an option); if I do, I'll credit you as the commit author (plane · GitHub, right?).
Do you use that mapping for all your languages or just Racket?
I may incorporate something like that (gated behind an option); if I do, I'll credit you as the commit author (https://github.com/plane, right?)
Yep, that's me! As far as I'm concerned, you can do whatever you want with this file. Part of the function is taken from Bram Moolenaar's matchparen.vim, though, so it probably inherits his license.
Do you use that mapping for all your languages or just Racket?
Part of the function is taken from Bram Moolenaar's matchparen.vim , though, so it probably inherits his license.
Ah, yes, the Vim license. OK, I will link to this gist from vim-racket, then, and try it out
I have it mapped globally, actually.
Fascinating! I'm considering trying it but with ), ], and } all mapped to it. I imagine it would get in the way if you ever wanted to type unbalanced parens (happens), but a simple <C-v>CLOSER should suffice there.
I'm assuming you use ALE for Racket, since I don't know anything about "LanguageClient" or some of the other plugins, and I don't use NeoVim.
In that case, note that ALE works best when you have raco pkg install racket-langserver; otherwise, it checks code through raco expand (which can only be done for saved buffers). It's still not necessarily the speediest experience, though.